Ich habe ein paar Ideen etwas mehr in ioBroker zu automatisieren und benötige daher die Information, welcher personengebundene RFID Transponder(*) bei unserer DoorBird D2101V(*) die Aktion Tür öffnen auslöst.
Anleitung Doorbird RFID Transponder Nutzung in ioBroker
Ich habe in meinem Netzwerk einen ioBroker im Docker der NAS laufen und werde nun die RFID Chip Verwendung an der Doorbird in Datenpunkte schreiben.
Anlegen der RFID Datenpunkte in ioBroker Objekt Übersicht
Dazu öffne ich im ioBroker die Objekt Übersicht und klappe den bereits vorhanden Ordner “0_userdata” und dann den Unterordner “0” auf. Mit dem “+” Symbol lässt sich im Dropdown die Anlage eines neuen Ordners namens “Doorbird” erstellen:
Dort dann einen weiteres Unterverzeichnis namens “RFID” mittels “+” anlegen.
In diesem Verzeichnis erstelle ich das Objekt vom Typ “Datenpunkt” im “Boolean” Zustandstyp und dem Namen “Tobias”. Boolean wähle ich daher, weil dieser Datenpunkt für mich nur true oder false darstellen soll.
Dieser Datenpunkt hat somit nun die Bezeichnung 0_userdata.0.Doorbird.RFID.Tobias
Adapter für HTTP(S) Call in ioBroker installieren
Damit die Kommunikation zum angelegten Datenpunkt auch ankommen kann, müssen wir dafür einen Adapter installieren. Hier bietet sich die (auf deutsch) “Einfache RESTful API” an, die ihr im Repository findet. Alternativ hier der Github Link zu Simple-api (englischsprachig). Nach der Installation fügt gleich eine Instanz hinzu.
Einstellungen in Doorbird App vornehmen
Als nächstes wechsle ich in die Doorbird App und Navigiere mich zu Einstellungen -> Administration -> Favoriten -> HTTP(S) Aufrufe und tippe auf hinzufügen. Der Name lautet bei mir “RFID Tobias” und die URL zum ioBroker ist folgende:
http://192.168.x.xx:8087/set/0_userdata.0.Doorbird.RFID.Tobias?value=true
Die IP des ioBrokers sollte soweit klar sein, der Port wird in der zuvor installierten simple-api.0 Instanz eingestellt. Die Datenpunkt-Bezeichnung hatten wir vorhin angelegt und ?value=true setzt diesen Datenpunkt auf wahr um.
Mit Speichern wird der HTTP(S) Aufruf in der App gespeichert und in der Übersicht dargestellt.
Als nächstes in der App zurück und auf Einstellungen der 125 khz RFID Transponder. Dort wählt man den betreffenden Transponder aus und tippt anschließend auf “Zeitplan für Aktionen”. Dort oben links auf das Relais Icon tippen und in der anschließenden Übersicht “HTTP(S) Aufrufe” auswählen:
Danach oben mit den Pfeiltasten die eben angelegte Aktion (in meinem Fall “RFID Tobias”) auswählen.
Danach daneben auf das schwarze Feld tippen, so dass alles blau ausgefüllt wird. In der Konsequenz wir der HTTP(S) Aufruf somit immer ausgeführt, sobald der RFID Chip von der Doorbird erfasst wird.
Wir speichern das ganze und überprüfen die Ausführung anhand des Datenpunktes der nun auf true umschaltet.
Blockly Skript zum Zurücksetzen des Status
Die Grundvoraussetzung dafür ist, dass ihr den Adapter Scriptausführung installiert habt und natürlich ebenso eine Instanz daraus erstellt habt. Die Scriptausführung ist notwendig um über Java Script bzw. Blocky die Werte zu übertragen:
Um ein Script zu erstellen wählt ihr im ioBroker Menü zunächst den Punkt “Skripte” aus. Anschließend könnt ihr mit dem “+” ein neues Script anlegen.
Natürlich möchten wir nicht den Status des personengebundenen RFID Chips nun permanent auf true haben, daher bietet sich ein Blockly Script an, um einfach nach 3 Sekunden den Status des Datenpunkts wieder auf false umzusetzen und somit den Ausgangszustand wiederherzustellen:
Folgenden XML Code könnt ihr auch einfach in Blockly importieren und anpassen:
<xml xmlns="https://developers.google.com/blockly/xml">
<block type="on_ext" id="7:!*hrXc4p2V{J`eh,Yk" x="538" y="137">
<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="T`3rT8nnWShUlX40JMCJ">
<field name="oid">default</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="MtE#`k$G`zR=UFj!Y~,d">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="?0b6IioEIxsxZnRfpKH#">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="q#$B8*xxuImj,]8`GFi.">
<field name="ATTR">val</field>
<field name="OID">nuki.0.515195508.states.lockState</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="|KEp|lY^Y9)#Eftkb[p/">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<value name="IF1">
<block type="logic_compare" id="Q#IH}p#,NlL=dsI}i_Z7">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="Tn},Frk]!0*$/FujW~YN">
<field name="ATTR">val</field>
<field name="OID">nuki.0.515195508.states.lockState</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="led*oyVlGXmMmsm#;xiU">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="toggle" id="S_SAV@EVt[jvv^$t3|ft">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">nuki.0.515195508.actions.openAction</field>
<field name="WITH_DELAY">FALSE</field>
</block>
</statement>
</block>
</statement>
</block>
</xml>
Damit ist nun die Information im ioBroker enthalten, wann und wer die Tür über die Doorbird öffnet 🙂
Wunderschönen guten Tag Smarter Papa,
ich hab grad deinen Beitrag DoorBird und RFID umsetzen wollen. Selbst D2101KV. Die Pin- Datenpunkte werden im ioBroker abgelegt. Soweit soo gut. Jetzt will ich meine Maus mit ihrem Lieblingslied an der Haustür erfreuen. Hierzu der NFC. Ich hab ihn in der App und er öffnet über nen zusätzlichen io- Baustein von innen mein Automatik-Schloss. Wie bekomme ich nun die Umleitung auf den Restapi (httP) hin? Ich kann keine Kopie des NFC-Tacs anlegen und wenn ich die HTTP-Adresse eingebe öffnet er nach, wie vor die Tür, setzt aber keinen Impuls im ioBroker.
Kannst du mir helfen, beides, das Öffnen der Tür über die DoorBird und die Veränderung im Datenpunkt, für das Abspielen der Mucke hinzubekommen?
Liebe Grüße
Sven Flaßhaar
Ps. Mein Schreiben auf Instagram ist identisch.
Hallo Sven,
tolle Idee – find ich witzig mit einem Lied zu begrüßen, wenn die Tür aufgrund eines RFID Tags eines Bewohners geöffnet wird.
Wenn ich es richtig verstanden habe, kannst du bereits erfolgreich den Datenpunkt im ioBroker umsetzen.
Dann würde ich darauf basierend ein Blockly Script machen:
– Wenn Änderung des Datenpunkts des RFID Chips auf “true”
– Dann spiele auf
– Ende nach x Minuten.
Worauf gibst du denn die Musik aus?
Viele Grüße,
Tobias