NEWS
[Neuer Adapter] Nuki
-
Hallo thexbrain,
mein Adapter (https://github.com/smaragdschlange/ioBroker.nuki) ist zwar immer noch in Entwicklung, funktioniert bei mir aber schon sehr gut. Ich habe damit über ioBroker eine Verbindung zu meinem Fingerabdruck-Scanner hergestellt und öffne/schließe meine Haustür damit. Der Callback funktioniert nun auch einwandfrei, sodass immer der aktuelle Status angezeigt wird, selbst, wenn die Tür manuell geöffnet wird. In vis hab ich ihn noch nicht ausprobiert, aber die Objekte dürften sich dort jetzt abbilden lassen, da ich nun kompatible Statuseigenschaften nutze.
Ich hoffe, dass Du und vielleicht auch andere den Adapter nützlich finden, und würde mich sehr über Testergebnisse und Verbesserungsvorschläge freuen. Allein findet man ja doch meistens nicht jeden Bug…
Gruß,
Sven
-
Nuki hab ich heute bestellt und sobald es angekommen ist installiere ich deinen Adapter. Ich hab mir auch das https://nuki.io/de/shop/nuki-keypad/ bestellt. Ich mach Meldung sobald ich Fragen habe.
-
Hi,
ich hab ein Nuki seit März im Einsatz, und mit Svens Adapter funktioniert es super zuverlässig!
Habe mir ein NFC - NodeMCU Modul gemacht:
( genauer, PN532, per I2C an WemosD1Mini, Software ESPEASY R1.48, sendet per MQTT an iobroker, Gehäuse dafür selbst gedruckt und der Wemos ist in der neben der Tür vorhandenen Stromverteilung verschwunden, nur das Gehäuse mit dem PN532 hab ich unten drunter geklebt, so fällt es nicht so auf, ist aber gut zugänglich)
Damit steuere ich vom iobroker aus dann das Nuki ( am Anfang per http-request, jetzt über den Adapter). Die NFC-Token gibts günstig aus China als Chipkarte oder Schlüsselanhänger.
Was noch ansteht, ist das in VIS einzubinden, habs zur Zeit nur im Habpanel.
-
Hi,
hab mittlerweile auch den Adapter von smaragdschlange installiert (inkl. Callback), funktioniert einwandfrei, vielen Dank.
Will mir in nächster Zeit ein zweites Nuki-Schloss dazu installieren, das sollte ja kein Problem sein, oder?
VG
-
Ich hab den Adapter gerade eben installiert, hab mich zuerst selber mit dem Token vera…. Konfiguration wurde nicht gespeichert. Aber beim zweiten Versuch hats geklappt. Jetzt stell ich mir noch pro Stockwerk einen Xiaomi Taster hin mit dem ich die openAction starte und Sesam öffne dich legt los. Ich hab leider keine Tür mit einem elektrischen Türöffner.
Jetzt warte ich auf November bis das Keypad kommt und dann kann ich von außen ohne Handy die Tür öffnen. Und vielleicht wird die Eingabe am Keypad auch im Adapter angezeigt... Falls sowas überhaupt möglich ist.
Vielen Dank für den Adapter!
-
ich hab mir mit einem xiaomi taster
Schalter Wireless Xiaomi für Klimaanlage/Projektor/Ventilator/ORIGINAL SMARTP… https://www.amazon.de/dp/B079L4H3BM/ref ... QBbVCN7JWR via @amazon
und einem Script auch einen Zugang gemacht, wenn ich in einer bestimmten Reihenfolge und zeitlichen Abständen Einfachklick, Doppelklick und Longclick betätige, dann öffnet der iobroker das Nuki
... aber fragt nicht, ist wirklich nur für den Notfall, wenn man garnix dabei hat..
-
ich hab mir mit einem xiaomi taster
Schalter Wireless Xiaomi für Klimaanlage/Projektor/Ventilator/ORIGINAL SMARTP… https://www.amazon.de/dp/B079L4H3BM/ref ... QBbVCN7JWR via @amazon
und einem Script auch einen Zugang gemacht, wenn ich in einer bestimmten Reihenfolge und zeitlichen Abständen Einfachklick, Doppelklick und Longclick betätige, dann öffnet der iobroker das Nuki
... aber fragt nicht, ist wirklich nur für den Notfall, wenn man garnix dabei hat.. `
Das ist cool.
Kannst du mir das Script zur Verfügung stellen?
-
@ilovegym du schreibst doch von NFC Adapter? Oder ist der Xiaomi ein Backup?
Sollte das Nuki Keypad im iobroker funktionieren wären darüber noch andere Dinge machbar. Bin gespannt was smaragdschlange dazu sagt.
-
Ja, habe und nutze zu 80% den NFC Zugang, ansonsten die App oder den Xiaomi Taster.
Ich glaube nicht, dass Nuki das Keypad so gestalten wird, dass man es in iobroker "sehen"-nutzen kann… wird wie bei der App, einfach ein Bluetooth-Zugriff direkt auf das Schloss sein. Damit bekommt der iobroker nix davon mit.
Sonst muesste ja jeder der das Keypad hat, auch eine Bridge haben...
-
Hi,
schön zu sehen, dass der Adapter genutzt wird. Ich arbeite derzeit daran, alternativ zum Callback auch eine Interimsabfrage des Status einzubauen. Außerdem sollen alle im LAN vorhandenen Bridges automatisch erfasst werden.
Ich hab den Adapter so gebaut, dass automatisch alle mit der Bridge verbundenen Nuki-Schlösser erkannt und als Channels (ab Version 0.2.0 als Devices) zur Verfügung gestellt. Wenn also noch ein weiteres Nuki installiert wird, sollte eine neue Instanzierung (Empfehlung: Instanz löschen und dann neu erstellen) ausreichen, um beide Nukis bedienen und überwachen zu können. Leider besitze ich nur ein Nuki und wäre über Erfahrungsberichte mit mehreren Nukis dankbar.
Das Keypad hab ich derzeit noch nicht, weil ich, wie gesagt, einen Fingerprint-Sensor mit dem Nuki im Einsatz habe. Aber ich denke auch, dass das Keypad nicht anders in der Bridge behandelt werden wird, als z.B. das Handy oder ein FOB. Würde mich jedenfalls überraschen, denn das wäre ja u.U. ein Sicherheitsleck.
Ob die Bridge allerdings das Keypad als Gerät und Nuki dafür eigene API-Befehle zur verfügung stellt, wüsste ich auch zu gern…das wäre eine tolle Erweiterungsmöglichkeit (z.B. Schaltung der Alarmanlage durch bestimmte Codes).
Spannend...
Gruß,
Sven
-
Unter den Details wird als Kommunikation Bluetooth 5.0 genannt. Somit ist eure Vermutung sehr sicher dass das Keypad nicht im iobroker erscheint.
-
Hi,
der Nuki-Adapter ist inzwischen im (Latest-) Repository von ioBroker. Um ihn in das Stable-Repository aufnehmen zu können, benötige ich Tester und Feedback. Ich hab den Adapter daher https://forum.iobroker.net/viewtopic.php?f=20&t=17465 vorgestellt und hoffe auf weitere Nutzer, die dann auch entsprechend Rückmeldungen eintragen.
Vielen Dank!
-
Ab und an reagiert mein Nuki nicht und gibt folgende Meldung:
nuki.0 2018-10-10 16:13:04.598 error null
So wie es aussieht bin ich zu schnell mit meinen Actionen. Es dauert ein paar Sekunden bis der Status nach einer Action an iobroker übergeben wird. Schalte ich in dieser Zeit bevor der Status aktualisiert und wurde dann geht es nicht.
-
Hi,
ja, das liegt daran, dass der Webserver der Nuki Bridge nicht so schnell hintereinander Befehle verarbeiten kann. Ich hab versucht, durch Delays die Adapter-internen Aufrufe so zu verzögern, dass die Null-Responds nicht mehr vorkommen. Wenn man natürlich manuell schnell hintereinander Aktionen triggert, bekommt man einen Null-Respond. Das Verhalten liegt aber wie gesagt an der Nuki Bridge. Ich könnte höchstens versuchen, nach einer Aktion für ca. 2-3 Sekunden die Eingabe von weiteren Aktionen komplett zu sperren, um das zu verhindern…ich hielt das aber bisher nicht für nötig, da man ja am Nuki selbst auch nicht so schnell schließt.
-
Und einem Script auch einen Zugang gemacht, wenn ich in einer bestimmten Reihenfolge und zeitlichen Abständen Einfachklick, Doppelklick und Longclick betätige, dann öffnet der iobroker das Nuki `
Würdest du es uns zur Verfügung stellen?
-
Moin,
den "error Null" hab ich auch ab und zu, kommt bei mir dann, wenn ich den NFC Chip zu lange oder nicht richtig an den Reader halte, da er dann innerhalb kurzer Zeit den Befehl zum öffnen zweimal schickt.. …
Stört mich nicht, ich kann ja in das NFC Script ne Hysterese einbauen. ( oder mir die Fehlermeldung anschauen :-))
Hier der Link für den Xiaomi-Taster
( https://www.banggood.com/de/Original-Xi ... 2MQAvD_BwE )
Der Taster kann single-click, double-click und longclick und der iobroker.mihome Adapter unterstützt das einwandfrei. Dazu braucht man ein Gateway oder n geflashten Zigbee-Stick ( ich hab im ganzen Haus auf 4 Etagen 4 Gateways im Einsatz mit über 60 Xiaomi Zigbee Devices.)
Hier das Script, ist ne ältere erstere Version, die aktuelle möchte aus Sicherheitsgründen nicht zur Verfügung stellen(habe da noch ein paar Gimmicks eingebaut), ist ein Blockly, einfach importieren:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="k9`Z,W;Y!AhSzT9tW2?]" x="-387" y="-112"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="Qg+ocxdtvciU:~+WVX*h"><field name="oid">mihome.0.devices.switch_158d0001c2025b.click</field></shadow></value> <statement name="STATEMENT"><block type="variables_set" id="/fC;YEeyIo--1pEX2%^5"><field name="VAR">simple</field> <value name="VALUE"><block type="logic_boolean" id="zPuLP}Qe=k+Lo]lWBY-z"><field name="BOOL">TRUE</field></block></value> <next><block type="timeouts_settimeout" id="ZydX]asr%0Auxt8g@N:v"><field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="variables_set" id="U-4O?bqimfDMPcosxB6g"><field name="VAR">simple</field> <value name="VALUE"><block type="logic_boolean" id="~?}%JbAM=.@N?OUeTW9X"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> <next><block type="timeouts_cleartimeout" id="#DDWQnprOEBd.(A/{Y~#"><field name="NAME">timeout</field></block></next></block> <block type="on_ext" id="s%)yrCDH@P1}S!T2BnmE" x="138" y="-137"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="fnaI]**ewR{8qdc{B14w"><field name="oid">mihome.0.devices.switch_158d0001c2025b.double</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="G2rh2XR-B_dQC-OZFU.Y"><value name="IF0"><block type="logic_compare" id="n0wIS)pGQXw98(,O+k2t"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="2Ar/+`MoIW3iiRYP?j99"><field name="VAR">simple</field></block></value> <value name="B"><block type="logic_boolean" id="/d~pNzVI%FJvQv^Y{pQ;"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="E[7ew3MR#iKE1Q)E.6aD"><field name="VAR">double</field> <value name="VALUE"><block type="logic_boolean" id="A/@(Q3|JOpKAk!%l_(vU"><field name="BOOL">TRUE</field></block></value> <next><block type="timeouts_settimeout" id="`|n:DZ}:VPr/,a}%Ll-r"><field name="NAME">timeout2</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="variables_set" id=".WZ^G~dJF/Yzsb*=)iJb"><field name="VAR">double</field> <value name="VALUE"><block type="logic_boolean" id="/J!7;)yXq5C[F7@pTF*@"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement></block></statement> <next><block type="timeouts_cleartimeout" id="Ql}rV?vx8:!.v4hS)N]#"><field name="NAME">timeout2</field></block></next></block> <block type="on_ext" id=".:hv`0GC3p7/X-PUZG!f" x="-237" y="113"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="{C!4{/`9/^+,K3v)9OxD"><field name="oid">mihome.0.devices.switch_158d0001c2025b.long</field></shadow></value> <statement name="STATEMENT"><block type="variables_set" id="+^{;AwrwIzSQ5x1U9W@x"><field name="VAR">long</field> <value name="VALUE"><block type="logic_boolean" id="*{]F6/9h/b#G1(@OpE]X"><field name="BOOL">TRUE</field></block></value> <next><block type="controls_if" id="aJtC:eX+d2@d,3LO*x7`"><value name="IF0"><block type="logic_operation" id="OZUm1/Wp_]HW^OI{y%;r"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="{vz]^zKbZq|BogDFytMf"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="8ltx[-Ejux7CA35qgDOC"><field name="VAR">simple</field></block></value> <value name="B"><block type="logic_boolean" id="DnK:`9*Bg/Qq?u^mRq=Z"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="o?ST#f._CxPjae0R,i,J"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="I0pBWk0eHK.r9bH^0;9T"><field name="VAR">double</field></block></value> <value name="B"><block type="logic_boolean" id="+op}~TYQyl(s0YVncgkJ"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id=",_`4wA..1fONS{vKWlyL"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090L91072440DD6.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="g/,iL(hZy4|z{t8/CCTo"><field name="NUM">90</field></block></value> <next><block type="control" id="HjB!T#e6/t@2OZ:0//#d"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090L91072440DD6.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="c%S_o2z3YQsFo:DEV!X("><field name="TEXT">Zugang genehmigt!</field></block></value> <next><block type="timeouts_settimeout" id=":IzyNP2sWMD3~K#uEqE+"><field name="NAME">timeout4</field> <field name="DELAY">3</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="control" id="75e/Wo[Xq7HOW:T-xvL|"><mutation delay_input="false"></mutation> <field name="OID">nuki.0.164400993.279997633.action</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="qUmYO+!U:%Kq%IfaL(He"><field name="NUM">5</field></block></value> <next><block type="control" id="afeC2LA;c==8PA(::ktu"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090L91072440DD6.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="]+N{X=7]46cXsE~c#ICn"><field name="NUM">50</field></block></value></block></next></block></statement></block></next></block></next></block></statement> <next><block type="timeouts_settimeout" id="_%b]}*=tb1/|:s|;LTjK"><field name="NAME">timeout3</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="variables_set" id="PHDYO9qcv`mhgk(8`^ak"><field name="VAR">long</field> <value name="VALUE"><block type="logic_boolean" id=")@xX@VD=y1P(h7M[?[rU"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></statement> <next><block type="timeouts_cleartimeout" id="#IE6wf`MIFA_uJ1xTW%O"><field name="NAME">timeout3</field> <next><block type="timeouts_cleartimeout" id="YUi70}GoHs##R1}*wbg~"><field name="NAME">timeout4</field></block></next></block></next></block></xml>
-
Moin,
den "error Null" hab ich auch ab und zu, kommt bei mir dann, wenn ich den NFC Chip zu lange oder nicht richtig an den Reader halte, da er dann innerhalb kurzer Zeit den Befehl zum öffnen zweimal schickt.. …
Stört mich nicht, ich kann ja in das NFC Script ne Hysterese einbauen. ( oder mir die Fehlermeldung anschauen :-))
Hier der Link für den Xiaomi-Taster
( https://www.banggood.com/de/Original-Xi ... 2MQAvD_BwE )
Der Taster kann single-click, double-click und longclick und der iobroker.mihome Adapter unterstützt das einwandfrei. Dazu braucht man ein Gateway oder n geflashten Zigbee-Stick ( ich hab im ganzen Haus auf 4 Etagen 4 Gateways im Einsatz mit über 60 Xiaomi Zigbee Devices.)
Hier das Script, ist ne ältere erstere Version, die aktuelle möchte aus Sicherheitsgründen nicht zur Verfügung stellen(habe da noch ein paar Gimmicks eingebaut), ist ein Blockly, einfach importieren:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="k9`Z,W;Y!AhSzT9tW2?]" x="-387" y="-112"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="Qg+ocxdtvciU:~+WVX*h"><field name="oid">mihome.0.devices.switch_158d0001c2025b.click</field></shadow></value> <statement name="STATEMENT"><block type="variables_set" id="/fC;YEeyIo--1pEX2%^5"><field name="VAR">simple</field> <value name="VALUE"><block type="logic_boolean" id="zPuLP}Qe=k+Lo]lWBY-z"><field name="BOOL">TRUE</field></block></value> <next><block type="timeouts_settimeout" id="ZydX]asr%0Auxt8g@N:v"><field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="variables_set" id="U-4O?bqimfDMPcosxB6g"><field name="VAR">simple</field> <value name="VALUE"><block type="logic_boolean" id="~?}%JbAM=.@N?OUeTW9X"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> <next><block type="timeouts_cleartimeout" id="#DDWQnprOEBd.(A/{Y~#"><field name="NAME">timeout</field></block></next></block> <block type="on_ext" id="s%)yrCDH@P1}S!T2BnmE" x="138" y="-137"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="fnaI]**ewR{8qdc{B14w"><field name="oid">mihome.0.devices.switch_158d0001c2025b.double</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="G2rh2XR-B_dQC-OZFU.Y"><value name="IF0"><block type="logic_compare" id="n0wIS)pGQXw98(,O+k2t"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="2Ar/+`MoIW3iiRYP?j99"><field name="VAR">simple</field></block></value> <value name="B"><block type="logic_boolean" id="/d~pNzVI%FJvQv^Y{pQ;"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="E[7ew3MR#iKE1Q)E.6aD"><field name="VAR">double</field> <value name="VALUE"><block type="logic_boolean" id="A/@(Q3|JOpKAk!%l_(vU"><field name="BOOL">TRUE</field></block></value> <next><block type="timeouts_settimeout" id="`|n:DZ}:VPr/,a}%Ll-r"><field name="NAME">timeout2</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="variables_set" id=".WZ^G~dJF/Yzsb*=)iJb"><field name="VAR">double</field> <value name="VALUE"><block type="logic_boolean" id="/J!7;)yXq5C[F7@pTF*@"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement></block></statement> <next><block type="timeouts_cleartimeout" id="Ql}rV?vx8:!.v4hS)N]#"><field name="NAME">timeout2</field></block></next></block> <block type="on_ext" id=".:hv`0GC3p7/X-PUZG!f" x="-237" y="113"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="{C!4{/`9/^+,K3v)9OxD"><field name="oid">mihome.0.devices.switch_158d0001c2025b.long</field></shadow></value> <statement name="STATEMENT"><block type="variables_set" id="+^{;AwrwIzSQ5x1U9W@x"><field name="VAR">long</field> <value name="VALUE"><block type="logic_boolean" id="*{]F6/9h/b#G1(@OpE]X"><field name="BOOL">TRUE</field></block></value> <next><block type="controls_if" id="aJtC:eX+d2@d,3LO*x7`"><value name="IF0"><block type="logic_operation" id="OZUm1/Wp_]HW^OI{y%;r"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="{vz]^zKbZq|BogDFytMf"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="8ltx[-Ejux7CA35qgDOC"><field name="VAR">simple</field></block></value> <value name="B"><block type="logic_boolean" id="DnK:`9*Bg/Qq?u^mRq=Z"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="o?ST#f._CxPjae0R,i,J"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="I0pBWk0eHK.r9bH^0;9T"><field name="VAR">double</field></block></value> <value name="B"><block type="logic_boolean" id="+op}~TYQyl(s0YVncgkJ"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id=",_`4wA..1fONS{vKWlyL"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090L91072440DD6.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="g/,iL(hZy4|z{t8/CCTo"><field name="NUM">90</field></block></value> <next><block type="control" id="HjB!T#e6/t@2OZ:0//#d"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090L91072440DD6.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="c%S_o2z3YQsFo:DEV!X("><field name="TEXT">Zugang genehmigt!</field></block></value> <next><block type="timeouts_settimeout" id=":IzyNP2sWMD3~K#uEqE+"><field name="NAME">timeout4</field> <field name="DELAY">3</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="control" id="75e/Wo[Xq7HOW:T-xvL|"><mutation delay_input="false"></mutation> <field name="OID">nuki.0.164400993.279997633.action</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="qUmYO+!U:%Kq%IfaL(He"><field name="NUM">5</field></block></value> <next><block type="control" id="afeC2LA;c==8PA(::ktu"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090L91072440DD6.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="]+N{X=7]46cXsE~c#ICn"><field name="NUM">50</field></block></value></block></next></block></statement></block></next></block></next></block></statement> <next><block type="timeouts_settimeout" id="_%b]}*=tb1/|:s|;LTjK"><field name="NAME">timeout3</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="variables_set" id="PHDYO9qcv`mhgk(8`^ak"><field name="VAR">long</field> <value name="VALUE"><block type="logic_boolean" id=")@xX@VD=y1P(h7M[?[rU"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></statement> <next><block type="timeouts_cleartimeout" id="#IE6wf`MIFA_uJ1xTW%O"><field name="NAME">timeout3</field> <next><block type="timeouts_cleartimeout" id="YUi70}GoHs##R1}*wbg~"><field name="NAME">timeout4</field></block></next></block></next></block></xml> ```` `
Sehr cool von dir.
Dankeschön
-
Hallo,
ich versuche meine Türen mit Hilfe eines Fingersensor auf und abzuschließen.
Der Aufbau ist leider etwas kompliziert Fingersenosr > Arduino > S7 > iobroker > Blocky > Nuki Adapter.
Also mit meinem Blockyskript sollen die Merker der S7 den Nuki Adapter steueren, das funktioniert leider nicht sehr zuverlässig.
Wenn ich versuche 2 Nukischlösser auf einmal auf/abzuschließen, funktioniert das immer nur bei dem Schloss welches als erstes im Blocky angesteuert wird.
Liegt das daran das der Websever der Nukibridge so langsam ist ?
Kann man das beschleunigen?
Danke
-
Hi,
ich hab leider keine Ahnung, wie man an dem beschriebenen Verhalten etwas ändern kann. Da ich nur ein Nuki-Schloss besitze, konnte ich Dein Szenario bislang nicht testen, aber meiner Erfahrung nach, ist es folgendermaßen:
Die Bridge empfängt einen Befehl, sendet diesen an das Schloss, dieses führt den Befehl aus und sendet eine Rückmeldung an die Bridge. Dann sendet die Bridge die Callbacks. Erst danach können weitere Befehle verarbeitet werden. Die einzige Möglichkeit, die mir noch einfallen würde, den Ablauf zu beschleunigen, wäre, das Nuki-Schloss direkt über Bluetooth mit dem RasberryPi/Tinkerboard/Intel Nuc zu verbinden. Es gibt auch eine Bluetoth-API, die das ermöglichen sollte, aber damit habe ich bisher keinerlei Erfahrung…wäre allerdings der Hammer, wenn der Adapter das ebenso unterstützen könnte! Vielleicht findet sich ja ein Unterstützer, der mit dem Bluetooth-Modul als Interface schon gearbeitet hat?
Wenn Du schreibst:
> Also mit meinem Blockyskript sollen die Merker der S7 den Nuki Adapter steueren, das funktioniert leider nicht sehr zuverlässig.
meinst Du damit, dass der Adapter die Befehle nicht immer weitergibt, oder dass die Arduino-Anbindung nicht immer funktioniert?Ich verwende mein Nuki auch mit einem Fingerprint-Sensor, den ich aber über Homematic (HM-SCI-3-FM) ins Smarthome eingebunden hab. Ich hab geplant, die Auswertungseinheit irgendwann direkt über den GPIO des Tinkerboards anzuschließen, um die Funkkomponente herauszunehmen, aber zurzeit funktioniert das wohl mit dem Tinkerboard nicht
-
> Also mit meinem Blockyskript sollen die Merker der S7 den Nuki Adapter steueren, das funktioniert leider nicht sehr zuverlässig.
Das soll heißen, das wenn ich es testen, es nicht immer auf/zu schließt.
Nach deinem Post kann ich mir aber vorstellen, das ich einfach in einem zu kurzen Abstand nacheinander schalte und die Bridge so schnell nicht nach kommt.
Also wenn das mit der direkten Bluetoothverbindung (ohne Bridge) klappen würde das wäre natürlich der Wahnsinn.
Wie kann man das realisieren?
Ich würde mich zum Testen bereit erklären.