NEWS
[erledigt]MQTT Status aktualisieren nach Deploy?
-
Hallo
Ich habe hier ein Flow, welcher ein MQTT-Topic ausliest und darauf reagiert.
Wie kann ich nach einem Deploy des Flow's sicherstellen, dass das Topic aktualisiert wird?Danke Euch.
Pat
-
@valbuz Das geht nur, wenn Du
- Den FLOW auf der Seite vollständig deployst
oder - Einfach alle Flos neu startest (letzte Option). In dem Fall würde sich wohl die 1. Option anbieten, dann werden alle Nodes in dem aktuellen Flow neu gestartet.
- Den FLOW auf der Seite vollständig deployst
-
@mickym
Danke.
Stimmt ich habe bis jetzt immer nur die geänderten Nodes deployed.Ich dachte an ein Inject oder so, welcher alle Stunde vielleicht den Status des Topics abruft.
-
@valbuz Im iobroker gibt so eine get-Node, das gibts bei mqtt nicht. mqtt publiziert nur.
Wenn Du im iobroker Deine mqtt Nodes hast, kannst Du die über die iobroker-get Nodes auslesen.In der Regel brauchst Du es zyklisch ja nicht auslesen, da DU immer davon ausgehen kannst, dass der Status der gleiche bleibt. Das heisst Du kannst das schon in einer Flow Variablen zwischenspeichern und diesen dann halt jede Stunde mit Inject Node antriggern und ausgeben lassen. Das sehe ich weniger als Problem.
Das Problem ist eher, wenn man den Status woanders braucht - wie gesagt mit Standardmitteln alles über Flow Variablen zu lösen. Im Prinzip darf mqtt auch nur dann eine Nachricht erneut ausgeben, wenn diese den RETAIN Status hat. Ansonsten ist das immer nur Moment getrieben. Auch hier wäre der richtige Weg, dass in Variablen zu speichern.
Es gibt zwar hier Ansätze: https://github.com/cflurin/node-red-contrib-dsm/wiki/Mqtt-on-demand
würde aber davon abraten.Wenn es Dir am Anfang zu lange dauert, da sich ein Gerät nach einem Restart nicht wieder gemeldet hat, dann wie gesagt die Nachricht im Retain Modus abspeichern, dass sie gültig bleibt. Hat halt auch den Nachteil, dass Du nicht mehr siehst wie aktuell das Ganze ist.
-
@mickym Danke für Deine Ausführungen.
Das (mein) Problem bestand im Deployen.Ganzer Flow deployen und es läuft.
Danke!
Pat