[NUKI Smartlock] Neuer Thread

Begonnen von CoolTux, 26 November 2021, 20:05:55

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo,

Ich mache mal diesen neuen Thread auf, da der alte schon recht voll ist. Hier könnt ihr im alten Thread stöbern.

Ich habe den Module ein komplettes rewrite gegönnt. Sie folgen nun der neuen Analogie die Module unter lib/ ab zulegen. Desweiteren habe ich versucht sie in "Schön" zu bringen.
In dieser Version ist auch die Unterstützung für das neue SmartLock 3.0 enthalten.
Ich werde versuchen in laufe der Zeit die Module auf die aktuelle API Version von Nuki zu bringen. Eine kleine Liste der Features:

  • automatisches erkennen der Bridge und aktivieren der API über das Bridge Modul
  • automatisches auslesen des API Token und einbinden in FHEM
  • aktivieren/deaktivieren der Veröffentlichung der lokalen Bridge IP und Bridge Port unter der Discovery URL

Ihr könnt bereits eine erste Version Testen. Ich würde mich über 2-3 Leute sehr freuen. Ich habe bereits einige Tests erfolgreich absolvieren können.
Wer testen möchte bitte täglich ins Log schauen ob alles sauber gelaufen ist.

Ihr könnt die folgende URL als Update Repo für update hinzufügen.

update add https://git.cooltux.net/FHEM/mod-NUKI/raw/branch/devel/controls_NukiSmart.txt

dann macht ihr ein

update

und vor dem neustart löscht ihr bitte alle Reading der NUKIBridge und NUKIDevice Devices in FHEM

deletereading <NUKIBRIDGE> .*
deletereading <NUKIDEVICE> .*


danach dann

shutdown restart


Viel Spaß beim testen
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Wer sich für die Entwicklung und/oder deren Fortschritt interessiert kann sich gerne hier umsehen

https://git.cooltux.net/FHEM/mod-NUKI/milestones


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

enno

Moin CoolTux,

habe wie oben beschrieben bei mir eingebaut. Nach update habe ich folgende Meldungen im Log:

l2021.11.27 09:32:44 1: FHEM::Meta::__GetUpdatedata: ERROR: FHEM/73_NUKIBridge.pm belongs to source repository "fhem". Ignoring identical file name from source repository NukiSmart
2021.11.27 09:32:44 1: FHEM::Meta::__GetUpdatedata: ERROR: FHEM/74_NUKIDevice.pm belongs to source repository "fhem". Ignoring identical file name from source repository NukiSmart


Anlegen der NUKIBridge (NUKI der ersten Generation) klappt ohne Probleme und NUKIDevice wird automatisch erzeugt. Ich beobachte weiter.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

CoolTux

Zitat von: enno am 27 November 2021, 10:00:39
Moin CoolTux,

habe wie oben beschrieben bei mir eingebaut. Nach update habe ich folgende Meldungen im Log:

l2021.11.27 09:32:44 1: FHEM::Meta::__GetUpdatedata: ERROR: FHEM/73_NUKIBridge.pm belongs to source repository "fhem". Ignoring identical file name from source repository NukiSmart
2021.11.27 09:32:44 1: FHEM::Meta::__GetUpdatedata: ERROR: FHEM/74_NUKIDevice.pm belongs to source repository "fhem". Ignoring identical file name from source repository NukiSmart


Anlegen der NUKIBridge (NUKI der ersten Generation) klappt ohne Probleme und NUKIDevice wird automatisch erzeugt. Ich beobachte weiter.

Gruss
  Enno

Das ist nicht weiter schlimm. Wieso das als ERROR ins Meta von Julian eingebaut wurde verstehe ich ehrlich gesagt nicht. Das verschwindet wieder wenn Du das Repo später wieder entfernst. Also alles gut.

Danke Dir fürs testen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

the-vince

#4
Moin,

bei mir funktioniert es auch. Vielen Dank fürs implementieren.
EDIT: Was mir aufgefallen ist, das Schloss ist über die Bridge angebunden, steht aber in FHEM mit dem reading für paired = false drin. Hat sich da was geändert in der API? Meines Wissens sind ja nur die Devicetypes dazugekommen... https://developer.nuki.io/page/nuki-bridge-http-api-1-13/4/

Gibt es schon Aussagen zum Pro bezüglich Batterielaufzeit? Ich habe jetzt natürlich viel mit der API gespielt und einige "unnötige" Schließvorgänge angetriggert, aber aktuell sehe ich da keinen Monat Laufzeit.
Schloss geladen am 22.11 -> 100% stand 27.11 -> 42% Akku. Meldungen im Batteriebericht sind: viele Schließvorgänge und viel Bluetooth-Aktivität.
Mal abwarten, vielleicht brauch es ein zwei Zyklen bis es sich einpendelt.
Wie lange hält das Nuki 2.0 mit FHEM Integration?

CoolTux

Zitat von: the-vince am 27 November 2021, 12:40:53
Moin,
bei mir funktioniert es auch. Vielen Dank fürs implementieren.
EDIT: Was mir aufgefallen ist, das Schloss ist über die Bridge angebunden, steht aber in FHEM mit dem reading für paired = false drin. Hat sich da was geändert in der API? Meines Wissens sind ja nur die Devicetypes dazugekommen... https://developer.nuki.io/page/nuki-bridge-http-api-1-13/4/

Ich muss gestehen das ich gar nicht weiß ob es jemals so war. Da es sich aber um ein Schloss Attribut handelt würde ich sagen es geht da mehr um so Sachen wie den Door Sensor. Denn der wird sicherlich direkt gepeert werden mit dem Schloß.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich habe soeben eine Version ins devel Repo gepusht mit welcher das Discovery nun gehen sollte. Auf Grund meiner Umgebung musste ich einiges simulieren. Bilde mir aber ein das ich es hinbekommen habe.
Vielleicht mag ja einer mal testen in einer Testumgebung. Ihr müsst sowohl die Nuki Devices wie auch die Nuki Bridge löschen.

Danach legt Ihr die Bridge ohne Host und Token an, also:

define myNukiBridge NUKIBridge


Und dann heißt es warten und genau den state beobachten und durchlesen. Wenn ein ganz langer Text da erscheint müsst Ihr zur Bridge gehen und einmal kurz auf den Knopf drücken.




Grüße
Marko
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

enno

define myNukiBridge NUKIBridge und dann schnell genug an der Bridge den Button drücken wenn sie blinkt. Beim ersten Versuch war ich zu langsam. Dann klappt es. Im reading "paired" steht jetzt true.

Frage zum Webhook: Denn gebe ich im Attribut weiterin manuell ein, oder findet er das auch sebst?

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

CoolTux

Zitat von: enno am 27 November 2021, 19:58:27
define myNukiBridge NUKIBridge und dann schnell genug an der Bridge den Button drücken wenn sie blinkt. Beim ersten Versuch war ich zu langsam. Dann klappt es. Im reading "paired" steht jetzt true.

Frage zum Webhook: Denn gebe ich im Attribut weiterin manuell ein, oder findet er das auch sebst?

Gruss
  Enno

Der muss weiterhin manuell vergeben werden. Das Modul kann nicht wissen welche FHEMWEB Instanz Du nehmen möchtest.
Freut mich das es funktioniert. Das mit dem paired ist seltsam.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich habe heute durch Zufall eine neue Türgegensprechanlage bekommen, welche Nuki Opener kompatibel ist. Der Opener kommt am Freitag. Ich werde also nächste Woche berichten können wie gut das ganze dann so läuft.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

BM030

Hi,

Hab Dein Modul heute mit dem Schloss 3.0 erweitert, vorher hatte ich nur einen Opener.
Bisher funktioniert alles super, hatte nur vergessen, die Bridge und das Schloss zu verbinden, da ich im fhem schon das Schloss angezeigt bekommen hatte, konnte es dann nur nicht steuern ;-)

Nighthawk

Hallo Marko,

wird das Modul in Verbindung mit Nuki 2 nicht mehr optimiert?
Bei mir, wie bei einigen Anderen hier, besteht das Problem dass das Schloss seinen Zustand im FHEM nur dann ändert, wenn man es über FHEM bedient.
Bedient man das Schloss über die App, oder wird es durch Auto-open bedient, so bekommt das FHEM nichts davon mit.
Ich wär für eine Optimierung wirklich dankbar und würde mich auch für Betatests anbieten.

Danke und Gruß
Alex

CoolTux

Zitat von: Nighthawk am 04 Dezember 2021, 20:57:18
Hallo Marko,

wird das Modul in Verbindung mit Nuki 2 nicht mehr optimiert?
Bei mir, wie bei einigen Anderen hier, besteht das Problem dass das Schloss seinen Zustand im FHEM nur dann ändert, wenn man es über FHEM bedient.
Bedient man das Schloss über die App, oder wird es durch Auto-open bedient, so bekommt das FHEM nichts davon mit.
Ich wär für eine Optimierung wirklich dankbar und würde mich auch für Betatests anbieten.

Danke und Gruß
Alex

Hallo Alex,

Da muss eigentlich nichts optimiert werden meines Wissens nach. Selbst mein 1er lief noch bis vor ein paar Tagen ohne Probleme. Wenn Du die aktuelle SVN Version hast müsste eigentlich schon im Logfile bei ein Eintrag sein wie

2021.12.01 07:34:46 3: NUKIBridge WEBHOOK (NukiBridge) - Received webhook for matching NukiId at device NukiBridge


Bedeutet das der Callback sauber funktioniert. Tut er das bei Euch nicht dann macht mal ein list callback und löscht alle dort enthaltenen Callbacks über die Callback id. Danach Callback mittels Attribut neu anlegen lassen. Dazu einfach noch mal auf attr webhookFWinstance klicken im Webinterface.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

the-vince

Moin CoolTux,

ich habe nach eine update all und einem restart jetzt ein Bug gefunden. Denke ich.
Das Smartlock3pro erhält jetzt immer im Wechsel das korrekte Reading (smartlock3) und dann das alte Reading (smartlock), inklusive falscher Name als Reading.
Der log sieht ein bisschen so aus als wäre ständig das auto discovery am werk.
Entsprechend lassen sich keine Befehle mehr ausführen. Ein Verbose 5 liefert einen Haufen:
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - 2 == 2 and 2 > 0
sowie:
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - return msg: {"deviceType": 4, "nukiId": XXX, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}} and tail: ]
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - Nach Sub: Laenge JSON: 272 Content: {"deviceType": 4, "nukiId": XXX, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}} Tail: ]
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - Decoding JSON message. Length: 272 Content: {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}}
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - Vor Sub: Laenge JSON: 272 Content: {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}} Tail: ]
2021.12.05 10:37:07 5: NukiBridge: dispatch {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}}
2021.12.05 10:37:07 5: NUKIDevice (NukiBridge) - Parse with result: {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}}
2021.12.05 10:37:07 5: NUKIDevice (Home) - lockAction readings set for Home
2021.12.05 10:37:07 4: NUKIDevice (Home) - find logical device: Home

und dann diese Log Einträge:
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - return msg: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false} and tail: , {"deviceType": 2, "nukiId": xxx, "name": "Nuki_Opener_xxx", "rssi": -46, "paired": true}]}
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Decoding JSON message. Length: 93 Content: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false}
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Vor Sub: Laenge JSON: 93 Content: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false} Tail: , {"deviceType": 2, "nukiId": xxx, "name": "Nuki_Opener_xxx", "rssi": -46, "paired": true}]}
2021.12.05 10:36:37 5: NukiBridge: dispatch {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false}
2021.12.05 10:36:37 5: NUKIDevice (NukiBridge) - Parse with result: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false}
2021.12.05 10:36:37 5: NUKIDevice (Home) - lockAction readings set for Home
2021.12.05 10:36:37 4: NUKIDevice (Home) - find logical device: Home
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Garbage character before message: ,
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Garbage character before message: 


Sieht also ein bisschen so aus als würde die Bridge ein zweites Gerät mit selber ID bekanntgeben?! Ich weiß mir da aber nicht so richtig zu helfen.

CoolTux

Zitat von: the-vince am 05 Dezember 2021, 10:59:02
Moin CoolTux,

ich habe nach eine update all und einem restart jetzt ein Bug gefunden. Denke ich.
Das Smartlock3pro erhält jetzt immer im Wechsel das korrekte Reading (smartlock3) und dann das alte Reading (smartlock), inklusive falscher Name als Reading.
Der log sieht ein bisschen so aus als wäre ständig das auto discovery am werk.
Entsprechend lassen sich keine Befehle mehr ausführen. Ein Verbose 5 liefert einen Haufen:
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - 2 == 2 and 2 > 0
sowie:
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - return msg: {"deviceType": 4, "nukiId": XXX, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}} and tail: ]
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - Nach Sub: Laenge JSON: 272 Content: {"deviceType": 4, "nukiId": XXX, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}} Tail: ]
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - Decoding JSON message. Length: 272 Content: {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}}
2021.12.05 10:37:07 5: NUKIBridge (NukiBridge) - Vor Sub: Laenge JSON: 272 Content: {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}} Tail: ]
2021.12.05 10:37:07 5: NukiBridge: dispatch {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}}
2021.12.05 10:37:07 5: NUKIDevice (NukiBridge) - Parse with result: {"deviceType": 4, "nukiId": xxx, "name": "Home", "firmwareVersion": "3.0.40", "lastKnownState": {"mode": 2, "state": 3, "stateName": "unlocked", "batteryCritical": false, "batteryCharging": false, "batteryChargeState": 62, "timestamp": "2021-12-05T08:40:45+00:00"}}
2021.12.05 10:37:07 5: NUKIDevice (Home) - lockAction readings set for Home
2021.12.05 10:37:07 4: NUKIDevice (Home) - find logical device: Home

und dann diese Log Einträge:
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - return msg: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false} and tail: , {"deviceType": 2, "nukiId": xxx, "name": "Nuki_Opener_xxx", "rssi": -46, "paired": true}]}
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Decoding JSON message. Length: 93 Content: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false}
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Vor Sub: Laenge JSON: 93 Content: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false} Tail: , {"deviceType": 2, "nukiId": xxx, "name": "Nuki_Opener_xxx", "rssi": -46, "paired": true}]}
2021.12.05 10:36:37 5: NukiBridge: dispatch {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false}
2021.12.05 10:36:37 5: NUKIDevice (NukiBridge) - Parse with result: {"deviceType": 0, "nukiId": xxx, "name": "Nuki_xxx", "rssi": -43, "paired": false}
2021.12.05 10:36:37 5: NUKIDevice (Home) - lockAction readings set for Home
2021.12.05 10:36:37 4: NUKIDevice (Home) - find logical device: Home
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Garbage character before message: ,
2021.12.05 10:36:37 5: NUKIBridge (NukiBridge) - Garbage character before message: 


Sieht also ein bisschen so aus als würde die Bridge ein zweites Gerät mit selber ID bekanntgeben?! Ich weiß mir da aber nicht so richtig zu helfen.

;D ;D
Du hast da ein Bug gefunden und der ist auch schon gemeldet worden. Allerdings ist das kein Bug im Modul sondern leider in der API der Nuki Bridge.
Es gibt unterschiedliche Ausgaben für die Endpunkte /list und /info bei den Smartlock 3.0 und 3.0 Pro Geräten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net