NEWS
Systemvariable mit Werteliste in Iobroker
-
@semmy Vorschlag:
-
@semmy sagte: Wie kann man das lösen?
oder
Inhalt der JS-Funktion mit Ergebnis stateText():
return obj.common.states[obj.state.val];
-
@paul53 sagte in Systemvariable mit Werteliste in Iobroker:
@semmy sagte: Wie kann man das lösen?
Das verstehe ich nicht, wie soll das genau gemacht werden?
-
@semmy sagte: Das verstehe ich nicht, wie soll das genau gemacht werden?
Die JS-Funktion stateText() liefert den zugehörigen Text der Werteliste innerhalb eines Triggers: Wert = 0 liefert 22.
-
@paul53 Was muss in der js-funktion statetext eingetragen werden?
-
@semmy sagte: Was muss in statetext eingetragen werden?
Habe ich gezeigt (3 Punkte rechts):
return obj.common.states[obj.state.val];
-
@paul53 Und da muss dieses rein?
return obj.common.states[obj.state.val];
Oder fehlt da noch was?Es tut sich nichts.
-
@semmy sagte: Es tut sich nichts.
Ist der Trigger-Datenpunkt die SV und wurde deren Wert einmal geändert (sonst triggerts nicht)?
-
@paul53 Ja, kommen immer Error Meldungen:
00:17:48.394 error javascript.0 (25467) script.js.Haus.Pelletofen: ReferenceError: obj is not defined
00:17:48.397 error javascript.0 (25467) at stateText (script.js.Haus.Pelletofen:5:5)
00:17:48.399 error javascript.0 (25467) at Object.<anonymous> (script.js.Haus.Pelletofen:12:22) -
@semmy sagte: kommen immer Error Meldungen:
Poste bitte den vom Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
EDIT: Ich meine diesen:
var dp, obj; // Beschreibe diese Funktion … async function stateText(dp) { return dp.common.states[dp.state.val]; } on({id: 'default', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log((await stateText(obj))); });
-
@paul53 Steht doch schon oben
-
@semmy
Wo?Ändere mal die Funktion in eine mit Parameter dp:
Die Variable obj muss genau so geschrieben werden. Funktion stateText(dp):
return dp.common.states[dp.state.val];
-
@paul53 ```Hat sich nichts geändert
27.11.2021, 10:37:14.835 [error]: javascript.0 (25467) script.js.Haus.Pelletofen: ReferenceError: dp is not defined
27.11.2021, 10:37:14.836 [error]: javascript.0 (25467) at stateText (script.js.Haus.Pelletofen:5:5)
27.11.2021, 10:37:14.837 [error]: javascript.0 (25467) at Object.<anonymous> (script.js.Haus.Pelletofen:12:22) -
@semmy sagte: ReferenceError: dp is not defined
-
@paul53 Ok, das war es, jetzt funktioniert es. Vielen Dank
Viele Grüße
Semmy -
@semmy Noch eine Frage. Was muss geändert werden für eine 2. Werteliste?
-
@semmy sagte: Was muss geändert werden für eine 2. Werteliste?
Was meinst Du mit 2. Werteliste?
Ein weiterer Datenpunkt mit Werteliste? Dann muss nichts geändert werden, wenn jeder Datenpunkt einen eigenen Trigger erhält, in dem jeweils die JS-Funktion stateText(dp) aufgerufen wird. -
@paul53 Genau, jetzt passt es. Danke
Gruß
Semmy -
@semmy Hallo
Ist das folgende Blockly so in Ordnung, kommt immer mal vor, dass sich der Ofen nicht ab- oder anschaltet
Mit diesen Einstellungen funktioniert es immer
Viele Grüße
Semmy -
@semmy
Die beiden Grenzwertvariablen müssen bei Skriptstart initialisiert werden. Dafür benötigt man eine andere JS-Funktion getStateText(id) mit folgendem Inhalt:return getObject(id).common.states[getState(id).val];