NEWS
[Neuer Adapter] Nuki
-
MOD Edit Jey Cee: Ab hier geht es um den Adapter von smaragdschlange. Crazy hat seinen Adapter nicht Veröffentlicht.
Da dies mein erster Adapter wird würde ich hier neben Infos zur Entwicklung auch meine Fragen festhalten wollen.
Über jeden Input bin ich dankbar.
Meine ersten Gedanken zu dem Thema:
Jede Nuki Bridge kann mit beliebig vielen Nuki Smartlocks verbunden sein.
Spontan würde ich sagen eine Instanz = eine Bridge +beliebig viele Smartlocks als Devices. Macht das Sinn?
Braucht ein Device zwingend Channels oder kann auch direkt States beinhalten?
Um die States zwischen ioBroker und Nuki zu syncen würde ich zwar Methoden verwenden:
1. Bridge Callback:
Beim einrichten des Adapters einen Callback bei der Nuki Bridge hinzufügen. Die Bridge führt dann einen Http Request durch sobald sich etwas an einem Smartlock tut.
2. Per List Command alle Infos zu gekoppelten Smartlocks auslesen
Wie stelle ich am Besten Funktion zur Verfügung? Als Funktion sehe ich aktuell nur die "LockAction", also öffnen/schließen (inkl. Varianten) des Smartlocks.
Einige Fragen werden sich wohl im Laufe des Programmierung von alleine ergeben. Ein paar "best practises" im Vorhinein sind aber bestimmt nicht verkehrt.
Grüße
Crazy
-
Jede Nuki Bridge kann mit beliebig vielen Nuki Smartlocks verbunden sein.
Spontan würde ich sagen eine Instanz = eine Bridge +beliebig viele Smartlocks als Devices. Macht das Sinn? `
Spontan denke ich ja
Braucht ein Device zwingend Channels oder kann auch direkt States beinhalten? `
Geht alles auch ohne Channels und auch ohne Devices. nur wenn DU Funktionen wie "deleteChannel" oder so verwenden willst musst Du bestimmte Regeln einhalten.
Bei Deinem Beispiel wäre es aber durchaus eine Idee im Adapternamespace einen key pro Nuki Smartlock als "Device" (alternativ als "Channel") als Typ anzulegen und darunter die States. für die Bridge könnte man auch ein Device bzw Channel anlegen.
Um die States zwischen ioBroker und Nuki zu syncen würde ich zwar Methoden verwenden:
1. Bridge Callback:
Beim einrichten des Adapters einen Callback bei der Nuki Bridge hinzufügen. Die Bridge führt dann einen Http Request durch sobald sich etwas an einem Smartlock tut.
2. Per List Command alle Infos zu gekoppelten Smartlocks auslesen `
Macht sinn. bedeutet aber das Du ggf einen eigenen HTTP-Server auf eigenem Port auf machen musst (oder dich an eine web Instanz dran hänge müsstest)?! Geht natürlich.Wie stelle ich am Besten Funktion zur Verfügung? Als Funktion sehe ich aktuell nur die "LockAction", also öffnen/schließen (inkl. Varianten) des Smartlocks. `
An Der Stelle für die einfache verwendung am besten states anlegen. ENtweder einen State der eine "Werteliste" kann wo man "0=öffnen, 1=schliessen" oder so machen kann. ist per Admin gut bedienbar, In Skripten muss man wissen was die Zahlen bedeuten.
Daher vllt besser einzelne States vom typ "Button" zum "öffnen", "schliessen" und was auch immer noch geht. Auf diese States dann im Adaoter Subscriben und per "OnStateChanged" (Du kennst viewtopic.php?f=24&t=6383&e=1&view=unread#p65807 ?) reagieren und das Device rausfinden und dann Aktion auslösen. Wenn Du das letzte tust ist garantiert ein "status" State noch sinnvoll wo drin steht wie der aktuelle Status ist.
Viel Spass und Erfolg!
Wenn Du was auf GitHub hast sag Bescheid und ich schaue mal drüber.
Ingo
-
Ich denke Folgende Struktur solle gut passen:
`nuki.0.bridge(channel) nuki.0.bridge.addressOrWhatEver (state) nuki.0.lock0 or lock` <address> `(channel) nuki.0.lock0.action (state) nuki.0.lock0.connected (state) nuki.0.lock0.batteryStatus (state)` und bitte 1 = OPEN, 0 = closed [https://github.com/ioBroker/ioBroker/bl … E_ROLES.md](https://github.com/ioBroker/ioBroker/blob/master/doc/STATE_ROLES.md) Und ja. Am besten ganz unabhängig von WEB Instanz zu sein und eigenen HTTP Server anschmeißen (port über 1000 bitte). Es geht sehr einfach. Mit der Möglichkeit den Port vom Anwender definierbar zu machen. (Wenn z.b. 2 bridges zuhause sind)</address>
-
Hi,
Ich werfe hiermit meinen Hut in den Ring zu unterstützen
Habe ebenfalls Nuki im Einsatz und kann gern testen oder gemeinsam über Problemlösungen nachdenken!
Ein Adapter wäre toll.
Gibt es schon einen neuen Stand?
-
Hi,
ich habe mit dem Adapter angefangen komme aber leider frühstens am Wochenende wieder dazu daran zu arbeiten.
Grüße
Crazy
-
Gibts schon was auf Github?
Bzw sag mal deinen GitHub Namen, Dann assigne ich Deinen User im Adapter-Requests-Issue
-
Hi,
einen Adapter programmieren würde ich selbst nicht hinbekommen,
aber vielleicht helfen ja meine Infos:
Habe auf der Nuki-Bridge folgenden Callback programmiert:
> {"callbacks": [{"id": 1, "url": "[http://iobroker:8082/setValueFromBody/javascript.0.nuki](http://iobroker:8082/setValueFromBody/javascript.0.nuki)"}]}
Dieser übergibt der HTTP-Post den Status des Schlosses an die Variable javascript.0.nuki (habe ich vorher händig als String im iobroker angelegt)
Voraussetzung dafür ist, dass der simple-Web-Adapter aktiviert ist.
Im iobroker habe ich dann ein Skript erstellt, welches den String nimmt, und den Status in die Variable javascript.0.nukistatus schreibt (als Zahl)
Damit kann ich das Schloss noch nicht steuern, ich habe allerdings den Status fest im iobroker drin (was mit persönlich erstmal ausreicht)
` > on({id: 'javascript.0.nuki', change: "ne"}, function (obj) {
var state = getState("javascript.0.nuki").val
var zustand = state.slice(31,32)
// console.log("Schlosszustand:" + zustand)
if (zustand==3) {console.log('Nebentür ist offen'); setState("javascript.0.nukistatus",false);}
if (zustand==1) {console.log('Nebentür ist zu'); setState("javascript.0.nukistatus",true);}
}); `
-
hmmm Crazy scheint seeeehr lange Wochenenden zu haben.
-
Hi,
den Adapter kann man ja mittlerweile installieren, aber bei mir macht er nichts und konfigurieren kann ich da auch nichts. Habe mir daher ein kleines Javascript geschrieben, das mit die Werte von Nuki ausliest, und mittels http-Request kann man das Nuki ja auch problem über ein Blockly steuern.
Legt euch einfach ein neues Javascript an, importiert das Script, tragt eure IP:Port der Bridge ein, den ID und das Token, und schon habt ihr im IOBroker die Werte von Nuki.
// Nuki Lockstate script by BerndHassenzahl@gmail.com // // erstmal alle Variablen definieren var request = require('request'); // hier braucht Ihr die IP eurer Bridge, die nukiID und das Token, ihr findet beides nur in der App, unter Verwaltung/Bridge..Hab mir n Wolf gesucht..( Developer auf ON! ) var url = 'http://IPEurerBridge:8080/lockState?&nukiId=xxxxxxxx&token=yyyyyyy'; var state; var stateName; var battery; var success; var idstate = 'Nuki.lockstate.state'; var idstateName = 'Nuki.lockstate.stateName'; var idbattery = 'Nuki.lockstate.batteryCritical'; var idsuccess = 'Nuki.lockstate.success'; // die objekte in IOBroker anlegen, zu finden unter javascript.0.Nuki.lockstate createState('Nuki.lockstate.state', { name: 'state', }); createState('Nuki.lockstate.stateName', { name: 'stateName', }); createState('Nuki.lockstate.batteryCritical', { name: 'batteryCritical', }); createState('Nuki.lockstate.success', { name: 'success', }); // jetzt die Funktion zum auslesen der json function lockstate() { request(url, function ( err, state, body){ if (err) { log("Fehler aufgetreten: " + err); } else { var obj = JSON.parse(body); // zuordnen der Variablen state = obj.state; stateName = obj.stateName; battery = obj.batteryCritical; success = obj.success; // Setzen der Werte in die Objekte setState(idstate, state); setState(idstateName, stateName); setState(idbattery, battery); setState(idsuccess, success); } }); } // und das machen wir jede Minute... schedule('*/1 * * * *', lockstate);
Das Script läuft bei mir jetzt seit 2 Monaten, das Nuki kann ich somit per Button, NFC, und natürlich per Alexa steuern.
-
Hi,
ich versuche mich auch seit einiger Zeit an der Erstellung eines Nuki-Adapters (https://github.com/smaragdschlange/ioBroker.nuki). Da es mein erster Adapter ist, ich mit JavaScript bisher noch nichts gemacht hab, und ich immer mal nur so für ein bis zwei Stunden in der Woche Zeit finde, geht es auch bei mir seeehr langsam vorwärts.
Ich stocke gerade bei der Einrichtung eines HTTP-Servers, wie Bluefox angeregt hatte. Ich denke, der Adapter könnte damit einen ersten nutzbaren Stand erhalten. Ich hab versucht, aus der simpleapi.js des Simple-API-Adapters schlau zu werden, bin aber etwas verloren.
Kann mich jemand hier vielleicht auf die richtigen/notwendigen Code-Schnippsel stoßen?
Danke im Voraus und Grüße,
Sven
-
Ich habe es jetzt per Javascript und Nuki Adapter eingefügt.
Bei Objekten bekomme ich auch angezeigt im welchen status Nuki ist.
Ich möchte über VIS erst einmal den status sehen geöffnet oder geschlossen.
Habe jetzt einiges versucht aber irgendwie klappt es nicht.
Hat jemand einen Tipp?
4720_nuki1.jpg
4720_nuki2.jpg -
Hallo thexbrain,
mein Adapter (https://github.com/smaragdschlange/ioBroker.nuki) ist zwar immer noch in Entwicklung, funktioniert bei mir aber schon sehr gut. Ich habe damit über ioBroker eine Verbindung zu meinem Fingerabdruck-Scanner hergestellt und öffne/schließe meine Haustür damit. Der Callback funktioniert nun auch einwandfrei, sodass immer der aktuelle Status angezeigt wird, selbst, wenn die Tür manuell geöffnet wird. In vis hab ich ihn noch nicht ausprobiert, aber die Objekte dürften sich dort jetzt abbilden lassen, da ich nun kompatible Statuseigenschaften nutze.
Ich hoffe, dass Du und vielleicht auch andere den Adapter nützlich finden, und würde mich sehr über Testergebnisse und Verbesserungsvorschläge freuen. Allein findet man ja doch meistens nicht jeden Bug…
Gruß,
Sven
-
Nuki hab ich heute bestellt und sobald es angekommen ist installiere ich deinen Adapter. Ich hab mir auch das https://nuki.io/de/shop/nuki-keypad/ bestellt. Ich mach Meldung sobald ich Fragen habe.
-
Hi,
ich hab ein Nuki seit März im Einsatz, und mit Svens Adapter funktioniert es super zuverlässig!
Habe mir ein NFC - NodeMCU Modul gemacht:
( genauer, PN532, per I2C an WemosD1Mini, Software ESPEASY R1.48, sendet per MQTT an iobroker, Gehäuse dafür selbst gedruckt und der Wemos ist in der neben der Tür vorhandenen Stromverteilung verschwunden, nur das Gehäuse mit dem PN532 hab ich unten drunter geklebt, so fällt es nicht so auf, ist aber gut zugänglich)
Damit steuere ich vom iobroker aus dann das Nuki ( am Anfang per http-request, jetzt über den Adapter). Die NFC-Token gibts günstig aus China als Chipkarte oder Schlüsselanhänger.
Was noch ansteht, ist das in VIS einzubinden, habs zur Zeit nur im Habpanel.
-
Hi,
hab mittlerweile auch den Adapter von smaragdschlange installiert (inkl. Callback), funktioniert einwandfrei, vielen Dank.
Will mir in nächster Zeit ein zweites Nuki-Schloss dazu installieren, das sollte ja kein Problem sein, oder?
VG
-
Ich hab den Adapter gerade eben installiert, hab mich zuerst selber mit dem Token vera…. Konfiguration wurde nicht gespeichert. Aber beim zweiten Versuch hats geklappt. Jetzt stell ich mir noch pro Stockwerk einen Xiaomi Taster hin mit dem ich die openAction starte und Sesam öffne dich legt los. Ich hab leider keine Tür mit einem elektrischen Türöffner.
Jetzt warte ich auf November bis das Keypad kommt und dann kann ich von außen ohne Handy die Tür öffnen. Und vielleicht wird die Eingabe am Keypad auch im Adapter angezeigt... Falls sowas überhaupt möglich ist.
Vielen Dank für den Adapter!
-
ich hab mir mit einem xiaomi taster
Schalter Wireless Xiaomi für Klimaanlage/Projektor/Ventilator/ORIGINAL SMARTP… https://www.amazon.de/dp/B079L4H3BM/ref ... QBbVCN7JWR via @amazon
und einem Script auch einen Zugang gemacht, wenn ich in einer bestimmten Reihenfolge und zeitlichen Abständen Einfachklick, Doppelklick und Longclick betätige, dann öffnet der iobroker das Nuki
... aber fragt nicht, ist wirklich nur für den Notfall, wenn man garnix dabei hat..
-
ich hab mir mit einem xiaomi taster
Schalter Wireless Xiaomi für Klimaanlage/Projektor/Ventilator/ORIGINAL SMARTP… https://www.amazon.de/dp/B079L4H3BM/ref ... QBbVCN7JWR via @amazon
und einem Script auch einen Zugang gemacht, wenn ich in einer bestimmten Reihenfolge und zeitlichen Abständen Einfachklick, Doppelklick und Longclick betätige, dann öffnet der iobroker das Nuki
... aber fragt nicht, ist wirklich nur für den Notfall, wenn man garnix dabei hat.. `
Das ist cool.
Kannst du mir das Script zur Verfügung stellen?
-
@ilovegym du schreibst doch von NFC Adapter? Oder ist der Xiaomi ein Backup?
Sollte das Nuki Keypad im iobroker funktionieren wären darüber noch andere Dinge machbar. Bin gespannt was smaragdschlange dazu sagt.
-
Ja, habe und nutze zu 80% den NFC Zugang, ansonsten die App oder den Xiaomi Taster.
Ich glaube nicht, dass Nuki das Keypad so gestalten wird, dass man es in iobroker "sehen"-nutzen kann… wird wie bei der App, einfach ein Bluetooth-Zugriff direkt auf das Schloss sein. Damit bekommt der iobroker nix davon mit.
Sonst muesste ja jeder der das Keypad hat, auch eine Bridge haben...