NEWS
Gelöst: Bewegungsmelder
-
Hallo ich habe einen Präsenzmelder, der soll eine Lampe einschalten, die geht nach einer in setStateDelelayed eingestellten Zeit wieder aus. Ich möchte nun aber evtl. das Licht auch vorher mittels des Tuya Tasters wieder auschalten können. Solange aber der setStateDelayed noch tickert, schaltet der Präsenzmelder keine neue Bewegung. Mein einfaches Script sieht so aus:
const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE' var motion = getState(idmotion).val; on({id: "hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE", change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; log("Bewegung: " + motion); if (getState("hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE").val == true) { setState('tuya.0.3065444498f4abb7e5eb.1', true); } else if (getState("hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE").val == false) { setStateDelayed('tuya.0.3065444498f4abb7e5eb.1', false, 600000, false); } });
Da ich noch keine Erfahrung mit Timern habe, frage ich nach einer Lösung hier an.
Gruß
Michael -
@michihorn sagte:
das Licht auch vorher mittels des Tuya Tasters wieder auschalten können.
Datenpunkt-ID ?
-
Ich habe den Tuya Schalter "tuya.0.3065444498f4abb7e5eb.1" der wird von dem Präsenzmelder geschaltet. In den Objekten ist der dann auf "true". Ich möchte den aber ach mal manuell ausschalten, dann ist er in den Objekten auf "false". Das setStateDelayed läuft aber noch, daher müsste ich mit dem "false" des Tuya-Tasters, dieses setStateDelayed unterbrechen können. Das klappt aber wohl nur über einen Timer?!
Das Tuya Objekt sieht so aus:
{ "type": "state", "common": { "def": false, "type": "boolean", "read": true, "write": true, "name": "switch_1", "role": "switch" }, "native": {}, "from": "system.adapter.tuya.0", "user": "system.user.admin", "ts": 1580235170357, "_id": "tuya.0.3065444498f4abb7e5eb.1", "acl": { "object": 1638, "state": 1638 } }
-
@michihorn sagte:
Solange aber der setStateDelayed noch tickert, schaltet der Präsenzmelder keine neue Bewegung.
const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE'; const idLicht = 'tuya.0.3065444498f4abb7e5eb.1'; var timer = null; on(idmotion, function (obj) { log("Bewegung: " + obj.state.val); if (obj.state.val) { if(timer) clearTimeout(timer); setState(idLicht, true); } else { timer = setTimeout(function() { setState(idLicht, false); }, 600000); } });
-
@paul53 sagte in Bewegungsmelder:
const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE'; const idLicht = 'tuya.0.3065444498f4abb7e5eb.1'; var timer = null; on(idmotion, function (obj) { log("Bewegung: " + obj.state.val); if (obj.state.val) { if(timer) clearTimeout(timer); setState(idLicht, true); } else { timer = setTimeout(function() { setState(idLicht, false); }, 600000); } });
Guten Morgen, ich kann jetzt nicht erkennen wie ich mit idLicht den Timer unterbreche
Gruß
Michael -
Dann füge folgendes noch hinzu:
on(idLicht, function (obj) { if (!obj.state.val) { if(timer) clearTimeout(timer); } });
Wobei ich das Problem nicht ganz verstehen, der Bewegungsmelder hat nichts mit dem Timeout zu tun und sollte, ob der Timeout läuft oder nicht, Bewegungen melden. Meine Bewegungsmelderscripts sind ähnlich dem von Paul53 aufgebaut und ich beende den Timeout ausschließlich, wenn eine neue Bewegung angezeigt wird.
EDIT: ist es vielleicht möglich das der Bewegungmelder eine Art delay hat? Meiner hat:
deconz.0.Sensors.5.delay
und in dem Zeitraum in dem der Delay dort intern läuft werden keine neue Bewegungen angezeigt.
-
@ticaki Nöö habe kein Delay. Der BWM schaltet für eine gewisse Zeit den Tuya. Ich möchte aber evtl. die Leuchtzeit verkürzen, indem ich den Tuya-Taster drücke. Licht geht aus. Ich möchte nun direkt das Licht wieder per BWM einschalten lassen und ganau das klappt nicht.
-
Wer schaltet jetzt die Lampe ein? Das Skript oder hat der BWM noch einen andere Verbindung mit der Lampe? Wenn es das Skript ist, liegt das nicht funktionieren daran, dass der BWM entweder nicht auf false geht oder das er nicht mehr auf true geht für eine gewisse Zeit.
-
@ticaki Hallo
ja hab ich auch gerade Festgestellt, in der Geräte-Konfig in der CCU kann ich die Schaltabstände des BMW einstellen. Danke