Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Nuki Smart Lock 3.0 pro in ioBroker einbinden

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Nuki Smart Lock 3.0 pro in ioBroker einbinden

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      martin @dwm last edited by

      Ich habe mein Nuki jetzt auch mit einer eigenen MQTT-Instanz im IOB.
      Frage jetzt wie kann ich in einem Blockly-Skript einstellen, dass er das Nuki z. B. in der Nacht wenn die Haustüre abgesperrt ist öffnet etc.?

      D 1 Reply Last reply Reply Quote 0
      • D
        dwm @martin last edited by

        @martin
        ... müsst jetzt bei Blockly schauen, ich verwende da direkt Javascript ...

        Grundsätzlich repräsentieren die MQTT Datenpunkte ja die Nuki MQTT API wie hier im PDF beschrieben: https://developer.nuki.io/t/mqtt-api-specification-v1-4/19223

        D.h. Du schreibst nach "LockAction" eben die zum Beispiel die 1 für "unlock", dann sperrt das Ding auf.

        Folgende Lock Actions sind möglich:
        1 unlock activate rto
        2 lock deactivate rto
        3 unlatch electric strike actuation
        4 lock ‘n’ go activate continuous mode
        5 lock ‘n’ go with unlatch deactivate continuous mode
        6 full lock

        Fallen in die man tappen kann:

        • die MQTT API muss für "sperren" freigeschaltet sein, sonst macht es halt nix.
        • Wie in diesem Thread beschrieben, sollte eine LockAction nach ein paar Sekunden mit "null" und dem Ack Flag überschrieben werden, das Nuki macht alle paar Stunden einen reconnect, und wenn in der LockAction dann ein gültiges Kommando steht, wird das - je nach Einstellung des Adapters - halt NOCHMAL geschickt. Das Ergebnis ist dann, dass um halb vier Uhr morgens die Tür aufgeht.
          Bei richtiger Einstellung des MQTT Adapters sollte es das nicht brauchen, aber sicher ist sicher 🙂
          Kleines Code-Snippet zur Illustration:
        var MqttAdapterId ='mqtt.0';
        var NukiId = '1234565x';
        
        // reset MQTT lockAction data point to null after 5 sec. for security reasons
        on ({id: [
                    MqttAdapterId+'.nuki.'+NukiId+'.lockAction',
                    MqttAdapterId+'.nuki.'+NukiId+'.lock',
                    MqttAdapterId+'.nuki.'+NukiId+'.unlock'
                 ], valNe: null, change: 'any'},
            function(dp) {
                setStateDelayed ( dp.id, null, 5000, true );
        });
        
        M 1 Reply Last reply Reply Quote 1
        • D
          dwm last edited by

          Vielleich noch ein paar Worte zum "LockActionState" ...
          Hab da mal auf github beim MQTT Adapter ein issue eingetragen, und ich glaub die bei Nuki haben das auch schon gehört 😉 ... braucht halt alles Zeit.
          Es gibt bei den Nukis übrigens grade anscheinend ne Beta-Firmware, die angeblich die angesprochenen Problemchen mit WLAN und MQTT lokal etc. adressiert. Mal schaun.

          Ich hab jetzt mal einen extrem üblen und grauslichen Workaround gebaut ...
          Grundidee: Nachdem die richtigen Daten ja im debug log stehen, muss man die ja eigentlich nur da rausholen ...

          Also:

          • mqtt Adapter auf debug stellen, so dass alles getraced wird. Im log müssen die Meldungen auftauchen, wie paar Beiträge weiter oben beschrieben.
          • Eigene logparser Instanz, mit den Einstellungen für den Parser:
            Name: NukiLockActionEvent
            Whitelist UND: /mqtt.[0-9].*lockActionEvent.*payload/
            Häkchen bei "Debug" gesetzt
            Max 1024
            Bereinigen: /mqtt.[0-9].*publish\spackage\s/
            Leeren nach 2 Tagen

          Ich hab die Liste auf 20 Einträge beschränkt. Damit hab ich eine Liste mit den 20 letzten MQTT LockEvent data payloads 🙂

          Wenn jetzt auf mqtt.0 ein LockActionEvent kommt (das Event ist ja da, auch wenn mehr oder weniger Unsinn drinsteht), mache ich beim Logparser ein "ForceUpdate", und lese bisschen später das payload aus dem log aus. Voila.

          Grobes Code Snippet zur Illustration:

          function bin2String(arr) {
            let result = '';
            for (let i = 0; i < arr.length; i++) {
              result += String.fromCharCode(arr[i]);
            }
            return result;
          }
          
          function getLastestLockActionEvent(){
              let result = {
                  lockActionEventStr : null,
                  ts              : null,
              };
          
              let logEntry = getState('logparser.1.filters.NukiLockActionEvent.json'/*Json*/).val;
          
              try {
                  let logObj = JSON.parse(logEntry);
                  if (logObj.length == 0) return null;
                  
                  let logMessage = JSON.parse(logObj[0].message);
                  result.lockActionEventStr = bin2String(logMessage.payload.data);
                  result.ts = logObj[0].ts;
                  let dt = new Date(result.ts);
                  result.timeStamp = dt.toISOString();
              } catch (e) {
                  return null;
              }
              return result;
          }
          
          function NukiLockActionEventVerification(){
              let lockActionEvt = getLatestLockActionEvent();
              // debug output
              console.log(JSON.stringify(lockActionEvt));
          
              if (lockActionEvt !== null){
                  let tokenized = lockActionEvt.lockActionEventStr.split(',');
                        
                  // act accordingly ... 
              } else {
                  // error handling
             }
          }
          
          function NukiLockActionEventChange(dp){              
              setStateDelayed('logparser.1.forceUpdate'/*Force updating all states immediately*/, true,50);
              setTimeout( NukiLockActionEventVerification , 250, dp.ts );
          }
          
          on ({id: MqttAdapterId+'.nuki.'+NukiId+'.lockActionEvent', change: 'any' }, NukiLockActionEventChange );
          
          

          Ich hoffe mal, das ist einigermassen verständlich.
          Das Ganze klappt grundsätzlich ganz nett, aber ist aber halt schon recht komplex dafür, dass der String ja einfach so dastehen sollt ... 🙄 .

          1 Reply Last reply Reply Quote 0
          • M
            martin @dwm last edited by

            @dwm Danke. Das hilft mir schon mal weiter.
            Was ich nicht verstehe ist "Ack Flag". Dass da nach ein paar Sekunden wieder "null" rein soll habe ich verstanden. Aber wer, wie, was ist Ack Flag?

            1 Reply Last reply Reply Quote 0
            • M
              mooly last edited by

              Hallo!

              Kann mir bitte jemand einen Tipp geben:

              Wie kann ich die States des Door-Sensors und der Schließzustandes ausgeben lassen in meiner VIS? Ich verstehe das Prinzip, aber wie setze ich das um?

              Also ich will im ersten Schritt einfach nur sehen ist die Tür offen oder geschlossen und ist die Tür verriegelt oder entriegelt?

              Ich würde mich freuen wenn mir jemand helfen könnte. MQTT läuft ohne Probleme, aber ich bekomme es nicht hin mir die States ausgeben zu lassen.

              1 Reply Last reply Reply Quote 0
              • M
                mooly @Sascha Roth last edited by

                @sascha-roth said in Nuki Smart Lock 3.0 pro in ioBroker einbinden:

                @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
                3fd69d79-9ac8-4f25-8056-9a0ca236dda5-grafik.png

                942b0f9e-1ac5-424d-81c1-6e9336a982a3-grafik.png

                Hallo!

                Das sieht wirklich klasse aus. Kannst du mir verraten, wie du die Lockstates bzw. Doorstates abfrägst? Ich habe MQTT eingerichtet, aber ich habe noch keinen genauen plan, wie ich diese abfrage, weil es ja keinen true/false wert z.B. zum Tür offen/zu gibt, sonder ich diese States von 1-5 z.B. auslesen muss um sie entsprechend in der VIS darstellen zu können. OMG leicht noobig ausgedrückt, sorry. Ich denke du weisst was ich meine.

                DANKE!

                LG

                A 1 Reply Last reply Reply Quote 0
                • A
                  andibr @mooly last edited by andibr

                  @mooly

                  Also ich habe für meine 3stk Nuki 3.0 aus dem "vis-inventwo" so ein "Multi-Widget" genommen, damit kann man mehrere Zustände im gleichen Widget definieren. Sprich ich habe dort den Status aus den Objekten eingefügt und dann entsprechend die einzelnen Zustände konfiguriert.
                  Gruss Andi

                  Bildschirmfoto vom 2023-12-30 16-40-43.png

                  M 1 Reply Last reply Reply Quote 2
                  • M
                    mooly @andibr last edited by

                    @andibr

                    soweit war ich auch schon... aber woher weiß das Widget, dass z.B. Lock-Status "2" geschlossen heisst? Drücke ich mich unverständlich aus? Also welchen Datenpunkt hast du im Multi-Widget genutzt um die anzeigen zu lassen, wie der Tür-Status ist?

                    A 1 Reply Last reply Reply Quote 0
                    • Longbow
                      Longbow last edited by

                      Hallo in die Runde,

                      ich habe ein Nuki Smart Lock 3.0 pro, also da mit Wlan und ohne Bridge.
                      Jetzt habe das Schloss in der App alles freigegeben, was MQTT angeht.
                      Im MQTT Explorer sehe ich das Schloss, wie auch den DoorSensor, mit Werten etc.

                      Wenn ich bei ,,state'' jetzt einen anderen Wert/ Zahl eingebe, schreibt er das überall, spricht im iobroker wie auch in dem MQTT Explorer. Somit denke, ich dass die zusammen kommunizieren, aber es passiert einfach nichts am Schloss selbst.

                      Somit stimmt doch was oder sehe ich das falsch. Wenn ich in der App sagen abschließen, sehe ich im ioborker den Wert und im Explorer, aber es passiert nicht.

                      Wann was kann das liegen? Wie bekommt man das Schloss am besten in den ioborker?

                      Wenn wir uns dieses Jahr nicht mehr lesen, Euch einen guten Rutsch ins neue Jahr

                      1 Reply Last reply Reply Quote 0
                      • A
                        andibr @mooly last edited by

                        @mooly
                        Das ist relativ einfach, es ist der Datenpunkt "state" und für den gibt es hier weiter oben eine Tabelle in der steht was welcher Wert bedeutet und mit diesem habe ich dann ein Bild definiert
                        Bildschirmfoto vom 2024-01-02 14-16-55.png

                        so kannst du im Widget eine Abfrage im Feld "Wert(x)" erstellen und das entsprechende Bild erscheinen lassen. Da ich das ganz bis jetzt nur zur Anzeige nutze, kann ich dir nicht sagen ob man mit diesem Widget auch ein Skript zum absetzen eines schliess/öffnungs-Befehl aufrufen kann. Aber es gibt im invetwo auch Widget die als Taster definiert werden können.

                        1 Reply Last reply Reply Quote 0
                        • Percy
                          Percy last edited by

                          Gibt es neue Erkenntnisse bezüglich des lockactionstate Problems? Löst die beta Firmware des Nuki das Problem?

                          C 1 Reply Last reply Reply Quote 0
                          • C
                            crazyskater @Percy last edited by

                            Ich habe seit 3 Wochen ein Problem, dass beim aufschließen also LOCKACKTION 3, das Schloß sich 5x aufschließt.
                            Im mqtt Log sehe ich jede Nachricht, egal ob aufschließen oder zuschließen die per mqtt ans Schloß geht 11x.
                            dann kommt die Meldung:
                            Client [SL3P_1234DC6C] Message 2 deleted after 11 retries
                            Es sieht so aus, als merkt der mqtt Adapter nicht, dass es vom Schloß empfangen ist.
                            Will der Adapter eine Response vom Schloß? Ich dachte er gibt die Nachricht an tcpstack und der macht retry, wenn das tcp ACK fehlt.
                            Im tcpdump sehe ich die Nachrichten auch rausgehen, und ab der 2ten ist auch das DUP Flag gesetzt.

                            Dieses Verhalten jetzt sind sehr komisch.

                            A M 2 Replies Last reply Reply Quote 0
                            • A
                              andibr @crazyskater last edited by

                              @crazyskater
                              Ich habe es aufgegeben das ganze mit Smart Home zu machen. Ich habe im Iobroker den zusätzliche MQTT Adapter gelöscht und auch alle Objekte dazu. Den Gerüchten zu folge wird da beim Nuki 3.0 auch nichts mehr geschehen in Richtung neuer Firmeware.

                              Leider fokussieren die sich nun auf Appel und Matter und kennen die alten Produkte gar nicht mehr.
                              Das ganze Konzept war genau bis zum Entscheid für Matter ganz gut. Seither kommen nur noch Dinge die am besten zu Appel passen.

                              Vermutlich werfe ich meine 3stk beim nächsten Problem weg. Denn auch die versprochene Notfunktion mit die Schlüssel von aussen geht nicht. Auch nach mehrmaligem neuen synchronisieren und abgleichen geht nach dem ersten Abschiessvorgang der Schlüssel von aussen nicht mehr. Oder das einer bei mir ohne Programierung einfach plötzlich auf oder zu schliesst. Sobald WLAN weg ist bewegt er sich einfach in die andere Richtung egal wo er war.

                              Darum kann es sein das ich bald 3stk über hab.
                              Ich bin massiv entäuscht.

                              Walter White 1 Reply Last reply Reply Quote 0
                              • Walter White
                                Walter White @andibr last edited by

                                @andibr also bei mir funktioniert das Schloss mit mqtt wunderbar.

                                Und Nuki verspricht gar keine notfallfunktion, sondern empfiehlt dringend ein Zylinder mit notfallfunktion zu verwenden bevor man das Schloss anbaut.
                                Das heißt wenn bei dir die notfunktion nicht funktioniert, dann ist der Zylinder einfach nicht geeignet.

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  andibr @Walter White last edited by

                                  @walter-white
                                  Der Zylinder funktioniert ohne Nuki einwandfrei, weil innen sowieso kein Schlüssel ist sondern ein Drehknopf. An der anderen Türe konnte ich den Schlüssel innen gesteckt lassen und konnte von aussen schliessen und öffnen ohne Probleme. Aber mein Nuki dreht nicht in die Stellung zurück in der man sonst den Schlüssel entfernen könnte.

                                  Aber die schlimmste Sache ist das unzuverläsige WLan den der Acesspoint hängt beim einen in Sichtweite ( ca 3m) und genau der verliert das WLan am meisten.

                                  Einzig mit der Bluetooth auf dem Handy funktioniert es immer. Aber genau das habe ich nicht dauerhaft an.

                                  Walter White 1 Reply Last reply Reply Quote 0
                                  • Walter White
                                    Walter White @andibr last edited by

                                    @andibr aber bluetooth ist eigentlich die normale Verbindung um das Schloss zu öffnen, das WLAN ist eigentlich für den fernzugriff.
                                    Beim WLAN kannst du es mal mit einem festen Kanal zB 1, 6, oder 9 testen.

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      dbu828 @Sascha Roth last edited by

                                      @sascha-roth
                                      Hallo . Gibt es hierzu schon ein Lösungsansatz um das Event auszulesen?
                                      4791035d-20d3-4acf-8438-38b752d7afc2-image.png

                                      D Percy 2 Replies Last reply Reply Quote 0
                                      • D
                                        dwm @dbu828 last edited by

                                        @dbu828 Nur den grusligen workaround, den ich weiter oben beschrieben hab.
                                        Hab da auch beim MQTT Adapter seit 2 Mon. Ein issue, noch kein Bild, kein Ton, leider ...

                                        1 Reply Last reply Reply Quote 0
                                        • Percy
                                          Percy @dbu828 last edited by

                                          @dbu828 Vielleicht bekommt man die Daten über einen anderen MQTT Broker sauber rein? Hat jemand mal versucht, das Nuki in Node Red anzubinden?

                                          D 1 Reply Last reply Reply Quote 0
                                          • D
                                            dbu828 @Percy last edited by

                                            @percy Ich habe es nun mit Node Red eingebunden.

                                            • mqtt iobroker ausgeschalten
                                            • mosquitto installiert
                                            • Node-Red Adapter installiert und auf mosquitto (Trigger auf LockActionEvent gestellt / verbunden.
                                              Hurra Ich erhalte das Array
                                              441e32b7-98e5-4afb-8ba1-672cd2d24eb2-image.png
                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            938
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            57
                                            237
                                            39330
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo