NEWS
Licht mit Bewegungsmelder nicht an wenn manuell aus
-
@theboon sagte: Was jetzt aber nicht mehr funktioniert ist das automatische angehen bei Bewegung und Dunkelheit
Dann poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags und logge, wie und weshalb die Variable
manuell_ausgesetzt wird:
-
@theboon sagte: Wie kann ich das abrufen?
Im Tab "Protokolle" und dort filtern, z.B. nach "manuell aus".
-
@paul53 Also es kam raus
Wert: false, Quelle: system.adapter.hue.0, bestätigt: true, manuell aus: trueund ein paar Minuten davor
Wert: true, Quelle: system.adapter.hue.0, bestätigt: true, manuell aus: false@theboon sagte: Wert: false, Quelle: system.adapter.hue.0, bestätigt: true, manuell aus: true
Künftig bitte die kompletten Zeilen in Code tags posten!
Wenn die Quelle des Ausschaltens (Änderung des Wertes true --> false) der Hue-Adapter ist, muss manuell ausgeschaltet worden sein. -
@theboon sagte: Wert: false, Quelle: system.adapter.hue.0, bestätigt: true, manuell aus: true
Künftig bitte die kompletten Zeilen in Code tags posten!
Wenn die Quelle des Ausschaltens (Änderung des Wertes true --> false) der Hue-Adapter ist, muss manuell ausgeschaltet worden sein. -
@paul53 sorry werde ich dann machen.
Das Licht wurde allerdings nicht manuell ausgeschaltet. Es wurde durch eine "transition" im Hue Adapter langsam ausgeschaltet. Fälscht das dann den Wert? -
@theboon sagte: Fälscht das dann den Wert?
Das kann natürlich sein, wenn der falsche Datenpunkt triggert.
-
@theboon sagte: hab ich denn sonst noch eine andere Möglichkeit?
Versuche es mal so:

Aber: Es ist doch der Alias, der gesteuert und auf den getriggert wird. Der müsste auf jeden Fall bei Änderung durch das Skript als Quelle "system.adapter.javascript.0" liefern. Mit einem Trigger auf "Wohnzimmer.anyOn" kann es nicht funktionieren.
Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags, so wie das:var manuell_aus; on({id: [].concat(['0_userdata.0.Blockly.presence']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (!manuell_aus && !getState("ID auswählen").val && compareTime("11:00", "1:00", "between") && (obj.state ? obj.state.val : "") == 'HOME') { setState("alias.0.Wohnzimmer.Licht"/*Licht Wohnzimmer*/, true); setStateDelayed("alias.0.Wohnzimmer.Licht"/*Licht Wohnzimmer*/, false, 3600000, true); } }); on({id: [].concat(['alias.0.Wohnzimmer.Licht']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; manuell_aus = (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0' && !(obj.state ? obj.state.val : ""); console.log((['Wert: ',(obj.state ? obj.state.val : ""),', Quelle: ',(obj.state ? obj.state.from : ""),', bestätigt: ',(obj.state ? obj.state.ack : ""),', manuell aus: ',manuell_aus].join(''))); }); -
@theboon sagte: hab ich denn sonst noch eine andere Möglichkeit?
Versuche es mal so:

Aber: Es ist doch der Alias, der gesteuert und auf den getriggert wird. Der müsste auf jeden Fall bei Änderung durch das Skript als Quelle "system.adapter.javascript.0" liefern. Mit einem Trigger auf "Wohnzimmer.anyOn" kann es nicht funktionieren.
Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags, so wie das:var manuell_aus; on({id: [].concat(['0_userdata.0.Blockly.presence']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (!manuell_aus && !getState("ID auswählen").val && compareTime("11:00", "1:00", "between") && (obj.state ? obj.state.val : "") == 'HOME') { setState("alias.0.Wohnzimmer.Licht"/*Licht Wohnzimmer*/, true); setStateDelayed("alias.0.Wohnzimmer.Licht"/*Licht Wohnzimmer*/, false, 3600000, true); } }); on({id: [].concat(['alias.0.Wohnzimmer.Licht']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; manuell_aus = (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0' && !(obj.state ? obj.state.val : ""); console.log((['Wert: ',(obj.state ? obj.state.val : ""),', Quelle: ',(obj.state ? obj.state.from : ""),', bestätigt: ',(obj.state ? obj.state.ack : ""),', manuell aus: ',manuell_aus].join(''))); });@paul53 das ist jetzt das script was du mir netterweise zur verfügung gestellt hast aus dem ersten Anlauf
var manuell_aus; on({id: [].concat(['hue.0.Bewegungsmelder/Lichtsensor.presence']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (!manuell_aus && !getState("hue.0.Hue_ambient_light_sensor_1.daylight").val && compareTime('11:00', '01:00', "between", null) && getState("tado.0.896439.Home.state.presence").val == 'HOME') { setState("alias.0.Wohnzimmer.Licht"/*Licht*/, true); setStateDelayed("alias.0.Wohnzimmer.Licht"/*Licht*/, false, 3600000, true); } }); // Alias on({id: [].concat(['alias.0.Wohnzimmer.Licht']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; manuell_aus = (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0' && !(obj.state ? obj.state.val : ""); console.log((['Wert: ',(obj.state ? obj.state.val : ""),', Quelle: ',(obj.state ? obj.state.from : ""),', bestätigt: ',(obj.state ? obj.state.ack : ""),', manuell aus: ',manuell_aus].join(''))); }); // Reset nach einem Tag schedule("15 1 * * *", async function () { manuell_aus = false; });was mir da natürlich auffällt ist Zeile 6, da steht bei dir "ID auswählen". Ich habe da eine ID ausgewählt da es sonst für mich nicht logisch erschien, hoffe das ist aber auch richtig?
-
@paul53 das ist jetzt das script was du mir netterweise zur verfügung gestellt hast aus dem ersten Anlauf
var manuell_aus; on({id: [].concat(['hue.0.Bewegungsmelder/Lichtsensor.presence']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (!manuell_aus && !getState("hue.0.Hue_ambient_light_sensor_1.daylight").val && compareTime('11:00', '01:00', "between", null) && getState("tado.0.896439.Home.state.presence").val == 'HOME') { setState("alias.0.Wohnzimmer.Licht"/*Licht*/, true); setStateDelayed("alias.0.Wohnzimmer.Licht"/*Licht*/, false, 3600000, true); } }); // Alias on({id: [].concat(['alias.0.Wohnzimmer.Licht']), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; manuell_aus = (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0' && !(obj.state ? obj.state.val : ""); console.log((['Wert: ',(obj.state ? obj.state.val : ""),', Quelle: ',(obj.state ? obj.state.from : ""),', bestätigt: ',(obj.state ? obj.state.ack : ""),', manuell aus: ',manuell_aus].join(''))); }); // Reset nach einem Tag schedule("15 1 * * *", async function () { manuell_aus = false; });was mir da natürlich auffällt ist Zeile 6, da steht bei dir "ID auswählen". Ich habe da eine ID ausgewählt da es sonst für mich nicht logisch erschien, hoffe das ist aber auch richtig?
@theboon sagte: hoffe das ist aber auch richtig?
Ja, "daylight" ist der richtige Datenpunkt.
Als Bewegung wertest Du nicht den Trigger-Datenpunkt aus, sondern "tado.0.896439.Home.state.presence"?
Das Skript müsste ansonsten funktionieren, da hier (Alias als Trigger) die "transition time" nur eine untergeordnete Rolle spielt. -
@theboon sagte: hoffe das ist aber auch richtig?
Ja, "daylight" ist der richtige Datenpunkt.
Als Bewegung wertest Du nicht den Trigger-Datenpunkt aus, sondern "tado.0.896439.Home.state.presence"?
Das Skript müsste ansonsten funktionieren, da hier (Alias als Trigger) die "transition time" nur eine untergeordnete Rolle spielt. -
@paul53 Der Tado Datenpunkt erkennt ob überhaupt jemand Zuhause ist (Kombination aus GPS und WLAN Verbindung). Natürlich soll die Bewegung aber vom Hue Sensor erkannt werden.
-
@theboon sagte: Der Tado Datenpunkt erkennt ob überhaupt jemand Zuhause ist
Falls nicht, kann Bewegung stattfinden?
@paul53 weiß nicht genau ob ich die Frage richtig verstanden habe. Also als Trigger ist ja "presence" vom Hue Bewegungsmelder. Dann gibt es als "falls" Bedingung ja eine Erkennung:
- Status von "manuell_aus"
- Tageslicht draußen ist
- Uhrzeit zwischen 11:00 und 01:00 Uhr
- Presence von Tado, was aber in diesem Fall keine Bewegung ist sondern eben eine Erkennung ob jemand Zuhause ist oder nicht anhand von GPS bzw WLAN Verbindungen
Bewegung an sich kann aber immer erkannt werden, sollte aber nur das Licht auch anmachen wenn jemand zuhause ist.
-
@paul53 weiß nicht genau ob ich die Frage richtig verstanden habe. Also als Trigger ist ja "presence" vom Hue Bewegungsmelder. Dann gibt es als "falls" Bedingung ja eine Erkennung:
- Status von "manuell_aus"
- Tageslicht draußen ist
- Uhrzeit zwischen 11:00 und 01:00 Uhr
- Presence von Tado, was aber in diesem Fall keine Bewegung ist sondern eben eine Erkennung ob jemand Zuhause ist oder nicht anhand von GPS bzw WLAN Verbindungen
Bewegung an sich kann aber immer erkannt werden, sollte aber nur das Licht auch anmachen wenn jemand zuhause ist.
-
@theboon sagte: Bewegung an sich kann aber immer erkannt werden, sollte aber nur das Licht auch anmachen wenn jemand zuhause ist.
Wer erzeugt Bewegung, wenn niemand zuhause ist?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden