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
-
@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
-
@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. -
@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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden