NEWS
Automatisierungsproblems mit Präsenzsensoren (FP2) *Gelöst *
-
Anfrage zur Lösung eines Automatisierungsproblems mit Präsenzsensoren (FP2) im Wohnzimmer
Hallo,
ich bin auf der Suche nach einer Lösung für ein Problem in meiner Smart-Home-Automatisierung. Ich verwende den Präsenzsensor FP2, um das Licht in meinem Badezimmer und im Wohnzimmer automatisch zu steuern. Die Steuerung funktioniert grundsätzlich gut, indem das Licht automatisch eingeschaltet wird, sobald eine Anwesenheit erkannt wird, und wieder ausgeht, wenn niemand mehr anwesend ist.Allerdings gibt es eine besondere Situation, bei der dieses System an seine Grenzen stößt:
Hin und wieder übernachten Gäste bei uns im Wohnzimmer. In diesen Fällen erkennt der FP2-Sensor natürlich ständig eine Person im Raum und meldet kontinuierlich Anwesenheit. Dadurch bleibt das Licht dauerhaft eingeschaltet, was insbesondere nachts störend ist.Eine einfache Möglichkeit wäre natürlich, das entsprechende Automatisierungsskript während dieser Zeit manuell zu deaktivieren. Das möchte ich jedoch vermeiden, da es umständlich ist, jedes Mal den PC zu nutzen, um das Skript zu starten oder zu stoppen.
Daher suche ich nach einer Lösung über Blockly, um die Steuerung komfortabler zu gestalten. Ideal wäre eine Art Schalter oder ein virtueller Zustand, den ich beispielsweise über die App oder Vis aktivieren oder deaktivieren kann. So könnte ich vor dem Schlafengehen meiner Gäste die Lichtsteuerung im Wohnzimmer gezielt deaktivieren, ohne das ganze Skript manuell bearbeiten zu müssen.
Ich freue mich über jede Idee oder Anleitung, wie sich das mit Blockly elegant umsetzen lässt!
Aktuelles Blockly
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="X$?XM/dl158/6v`RgI=(" x="-337" y="-113"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="xN:f/2{lS4G88Y*oV4=m"> <field name="oid">homekit-controller.0.IP-A1:A2:70:54:B8:F2.1.sensor-occupancy-2688.occupancy-detected</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="13%uB-1V]oh:g?~yRXqD"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_multi_and" id="9T#/YvbbUF%a8jqrP3`?"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="time_compare_ex" id="~YZOKI/93k3[e]VzWvGo"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow type="text" id="f7howWgjU8+*q[Yf4bd8"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="8.S#z)BAka]J_u]Vcpzg"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="Sgw9;BSxE=A-fmqGUZn$"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="I*qa:K[sA4yMi}7h^f5S"> <field name="TYPE">sunset</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_compare" id="u#]o+!$X$OGzc#{LY76i"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="8ZNVxH9Lx9585At8a;71"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?)$5Ptc|@!90Bft;nr=B"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="%!gTXQ_vWeXUbGl3lxv7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.a4c1389e261a649c.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="i%0GEb|c!0%}F)NAx`wf"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="}obT)dX0UtL.UAWfvPtc"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.a4c138937c85ac5e.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="1p,$0Rq!1ULp)+.waf09"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="upCRp~5`^)hR!E7vPpMm"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.a4c1389e261a649c.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="*miVclOKsL)P5v9O[eMe"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="4*La/Gu}:V~:jC-IHVqx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.a4c138937c85ac5e.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ceFp6IA-Mg8^kIcrFU$W"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
Leg dir einen boolean Datenpunkt unter 0_userdata.0 an und prüfe bei Präsenz, ob dieser true oder false ist.
Den Datenpunkt kannst du in der vis mit einem einfachen Schalter visualisieren.
-
@meister-mopper ja aber sobald die personen sich berwegt ist das licht ja wieder an
es sol ja ausbleiben -
@horst-böttcher wenn neben der Präsenz auch ein virtueller Schalter Voraussetzung ist, dann schaltet das Licht eben nicht ein, wenn die beiden Voraussetzungen nicht erfüllt sind.
-
Das Licht geht nur an, wenn Anwesenheit erkannt wird und der virtuelle Schalter eingeschaltet ist:
-
-
@horst-böttcher Wenn deine Lichtsteuerung auch ein Blockly ist, kannst du doch einfach das Blockly über eine VIS (ich nutze Jarvis) aktivieren/deaktivieren, es gibt ja in den Objekten für jedes Blockly einen eigenen Datenpunkt (scriptEnabled).
-
@horst-böttcher also,
ich habe für so etwas ein Widget in der VIS, das schalten einen Datenpunkt auf war oder falsch.
Das Skript welches das Licht schaltet, prüft immer zusätzlich ob es denn schalten darf (Datenpunkt des Widget steht auf true/wahr), wenn nicht, macht es nicht.Der Clou gegen das vergessen: Per Zeitgesteuerten Task, z.B. immer Mittags um 12:00 Uhr, wird der Datenpunkt des Widget wieder auf True/Wahr gesetzt.
Mache ich bei einem Bewegungsmelder mit Außenlampe so, wenn der nervt schalte ich ab, am nächsten Abend ist der aber wieder von alleine aktiv
-
@paul53 danke klappt alles