NEWS
[gelöst] Lampe geht immer schon vorher aus, kann mir bitte einer helfen?
-
Hab im HWR 3 Lampen die sobald ich die Tür im HWR öffne sich einschalten, solange leuchten sollen wie die Tür offen ist und wenn sie geschlossen wird, dann gehen sie nach ca 10 Sekunden aus. Das klappt soweit ganz gut, aber jetzt hab ich doch ein paar kleinen Problemchen damit. Der HWR wird ganz gut von uns frequentiert. Jetzt ist es schon mehrfach vorgekommen, das das Licht einfach so ausgeht. Ich vermute es liegt daran, das der Vorgang mit dem 10 Sekunden zählen beginnt, sobald die Tür geschlossen wurde, wenn nun aber innerhalb der 10 Sekunden jemand wieder die TÜr öffnet, dann geht das Licht zwar an, aber geht gleich wieder aus, weil ja die 10 Sekunden rum sind. Wie kann ich diesen Vorgang stoppen, damit er dann beim nächten Öffnen diesen Ausschaltvorgang abbricht und wartet bis ich die Tür wieder geschlossen habe?
Nicht wundern, im Bild hab in den Timer zum testen mal der Lampen auf 3 5 und 8 Sekunden gesetzt und hab auch noch die Außentür vom HWR mit drin.
on({id: "hm-rpc.0.NEQ0406535.1.STATE"/*HWR_Tuer_innen:1.STATE*/, change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("hm-rpc.0.NEQ0406535.1.STATE").val == true) { setState("hue.0.Hue_Bridge_1.HWR_Licht1_vorne.on"/*Hue_Bridge_1.HWR_Licht1_vorne.on*/, true); setState("hue.0.Hue_Bridge_1.HWR_Licht1_vorne.bri"/*Hue_Bridge_1.HWR_Licht1_vorne.bri*/, parseFloat(100)); setState("hue.0.Hue_Bridge_1.HWR_Licht2_vorne.on"/*Hue_Bridge_1.HWR_Licht2_vorne.on*/, true); setState("hue.0.Hue_Bridge_1.HWR_Licht2_vorne.bri"/*Hue_Bridge_1.HWR_Licht2_vorne.bri*/, parseFloat(100)); setState("hue.0.Hue_Bridge_1.HWR_Licht_hinten.on"/*Hue_Bridge_1.HWR_Licht_hinten.on*/, true); setState("hue.0.Hue_Bridge_1.HWR_Licht_hinten.bri"/*Hue_Bridge_1.HWR_Licht_hinten.bri*/, parseFloat(100)); } else if (getState("hm-rpc.0.NEQ0406535.1.STATE").val == false && getState("hm-rpc.0.LTK0007658.1.STATE").val == false) { setStateDelayed("hue.0.Hue_Bridge_1.HWR_Licht1_vorne.on"/*Hue_Bridge_1.HWR_Licht1_vorne.on*/, false, 10000, false); setStateDelayed("hue.0.Hue_Bridge_1.HWR_Licht2_vorne.on"/*Hue_Bridge_1.HWR_Licht2_vorne.on*/, false, 10000, false); setStateDelayed("hue.0.Hue_Bridge_1.HWR_Licht_hinten.on"/*Hue_Bridge_1.HWR_Licht_hinten.on*/, false, 10000, false); } });
-
Prinzip mit 1 Lampe
Die Konvertierung nach Zahl ist nicht erforderlich, weil der Eingabewert aus Mathematik eine Zahl ist. -
Weil die Verzögerung erst beim Schließen der Tür wieder gestartet wird und dann erst gelöscht werden würde, da ist es aber schon zu spät. So wie im Vorschlag läuft das, weil hier der Timeout gleich beim Öffnen der Tür unterbrochen wird und das Programm von vorne los läuft
-
Vielen lieben Dank für Eure Hilfe, das baue ich nachher mal so um.
-
Ehrlich gesagt, ich hätte es zuerst auch so versucht, wie Du es im Kopf hattest. Das sind dann genau die Blocklys, die im Kopf funktionieren und sich dann völlig unerwartet anders verhalten :lol:
-
Ja so vom logischen her, hätte es ja klappen können. Hab jetzt schon ofter festgestellt, das Einiges nicht ganz so funktioniert, wie eigentlich laufen sollte. Vielleicht ist es besser, wenn man es in JS direkt schreibt? Aber dazu muss ich mir das erstmal aneignen :oops:
-
Da ist es aber wesentlich einfach sich an die teilweise etwas verwirrende Blöcke von Blockly zu gewöhnen, als extra Java dafür zu lernen.
Natürlich hat reines Java Script Vorteile gegenüber Blockly, aber dafür versteht man Blockly recht schnell und das ganz ohne Java Kenntnisse
-
…als extra Java dafür zu lernen. `
Javascript hat <u>nichts</u> mit Java zu tun. -
siehste, da gehts schon los :lol:
-
@Paul53: Riesen Dankeschön, so klappt es super. Hab es gleich noch mit der Außentür kombiniert.
7763_2018-07-16_19_46_06-javascript_-_iobroker.png -
so klappt es super `
Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst]. -
Mach ich, man da muss ich mal die anderen Beiträge auch noch markieren :oops:
-
da muss ich mal die anderen Beiträge auch noch markieren `
Nö, der erste reicht!Gruß
Rainer
-
Nee meinte doch meinen anderen Fragen