Neues Ding, neue Cloudhölle, nix geht. Dann irgendwann doch. Das schicke Ding lässt sich wider erwarten recht einfach in HA integrieren, nur will QuingPing (Xiaomi) das so ganz bestimmt nicht.
Willkommen in der 3D-Druck-Hölle :-) Als jemand, der kürzlich erst seine ersten Sprünge mit einem P2S macht, mache ich mir selbstverständlich Sorgen um meine Gesundheit. Im Moment ist es ja „nur“ PLA und PETG(HF), aber wer weiß, was ich da tatsächlich einatme. Einige raten zu diesem speziellen Air Monitor, weil dessen Sensorik wohl „richtigere“ Werte liefert und das, was ich zuvor als simple Luftqualitätsmesser bei Aliexpress gekauft hatte, eher ein Zufallszahlengenerator ist. Aber seht selbst…

Rechts der Quingping mit den korrekten Werten. Links das Ding, was keine Probleme erkennen will, obwohl die Luft im Raum mal dringend ausgetauscht werden müsste.
Da das Ding eine Appintegration hat, hatte ich gesponnen, da irgendwie heranzukommen. Das originalplugin bietet nur eine Integration für den Air Monitor Lite (Link) . In HACS finde ich eine weitere Integration (Link) die für den CGS2 passen müsste.
Der von der HACS Lösung vorgeschlagene Weg schlug fehl: Der lautete, ich möge auf der Entwicklerseite (Link) eine mqtt-config erstellen. Über die iot-App von Quingping bekomme ich das Gerät dann in meinen Account, von dort kann ich es mit der mqtt-config belegen. Das erstellen der Konfiguration funktioniert, allerdings kommt sie nach dem Pushen nie am Gerät an. Das geht also nicht.
Etwas später komme ich dahinter, dass das Ding einen Entwicklermodus (Android) hat. Via 7x Touch auf den Gerätenamen (in „About“) kommt man da rein.
Man kommt via ADB dann auf das Gerät. Etwas später stelle ich die einfachste Methode fest: Das Ding hat SSH offen. via root und Kennwort „rockchip“ bin ich – ohne ADB – direkt drauf.
Meine Firmware ist 4.5.6_0167, falls jemand diesen Weg später mal gehen will, bin ich gespannt über eine Rückmeldung mit einer höheren Firmwareversion.
Auf meinem HomeAssistant installiere ich in //Einstellungen/Apps zunächst Mosquitto, konfiguriere die Parameter falls erforderlich und starte das Ding.
Dann lege ich unter //Einstellungen/Personen den User an, den ich für die Quingping-Hütte mit mqtt verwende.
Für die Konfiguration benötige ich folgende Variablen:
$devicemac = MAC Adresse des Gerätes ohne Trennungen
$mqttbrokerip= IP Adresse des mqtt Brokers, bei Mosquitto auf HA IP
$username= Nutzername, den ich in HA anlege
$password= Passwort, das ich in HA vorab anlege
Ich verbinde mich via SSH (root, rockchip) mit der Quingping-Büchse.
in /data/etc/setting.ini lege ich folgende Konfiguration an (Variablen ersetzen):
[$mqttbrokerip]
save_history_interval=60
sync_history_interval=300
[host]
client_id=$devicemac
host=$mqttbrokerip
password=$password
port=1883
pub_topic=Snow/up/$devicemac
sub_topic=Snow/down/$devicemac
tls=0
username=$username
Anschließend setze ich in der configuration.yaml erstmal die Sensoren und einen Neustarter, den ich in der configuration.yaml (später) noch triggern muss (Variablen ersetzen):
## QUINGPING BEGIN
mqtt:
sensor:
- name: "Qingping Temperature"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].temperature.value }}"
unit_of_measurement: "°C"
device_class: temperature
- name: "Qingping Humidity"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].humidity.value }}"
unit_of_measurement: "%"
device_class: humidity
- name: "Qingping CO2"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].co2.value }}"
unit_of_measurement: "ppm"
device_class: carbon_dioxide
- name: "Qingping PM2.5"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].pm25.value }}"
unit_of_measurement: "µg/m³"
device_class: pm25
- name: "Qingping PM10"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].pm10.value }}"
unit_of_measurement: "µg/m³"
device_class: pm10
- name: "Qingping TVOC Index"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].tvoc_index.value }}"
unit_of_measurement: "index"
icon: mdi:air-filter
- name: "Qingping Noise"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].noise.value }}"
unit_of_measurement: "dB"
icon: mdi:volume-high
- name: "Qingping Battery"
state_topic: "Snow/up/$devicemac"
value_template: "{{ value_json.sensorData[0].battery.value }}"
unit_of_measurement: "%"
device_class: battery
## QUINGPING END
## QUINGPING NEUSTART Wenn das Quingping Dingen neu startet, soll es sich wieder melden
shell_command:
activate_qingping: >
mosquitto_pub -h $mqttbrokerip -u $username -P '$password'
-t 'Snow/down/$devicemac'
-m '{"type":"12","up_itvl":"60","duration":"86400"}'
##QUINGPING NEUSTART ENDE
Die automations.yaml wird durch die GUI „gepflegt“. Hier das YAML was ihr in eine neue Autmation einfügen könnt:
alias: Qingping Keep Alive
description: Sendet alle 15 Minuten Aktivierungsnachricht an Qingping
triggers:
- minutes: /15
trigger: time_pattern
conditions: []
actions:
- data: {}
action: shell_command.activate_qingping
mode: single
Damit sollte das Ding spätestens nach 15 Minuten neu an HA senden. Wenn Du den mqtt-kram debuggen willst, kannst Du das auf der Konsole vom HA machen mit:
mosquitto_pub -h $mqttbrokerip -u $username -P '$password' \
-t 'Snow/down/AABBCCDDEEFF' \
-m '{"type":"12","up_itvl":"60","duration":"86400"}'
mosquitto_sub -h $mqttbrokerip -u $username -P '$password' -v -t 'Snow/up/AABBCCDDEEFF'
Außerdem kannst Du in Mosquitto schauen, ob er sich dort meldet.