NEWS
Werte der CCU-Systemvariable auslesen
-
Ich bitte um Programmierhilfe:
in der CCU habe ich eine Systemvariable des Typs Werteliste mit den Werten "rein, raus, stop" angelegt. Diese möchte ich nun in Javascript auslesen.
Mein Programm:
/##############Aufruf über Start########################## var idSV = 'hm-rega.0.47789'/*Markise*/; var idStart = 'broadlink2.0.RM:RMPRO-MOVE315-63-30-49.L.CODE_blablabla'/*Markise rein*/; var WertidSV = getState(idSV).val; on({id:idSV, change: 'any'}, function () { if (WertidSV == 0) { log('WertidSV= ' + WertidSV); setState(idStart, true) }; log('idSV= ' + idSV); log('idStart= ' + idStart); });
gibt mir leider die Werte nicht zurück. In den Objekten des iobrokers steht als Wert z. B. "(0)rein". Aber den Wert gibt mir mein kleines Programm weder unter "WertidSV" noch unter "idSV" aus. Da steht immer nur:
javascript.0 (23213) script.js.common.Broadlink_Klima_u_Markise.Broadlink_Markise_rein: WertidSV= 1
Was mache ich falsch? Danke für Hilfe.
-
@skorpil sagte:
Was mache ich falsch?
Die Variable WertidSV muss auch aktualisiert werden.
on(idSV, function (dp) { WertidSV = dp.state.val; if (WertidSV == 0) {
-
danke, bin gerade beim Abendessen. Melde mich gleich noch mal.
-
Das war es! Vielen herzlichen Dank.
Darf ich Dich noch um eine Erklärung bitten "muss auch aktualisiert werden" . ich dachte, wenn ich mit "on({id:idSV, change: 'any'}, function ()" arbeite, wird jeweoös der aktuelle Wert benutzt.
Und noch eine Frage: warum wird jetzt nur der numerische Wert (0,1,2,3) ausgegeben und nicht die Inhalte der SV "rein, raus, stop"? Ich kann mit den Zahlen ja gut weiterarbeiten, aber es interessiert mich halt, um für die Zukunft daraus zu lernen.
Dankeschön und schönen Abend
-
@skorpil sagte:
warum wird jetzt nur der numerische Wert (0,1,2,3) ausgegeben und nicht die Inhalte der SV "rein, raus, stop"?
Eine Werteliste enthält Zahlenwerte, denen über die Eigenschaft common.states Zustandstexte zugeordnet sind.