NEWS
Datenpunkte synchronisieren via MQTT
-
Hallo zusammen,
ich habe beim MQTT-Client ein seltsames Phänomen festgestellt und hoffe dass Ihr für mich eine Erklärung/Lösung habt...
Und zwar habe ich eine eigene Datenpunktstruktur aufgebaut, damit ich einen Standard unabhängig der dahinterhängenden Hardware habe. Ein Beispiel: /home/bathroom/light/on ist ein Boolean-Datenpunkt, der mit der VIS verknüpft ist und den Zustand des Lichts anzeigen/steuern soll.
Dazu verknüpft ist ein MQTT-Eintrag home/bathroom/light/on, der beim Tastendruck in VIS ein true/false herausschickt.
Wenn jetzt beispielsweise eine HUE-Lampe über hue-extended angekoppelt ist, wird der jeweilige "on"-Wert ebenfalls mit dem MQTT-Eintrag verknüpft, und das Licht sollte dann entsprechend schalten. Sprich, der zentrale Dreh- und Angelpunkt ist MQTT - entweder zum Befehle an hue-extended senden oder wenn über einen Taster die HUE-Lampe gesteuert wird zum Aktualisieren der VIS.Soweit die Theorie... in der Praxis funktioniert das Ganze allerdings mal schon und mal nicht. Leider habe ich noch kein Schema erkennen können. Ein MQTT-Logger erkennt die gesendeten Befehle, aber die Werte werden manchmal nicht in die Datenpunkte übernommen - entsprechend stimmt die VIS oft nicht mit dem wirklichen Wert überein.
Der mit der VIS verknüpfte Datenpunkt hat bei MQTT ein "ACK" aktiviert, da er ja nur den Istwert übernehmen soll, während das ACK-Flag beim Hue-Datenpunkt nicht gesetzt ist. Demzufolge sollten empfangene MQTT-Daten richtig interpretiert werden.
Allerdings habe ich das Gefühl, dass die beiden identischen Subscriptions das System "überfordern" und teilweise übergangen werden. Kennt jemand das Phänomen und kann mir dazu einen heißen Tip geben?Viele Grüße,
Antimon