ioBroker: Anwesenheitserkennung mit dem TR-064 Adapter
-
David -
21. November 2022 um 16:26 -
188 Mal gelesen -
0 Kommentare
Hier möchte ich Euch einmal zeigen, wie ich bei mir eine Anwesenheitserkennung durchführe, gerade speziell auf das kleine Manko was Nuki hat zwecks der Anwesenheitserkennung, aber dazu mehr im anderen Beitrag ( Nuki 3.0 Pro Fazit nach 3 Monaten ). Der TR-064 Adapter ist für die FritzBox gemacht und wird auch hier nur an einer FritzBox betrieben.
Dann legen wir los:
1. Adapter Installieren:
Wir müssen den Adapter TR-064 im ioBroker installieren, geht hierfür im ioBroker auf Adapter und sucht nach dem TR-064 und installiert diesen.
2. Adapter Optionen:
Nachdem der Adapter installiert wurde, müssen wir uns bei der FritzBox anmelden und einen Benutzer hinzufügen, geht dazu in Eure FritzBox und dann auf System ---> FRITZ! Box-Benutzer hier erstellt Ihr einfach einen neuen Benutzer, ich habe Ihn ioBroker genannt damit ich diesen auch zu ordnen kann.
Geht jetzt auf zurück in den ioBroker auf Instanzen und sucht dort den TR-064 Adapter und klickt auf den Schraubenschlüssel, hier tragen wir jetzt den Benutzer, den Ihr jetzt angelegt habt, tragt Ihr beim Adapter ein und auch die IP-Adresse der FritzBox und legt nun das Intervall der Datenabfrage fest, jetzt könnt Ihr auch weitere Einstellungen vornehmen, bitte hierzu die Readme des Adapters lesen.
3. Geräte hinzufügen:
Wenn Ihr jetzt im Adapter auf Geräte klickt sehr Ihr jetzt das Feld --> Geräte hinzufügen und --> Geräte suchen, wenn Ihr auf hinzufügen klickt müsst Ihr den Name, IP und MAC per Hand eintragen, deshalb klickt am besten auf Geräte suchen, jetzt werden Euch alle Geräte die Ihr an der FritzBox habt angezeigt, wählt jetzt Euer Smartphone aus
habt Ihr Eure Smartphone ausgewählt erscheinen diese jetzt in der Liste mit IP MAC und Name, hier ist es allerdings auch wichtig das Ihr dem Smartphone eine Feste IP zuweist ansonst kann es zu Problemen führen.
4. Datenpunkt anlegen:
Als nächstes legen wir einen Datenpunkt an, geht hierfür im ioBroker auf Objekte, wählt/öffnet den Ordner 0_userdata ---> 0
Hier könnt Ihr eigene Datenpunkte anlegen für alles Mögliche, um natürlich den Überblick zu behalten solltet Ihr für alles, was Ihr macht, erst mal einen Ordner erstellen, ich habe den Ordner Anwesenheitsprüfung genannt, jetzt legen wir einen Datenpunkt an, klickt hierfür auf das Plus am oberen Rand (hier erstellt Ihr auch den Ordner ) wählt folgendes aus:
Typ: Datenpunkt
Zustandstyp: boolean
Name: Nennt es wir Ihr wollt
und klickt danach auf Hinzufügen, wiederholt das, bis Ihr alle Geräte habt, die Ihr wollt.
Ich habe z.B. für die Smartphones eigene Datenpunkte angelegt, der Datenpunkt bei mir Anwesenheit wird hier von beiden Smartphones gesteuert bzw. Abgefragt.
5. Scripten:
Jetzt geht es an das Scripten, wie oben schon geschrieben habe lasse ich beide Smartphones in einen eigenen Datenpunkt legen, da ich leider immer Probleme hatte (warum auch immer), wenn ich die Datenpunkte direkt aus dem TR-064 abgegriffen habe, dass diese kaum reagiert haben.
Ok weiter im Text als erstes Scripten wir den Datenpunkt für das Smartphone
Bei Objekt ID wählt Ihr den Datenpunkt vom Smartphone, das Ihr gerade einbinden wollt aus dem TR-064 Adapter aus, der Datenpunkt heißt active
Bei Steuere müsst Ihr den Datenpunkt auswählen, den Ihr angelegt habt für das Smartphone, hier das Script bitte noch auf Eure Datenpunkte anpassen!
<block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="nqIsxdf:$viJ;@l[L*!]" x="213" y="63">
<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="]2ew9-TI:f71S(I3/pv_">
<field name="oid">tr-064.0.devices.S22-von-Christine.active</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="N+]xCtcbGL?/b=|HhW|e">
<value name="IF0">
<block type="logic_compare" id="(.B-~*y!*tlu,uuu-s+9">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="O@;^[BeWRmIpqU|?W6|t">
<field name="ATTR">val</field>
<field name="OID">tr-064.0.devices.S22-von-Christine.active</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="w}Q*t(Jh8M%y-PcO8@?S">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="F-0AREFB2#mlN2l4yhS:">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Christine_Handy</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="YC#!T}.qs.bvx[J}aAMo">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<next>
<block type="controls_if" id="]P!YJc%y+/8zFqOGqSYc">
<value name="IF0">
<block type="logic_compare" id="1s9hSa3wdH:l{3}t2G;$">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="*c1lr?qf(n7hzS*g[U_K">
<field name="ATTR">val</field>
<field name="OID">tr-064.0.devices.S22-von-Christine.active</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="YiKt2.RNcfrHbXqjY6I)">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="+8MzR|SV6u(T6xfHLMCq">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Christine_Handy</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="#d(?`;yV~j.;68O(#}jV">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
Alles anzeigen
Das nächste Script steuert den Datenpunkt "Anwesenheit"
Bei den Objekt ID wählt Ihr Eure Smartphones aus was Ihr angelegt habt.
Bei Steuere wählt Ihr nun den Datenpunkt aus den Ihr damit Steuern wollte, in meinem Fall den Datenpunkt Anwesenheit.
Bei dem Steuere falsch, habe ich bewusst eine Verzögerung eingebaut, da es Smartphones gibt die sich ab und an mal aus dem WLan ausloggen und damit habt Ihr einen kleinen Puffer.
<xml xmlns="https://developers.google.com/blockly/xml">
<block type="on_ext" id="qT|RUbwo(PgjTNCip:k;" x="88" y="63">
<mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
<field name="CONDITION">any</field>
<field name="ACK_CONDITION"></field>
<value name="OID0">
<shadow type="field_oid" id="|f385|n=nDA10%!c#{)O">
<field name="oid">0_userdata.0.Anwesenheitsprüfung.David_Handy</field>
</shadow>
</value>
<value name="OID1">
<shadow type="field_oid" id="l]chNPc:U.dgxH:u3%9z">
<field name="oid">0_userdata.0.Anwesenheitsprüfung.Christine_Handy</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="zKgm^zk83BH]oeD]SfD6">
<mutation else="1"></mutation>
<value name="IF0">
<block type="logic_operation" id="3x5j]~+kNl;3V5M|eY_^" inline="false">
<field name="OP">OR</field>
<value name="A">
<block type="get_value" id="!E)gYRxkTL6xowm8yBrw">
<field name="ATTR">val</field>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.David_Handy</field>
</block>
</value>
<value name="B">
<block type="get_value" id="I:RualSaNKK0vb-g$TXc">
<field name="ATTR">val</field>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Christine_Handy</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="Km0XbsF+FmyeW8{zwZ?:">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Anwesenheit</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="/h]~]QpgaP-vE,$^yabG">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<statement name="ELSE">
<block type="control" id="eyfUW7B?:QxGq=%i]F6J">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Anwesenheit</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">2</field>
<field name="UNIT">min</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="?LPQQAWeUSPS7|_-@5qo">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
</block>
</xml>
Alles anzeigen
Wenn Ihr alle Punkte gemacht habt, habt Ihr jetzt eine Anwesenheitserkennung und könnt mit diesen verschiedene Sachen wie z.B. Licht, wenn man Nachhause kommt, ein Smartes Türschloss aufsperren usw. steuern.
Viel Spaß damit.
Kommentare