NEWS
SOLVED node-red State ... does not exist in ioBroker
-
Bei neu erzeugten FHEM devices (FRM_OUT gpio FIRMATA) liefert node-red auf den on-xxx devices den Fehler 'State "fhem.0.HKMw.on-for-timer" does not exist in the ioBroker'.
Der State wird im Admin in der Objektliste angezeigt, ist also vorhanden, wenn auch mit einem leeren Wert.
Der Fehler tritt auf, bis man manuell im admin einen Wert ungleich leer für den state gesetzt hat.
Setzt man in node-red die option "Create states if not exist" kommt der Fehler zwar nicht mehr im Logfile vor, aber es erfolgt auch keine State Änderung und somit keine Meldung an FHEM etwas auszulösen.Ein manueller Trigger auf den State über den iobroker admin ist aber auch mit leerem Wert möglich und kommt in FHEM an. Hier stimmt also etwas nicht bei der Abfrage in node-red ob der state vorhanden ist, bzw. in der zugrundeliegenden Funktion in iobroker.node-red/nodes/ioBroker.js
iobroker admin 3.6.0
iobroker node red: 1.7.1
iobroker fhem: 1.1.1 -
@jaghatei
Ok mit Variante 1 kannst du jetzt arbeiten
Habe im FHEM Adapter folgendes mal geändert:
Für jedes PossibleSet wie zB on-for-timer wird bei Synchro der Wert "." geschrieben. Somit auf jeden Fall ein state mit Inhalt "." für node-red vorhanden.
Zum Testen bitte Update FHEM Adapter über github durchführen.
Vielen Dank und Gruß
LausiD -
@jaghatei sagte in node-red State ... does not exist in ioBroker:
Nabend,
habe ich dich richtig verstanden....ein über den FHEM Adapter neu angelegtes Objekt mit der ID on-for-timer und Typ state erzeugt die Fehlermeldung?
Wurde der Wert für das Objekt einmalig manuell geändert ist die Fehlermeldung weg und Übertrag in FHEM funktioniert?
Falls ja könnte ich mir folgendes vorstellen:
on-for-timer oder auch off-for-timer ist ein PossibleSet ohne weiteren Parameter in FHEM. Dementsprechend wird auch nur das Objekt angelegt und kein
Zustand (hier state aus Fehlermeldung)
Der Aufbau ioBroker sieht hier jeweils ein Objekt und State getrennt vor.
Gruß
LausiD -
@LausiD sagte in node-red State ... does not exist in ioBroker:
habe ich dich richtig verstanden....ein über den FHEM Adapter neu angelegtes Objekt mit der ID on-for-timer und Typ state erzeugt die Fehlermeldung?
Wurde der Wert für das Objekt einmalig manuell geändert ist die Fehlermeldung weg und Übertrag in FHEM funktioniert?ja. Solange das Objekt nach dem Anlegen in fhem eine "leeren" state hat, erfolgt der Fehler in node-red. Sobald ich manuell über den iobroker admin einen Wert in den State einsetzte, ist der Fehler weg. Tritt übrigens auch bei den States "on" und "off" auf.
Node-red "sieht" ja anscheinend das kein state da, sonst würde kein Fehler im Logfile erscheinen, aber das Flag "Create states if not exist", bzw. autocreate ist hier ohne Funktion: der Fehler ist dann zwar nicht mehr im log file zu sehen, aber der State wird trotzdem nicht angelegt (obwohl ein Wert <> leer in msg.payload vorhanden ist) und es kommt kein Event in FHEM an.
Und warum reagiert node-red hier anders als der admin? Im admin kann ich on-for-timer auslösen, auch wenn kein Wert vorhanden ist (leerer String und per Maus mit ok bestätigen). Aus node-red heraus geht das nicht. -
@jaghatei
Node-red ist jetzt leider so gar nicht meins.....
Ein Versuch wäre bei Anlage der PossibleSets wie zB on-for-timer einen Punkt als Wert zu schreiben.Müsste ich mal testweise in den Adapter einbauen....
Eventuell kann es auch an fehlenden Leserechten liegen. Kannst du mal an einem "neuen" Objekt zB on-for-timer den Haken für Lesen erlaubt setzen und nochmal mit node-red testen.
Alternativ:- mit node-red in das Objekt fhem.0.deinDevice.state zB on-for-timer 30" zu schreiben
- mit node-red in das Objekt fhem.0.info.Commands.sendFHEM den kompletten Befehl zB "set deinDevice on-for-timer 30" zu schreiben.
Gruß
LausiD -
Leserechte sind per Default gesetzt (user / group / all).
Variante 1 funktioniert, während auf dem gleichen FHEM Device der direkte Weg über fhem.0.deinDevice.on-for-timer den Fehler provoziert.
Variante 2 läuft auch auf den Fehler: State "fhem.0.info.Commands.sendFHEM" does not exist in the ioBroker -
@jaghatei
Ok mit Variante 1 kannst du jetzt arbeiten
Habe im FHEM Adapter folgendes mal geändert:
Für jedes PossibleSet wie zB on-for-timer wird bei Synchro der Wert "." geschrieben. Somit auf jeden Fall ein state mit Inhalt "." für node-red vorhanden.
Zum Testen bitte Update FHEM Adapter über github durchführen.
Vielen Dank und Gruß
LausiD -
Die Änderung entschärft mein Problem. Der Fehler ist danach weg.
-
@jaghatei
Danke für die Rückmeldung
Mit erneutem Update FHEM Adapter über github sollte Variante 2 jetzt auch funktionieren.
Kannst du nochmal testen?
Danke und Gruß
LausiD