Vorwort
Im Rahmen unseres Projektes Mosliboss SmartHome und in
Anbetracht der Tatsache, dass die Kinder gelegentlich das Haus verlassen, ohne
die Haustüre abzuschliessen, wurden Überlegungen in Richtung SmartLock gemacht
und nach etlichen Recherchestunden fiel unsere Wahl auf ein
Nuki Smart Lock Pro (5. Gen).
Gestaunt haben wir ob der Geschwindigkeit der Lieferung: Am Sonntag, 25. Mai
2025 wurde die Bestellung online aufgegeben und am Dienstag, 27. Mai 2025
lag das Paket bereits im Briefkasten!! Seltsamerweise wurde im Nuki-Club-Account
die Bestellung bis am 27. Mai 2025 stets nur als 'In Bearbeitung' angezeigt und
entsprechend gross war die Überraschung, als das Paket bereits weniger als
48 Stunden nach der Bestellung in Graz/Österreich bei uns in der
Schweiz angekommen war...
Zwar ist dieses Schloss für EU-Zylinder offiziell nur bedingt geeignet für
Schweizer
Rund-Schloss-Zylinder, doch im folgenden Abschnitt wird erklärt, wie dies bei
uns recht einfach erfolgreich realisiert worden ist.
Installation
Wir haben ein Keso2000-Schloss mit einem Zylinder, der einen Durchmesser von
22mm aufweist und auf der Türinnenseite vom Schild ca. 14mm übersteht.
Die mit dem Nuki mitgelieferte
Klebe-Platte weist eine Dicke von ca. 4mm auf. Somit benötigen wir ein
Zwischenstück von ca. 10mm Dicke, damit das Zylinderende ungefähr bündig
mit der Oberfläche der Klebeplatte ist. Da wir heute im Jumbo keine passende
Scheibe in Metall oder Kunststoff gefunden haben, kauften wir ein kleines Stück
beschichtete Spanplatte mit 10mm Dicke. Davon wurde ein 5x5 cm grosses Stück
ausgesägt und in der Mitte mittels einem 25mm-Forstnerbohrer ein
Loch gebohrt. Das Türschild und das Holzstück wurden jeweils mittels
Brennsprit gereinigt und das Holzstück mittels dem sehr gut klebenden und
dünnen "tesa Powerbond" (beidseitig klebend, transparent, 5mx19mm) verbunden,
so, dass der Zylinder schön mittig im Loch platziert ist
(Foto 1).
Anschliessend wurde die gelieferte selbstklebende Nuki-Platte mit der aussen
befindlichen Kerbe
nach oben auf das (mit Brennsprit gereinigte) Holzstück geklebt (Foto 2)
und schliesslich das Nuki Pro
gemäss Anleitung darauf aufgesteckt, leicht im Uhrzeigersinn gedreht und
fixiert (Fotos 3 und 4, jeweils unten mit dem magnetischen Ladekabel
angeschlossen).
Mit diesem Vorgehen konnte das Nuki Pro 5 problemlos in Betrieb genommen werden!
Voraussetzungen zur Steuerung des Nuki via API
Um das Nuki Pro mittels API von einem Linux-Rechner anzusteuern, muss zuerst
ein Konto auf dem Nukiweb https://web.nuki.io eingerichtet werden.
Dort kann unter API ein API-Token generiert werden. Dieser sehr lange String
vom Typ (hier fiktiv) 87f095d9c2b390dbf5dbfd1e457848bc4bc4665315a34848
sollte irgendwo sicher abgespeichert werden, solange er noch angezeigt wird.
Das Nuki-Gerät muss unbedingt via Nuki-App (Einstellungen -
Funktionen&Konfiguration - NukiWeb) in der Nuki Web API angemeldet werden.
Anschliessend muss noch der hexadezimale SmartLock-ID bestimmt werden.
Dazu geht man in der Nuki-App zuerst in folgendes Menu:
Einstellungen - Funktionen&Konfiguration - Allgemein - Dort findet man die Geräte ID: AB123CDFür die API wird jedoch die dezimale ID benötigt, wobei (nach Recherchen im Web) folgendes gilt:
API-Befehle
In diesem Abschnitt sollen einige Beispiele von API-Steuer-Befehlen
erklärt werden.
API_token="87f095d9c2b390dbf5dbfd1e457848bc4bc4665315a34848" Nuki_ID="1521558477" # Status abfragen: curl --no-sessionid -X GET \ --header "Accept: application/json" \ --header "Authorization: Bearer $API_token" \ "https://api.nuki.io/smartlock" \ --output out.out 2>/dev/null
Falls der Output im File out.out eine Fehlermeldung der Form
{"detailMessage":"Your access token is not authorized","stackTrace":[],"suppressedExceptions":[]}
enthält, ist irgendetwas schief gelaufen. Insbesondere ist es wichtig, dass
bei den curl-Parametern Gänsefüsschen (") und nicht Apostrophe (') verwendet
werden, weil letztere die Variablen wie $API_token und $Nuki_ID nicht
in die wahren Werte übersetzen!
Um nun z.B. den Status von zwei Nukis in entsprechenden Files zu listen und einige kritische Parameter in der Konsole darzustellen, kann folgendes Script namens get_nuki_status.sh verwendet werden:
#!/bin/bash # get_nuki_status.sh 28May2025/uk OUTFILE="out.out" API_token="87f095d9c2b390dbf5dbfd1e457848bc4bc4665315a34848" Nuki1="1521558477" Nuki2="1521558488" # Status abfragen curl --no-sessionid -X GET \ -H "Accept: application/json" \ -H "Authorization: Bearer $API_token" \ "https://api.nuki.io/smartlock" \ --output $OUTFILE 2>/dev/null if test $? -ne 0 ; then echo "Fehler bei der curl-Abfrage - exit!" exit fi # Die Daten der beiden Nukis extrahieren und jeweils in eine Datei speichern jq '.[0]' "$OUTFILE" > Nuki1.status jq '.[1]' "$OUTFILE" > Nuki2.status #echo "Statusdateien erstellt: Nuki1.status und Nuki2.status" # Kritische Parameter: tuerstatus=$(jq '.[0].state.doorState' "$OUTFILE") schlossstatus=$(jq '.[0].state.state' "$OUTFILE") batteriestatus=$(jq '.[0].state.batteryCharge' "$OUTFILE") echo "Nuki1:" echo "Tuere: $tuerstatus (2: geschlossen, 3: offen)" echo "Schloss: $schlossstatus (1: zugesperrt, 3: entsperrt)" echo "Akku: $batteriestatus%" tuerstatus=$(jq '.[1].state.doorState' "$OUTFILE") schlossstatus=$(jq '.[1].state.state' "$OUTFILE") batteriestatus=$(jq '.[1].state.batteryCharge' "$OUTFILE") echo " " echo "Nuki2:" echo "Tuere: $tuerstatus (2: geschlossen, 3: offen)" echo "Schloss: $schlossstatus (1: zugesperrt, 3: entsperrt)" echo "Akku: $batteriestatus%" #
Dies ergibt dann z.B. folgenden Output:
Nuki1: Tuere: 2 (2: geschlossen, 3: offen) Schloss: 1 (1: zugesperrt, 3: entsperrt) Akku: 100% Nuki2: Tuere: 2 (2: geschlossen, 3: offen) Schloss: 3 (1: zugesperrt, 3: entsperrt) Akku: 80%und die gesamten Statusinformationen der Nukis sind in recht gut lesbarer Form in den Files Nuki1.status und Nuki2.status enthalten.
~~~~~~~~~ Wird demnächst fortgesetzt ~~~~~~~~~~~~~~~~~