NEWS
(gelöst) Blocky Abwesenheit mit Türsensor Prüfung
-
Hallo Leute,
mich wundert es ja schon fast, dass ich zu dem Thema nichts gefunden habe. Also frag ich einfach mal
Folgendes Szenario:
Mit dem Radar Adapter überwache ich die Anwesenheit von meinem Handy. Ist es für mehr als 5min vom Adapter nicht zu finden, werde ich abwesend gemeldet.
Nun kann es ja aber mal passieren, dass der Akku leer ist oder das WLAN rum spinnt und ich plötzlich abwesend bin.
Dies würde ich gerne ausschließen, indem ich nur abwesend gemeldet werde, wenn auch die Wohnungstür, sagen wir innerhalb der letzten 10min geöffnet und geschlossen wurde.
Ich komme einfach nicht drauf, wie ich das in Blockly umsetze und hoffe es kann mir jemand helfen.
Gruß
Chris
-
Blockly kann ich nicht, aber ich habe gesehen, dass es einen lc (last change) Abfrage gibt bei Blockly.
Also baust du in deine Abwesenheitskontrolle ein, ob dieser lc länger als 10 Minuten hier ist.
Schau mal hier, da hat paul53 was geschrieben
-
Dies würde ich gerne ausschließen, indem ich nur abwesend gemeldet werde, wenn auch die Wohnungstür, sagen wir innerhalb der letzten 10min geöffnet und geschlossen wurde. `
Was machst du dann, wenn die Postfrau/der Postmann klingelt, du die Tür öffnest und der Handyakku leer ist? Dann würdest du auch abwesend gemeldet! :roll:
Also, wenn du schon erfreulich wenig Probleme hast, deine Anwesenheit per WLAN zu erkennen, kommst du nicht drum herum, deinen Akku immer auf einem braubaren Pegel zu halten.
Enrico
-
Super! Das hat mich auf den richtigen Weg gebracht. Vielen Dank!
Aktuell funktioniert es. Hoffe, dass ich keinen Denkfehler drin habe.
Hier noch das Blockly für alle anderen:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id=":}M:3~wQ_YO1u:~EcdCW" x="63" y="-138"><field name="COMMENT">Türsensor</field>
<next><block type="on_ext" id="l9mSvbnid`.+gK#|~I!d"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="~Nr5]k7D{(vIBO2Mc#Qi"><field name="oid">javascript.0.Eigene_Variablen.Tests.TürZu</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="wW/sc^yf?j{0Y?_mVkM."><value name="IF0"><block type="logic_compare" id="^~apYwAFt:c%AuhJ6u+J"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="_w]-N#e*vI^sc7a(sp%g"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Variablen.Tests.TürZu</field></block></value> <value name="B"><block type="logic_boolean" id=";xA(R:PsnG|0yXxhV#;6"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="InV6bP?E8`__i!)eegr/"><field name="VAR">ZeitstempelTürZu</field> <value name="VALUE"><block type="time_get" id="JrY`jQp5`j:1J|J*92nA"><mutation format="false" language="false"></mutation> <field name="OPTION">m</field></block></value></block></statement></block></statement> <next><block type="comment" id="nlwcs5/x^jck@CYV~Oaz"><field name="COMMENT">Radar Adapter</field> <next><block type="on_ext" id="1=P(-k9|kW;L5`rc_QPp"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="r@M]YK=0g:pbB~Ig3]@]"><field name="oid">radar.0.countHere</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="6,K{En)s30oA{3f;:UQh"><value name="IF0"><block type="logic_operation" id="aMdo0t7C2GXZB-MxT`r;" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="GkH`Y(?h(Smr0V=m`E#J"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="qT6Tc.h!nL^d#QI/=qW8"><field name="ATTR">val</field> <field name="OID">radar.0.countHere</field></block></value> <value name="B"><block type="math_number" id="`N#JlaeL1izIC1u[y=M@"><field name="NUM">0</field></block></value></block></value> <value name="B"><block type="logic_compare" id="O*|w)z/MMUmqNHfg~fY-"><field name="OP">LT</field> <value name="A"><block type="math_arithmetic" id="=~5OOlD9(F?VJkmtBBD@"><field name="OP">MINUS</field> <value name="A"><shadow type="math_number" id="G[#P}8P)].4kxVRtk9PR"><field name="NUM">1</field></shadow> <block type="time_get" id="/3dF^lFkS@Jrj+k=rV-s"><mutation format="false" language="false"></mutation> <field name="OPTION">m</field></block></value> <value name="B"><shadow type="math_number" id="y{NdJpI;-bRC1`IRTOQ*"><field name="NUM">1</field></shadow> <block type="variables_get" id=")WfmEY?s]IOyn/XB!;t|"><field name="VAR">ZeitstempelTürZu</field></block></value></block></value> <value name="B"><block type="math_number" id="{MWn?Xf|5X;sR5zDo+[D"><field name="NUM">15</field></block></value></block></value></block></value> <statement name="DO0"><block type="comment" id="%Z_`m[37|P7Ajbtc/3GV"><field name="COMMENT">An/Abwesenheits Variable</field> <next><block type="control" id="O_MFEm0D-sl)vz)YTv|X"><mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="8L^oR5WGZ-ajBWZ,{x?C"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement></block></next></block></next></block></next></block></xml>
[3950_abwesenheitt_rsensor.png](/assets/uploads/files/3950_abwesenheitt_rsensor.png)
-
Dies würde ich gerne ausschließen, indem ich nur abwesend gemeldet werde, wenn auch die Wohnungstür, sagen wir innerhalb der letzten 10min geöffnet und geschlossen wurde. `
Was machst du dann, wenn die Postfrau/der Postmann klingelt, du die Tür öffnest und der Handyakku leer ist? Dann würdest du auch abwesend gemeldet! :roll:
Also, wenn du schon erfreulich wenig Probleme hast, deine Anwesenheit per WLAN zu erkennen, kommst du nicht drum herum, deinen Akku immer auf einem braubaren Pegel zu halten.
Enrico `
Ganz unrecht hast du da ja nicht. Aber ich könnte mich nicht erinnern, dass dieser Fall schon einmal eingetreten wäre
Aber weil du darauf anspielst, mit der Anwesenheit per WLAN hab ich wirklich so gut wie nie Probleme. Das funktioniert bei mir sehr stabil.
Falls es jemanden interessiert, ich nutze eine FritzBox 6490 und ein Xiaomi Redmi Note 4X mit Lineage OS.
-
Hallo Leute falls Interesse, hab es so gelöst.
var tuerkontakt = "hm-rpc.1..STATE"; /*Hier die ID des Türkontakts eintragen*/ var anwesenheit = "hm-rega."; /*Hier die ID der Anwesenheitsvariable eintragen*/ var min = 15; /*Hier die Zeitspanne der aktiven Abwesenheitserkennung nach Türschließung*/ var inrange = false; /*Falls kein Türkontakt vorhanden auf true setzen*/ on(tuerkontakt, function(obj) { if (obj.newState.val === false) { inrange = true; setTimeout(function() { inrange = false; }, min * 60 * 1000); } }); on("radar.0.countHere", function(obj) { if (obj.newState.val === 0) { if (inrange === true) { setState(anwesenheit,false); } else { log("Radar CountHere 0 nach Zeit abgelaufen", "warn"); } } if (obj.newState.val > 0) { setState(anwesenheit,true); } }); // Script Ende
funktioniert Klasse schalte meine Alarmanlage damit geht super.
Gruß Steffen
-
Ganz unrecht hast du da ja nicht. Aber ich könnte mich nicht erinnern, dass dieser Fall schon einmal eingetreten wäre `
Wollte ja nur drauf hinweisen, nicht das dann irgendein Alarm losgeht!
Aber weil du darauf anspielst, mit der Anwesenheit per WLAN hab ich wirklich so gut wie nie Probleme. Das funktioniert bei mir sehr stabil.
Falls es jemanden interessiert, ich nutze eine FritzBox 6490 und ein Xiaomi Redmi Note 4X mit Lineage OS. `
Wie ich ja schon schrieb, das ist gut so, wenns funktioniert, dass wird aber wohl auch dem Handy geschuldet sein.
Ich habe lange um ne zuverlässige Version der Anwesenheitskontrolle gekämpft und habe für mich die Bluetooth-Erkennung des Radar-Adapter entschieden. Aber das ist ein anderes Thema!
Enrico