Ich brauch mal wieder einen Stubser in die richtige Richtung.
Das Switchbot Plugin schreibt auf Wunsch ein nicht konfiguierbares Topic, z.B.
homebridge-switchbot/meter/11:22:33:44:55:66 {"humidity": 47,"temperature": 21.6}
Hieraus würde ich nun gerne die Temperatur nehmen und auf ein anderes Topic weiterleiten oder umleiten:
zigbee2mqtt/Heizung1/set/sensor_temp -> 21.6
Die vom Switchbot Meter gemessene Temperatur soll also dem Heizungsthermostat als externen Temperatursensor untergejubelt werden. Händisch funktioniert das sehr gut.
Das muss keineswegs zwingend in Homebridge geschehen (wäre natürlich toll, wenn das ginge) Meine Programmierskills sind jetzt nicht die tollsten aber vorhandene, ähnliche Scripte umschreiben klappt meist ganz gut. Wenn es keine einfache Variante gibt, müsste ich also ein Script (Bash/Python/...) permanent laufen lassen und das erste topic abonnieren und jedesmal das JSON parsen, wenn eine neue Nachricht reinkommt. Genau hier scheitern aber meine Kenntnisse.
Der Mosquitto Server läuft auf Raspian/testing, zigbee2mqtt als Docker Container.
mqttthing Plugin ist auch installiert. "Thermostat" hat hier aber leider kein setCurrentTemperature
OK, ich hab dann gestern Abend doch noch ein bisschen recherchiert und habs in Phython soweit hinbekommen, musste dann aber aufhören wegen Frühschicht heute.
Fehlt noch:
- eine Verzweigung um verschiedene Sensoren an unterschiedliche Thermostate zu senden - bekomme ich hin.
- Nutzung von mqtts mit user/pass statt mqtt anonym - mal sehen
- Überwachung des Scripts
Zum letzten Punkt, wie stelle ich sicher, dass das Script permanent läuft? Erste Überlegung war per cron-job stündlich einen mqtt-trigger zu senden, der das Script veranlasst den loop und sich selbst zu beenden, 3 Sekunden warten, dann sicherheitshalber ein killall scriptname.py und nach weiteren 3 Sekunden das Script wieder starten. Eine andere Überlegung wäre, vom Switchbot-Plugin die Nachricht mit retain senden zu lassen und das Script dann nur alle 5 oder 10 Minuten zu starten. Würde vermutlich auch der Lebensdauer der Batterie am Heizkörperventil gut tun.