NEWS
Nuki Smart Lock 3.0 pro in ioBroker einbinden
-
Hallo zusammen,
Konnte jemand den lockActionEvent state in MQTT im iobroker richtig anzeigen?
Wenn nein, welche alternative Lösung habt ihr ggf bereits gefunden.Danke
Markus@addy Unter lockActionEvent werden Sonderzeichen angezeigt. Wenn Du unter Objekte auf den State gehst,

kannst Du den angezeigten Wert kopieren, in ein Javascript-Skript einfügen und dort die Sonderzeichen sehen, z. B.
Den State liest Du normal mit getState aus, kannst dann mit slice() die gelesenen Sonderzeichen separieren und mit den vorher ermittelten vergleichen. Hier ein Beispiel, das das Öffnen von Nuki detektiert:let lastLock=getState('mqtt.0.nuki.3583F76C.state'/*nuki/3583F76C/state*/).val; // letzter Öffnungszustand on({id: ['mqtt.0.nuki.3583F76C.lockActionEvent'/*nuki/3583F76C/lockActionEvent*/, 'mqtt.0.nuki.3583F76C.state'/*nuki/3583F76C/state*/], change: 'ne'}, obj => { if(obj.id == 'mqtt.0.nuki.3583F76C.lockActionEvent') { let trigger=obj.state.val; trigger=trigger.slice(1,2); if(trigger == '' && lastLock != 3) { // Nur, wenn nicht bereits geöffnet log('Öffnen!'); } } else { lastLock=obj.state.val; } });Statt des Fragezeichens steht im Javascript-Editor ein STX in rotem Kästchen:

Das ist der aus dem State kopierte Wert - wird hier leider nicht richtig angezeigt. -
@addy Unter lockActionEvent werden Sonderzeichen angezeigt. Wenn Du unter Objekte auf den State gehst,

kannst Du den angezeigten Wert kopieren, in ein Javascript-Skript einfügen und dort die Sonderzeichen sehen, z. B.
Den State liest Du normal mit getState aus, kannst dann mit slice() die gelesenen Sonderzeichen separieren und mit den vorher ermittelten vergleichen. Hier ein Beispiel, das das Öffnen von Nuki detektiert:let lastLock=getState('mqtt.0.nuki.3583F76C.state'/*nuki/3583F76C/state*/).val; // letzter Öffnungszustand on({id: ['mqtt.0.nuki.3583F76C.lockActionEvent'/*nuki/3583F76C/lockActionEvent*/, 'mqtt.0.nuki.3583F76C.state'/*nuki/3583F76C/state*/], change: 'ne'}, obj => { if(obj.id == 'mqtt.0.nuki.3583F76C.lockActionEvent') { let trigger=obj.state.val; trigger=trigger.slice(1,2); if(trigger == '' && lastLock != 3) { // Nur, wenn nicht bereits geöffnet log('Öffnen!'); } } else { lastLock=obj.state.val; } });Statt des Fragezeichens steht im Javascript-Editor ein STX in rotem Kästchen:

Das ist der aus dem State kopierte Wert - wird hier leider nicht richtig angezeigt.@grrfield Deine Lösung bringt so leider nur nicht viel. Laut MQTT Doku von Nuki enthält das lockActionEvent eine Komma separierte Liste mit der ich unteranderem erfahren kann welcher Nutzer / Gerät (Fob etc.) z.B. die Tür geöffnet hat. Genau das ist aber die Information an die ich z.B. ran möchte. Dazu müssten die kryptischen Zeichen aber irgendwie lesbar oder dekodierbar gemacht werden können.
-
@grrfield Deine Lösung bringt so leider nur nicht viel. Laut MQTT Doku von Nuki enthält das lockActionEvent eine Komma separierte Liste mit der ich unteranderem erfahren kann welcher Nutzer / Gerät (Fob etc.) z.B. die Tür geöffnet hat. Genau das ist aber die Information an die ich z.B. ran möchte. Dazu müssten die kryptischen Zeichen aber irgendwie lesbar oder dekodierbar gemacht werden können.
-
@grrfield Deine Lösung bringt so leider nur nicht viel. Laut MQTT Doku von Nuki enthält das lockActionEvent eine Komma separierte Liste mit der ich unteranderem erfahren kann welcher Nutzer / Gerät (Fob etc.) z.B. die Tür geöffnet hat. Genau das ist aber die Information an die ich z.B. ran möchte. Dazu müssten die kryptischen Zeichen aber irgendwie lesbar oder dekodierbar gemacht werden können.
@mrdjsage Die Lösung ist ja nur als Vorlage zu verstehen. Du mußt ausprobieren, welche Sonderzeichen bei welchen Aktionen kommen und kannst dann darauf testen. In meinem Beispiel detektiere ich lediglich den Öffnungsvorgang des Schlosses, um daraus Aktionen abzuleiten.
-
@mrdjsage Die Lösung ist ja nur als Vorlage zu verstehen. Du mußt ausprobieren, welche Sonderzeichen bei welchen Aktionen kommen und kannst dann darauf testen. In meinem Beispiel detektiere ich lediglich den Öffnungsvorgang des Schlosses, um daraus Aktionen abzuleiten.
@grrfield aber ich kann mir nicht vorstellen, dass das generisch für alle möglichen Werte von lockActionEvent funktioniert. Denn die Sonderzeichen sind ja sehr allgemein wie "Start of Text", "End of Text", "Start of Heading" ...
@RK62 das hatte ich mir auch schon überlegt und werde ich sicherlich demnächst mal umsetzen. Danke für den Tipp.
-
@grrfield aber ich kann mir nicht vorstellen, dass das generisch für alle möglichen Werte von lockActionEvent funktioniert. Denn die Sonderzeichen sind ja sehr allgemein wie "Start of Text", "End of Text", "Start of Heading" ...
@RK62 das hatte ich mir auch schon überlegt und werde ich sicherlich demnächst mal umsetzen. Danke für den Tipp.
-
Hallo,
hatte ich tatsächlich direkt in der Nacht nach meinem Erfolgs-Post auch.
Habe das ganze gelöst durch ein kleines JavaScript, das die MQTT Eingaben zurücksetzt und auch nochmal MQTT Einstellungen angepasst.
Läuft bei mir bisher seit Montag ohne komische Ereignisse.Meine aktualisierten MQTT Instanz Einstellungen:

JavaScript zum Zurücksetzten der MQTT Datenpunkte:
on({id: 'mqtt.0.nuki.xxx.lock', change:"any"}, function (obj) { if (obj.state.val != "") { setState(obj.id,""); console.log(obj.id + " geleert.") } }); on({id: 'mqtt.0.nuki.xxx.unlock', change:"any"}, function (obj) { if (obj.state.val != "") { setState(obj.id,""); console.log(obj.id + " geleert.") } }); on({id: 'mqtt.0.nuki.xxx.lockAction', change:"any"}, function (obj) { if (obj.state.val != "") { setState(obj.id,""); console.log(obj.id + " geleert.") } });@smarthomenew
Hallo,
ich habe seit 3 Tagen auch das Nuki 3.0 und den MQTT-Adapter installiert.
Funktioniert auch alles, aber bei mir geht nachts auch plötzlich die Haustür auf.
Gibt es denn schon nähere Erkenntnisse, wie das problem seseitigt werden kann?
Ansonsten geht ja alles.Aber das plötzlich die Haustür aufsteht.......
Gruß
Uwe -
@smarthomenew
Hallo,
ich habe seit 3 Tagen auch das Nuki 3.0 und den MQTT-Adapter installiert.
Funktioniert auch alles, aber bei mir geht nachts auch plötzlich die Haustür auf.
Gibt es denn schon nähere Erkenntnisse, wie das problem seseitigt werden kann?
Ansonsten geht ja alles.Aber das plötzlich die Haustür aufsteht.......
Gruß
Uwe@newbie2007 Hast du in der MQTT-Instanz alle Häkchen entfernt? Im Standard ist "Eigene States beim Verbinden publizieren" eingeschaltet. Wenn das letzte Signal "Tür öffnen" war, dann gibt der Adapter genau dieses Kommando bei jeder Neuverbindung nochmal an das Schloss.

Gruß, Ralf
-
@smarthomenew
Hallo,
ich habe seit 3 Tagen auch das Nuki 3.0 und den MQTT-Adapter installiert.
Funktioniert auch alles, aber bei mir geht nachts auch plötzlich die Haustür auf.
Gibt es denn schon nähere Erkenntnisse, wie das problem seseitigt werden kann?
Ansonsten geht ja alles.Aber das plötzlich die Haustür aufsteht.......
Gruß
Uwezusätzlich dieses simple blockly, das 3 sek nach jeder Änderung der "lockAction" diese wieder auf "null" setzt, sichert das auch nochmal ab.

-
@newbie2007 Hast du in der MQTT-Instanz alle Häkchen entfernt? Im Standard ist "Eigene States beim Verbinden publizieren" eingeschaltet. Wenn das letzte Signal "Tür öffnen" war, dann gibt der Adapter genau dieses Kommando bei jeder Neuverbindung nochmal an das Schloss.

Gruß, Ralf
@rk62 said in Nuki Smart Lock 3.0 pro in ioBroker einbinden:
@newbie2007 Hast du in der MQTT-Instanz alle Häkchen entfernt? Im Standard ist "Eigene States beim Verbinden publizieren" eingeschaltet. Wenn das letzte Signal "Tür öffnen" war, dann gibt der Adapter genau dieses Kommando bei jeder Neuverbindung nochmal an das Schloss.

Gruß, Ralf
EIGENTLICH muss man bei diesen Settings eine eigene MQTT-Instanz für die Nuki-Schlösser aufsetzen. Wenn ich das im Kopf so durchgehe wäre das Löschen einiger der Haken für viele meiner MQTT Geräte nicht vorteilhaft. Habt Ihr eigene Instanzen für die Schlösser?
Wie schaut das eigentlich mit der rechtlichen Seite solcher Integrierungen von Schließtechnik ins Smart Home aus? Wenn sich jemand Zugang ohne Einbruchsspuren zu hinterlassen verschaffen konnte, und man stellt hinterher fest, dass das Nuki-Schloss in das Smart Home integriert wurde, könnte das schon zu Problemen mit der Hausratversicherung führen ...
-
@newbie2007 Hast du in der MQTT-Instanz alle Häkchen entfernt? Im Standard ist "Eigene States beim Verbinden publizieren" eingeschaltet. Wenn das letzte Signal "Tür öffnen" war, dann gibt der Adapter genau dieses Kommando bei jeder Neuverbindung nochmal an das Schloss.

Gruß, Ralf
@rk62 Hallo,
nein, es waren noch Haken drin, habe sie jetzt alle rausgenommen und zusätzlich das Blockly installiert, womit die Datenpunkte wieder gelehrt werden.
Vielen Dank für den Tipp.
Gruß
UweNachtrag: mit diesen Einstellungen läuft es jetzt einwandfrei.
Danke nochmal. -
zusätzlich dieses simple blockly, das 3 sek nach jeder Änderung der "lockAction" diese wieder auf "null" setzt, sichert das auch nochmal ab.

@kipferl meinst du den DP „lockAction“?
Oder nicht etwa die Datenpunkte „lock“ bzw. „unlock“?
Gruß
Uwe -
@rk62 said in Nuki Smart Lock 3.0 pro in ioBroker einbinden:
@newbie2007 Hast du in der MQTT-Instanz alle Häkchen entfernt? Im Standard ist "Eigene States beim Verbinden publizieren" eingeschaltet. Wenn das letzte Signal "Tür öffnen" war, dann gibt der Adapter genau dieses Kommando bei jeder Neuverbindung nochmal an das Schloss.

Gruß, Ralf
EIGENTLICH muss man bei diesen Settings eine eigene MQTT-Instanz für die Nuki-Schlösser aufsetzen. Wenn ich das im Kopf so durchgehe wäre das Löschen einiger der Haken für viele meiner MQTT Geräte nicht vorteilhaft. Habt Ihr eigene Instanzen für die Schlösser?
Wie schaut das eigentlich mit der rechtlichen Seite solcher Integrierungen von Schließtechnik ins Smart Home aus? Wenn sich jemand Zugang ohne Einbruchsspuren zu hinterlassen verschaffen konnte, und man stellt hinterher fest, dass das Nuki-Schloss in das Smart Home integriert wurde, könnte das schon zu Problemen mit der Hausratversicherung führen ...
@martinp Würde es auch gerne mit eigener Instanz laufen lassen. Allerdings warte ich dafür noch auf die Möglichkeit, im Nuki einen eigenen Port mitgeben zu können. Hoffe das kommt bald.
-
zusätzlich dieses simple blockly, das 3 sek nach jeder Änderung der "lockAction" diese wieder auf "null" setzt, sichert das auch nochmal ab.

@kipferl wie steuert man eigentlich das Türschloss?
Ich dachte durch Setzen der DP „lock“ und „unlock“ auf true.
Ist das nicht so? -
@kipferl wie steuert man eigentlich das Türschloss?
Ich dachte durch Setzen der DP „lock“ und „unlock“ auf true.
Ist das nicht so?ich mach es über die LockAction wie in der Nuki MQTT API beschrieben, weil man hier mehr optionen hat als "nur" lock und unlock wie zB "full lock" welches ich gerne Nachts verwende.

-
@rk62
Das mit dem .lockActionEvent stimmt nicht, was du schreibst, wenn ich das Schloss per Mosquito MQTT Server verbinde, auf meinem Proxmox per LXC, und dann mit dem MQTT Explorer das ganze auslese, zeigt er mir Werte wie in der Nuki MQTT Api beschrieben an.
Nutze ich dann den MQTT ioBroker MQTT Client Adapter kommen genauso wie wenn ich den MQTT Broker Adapter nutze nur diese komischen zeichen an, somit gehe ich davon aus, das es am ioBroker Mqtt Adapter liegt!Das mit Nur bei Änderungen publizieren kann ich ebenfalls bestätigen, bzw. auch wenn alle Haken raus sind, hat das Schloss kein eigenleben mehr, bzw. Schließt nicht aufeinmal Automatisch auf! Problem wird sein, das im Lock Action State die Zahl stehen bleibt, die als letztes gewält wurde, selbst wenn es die 2 ist, was abschließen ist, ist die türe bereits abgeschlossen, und bekommt dann nach Trennung oder neu Verbindung wieder den State 2 mach das Schloß Lock & Go und Tür öffnen, dies konnte ich mehrfach reproduzieren! Dadurch, steht dann die Türe aufeinmal komplett offen!
3.4 Lock Actions
1 > unlock = aufschließen
2 > lock = abschließen
3 > unlatch = Türe öffnen
4 > lock ‘n’ go = Lock ‘n’ Go
5 > lock ‘n’ go with unlatch = Lock ‘n’ Go & Türe öffnen
6 > full lock = abschließen
80 > fob (without action) =
90 > button (without action) =3.3 Lock States
0 > uncalibrated = Türe unkalibriert
1 > locked = Türe abgeschlossen
2 > unlocking = Türe aufschließen
3 > unlocked = Türe aufgeschlossen
4 > locking = Türe abschließen
5 > unlatched = Tür öffnen
6 > unlocked (lock ‘n’ go) = Lock ‘n’ Go
7 > unlatching = Lock ‘n’ Go & Türe öffnen
253 > -
254 > motor blocked = Motor Blockiert
255 > undefined = nicht definiert


@sascha-roth Hi Sascha,
wie machst du das mit der VIS?
Welches Widget hast du für die Zustandsanzeige des Schlosses genommen?
Gruß
Uwe -
@smarthomenew
Hallo,
ich habe seit 3 Tagen auch das Nuki 3.0 und den MQTT-Adapter installiert.
Funktioniert auch alles, aber bei mir geht nachts auch plötzlich die Haustür auf.
Gibt es denn schon nähere Erkenntnisse, wie das problem seseitigt werden kann?
Ansonsten geht ja alles.Aber das plötzlich die Haustür aufsteht.......
Gruß
UweSo, ich hab jetzt auch mal mit Nuki und MQTT angefangen ...
Ich finde es schon störend, dass das LockActionEvent nicht richtig funktioniert - schon weil man immer die logs von der API abrufen muss, es evt. doch Probleme mit Synchronisation und Latenzzeiten gibt.Deswegen hab ich mal den MQTT Adapter auf Debug gestellt, ob man da was sieht ... sehr interessant.
Beispiel: Die MQTT API sagt dem Nuki, es soll aufschließen ...mqtt.0 (14027) Client [SL3P_123456XX] received publish package {"cmd":"publish","retain":true,"qos":0,"dup":false,"length":22,"topic":"nuki/123456XX/state","payload":{"type":"Buffer","data":[50]}} mqtt.0 (14027) Server received "nuki/123456XX/state" (number): 2Hier kommt also nach "state" der ... Status halt, also die Nummer zwei. In der ersten Zeile steht auch im data array die "50".
50 Dezimal, Hex 32, ASCII "2". Soweit alles klar.
Es folgt:mqtt.0 (14027) Client [SL3P_123456XX] received publish package {"cmd":"publish","retain":false,"qos":2,"dup":false,"length":44,"topic":"nuki/123456XX/lockActionEvent","payload":{"type":"Buffer","data":[49,44,49,55,50,44,48,44,48,44,48]},"messageId":4} Server received "nuki/123456XX/lockActionEvent" (string): "\u0001¬\u0000\u0000\u0000"Erst mal also der publish, mit unserem bekannten data buffer. Wenn man jetzt mal das array händisch in ASCII Werte übersetzt, steht da:
"1,172,0,0,0"
also genau der erwartete String für das LockActionEvent, ausgelöst von MQTT - Trigger ist 172.
Das Problem liegt in der folgenden Zeile, der Server empfängt irgend was wild binäres und interpretiert das als String.So, hier verlässt mich jetzt mein Wissen: Liegt das am Nuki oder am MQTT Broker? Wär schön, wenn die MQTT Profis das mal ankucken könnten.
CU
Werner -
So, ich hab jetzt auch mal mit Nuki und MQTT angefangen ...
Ich finde es schon störend, dass das LockActionEvent nicht richtig funktioniert - schon weil man immer die logs von der API abrufen muss, es evt. doch Probleme mit Synchronisation und Latenzzeiten gibt.Deswegen hab ich mal den MQTT Adapter auf Debug gestellt, ob man da was sieht ... sehr interessant.
Beispiel: Die MQTT API sagt dem Nuki, es soll aufschließen ...mqtt.0 (14027) Client [SL3P_123456XX] received publish package {"cmd":"publish","retain":true,"qos":0,"dup":false,"length":22,"topic":"nuki/123456XX/state","payload":{"type":"Buffer","data":[50]}} mqtt.0 (14027) Server received "nuki/123456XX/state" (number): 2Hier kommt also nach "state" der ... Status halt, also die Nummer zwei. In der ersten Zeile steht auch im data array die "50".
50 Dezimal, Hex 32, ASCII "2". Soweit alles klar.
Es folgt:mqtt.0 (14027) Client [SL3P_123456XX] received publish package {"cmd":"publish","retain":false,"qos":2,"dup":false,"length":44,"topic":"nuki/123456XX/lockActionEvent","payload":{"type":"Buffer","data":[49,44,49,55,50,44,48,44,48,44,48]},"messageId":4} Server received "nuki/123456XX/lockActionEvent" (string): "\u0001¬\u0000\u0000\u0000"Erst mal also der publish, mit unserem bekannten data buffer. Wenn man jetzt mal das array händisch in ASCII Werte übersetzt, steht da:
"1,172,0,0,0"
also genau der erwartete String für das LockActionEvent, ausgelöst von MQTT - Trigger ist 172.
Das Problem liegt in der folgenden Zeile, der Server empfängt irgend was wild binäres und interpretiert das als String.So, hier verlässt mich jetzt mein Wissen: Liegt das am Nuki oder am MQTT Broker? Wär schön, wenn die MQTT Profis das mal ankucken könnten.
CU
Werner@dwm Ich habe es mit MQTT mittlerweile aufgegeben. Erstens funktioniert WLAN und damit MQTT nur, wenn die Nuki-Server erreichbar sind - es funktioniert also keine rein lokale Lösung. Zweitens ist der MQTT-Betrieb unzuverlässig. Mehrfach wurde aufgesperrt obwohl kein Befehl dazu gesendet wurde.
Da ich mit keinem anderen MQTT-Gerät auch nur ansatzweise solche Probleme habe, liegt die Schuld wohl eindeutig bei Nuki. Und ich befürchte, da wird sich auch nichts ändern. Der Fokus liegt jetzt auf dem Nuki 4.0 und Matter. Da wird sich beim "alten" Nuki 3.0 nicht mehr viel tun...
-
@dwm Ich habe es mit MQTT mittlerweile aufgegeben. Erstens funktioniert WLAN und damit MQTT nur, wenn die Nuki-Server erreichbar sind - es funktioniert also keine rein lokale Lösung. Zweitens ist der MQTT-Betrieb unzuverlässig. Mehrfach wurde aufgesperrt obwohl kein Befehl dazu gesendet wurde.
Da ich mit keinem anderen MQTT-Gerät auch nur ansatzweise solche Probleme habe, liegt die Schuld wohl eindeutig bei Nuki. Und ich befürchte, da wird sich auch nichts ändern. Der Fokus liegt jetzt auf dem Nuki 4.0 und Matter. Da wird sich beim "alten" Nuki 3.0 nicht mehr viel tun...
@dr-bakterius
Leider habe ich genau die gleichen Erfahrungen mit dem Nuki 3.0 gemacht. Plötzlich sind die auch via die Nuki App nicht mehr erreichbar, obwohl mein Accesspoint direkt neben der Türe hängt, oder er verliert einfach die MQTT Einstellungen. Die Original Akku meiner 3stk halten im Schnitt ca 3-4 Wochen, bei teilweise sehr seltenen drehvorgängen.Einer meiner 3stk macht beim Verlust des Wlan immer eine Türschliessung, was eigentlich ja eine gute Sache wäre, wenn er nur den Zylinder wieder in die Ruheposition zurück drehen würde. Ich habe den schon mehrfach abgenommen und neu positioniert, aber scheinbar werden da nicht alle Winkelschritte korrekt gezählt.
Grundsätzlich bin ich etwas frustriert, das man für soviel Geld es nicht besser hinkriegt.
Andi