NEWS
Bewegungsmelder nur aktivieren wenn das Licht aus ist
-
@Hank
Kann keinen Fehler entdecken. Lediglich Zeile 13 ist überflüssigmanuell = false;
Ist im Blockly-Bild auch nicht vorhanden.
Was funktioniert nicht ? Verhindert das manuelle Einschalten nicht die Steuerung durch den BWM ? -
@paul53
hey,
nein leider nicht wenn ich über die hue app am handy das licht einstelle wird es leider immer noch durch den bewegungsmelder wieder überschrieben."Lediglich Zeile 13 ist überflüssig"
ja da hatte ich nur grade etwas noch ausprobiert und hatte vergessen es vorher wieder zu löschen.
ich glaube das wird mich noch eine zeit lang beschäftigen bis es funktioniert
-
@Hank ich glaube das Problem liegt daran, dass du es über die App steuern willst und es dort keinen Taster als Trigger im iobroker gibt.
Lass doch den Bewegungsmelder die variable unter der Bedingung auf true setzen, dass die Lampe noch nicht eingeschaltet ist und der Timer darf dann nur herunterzählen, wenn die Variable des BW auf true steht. -
@Ocrim
vielleicht denke ich ja grade in die völlig falsche Richtung oder habe mich schlecht ausgredrücktwenn ich die hue lampe manuell per wanschalter oder app an mache geht dieser Wert im iobroker ja von true auf false
und alles was ich wollte ist das mein bewegunsmelder blocklyscript dann nicht aktiviert wird wenn der wert der lampe auf true ist.
-
-
@Hank
Mir fällt gerade auf, dass das Script nicht das Licht direkt einschaltet, sondern über eine Szene. Dann bringt die Prüfung auf "Ursprung != system.adapter.javascript.0" nichts, weil sie immer erfüllt ist.EDIT: Versuche es mal so:
-
@Hank
Büro on wird aber auch getriggert, wenn der bw die Szene schaltet. Das letzte Programm von Paul würde ich jetzt nehmen und noch um einen Trigger mit dem Wandschalter und vllt sogar um einen Trigger vom Farbwert erweitern, der den wert bwm_ein zusätzlich auf falsch setzt. Mit letzterem sollte sich der bw deaktivieren sobald du die Farbe in der App änderst -
@paul53 @Ocrim
hi
erstmal vielen Dank für die ganze Hilfe! Ohne die hätte ich ewig daran gesessen. ich habe meine blockly script von gestern soweit jetzt fertig.
ich habe dank des Tipps, die Scenen durch feste Licht und Farbwerte ersetzt.
Anscheinend funktioniert es auch erstmal alles wie gewünscht.Hier erstmal die fertige lösung
der neue Vorschlag von paul53 sieht gut aus.
nur leider habe ich da aktuell noch das Problem, das die Lichter nicht wieder hell werden wenn nach sich nach einer zeit wieder bewegt.Und danke Ocrim das werde ich probieren!
Gruß Basti
-
@Hank sagte:
das die Lichter nicht wieder hell werden wenn nach sich nach einer zeit wieder bewegt.
Ja, das stimmt.
Wozu sollen die zusätzlichen Verzögerungen von 5 s dienen ? Sie verbrauchen nur unnötig Ressourcen.
Macht es Sinn, sowohl level als auch bri zu steuern ? -
das wusste ich nicht das es zusätzliche Ressourcen benötigt. Hab ich wieder raus genommen!
Macht es Sinn, sowohl level als auch bri zu steuern ?
nach überprüfung, habe ich festgestellt das es wohl keinen macht Hab level auch entfernt!
war zwar eine schwere Geburt, aber nun bin ich wenigsten ein bisschen schlauer.
Hier noch der Javascript-Code falls jemand mal das selbe Problem hat
var manuell, timeout, timeout2; on({id: 'hue.0.Büro.on', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; manuell = (obj.state ? obj.state.val : "") && (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0'; }); on({id: "0_userdata.0.büropresence"/*büropresence*/, change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (!manuell) { if (true == getState("0_userdata.0.büropresence").val) { (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})(); if (compareTime('07:00', '20:00', "between", null)) { setState("hue.0.Büro.on"/*Büro.on*/, true); setState("hue.0.Büro.bri"/*Büro.bri*/, 254); setState("hue.0.Büro.ct"/*Büro.ct*/, 2732); } } else if (false == getState("0_userdata.0.büropresence").val) { timeout = setTimeout(async function () { setState("hue.0.Büro.bri"/*Büro.bri*/, 77); setState("hue.0.Büro.ct"/*Büro.ct*/, 2732); timeout2 = setTimeout(async function () { setState("hue.0.Büro.on"/*Büro.on*/, false); }, 80000); }, 50000); } } });
Gruß Basti
-
@hank said in Bewegungsmelder nur aktivieren wenn das Licht aus ist:
Hier erstmal die fertige lösung
Hallo Zusammen,
Der Post ist schon ein wenig älter, aber ich stehe aktuell vor genau dem selben Problem.
Das Blockly Script mit der manuellen Abfrage habe ich soweit verstanden.
Aber ganz oben den ersten Bereich nicht.Wenn "Lampe Büro on" geändert wurde, dann setze manuell auf... Und hier verstehe ich es nicht...
was ist "Wert" und "Ursprung" und mit was (system.adapter.javascript()?) wird dort verglichen (ungleich)?