NEWS
Update aller IOBroker Objects bei Neustart Node Red
-
Hallo,
ich habe z.B. Inputs von externen Geräten in der Objects Liste von IOBroker die sich selten nur ändern. IOBroker zeigt den letzten empfagenen Wert und kümmert sich um das Abholen wenn nach Reset nichts mehr bekannt ist.
Mit Node Red funktioniert das zusammenspiel nicht gut.
Über eine Input Node bekomme ich bei Neustart von NR keinen Trigger so dass zunächst mal alles "unknown" ist. Das führt zu Fehlern in meinen Logiken.
Bei einigen Signalen behelfe ich mich mit einem parallelen get Node der bei Start einmalig per Inject Node getriggert wird. Das bläht aber alles sehr auf.Gibt es ein besseres Entwurfsmuster um bei Neustart den Node Red mit IOBroker besser zu synchronisieren?
-
Hallo,
in meinem Node Red gibt es bei dem IOBroker Input Node die Option "Fire by start", macht das nicht genau das was du möchtest? -
Bei mir nicht, aber ich sehe das ist ein recht neues feature:
* (bluefox) "Fire on start" for the input node was implemented last month -
Okay, ich habs jetzt mal in Betrieb genommen und ich verstehe nicht wie die Funktion ist.
-Bei aktivieren vom Wert oder Kopieren eines bestehenden in Node + deploy feuert er einmal
-jede andere Änderung (z.B. Verschieben) + deploy bewirkt nichts, hier müsste er auch feuern da nachgelagerte Nodes die Infos u.U. brauchen
-ein Neustart von Node Red bewirkt auch kein feuern, gemessen mit einem Context Objekt. Das wäre eingentlich die Kernfunktion. -
@killroy2 , keine Ahnung was du anders machst, aber bei mir wird immer getriggert, auch wenn nur ein Node verschoben wird.
-
@Seb_123 Liegt wohl daran dass du einen Vollen Deploy machst. Ich deploye nur die geänderten Nodes. Alles andere sorgt für zu viel Verwirrung im Haus. Wäre schon gut wenn sich das System auch dann aufsynchronisieren kann.
Der kritischere Anwendungsfall ist Neustart vom Node Red Server. Da wird ebenfalls nicht gefeuert. Das heisst dann solange mit ungültigen Werten rechnen bis mal einer empfangen wird was uU nie passiert.
-
@killroy2 Hi, bist du hier schon weiter gekommen?
Ich habe auch das Problem das mir die Werte nach einem Neustart fehlen. Das "Fire by Start" feuert nur wenn die Nodes geändert werden oder wenn ich bei Deploy Restart Flows auswähle. Beim Neustart passiert leider nichts. Ich habe mir bis jetzt mit ner Injekt Node mit Startet! und dazu Get Nodes beholfen, aber es sollte ja wohl nicht die Lösung sein alles mit Get Nodes vollzuballern. Ich hatte gehofft das die Funktion Fire by Start das löst.