NEWS
[Gelöst] Blockly schaltet Hue nicht aus
-
Hallo zusammen,
ich habe folgendes Blocky erstellt:
Dieses soll bezwecken, dass ab einer bestimmten Helligkeit die Hue ausgehen. Das klappt aber nicht. Wenn ich die Hue manuell einschalte, bleiben Sie an, obwohl die Helligkeit > 13000 ist (Hue Motionsensor, abgefragt per Javascript und in einen State geschrieben).
Hier mal der generierte Code:
var schedule; schedule = schedule(compareTime("07:00", "18:00", "between"), function () { on({id: "hue.1.Philips_hue_KiZi.Bad.on"/*Philips_hue_KiZi.Bad.on*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log(getState("javascript.0.hueSensors.Helligkeit.Bad").val); if (getState("javascript.0.hueSensors.Helligkeit.Bad").val > 13000 && getState("hue.1.Philips_hue_KiZi.Bad.bri").val > 0) { setStateDelayed("hue.1.Philips_hue_KiZi.Bad.bri"/*Philips_hue_KiZi.Bad.bri*/, 0, 1000, false); } }); });
Wo liegt der Fehler?
Gruß
Hans-Ulrich
-
Könntest du einmal kurz erläutern, was du damit bezwecken willst bzw. was genau passieren soll?
Leuchtet die HUE nicht sowieso konstant immer mit einer bestimmten Helligkeit? Die ändert sich ja nur wenn du die Intensität der HUE selber niedriger oder höher stellst, oder nicht?
Wäre gut wenn du erläuterst, was und wieso wann ausgehen soll, damit man es besser reproduzieren kann.
-
Könntest du einmal kurz erläutern, was du damit bezwecken willst bzw. was genau passieren soll?
Leuchtet die HUE nicht sowieso konstant immer mit einer bestimmten Helligkeit? Die ändert sich ja nur wenn du die Intensität der HUE selber niedriger oder höher stellst, oder nicht?
Wäre gut wenn du erläuterst, was und wieso wann ausgehen soll, damit man es besser reproduzieren kann. `
Die Hue werden vom Motionsensor bei Bewegung eingeschaltet und sollen, sobald im Raum der Helligkeitswert erreicht wird (das geschieht durch das Öffnen der Jalousie, die aber nicht ans Smarthome „angeschlossen“ ist), sofort ausgehen und nicht erst nach der im MS eingestellten Zeit.
Mich wundert auch, dass der Debug nichts ausgibt.
-
hast du es vielleicht schonmal mit >gleich ausprobiert?
misst der Motion Sensor die Helligkeit im Raum?
-
Ja, der MS misst die Helligkeit (derzeit 21347). Dennoch wird nicht getriggert und ausgeschaltet.
-
Probiere es bitte mal so, bitte uhrzeit etc. einmal anpassen da es ja jetzt schon nach 18 uhr ist um es zu testen. Ist zwar bisschen umständlicher von mir aber eigentlich sollte es so funktionieren.
! ````
<block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="0Q;lrz(8VwtWO|P79(}:" x="-487.75042425690026" y="62.680000305175724"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="pL5zFi/:H[Cj%lB~JO|R"><field name="oid">default</field></shadow></value>
<statement name="STATEMENT"><block type="controls_if" id="QV=;kMU@fNF!LqSdi;{"><value name="IF0"><block type="logic_operation" id="7m-X0e3)ZbS+!tRxqDCe"><field name="OP">AND</field> <value name="A"><block type="time_compare_ex" id="N|U[.B%k0!qF{g9Lu+0u"><mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"><shadow type="text" id=".s!oB,aZn
WrI|t;8R4I"><field name="TEXT">07:00</field></shadow></value>
<value name="END_TIME"><shadow type="text" id="In,8dv]lQOCWs3L!^IZH"><field name="TEXT">18:00</field></shadow></value></block></value>
<value name="B"><block type="logic_compare" id="XM.=I@|]r0ig]NyQ.Ys"><field name="OP">GT</field>
<value name="A"><block type="get_value" id="iWsl1@XTl:{wGf]cPYV"><field name="ATTR">val</field> <field name="OID">ID auswählen</field></block></value> <value name="B"><block type="logic_operation" id="W,pF
MRX]@a_ZII1?HN;"><field name="OP">AND</field>
<value name="A"><block type="variables_get" id=";aILfZQkFg@Xor/SThG"><field name="VAR">13000</field></block></value>
<value name="B"><block type="logic_compare" id="z|l}s4D|2Y)|N056`oZB"><field name="OP">GT</field>
<value name="A"><block type="get_value" id="9Gfys88jx}2wQ|IcF,I,"><field name="ATTR">val</field>
<field name="OID">ID auswählen</field></block></value>
<value name="B"><block type="variables_get" id="K1opZ?),ZpG|NOsTb-Vo"><field name="VAR">0</field></block></value></block></value></block></value></block></value></block></value>
<statement name="DO0"><block type="control" id="6nu8gM_3]%*U!d:P9-!#"><mutation delay_input="true"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">1000</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="variables_get" id="J.W3-N-~W(;3Lfku,zA)"><field name="VAR">0</field></block></value></block></statement></block></statement></block>hier noch das Blockly export. Probiere es einfach mal so aus.
-
Hallo 4-Real,
danke für die Antwort.
Ich habe den Import durchgeführt und der Code sieht danach so aus:
var my_0, my_13000; on({id: 'hue.1.Philips_hue_KiZi.Bad.bri', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (compareTime('06:00', '09:30', "between", null) && getState("javascript.0.hueSensors.Helligkeit.Bad").val > (my_13000 && getState("hue.1.Philips_hue_KiZi.Bad.bri").val > my_0)) { setStateDelayed("hue.1.Philips_hue_KiZi.Bad.bri"/*Philips_hue_KiZi.Bad.bri*/, my_0, 3000, false); } });
Was mich stutzig macht, sind die Variablen "my_13000" und "my_0", die es aber gar nicht gibt.
Angesichts der Uhrzeit kann ich es zwar nicht testen, aber ich denke nicht, dass es so klappt.
-
So, nun habe ich es mit ein wenig Experimentieren hinbekommen:
Mein Fehler war, dass der Aktualisierungszeitraum zu groß war.
Schönes Wochenende Euch Allen!