Nuki Bridge

Für die einfache Integrationen vom Nuki Smart Lock in eine Smart Home Steuerung wird die Nuki Bridge (Affiliate-Link) benötigt. Sie ermöglicht zudem die Steuerung vom Nuki Smart Lock über das Nuki Web Portal (Browser), mittels Amazon Alexa oder aus der Ferne über die Nuki App (Smartphone).

Nuki Bridge API

In diesem Beitrag geht es hauptsächlich um die von der Nuki Bridge bereitgestellte API und die Integration in eine Smart Home Steuerung. Diese ermöglicht direkt mit einem oder mehreren Nuki Smart Lock(s) zu kommunizieren.

Die Nuki Bridge API (Externer Link) ist an sich sehr gut dokumentiert, ich habe die wichtigsten Infos und Befehle aber nochmal zusammengefasst.

HTTP Fehler 503

Wichtige Info vorab, die Kommunikation mit der Nuki Bridge über einen Browser wie Chrome etc. funktioniert nicht bzw. nur teilweise. Es wird empfohlen z. B. mit dem Linux Tool Curl zu arbeiten, dazu einfach mit curl -s "<URL>" den Befehl versenden.

Token

Um Befehle an die Nuki Bridge zu senden, ist ein Token notwendig. Um diesen zu erhalten, ist es notwendig, die folgende URL zu öffnen und danach den Button an der Nuki Bridge zu drücken.

http://<Nuki Bridge IP>:8080/auth

In der Antwort steht dann der Token in Klartext. Dieser verändert sich nicht, außer bei einem Reset oder wenn dieser manuell geändert wurde.

{"success": true, "token": "aCCwWt1m9e93cwWT"}

Status

Den Status der Geräte, die an der Nuki Bridge angelernt sind, erhält man mit dem folgende Befehl.

http://<Nuki Bridge IP>:8080/list?token=aCCwWt1m9e93cwWT

Die Antwort enthält alle wichtigen Informationen zum Status des Nuki Smart Lock.

[
   {
      "deviceType":0,
      "nukiId":375738769,
      "name":"Haustür",
      "lastKnownState":{ 
         "mode":2,
         "state":1,
         "stateName":"locked",
         "batteryCritical":false,
         "timestamp":"2019-10-08T13:31:10+00:00"
      }
   },
   {
      "deviceType":0,
      "nukiId":371942281,
      "name":"HWR",
      "lastKnownState":{ 
         "mode":2,
         "state":1,
         "stateName":"locked",
         "batteryCritical":false,
         "timestamp":"2019-10-08T16:02:18+00:00"
      }
   }
]

Die Rückgabe sieht natürlich etwas chaotischer aus. Im Netz gibt es ein paar Webseiten wie z. B. dem JSON Formatter & Validator (Externer Link) auf der ihr schnell und einfach den JSON Code wie oben “hübsch” machen könnt.

Callbacks

Damit nicht ständig der Status abgefragt werden muss, gibt es sogenannte Callbacks. Bei einer Änderung sendet die Nuki Bridge den Status an eine definierte URL.

Um z. B. die Zieladresse http://192.168.1.123/nuki/api.php einzutragen, muss der Befehl richtig formatiert sein.

http://<Nuki Bridge IP>:8080/callback/add?url=http%3A%2F%2F192.168.1.123%2Fnuki%2Fapi.php&token=aCCwWt1m9e93cwWT

Die bereits eingetragenen Adressen (maximal 3) erhält man mit folgendem Befehl.

http://<Nuki Bridge IP>:8080/callback/list?&token=aCCwWt1m9e93cwWT

Befehle

Befehle wie die Tür aufschließen sind natürlich auch möglich. In der API Dokumentation die oben verlinkt ist, stehen alle Befehle. Die Türfalle wird z. B. mit dem folgenden Befehl (action=3) zurückgezogen und damit die Tür geöffnet.

http://<Nuki Bridge IP>:8080/lockAction?nukiId=375738769&action=3&token=aCCwWt1m9e93cwWT

Loxone Miniserver

Das Senden von Befehlen über den Loxone Miniserver ist ganz leicht. Dazu einfach einen “Virtuellen Ausgang” mit der URL der Nuki Bridge
(http://<Nuki Bridge IP>:8080) anlegen. Als “Virtueller Ausgang Befehl” werden dann nur noch die Befehle wie z. B. für das abschließen der Tür (/lockAction?nukiId=375738769&action=2&token=aCCwWt1m9e93cwWT) eingetragen.

Ein “Virtueller HTTP Eingang” kann den Status vom Nuki Smart Lock abfragen. Das passiert aber nur zyklisch und deshalb habe ich mir eine PHP API geschrieben. Diese setzt den Callback der Nuki Bridge in Loxone Miniserver Befehle um. Bei Interesse kann ich den Code gerne in einem Beitrag vorstellen.

7 Gedanken zu „Nuki Bridge“

  1. Hallo und vielen Dank für den interessanten Beitrag!
    Gerne würde ich über die PHP API etwas mehr erfahren.
    Auch gut zu wissen wäre, ob es möglich ist bei Entriegelung über den Fob oder Keypad gleichzeitig einen Befehl an Loxone zu schicken um die Alarmanlage zu deaktivieren!

    Viele Grüße

  2. Hi,
    mit den abgelegten Befehlen musst du dir aber auch Gedanken machen, wie die sie vor externen Zugriff schützt.
    Nicht dass sich nachher win Einbrecher mit Hacker-Kebntnissen über deinen Raspi o.ä. selbst die Tür öffnet.
    Ansonsten Danke für deine sauber beschriebenen Artikel !

    1. Hallo Chris,

      danke für deinen Hinweis, die Daten aus dem Beispiel sind anonymisiert und entsprechen nicht meiner Installation. Auf dem Raspberry Pi ist der API-Token für die Nuki Bridge nicht abgelegt, dieser liegt nur auf dem Loxone Miniserver.

      Viele Grüße
      Stefan

    1. Hallo Peter,

      wenn du die Befehle ganz normal im Browser probiert hast, ist das wie kurz im Absatz “HTTP Fehler 503” erwähnt, leider nur sehr eingeschränkt bis gar nicht möglich. Über den Loxone Miniserver oder über cURL funktioniert es auch mehrfach hintereinander. Wie hast du es denn probiert?

      Viele Grüße
      Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert