NEWS
Frage zum MQTT Broker/Broker und Client Subscriptions
-
Wenn ein MQTT-Client neu gestartet wird, und am MQTT Broker eine Subscription für einen Datenpunkt anmeldet - wird dann der aktuelle Wert des Datenpunktes direkt vom Broker zum Client übermittelt, oder findet die erste Übermittlung erst bei der ersten Änderung des Datenpunktes statt?
-
@martinp
Das kommt drauf an. Wenn das Topic, für welches eine Subscription eingerichtet wurde, mit dem "retain" Flag gepublished wurde, erhältst du nach der Anmeldung am Broker direkt die Message, ansonsten erst beim nächsten Publishen.Entscheidend ist also das Verhalten des Clients, der die Message published.
-
@marc-berg Wenig hilfreich ist da eine Art Henne-Ei-Problem
Ein neu eingerichteter Thermostat soll natürlich diesen Datenpunkt erzeugen, und erstmal mit einem sinvollen Default-Wert initialisieren, damit man nicht im Iobroker so viel Handarbeit hat.
Wenn er nachher z. B. nach einem Spannungsausfall wieder hochkommt, soll er natürlich den Wert aus dem vorgefundenen Datenpunkt auslesen und nicht wieder versuchen, den Datenpunkt zu erzeugen, und mit einem Wert zu füllen...
Da muss ich mir wohl noch einmal meinen Arduino-Code für meinen ESP8266 Thermostaten anschauen, was ich da fabriziert habe ...
Retain Flag scheint gesetzt zu sein ...
EDIT: Daneben muss natürlich auch gewährleistet sein, dass der Thermostat auch seinen Dienst tut, wenn der IOBroker ausfällt ...
Vielleicht muss ich da schauen, dass der IoBroker, wenn er den Standard-Wert für die Soll-Temperatur vom Thermostaten um die Ohren gehauen bekommt, wieder seinen zur Tageszeit passenden Wunsch Wert für den Thermostaten durchsetzt ...
-
Naja, für diese Aktionen ist ja MQTT nicht gebaut, das ist klar, dass das hakt. Und ein Topic zu publishen, auf welches auch gehört wird, ist sowieso etwas gefährlich (wegen möglicher Schleifen).
Wäre es nicht besser, dass alle deine Thermostate/Geräte bei jedem Start EIN FIXES Topic publishen, in dessen Inhalt das anzulegende Gerät steht? Dazu ein Mini-Skript auf ioBroker Seite, welches dieses eine Topic überwacht und die erforderlichen Datenpunkte mit allem Schnickschnack anlegt, was per MQTT sowieso nicht möglich wäre.
-
@marc-berg Ja, darauf wird es dann wohl hinauslaufen. Ich habe derzeit eh nur einen MQTT - Thermostaten. Der in Fädeltechnik aufgebaute Prototyp arbeitet gerade in meinem Arbeitszimmer, bzw. wartet auf den Herbst, um wieder etwas zu tun zu bekommen ...
Werde mal schauen, wie ich das bewerkstellige ...
Hier noch der Github Link auf das ESP Projekt ...
https://github.com/MartinP1/ESP8266_MQTT_THERMOSTAT/tree/main