NEWS
Test Adapter Nuki-extended v2.0.x
-
Muss ich auch testen sofern ich den Opener installiert kriege (sollte Montag kommen).
Aber mal zwei anderen Fragen zu dem alten Adapter. Zum einen habe ich heute einen neuen Benutzer eingerichtet der auch schon einmal erfolgreich die Tür geöffnet habe. Das ganze kann ich auch auf der Adapter Webseite (Protokoll) sehen. Aber der Benutzer taucht nicht in den Objekten auf? Für mich und meine Frau gibt es extra Punkte unter den Objekt users. Wo könnte das Problem liegen. Synronisation steht auf 60 Sekunden. Callback ist auch eingerichtet?
Die andere Frage: Wie kann ich mittels Script ermitteln welcher Benutzer die Tür geöffnet hat? Ich würde gerne das wenn der heute angelegte Benutzer die Tür öffnet das ich dann ein paar bestimmte Lampen einschalte, Alarmanlage ausgeschaltet wird usw. Der Benutzer ist unser Haussitter wenn wir im Urlaub sind...
-
Habe nun doch mal eben den nuki-extended Adapter installiert. Aber auch hier taucht der Benutzer nicht bei den Usern auf? Nur meine Frau, ich und nuki_web...
-
Im Log erscheint bei mir immer:
getWebApi(): Error retrieving smartlocks: Cannot read property 'replace' of null
Habe den gleichen Token wie beim alten Adapter eingetragen. Der alte Adapter ist deaktiviert.
-
@cash sagte in [Neuer Adapter] Nuki:
Habe nun doch mal eben den nuki-extended Adapter installiert. Aber auch hier taucht der Benutzer nicht bei den Usern auf? Nur meine Frau, ich und nuki_web...
Erscheint der Benutzer auf der Nuki Web Seite unter https://web.nuki.io/de/#/admin/users ?
-
@Zefau Komisch. Dort ist er auch nicht. Habe dem Benutzer nicht erlaubt aus der Ferne zu öffen. In der App ist er aber unter Benutzer zu finden.
-
@cash sagte in [Neuer Adapter] Nuki:
Die andere Frage: Wie kann ich mittels Script ermitteln welcher Benutzer die Tür geöffnet hat? Ich würde gerne das wenn der heute angelegte Benutzer die Tür öffnet das ich dann ein paar bestimmte Lampen einschalte, Alarmanlage ausgeschaltet wird usw. Der Benutzer ist unser Haussitter wenn wir im Urlaub sind...
Der Callback selbst liefert diese Daten nicht. Mit der Nuki Web API bekommst du aber alle Events in den
log
State geschrieben. Den kannst du per Skript auswerten. -
@Zefau hast Du dazu schon eine Idee wo mein Problem sein könnte?
getWebApi(): Error retrieving smartlocks: Cannot read property 'replace' of null
Das Log bevor der Fehler immer und immer wieder kommt sieht erstmal ok aus:
Ein Problem habe ich auch mit einen Javascript:
Das Script soll einfach nur Testweise eine Push schicken wenn die Tür offen ist. Deshalb val: false.
Das gleiche Script nutze ich relativ häufig bei verschiedenen Adaptern. Aber hier reagiert es einfach nicht. Lasse ich das val: false komplett weg. Funktioniert das Script und reagiert entsprechend auf die Statusänderung. Als ob der Wert von den Objekt kein booelan wäre. Laut Objekt RAW ist es aber natürlich ein boolean.In der Endfassung soll das Script mich informieren wenn die Tür nach x Minuten immer noch offen steht.
-
@cash bzgl. des Fehlers installier mal bitte die aktuelle Entwickler-Version von Github drüber (siehe https://forum.iobroker.net/post/304268). Hoffe, dass es damit behoben ist.
-
@cash sagte in [Neuer Adapter] Nuki:
Das gleiche Script nutze ich relativ häufig bei verschiedenen Adaptern. Aber hier reagiert es einfach nicht. Lasse ich das val: false komplett weg. Funktioniert das Script und reagiert entsprechend auf die Statusänderung. Als ob der Wert von den Objekt kein booelan wäre. Laut Objekt RAW ist es aber natürlich ein boolean.
Das
val: false
musst du auch weglassen. Mitval: false
triggert das Skript ja nur, wennclosed
auffalse
geht. Die Funktionfunc_Nuki
fragt ja aber den Status vonclosed
ab und reagiert mit demIf
auffalse
, aber auch auftrue
.Sprich, wenn du
val: false
drin lässt, würde das Skript ja nie denelse
Pfad triggern (datrue
nie empfangen wird).Hast du den restlichen Teil des Skripts denn schon fertig?
Wie wäre es mit folgendem Vorschlag:
var logging = true; var debugging = false; var Dauer = 1; //nach x Minuten kommt eine Push das die Tür offen steht var timer = null; //var id_Status = 'nuki-extended.0.smartlocks.wohnungstür.state.closed'/*Indication if door is closed (boolean of doorState)*/ var id_Status = 'nuki2.0.door__wohnungstür.status.closed'/*Indication if door is closed (boolean of doorState)*/; var sendpush = true; function func_Nuki(){ var doorClosed = getState(id_Status).val; if(!doorClosed){ // Tür wurde geöffnet if(logging){ log('Die Wohnungstür ist offen. Starte Timer für '+Dauer +' Minuten'); timer = setTimeout(function() { // sende push if (sendpush) { // wie du das machst weiß ich nicht // per Telegram? } }, Dauer*60*1000); // Zeit in Millisekunden } } else{ // Tür wieder geschlossen if(logging){ log('Die Wohnungstür ist geschlossen.'); if (timer) clearTimeout(timer); } } } on({id: id_Status, ack: true}, func_Nuki);
-
@Zefau Ja den Scriptteil hatte ich schon geschrieben. Ebenfalls mit Timer. Sah fast 1:1 so wie Dein Vorschlag aus. Nur hatte ich nach Ablauf vom Timer nochmal den Wert abgefragt damit er nur die Push schickt wenn die Tür noch offen ist. Das umgehst du ja mit dem else Teile und dem clearTimeout.
Viele Wege führen nach Rom. Ich wollte halt nur auf false triggern weil mich das true nicht interessiert und ich eben so wenig wie möglich aber soviel wie nötig triggern will.
Mir war bewußt das der else Teil nie ausgeführt wird. War auch so gewollt und im ersten Script war es auch nicht drin. Aber als das mit dem val:false nicht klappte habe ich den else Teil eingefügt um zu sehen was überhaupt getriggert wird.
Neue Version installiert. Der Fehler schein weg dafür ein neuer:
nuki-extended.1 2019-09-29 10:35:32.373 warn Failed retrieving /list from Nuki Bridge with name Nuki Bridge!
-
Beim stoppen vom Adapter sieht es auch nicht so richtig gut aus:
nuki-extended.1 2019-09-29 10:37:45.590 info Listening for Nuki events on port 51988. nuki-extended.1 2019-09-29 10:37:43.946 info Polling Nuki Web API with a frequency of 60s. nuki-extended.1 2019-09-29 10:37:43.689 info starting. Version 2.0.0 in /opt/iobroker/node_modules/iobroker.nuki-extended, node: v8.14.0 host.iobroker_v2_19-05-19 2019-09-29 10:37:40.169 info instance system.adapter.nuki-extended.1 started with pid 4631 host.iobroker_v2_19-05-19 2019-09-29 10:37:40.047 info object change system.adapter.nuki-extended.1 host.iobroker_v2_19-05-19 2019-09-29 10:37:17.484 info instance system.adapter.nuki-extended.1 terminated with code 0 (OK) Caught 2019-09-29 10:37:17.484 error by controller[2]: (node:4553) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with Caught 2019-09-29 10:37:17.484 error by controller[2]: (node:4553) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejectin Caught 2019-09-29 10:37:17.484 error by controller[1]: at process._tickCallback (internal/process/next_tick.js:181:9) Caught 2019-09-29 10:37:17.484 error by controller[1]: at _combinedTickCallback (internal/process/next_tick.js:139:11) Caught 2019-09-29 10:37:17.484 error by controller[1]: at endReadableNT (_stream_readable.js:1064:12) Caught 2019-09-29 10:37:17.484 error by controller[1]: at Socket.emit (events.js:208:7) Caught 2019-09-29 10:37:17.484 error by controller[1]: at emitNone (events.js:111:20) Caught 2019-09-29 10:37:17.484 error by controller[1]: at Socket.socketOnEnd (_http_client.js:437:9) Caught 2019-09-29 10:37:17.484 error by controller[1]: at ClientRequest.emit (events.js:211:7) Caught 2019-09-29 10:37:17.484 error by controller[1]: at emitOne (events.js:116:13) Caught 2019-09-29 10:37:17.484 error by controller[1]: at Request.onRequestError (/opt/iobroker/node_modules/request/request.js:881:8) Caught 2019-09-29 10:37:17.484 error by controller[1]: at Request.emit (events.js:211:7) Caught 2019-09-29 10:37:17.483 error by controller[1]: at emitOne (events.js:116:13) Caught 2019-09-29 10:37:17.483 error by controller[1]: at self.callback (/opt/iobroker/node_modules/request/request.js:185:22) Caught 2019-09-29 10:37:17.483 error by controller[1]: at Request.RP$callback [as _callback] (/opt/iobroker/node_modules/request-promise-core/lib/plumbing.js:46:31) Caught 2019-09-29 10:37:17.483 error by controller[1]: at Request.plumbing.callback (/opt/iobroker/node_modules/request-promise-core/lib/plumbing.js:87:29) Caught 2019-09-29 10:37:17.483 error by controller[1]: at new RequestError (/opt/iobroker/node_modules/request-promise-core/lib/errors.js:14:15) Caught 2019-09-29 10:37:17.483 error by controller[1]: (node:4553) UnhandledPromiseRejectionWarning: RequestError: Error: socket hang up nuki-extended.1 2019-09-29 10:37:17.458 info Adapter stopped und unloaded. host.iobroker_v2_19-05-19 2019-09-29 10:37:17.433 info stopInstance system.adapter.nuki-extended.1 killing pid 4553 host.iobroker_v2_19-05-19 2019-09-29 10:37:17.433 info stopInstance system.adapter.nuki-extended.1 host.iobroker_v2_19-05-19 2019-09-29 10:37:17.433 info "system.adapter.nuki-extended.1" disabled nuki-extended.1 2019-09-29 10:37:17.435 info Adapter stopped und unloaded.
Nach dem Neustart des Adapters scheint er aber jetzt ruhig zu sein.
-
@cash vielen Dank für das Testen! Kannst du dir die aktuelle Version von Github installieren (
v2.0.0-rc.2
)? Danke!Changelog:
- added support for multiple devices (including Nuki Opener) on adapter web interface
- added option to not retrieve all information (by deselecting
config
orusers
) via Nuki Web API
-
@Zefau Kann ich machen. Wie kann ich den Adapter updaten ohne eine neue Instanz anzulegen? Wo ich heute Morgen die Version installiert habe, hat er eine neue Instanz angelegt und dort musste ich dann wieder Token, Api, IP usw neu eingeben....
-
@cash sagte in [Neuer Adapter] Nuki:
Wie kann ich den Adapter updaten ohne eine neue Instanz anzulegen?
Einfach im Ordner
/opt/iobroker
npm i https://github.com/Zefau/ioBroker.nuki2.git#nuki-extended
Dann sollte er die vorhandene Installation einfach überschreiben und die Konfiguration beibehalten.
-
@Zefau habe ich gemacht. Habe auch gesehen das er was installiert bzw aktualisiert hat aber eine Veränderung sehe ich aber beim Adapter nicht. Das heißt der Adapter sieht noch genauso aus wie vorher. Kann dort nichts zusätzlich einstellen wegen User oder so...
-
@cash sagte in [Neuer Adapter] Nuki:
Das heißt der Adapter sieht noch genauso aus wie vorher.
Stimmt, kannst du den Adapter mal uploaden? Also entweder über die GUI oder
iobroker upload nuki-extended
Dann sollte er bei Adapter-Start die Version
v2.0.0-rc.2
anzeigen. -
@Zefau said in [Neuer Adapter] Nuki:
iobroker upload nuki-extended
In der Gui sehe ich den Adapter unter "Adapter" nicht sondern nur unter Instanzen. Habe also iobroker upload gemacht. Sieht nicht gut aus:
Adapter wird nicht grün
-
@cash arg, ist ein neues Modul, was für den hashed token verwendet wird, was ich vergessen habe in den Dependencies anzugeben. Sorry.
Kannst du nochmal von Github nachinstallieren? Danke dir!
-
@Zefau Adapter wird nicht grün. Bleibt gelb. Log sieht gut aus:
Im Adapter selber habe ich jetzt die Optionen.
-
Nachtrag: Adapter nochmal gestoppt und wieder gestartet jetzt ist er grün