Nach langem Suchen und Diskussionen auf dem Nuki Developer Forum habe ich ich doch eine Lösung gefunden, die API von Nuki in Homey zu nutzen:
- Nuki Web in der Nuki-App anschalten
- Bei Nuki Web registrieren/anmelden: https://web.nuki.io/
- Die App “Webhook” für Homey installieren: Webhooks App für Homey | Homey. Die braucht ihr, weil ich es nicht geschafft habe, dem Versand des Webhooks von Nuki einen/mehrere Tags mitzugeben. Ihr bekommt also genau einen Webhook, egal was das Schloss macht. Diese App hier kann die Infos im Webhook auslesen. Das geht mit dem systemeigenen Trigger “Logik → Webhook eingegangen mit Tag” genau nicht (oder ich checke es nicht).
- In der App unter Settings die Webhook-URL kopieren und sich einen Event-Namen überlegen und diese an der URL ergänzen
- Auf Nuki Web unter Menüpunkt “API” eine Advanced API beantragen. Hier die Webhook-URL aus Schritt 4 reinkopieren. Als Grund habe ich “Smart Home” angegeben und als Homepage die einschlägige Webseite der Diskussion im Nuki-Forum (Help for Webhooks to Homey - #6 by poonam.chavan - Questions - Nuki Developers). Nicht abschrecken lassen, dass das hier eigentlich für Unternehmen gedacht ist. Es funktioniert auch für Enduser.
- Nachdem Nuki die API eingerichtet hat (dauerte 2 Tage), geht iht auf Nuki Web auf den jetzt sichtbaren Reiter “Nuki Advanced API Integration”. Hier könnt ihr die Webhook-URL zu Homey bei Bedarf nochmal anpassen und auswählen, welche Infos ihr von Nuki haben wollt. Mir reichte “Device Logs”.
- Das könnt ihr gleich testen. Schließt/Öffnet Nuki und seht, ob der Webhook erfolgreich geschickt wird.
- Zurück zu Homey und einen Flow mit der App “Webhook” bauen (Wenn). Jetzt kommt der Webhook von Nuki Web bei Homey an.
- Um spezifische Reaktionen auszulösen, muss der Webhook ausgelesen werden. Dieser besteht aus Json. Also braucht man eine weitere App, die die Informationen in dem Json auslesen kann. Das ist “Json Handler”: JSON Handler App für Homey | Homey
- Leider habe ich keine Dokumentation bei Nuki gefunden, aus der man schlau wird, welche Aktion mit welcher Variable quittiert wird. Um das herauszufinden, liest man auf Nuki Web einfach die gesendeten Webhook aus. Interessant erscheinen mit vor allem “name”, “action”, “source” und “state”. Ich kann überhaupt nicht json programmieren und habe einfach Foren durchsucht und ausprobiert. Da jede Variable nur 1 x vorkommt, reicht dafür “$…name”. Daraus lassen sich denn jeweils Flows bauen, siehe Screenshot:
Entsprechend habe ich der Diskussion hier einen neuen Namen gegeben, damit man das besser findet.
