             switch (item) {
             case 'P':
                 // CO2
-                mqtt_send(TOPIC_CO2, value, "ppm");
+                mqtt_send(TOPIC_CO2, value, "PPM");
                 break;
             case 'A':
                 // humidity

        unsigned long ms = millis();
        bool ready = zg01_process(ms, data);
        if (ready) {
            // dump raw buffer
            Serial.print("RAW:");
            hexdump(buffer, sizeof(buffer));
        
            // get item and binary value
            uint8_t item = buffer[0];
            uint16_t value = buffer[1] << 8 | buffer[2];

        char string[64];
        snprintf(string, sizeof(string), "%d %s", value, unit);
        Serial.print("Publishing ");
        Serial.print(string);
        Serial.print(" to ");
        Serial.print(topic);
        Serial.print("...");
        int result = mqttClient.publish(topic, string, true);
        Serial.println(result ? "OK" : "FAIL");
    }    
}

void loop(void)
