Anwesenheitserkennung mit ioBroker und FritzBox: So geht’s!
-
David -
9. Dezember 2024 um 18:48 -
105 Mal gelesen -
0 Kommentare
In diesem Beitrag zeige ich, wie Ihr mit dem TR-064 Adapter und ioBroker eine zuverlässige Anwesenheitserkennung einrichtet, um Schwächen wie die von Nuki zu umgehen. Die Lösung funktioniert ausschließlich mit der FritzBox. Mit dieser Anleitung könnt Ihr ganz einfach Geräte überwachen und smarte Automationen erstellen.
Anleitung zur Einrichtung der Anwesenheitserkennung
- Adapter-Installation: Installiert den TR-064 Adapter im ioBroker. Sucht ihn unter „Adapter“ und startet die Installation.
- Adapter-Konfiguration: Legt in der FritzBox einen neuen Benutzer an (System > FRITZ!Box-Benutzer) und fügt diesen im Adapter ein. Gebt die IP-Adresse der FritzBox an und stellt das Abfrageintervall ein. Weitere Einstellungen findet Ihr in der Readme des Adapters.
- Geräte hinzufügen: Unter „Geräte suchen“ listet der Adapter Eure FritzBox-Geräte. Wählt die gewünschten Geräte aus und weist ihnen feste IP-Adressen zu.
- Datenpunkte erstellen: In ioBroker könnt Ihr eigene Datenpunkte anlegen (z. B. „Anwesenheitsprüfung“) und die ausgewählten Geräte dort hinterlegen.
- Script-Erstellung: Erstellt Scripte, die Datenpunkte überwachen und steuern. Passt das Script individuell an Eure Datenpunkte an.
Vorteile der Lösung
- Zuverlässige Anwesenheitserkennung.
- Integration in Automationen für Smart-Home-Systeme.
- Funktioniert mit mehreren Geräten und lässt sich flexibel anpassen.
Blocky Scripte:
<block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="nqIsxdf:$viJ;@l[L*!]" x="213" y="63">
<mutation items="1"></mutation>
<field name="CONDITION">ne</field>
<value name="OID0">
<shadow type="field_oid">
<field name="oid">tr-064.0.devices.S22-von-Christine.active</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="Check_Active_State">
<value name="IF0">
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value">
<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">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control">
<mutation delay_input="false"></mutation>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Christine_Handy</field>
<value name="VALUE">
<block type="logic_boolean">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="log">
<value name="LOG">
<block type="text">
<field name="TEXT">Christine ist anwesend.</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="controls_if" id="Check_Inactive_State">
<value name="IF0">
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value">
<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">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control">
<mutation delay_input="false"></mutation>
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Christine_Handy</field>
<value name="VALUE">
<block type="logic_boolean">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="log">
<value name="LOG">
<block type="text">
<field name="TEXT">Christine ist abwesend.</field>
</block>
</value>
</block>
</next>
</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.
<block type="on_ext">
<mutation items="2"></mutation>
<field name="CONDITION">any</field>
<!-- Prüft Anwesenheit von Geräten -->
<statement name="STATEMENT">
<block type="controls_if">
<mutation else="1"></mutation>
<value name="IF0">
<block type="logic_operation" inline="false">
<field name="OP">OR</field>
<!-- Logik für Anwesenheitsprüfung -->
</block>
</value>
<statement name="DO0">
<block type="control">
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Anwesenheit</field>
<value name="VALUE">
<block type="logic_boolean">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<statement name="ELSE">
<block type="control">
<field name="OID">0_userdata.0.Anwesenheitsprüfung.Anwesenheit</field>
<field name="DELAY_MS">120000</field>
<value name="VALUE">
<block type="logic_boolean">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
</block>
Alles anzeigen
- ioBroker
- Smart Home
- Automatisierung
- Anwesenheitserkennung
- TR-064 Adapter
- FritzBox
- Geräteüberwachung.