ioBroker / ioBroker.node-red

Instantiate the server with node-red
Apache License 2.0
52 stars 27 forks source link

ioBroker out "Auto create" funktioniert nicht richtig #267

Closed Bernd9000 closed 2 years ago

Bernd9000 commented 2 years ago

v2.4.1 Ähnlich wie #258

Mit Hilfe von IoBroker-out soll ein Datenpunkt in IOBroker erstellt werden. Besonderheit: Der Datenpunkt existierte früher einmal, jetzt aber nicht mehr. Eigenschaft ioBroker-out "Auto create" steht auf "Create state if not exist" Bei einem neuen Datenpunkt, der das erste mal erstellt wurde ist alles i.O. Wird dieser Datenpunkt im ioBroker gelöscht und man versucht Ihn ein zweites mal zu erstellen gibt es Probleme.

Reaktion beim zweiten mal: IOBroker-in meldet "not exists" und gibt ein leeren string als payload aus (Im flow Oben). IOBroker-get meldet "connected" und gibt gar nichts als payload aus (Im flow Unten). IOBroker-out meldet beim ersten klick "true" und beim zweiten klick "State ... does not exist in the ioBroker" (Im flow Mitte).

0

ioBroker debug: 1

Bernd9000 commented 2 years ago

Nachtrag: Wird ein deploy durchgeführt funktioniert es wieder einmal. Dies hilft aber nicht, wenn ein zweiter ioBroker-in node mit der Eigenschaft "Fire by start" auf "send message at start....." steht. Dann kann dieser Datenpunkt nie wieder erstellt werden, der ist wie ausgelöscht.

Bernd9000 commented 2 years ago

Wenn ich alle Werte mit "Automatik-6" in node-red entferne, habe ich nach dem beenden vom ioBroker immer noch den Wert in folgenden Dateien als "Objekt Leiche":

"states.json" im Pfad "iobroker-data" "objects.json" im Pfad "iobroker-data" "iobroker.json" im Pfad "node_modules\@node-red\editor-client\public"

Lösch ich alle Eintragungen kann ich diesen Datenpunkt wieder erstellen. Kann es sein, das das manuelle löschen der Datenpunkte aus ioBroker Objekte heraus nicht richtig funktioniert und diese Objekt-Leichen in den Dateien zurück bleiben?

Apollon77 commented 2 years ago

Pleass provide a debug log from such a call where it works and where it does not work

Bernd9000 commented 2 years ago

Hab Fehler gefunden. Der ioBroker-in liefert den Datenpunkt Pfad mit "/" statt mit "." Das war mir bekannt und hatte das mit einem Functions Node umgewandelt. Problem war das die Function fehlerhaft war wegen einer falschen .repalce Anweisung. Durch diesen Fehler wurde dem node iobroker-out der Datenpunktpfad mit "/" übergeben statt mit"." iobroker-out legt dann den Datenpunkt statt unter "0_userdata.0" diesen unter "node-red.0.0_userdata.0" an. Auf diesen Pfaden wiederum reagiert ein iobroker-in als wären Sie unter "0_userdata.0" Dadurch wurde vorgetäuscht die Datenpunkte wären da. Und in der Datei "states.json" im Pfad "iobroker-data" waren keine "Objekt-Leichen" sondern es waren die Objekte unter "node-red.0.0_userdata.0"

Hat sich erstmal erledigt :-)

P.S.: Trotzdem habe ein paar Object-Leichen in der states.json die ich mir nicht ganz erklären kann.