[ NUKI Smartlock ] 73_NUKIBridge.pm und 74_NUKDevice.pm

Begonnen von CoolTux, 18 Juli 2016, 23:50:11

Vorheriges Thema - Nächstes Thema

Skjall

#1305
Internals:
   DEF        45956XXXX IODev=Connector_NUKIBridge
   FUUID      5d8b74e0-f33f-6138-f061-7dd08c699805XXXX
   IODev      Connector_NUKIBridge
   NAME       21000.Opener.1
   NR         1628
   NUKIID     45956XXXX
   STATE      Initialized
   TYPE       NUKIDevice
   VERSION    0.6.4
   WEBHOOK_REGISTER unregistered
   READINGS:
     2019-09-28 13:29:41   name            Nuki_Opener_1B6XXXXA
     2019-09-28 13:29:41   paired          1
     2019-09-28 13:29:41   rssi            -75
   helper:
Attributes:
   IODev      Connector_NUKIBridge
   icon       1_nuki_bridge
   room       1.21301_Entré

CoolTux

Da Du Entwickler bist schau mal bitte an welcher Stelle Du am besten den json String Dir als Response ausgeben lassen kannst. Bin leider gerade unterwegs. Wäre interessant zu sehen was da ausgegeben wird.
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

Skjall

Hi,

bei den Status-Updates kommen nur die Verbindungsdaten. "deviceType: 2" ist die Identifikation für den Opener.

2019.09.29 11:04:51 5: NUKIBridge (Connector_NUKIBridge) - Response JSON: {"bridgeType": 1, "ids": {"hardwareId": 11908xxxx, "serverId": 10626xxxx}, "versions": {"firmwareVersion": "1.13.1", "wifiFirmwareVersion": "1.2.0"}, "uptime": 317002, "currentTime": "2019-09-29T09:04:50+00:00", "serverConnected": true, "scanResults": [{"deviceType": 2, "nukiId": 45956xxxx, "name": "Nuki_Opener_1B6xxxxA", "rssi": -73, "paired": true}, {"deviceType": 0, "nukiId": 36309xxxx, "name": "Nuki_15A4xxxx", "rssi": -79, "paired": true}]}
2019.09.29 11:04:51 4: NUKIDevice (21000.Opener.1) - Received scanResults for matching NukiID 459563082 at device 21000.Opener.1
2019.09.29 11:04:51 5: NUKIDevice (21000.Opener.1) - Parse with result: {"rssi":-73,"name":"Nuki_Opener_1B64604A","paired":true}
2019.09.29 11:04:51 5: NUKIDevice (21000.Opener.1) - parse status message for 21000.Opener.1
2019.09.29 11:04:51 5: NUKIDevice (21000.Opener.1) - readings set for 21000.Opener.1


Wenn ich einen befehl (z.B. Unlock) absetzen will kommt ein 404 vom Device

2019.09.29 11:07:14 4: NUKIDevice (21000.Opener.1) - NUKIDevice_ReadFromNUKIBridge check Bridge connected
2019.09.29 11:07:14 4: NUKIDevice (21000.Opener.1) - NUKIDevice_ReadFromNUKIBridge Bridge is connected call IOWrite
2019.09.29 11:07:15 5: NUKIDevice (21000.Opener.1) - Parse with result: HTTP 404 Not Found
2019.09.29 11:07:15 3: NUKIDevice (21000.Opener.1) - invalid json detected: HTTP 404 Not Found





CoolTux

Dann wird es wohl noch nicht in der Bridge API enthalten sein.
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

Skjall

Das wäre ja schon komisch, angesichts der Tatsache das die Readings und Actions in der API-Doku vom Mai 2019 stehen.

https://developer.nuki.io/page/nuki-bridge-http-api-190/4/#heading--modes

CoolTux

Und ist denn die API bereits in Deiner Bridge FW implementiert? Eine Beschreibung einer neuen API Version ist ja noch keine Implementierung.
Aber wenn ich die Zeit finde werde ich mal die neuen Informationen zu aktuellen API implementieren.
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

Claus1985

Hi Zusammen,

habe ein Problem mit meiner Installation des Smartlocks in FHEM.
Ich erhalte alle Werte des Smartlocks aktualisiert, nur den Status (locked / unlocked),
aktualisiert er nicht wenn es Änderungen über die Nuki App oder manuell gab.

Ich habe die beiden Attribute wie im Wiki beschrieben am Device eingefügt:
attr NUKIDevice355732332 webhookFWinstance WEB
attr NUKIDevice355732332 webhookHttpHostname 192.168.0.32

Es wird in der Callback List auch mit der ID 0 richtig angezeigt.

Habt Ihr eine Idee wo mein Denkfehler liegt?

Danke und Gruß,

Claus

CoolTux

Instanz WEB ist weder HTTPS noch Passwort geschützt?
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

Claus1985

Hat Passwort Schutz. Wie kann ich das mit eingeben?

CoolTux

Zitat von: Claus1985 am 02 Oktober 2019, 15:01:28
Hat Passwort Schutz. Wie kann ich das mit eingeben?

Gar nicht. Das geht nicht. Am besten eine eigene web Instanz für das Nuki machen.
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

Claus1985

Super, danke für den Tipp hat einwandfrei funktioniert :-)

Skjall

Moin zusammen,

So, ich will hier noch mal einsteigen da ich jetzt auch die Zeit und Muße hatte. Ich konnte mich jetzt selbst etwas mit der API auseinandersetzen. Die API entspricht in der Tat der Doku. Der Trick ist, dass im API-Call die Variable "deviceType" auf 2 (Opener) mit übergeben werden muss. Sonst ist sie per default 0 (SmartLock) und er hat nunmal kein SmartLock mit der nukiId des Openers. Logisch eigentlich obwohl ich ein 404 als "Device not found" etwas unglücklich finde... aber gut.
Das Modul müsste daher dahingehend angepasst werden, dass
- Der deviceType beim "info", "list" und Callback mit in die Internals übernommen wird
- Der mode beim "list", "lockState" und Callback mit in die Readings übernommen wird
- Beim Call von "lockAction", "lockState" und "unpair" der deviceType mit angehängt wird.
- Das Mapping für lockState und mode je nach deviceType individualisiert wird.

Hier nochmal die JSONs für verschiedene Calls:

/info?token=zzzzzz

{
   "bridgeType":1,
   "ids":{
      "hardwareId":XXXXXXXXX,
      "serverId":XXXXXXXXX
   },
   "versions":{
      "firmwareVersion":"1.13.1",
      "wifiFirmwareVersion":"1.2.0"
   },
   "uptime":4204,
   "currentTime":"2019-10-05T18:20:14+00:00",
   "serverConnected":true,
   "scanResults":[
      {
         "deviceType":2,
         "nukiId":XXXXXXXXX,
         "name":"Nuki_Opener_XXXXXXXXX",
         "rssi":-72,
         "paired":true
      },
      {
         "deviceType":0,
         "nukiId":XXXXXXXXX,
         "name":"Nuki_XXXXXXXXX",
         "rssi":-69,
         "paired":true
      }
   ]
}


/list?token=zzzzzz

[
   {
      "deviceType":0,
      "nukiId":XXXXXXXXX,
      "name":"Wohnung",
      "firmwareVersion":"2.5.4",
      "lastKnownState":{
         "mode":2,
         "state":3,
         "stateName":"unlocked",
         "batteryCritical":false,
         "timestamp":"2019-10-05T17:10:39+00:00"
      }
   },
   {
      "deviceType":2,
      "nukiId":XXXXXXXXX,
      "name":"Haus",
      "firmwareVersion":"1.1.10",
      "lastKnownState":{
         "mode":2,
         "state":1,
         "stateName":"online",
         "batteryCritical":false,
         "timestamp":"2019-10-05T17:10:44+00:00"
      }
   }
]


/lockAction?token=zzzzzz&nukiId=XXXXXXXXX&action=3&deviceType=2

{
   "success":true,
   "batteryCritical":false
}


/lockState?token=zzzzzz&nukiId=XXXXXXXXX&deviceType=2

{
   "mode":2,
   "state":1,
   "stateName":"online",
   "batteryCritical":false,
   "success":true
}


Viele Grüße und schonmal ein Vorschuss-Danke an CoolTux :)

Jan

CoolTux

Hallo Jan,

Ich werde schauen das ich mich da nächste Woche mal ran setze.


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

PCuser66

Hallo zusammen,
seit einer Woche habe ich ein Nuki bestehend aus dem SmartLock mit Bridge in Betrieb. Diese habe ich auch in Fhem eingebunden Dank der beiden Module (besten Dank dafür). Leider habe ich in Fhem aber mit der Bridge Probleme. Die Bridge ist ca. ¾ des Tages in ,,not connected". Über Die App ist die Bridge die ganze Zeit erreichbar und das SmartLock lässt sich darüber bedienen.

Hier ein List der Bridge:
Internals:
   BRIDGEAPI  1.6
   DEF        192.168.178.92 xxxxxx
   FUUID      5d8b89bd-f33f-d232-fe0a-e774b888ef0e3448
   HOST       192.168.178.92
   NAME       NukiBridge
   NR         486
   PORT       8080
   STATE      not connected
   TOKEN      xxxxxx
   TYPE       NUKIBridge
   VERSION    0.6.4
   READINGS:
     2019-09-25 17:37:33   0_name          Wohnung
     2019-09-25 17:37:33   0_nukiId        xxxxxxx
     2019-10-06 09:40:13   bridgeType      Hardware
     2019-10-06 04:34:19   currentTime     2019-10-06T02:34:19+00:00
     2019-10-06 09:40:13   firmwareVersion 2.2.13
     2019-10-06 09:40:13   hardwareId      xxxxxx
     2019-10-06 09:44:07   lastError       connect to http://192.168.178.92:8080 timed out
     2019-10-06 09:40:13   serverConnected true
     2019-10-06 09:40:13   serverId        xxxxxx
     2019-09-25 17:37:33   smartlockCount  1
     2019-10-06 09:44:07   state           not connected
     2019-10-06 09:40:13   uptime          15
     2019-10-06 09:40:13   wifiFirmwareVersion 2.0.0


List SmartLock:
Internals:
   DEF        441770669 IODev=NukiBridge
   FUUID      5d8b89bd-f33f-d232-a7e6-0a54ad334bcde350
   IODev      NukiBridge
   NAME       NUKIDevice441770669
   NR         487
   NUKIID     441770669
   STATE      unlocked
   TYPE       NUKIDevice
   VERSION    0.6.4
   WEBHOOK_COUNTER 12
   WEBHOOK_LAST 2019-10-07 15:28:51
   WEBHOOK_PORT 8083
   WEBHOOK_REGISTER sent
   WEBHOOK_URI /fhem/NUKIDevice
   WEBHOOK_URL http://192.168.178.12:8083/fhem/NUKIDevice-441770669
   READINGS:
     2019-10-07 15:28:51   battery         ok
     2019-10-07 15:28:51   batteryCritical false
     2019-10-07 15:28:51   batteryState    ok
     2019-10-07 15:28:51   lockState       unlocked
     2019-10-07 05:56:27   name            Nuki_1A54E2AD
     2019-10-07 05:56:27   paired          true
     2019-10-07 05:56:27   rssi            -49
     2019-10-07 15:28:51   state           unlocked
     2019-10-07 05:57:13   success         true


Hier ein Auszug aus dem Log bei Störung:
2019.10.07 18:53:15 4: NUKIBridge (NukiBridge) - NUKIBridge_GetCheckBridgeAlive
2019.10.07 18:53:15 4: NUKIBridge (NukiBridge) - Send HTTP POST with URL http://192.168.178.92:8080/info?token=xxxxxx
2019.10.07 18:53:15 4: NUKIBridge (NukiBridge) - run NUKIBridge_Call
2019.10.07 18:53:15 4: NUKIBridge (NukiBridge) - Call InternalTimer for NUKIBridge_GetCheckBridgeAlive
2019.10.07 18:53:22 5: NUKIBridge (NukiBridge) - Response JSON:
2019.10.07 18:53:22 5: NUKIBridge (NukiBridge) - Response ERROR: connect to http://192.168.178.92:8080 timed out
2019.10.07 18:53:22 5: NUKIBridge (NukiBridge) - Bridge ist offline


Und hier ein Auszug bei Connected:
2019.10.07 19:10:43 5: NUKIBridge (NukiBridge) - Response ERROR:
2019.10.07 19:10:43 5: NUKIBridge (NukiBridge) - Response CODE: 200
2019.10.07 19:10:43 5: NUKIBridge (NukiBridge) - Bridge ist online
2019.10.07 19:10:43 4: NUKIDevice (NUKIDevice441770669) - Received scanResults for matching NukiID 441770669 at device NUKIDevice441770669
2019.10.07 19:10:58 4: NUKIBridge (NukiBridge) - NUKIBridge_GetCheckBridgeAlive
2019.10.07 19:10:58 4: NUKIBridge (NukiBridge) - Send HTTP POST with URL http://192.168.178.92:8080/info?token=xxxxxx
2019.10.07 19:10:58 4: NUKIBridge (NukiBridge) - run NUKIBridge_Call
2019.10.07 19:10:58 4: NUKIBridge (NukiBridge) - Call InternalTimer for NUKIBridge_GetCheckBridgeAlive
2019.10.07 19:10:58 5: NUKIBridge (NukiBridge) - Response JSON: {"bridgeType": 1, "ids": {"hardwareId": xxxxxxxx, "serverId": xxxxxxxx}, "versions": {"firmwareVersion": "2.2.13", "wifiFirmwareVersion": "2.0.0"}, "uptime": 158, "currentTime": "2019-10-07T17:10:59+00:00", "wlanConnected": true, "serverConnected": true, "scanResults": [{"deviceType": 0, "nukiId": 441770669, "name": "Nuki_1A54E2AD", "rssi": -59, "paired": true}]}
2019.10.07 19:10:58 5: NUKIBridge (NukiBridge) - Response ERROR:
2019.10.07 19:10:58 5: NUKIBridge (NukiBridge) - Response CODE: 200
2019.10.07 19:10:58 5: NUKIBridge (NukiBridge) - Bridge ist online
2019.10.07 19:10:58 4: NUKIDevice (NUKIDevice441770669) - Received scanResults for matching NukiID 441770669 at device NUKIDevice441770669


Ein Connect bekomme ich meist nur wieder hin, wenn ich die Bridge kurz Spannungslos mache. Was aber Auffällig ist, dass die Störung oft nach einer Action am SmartLock erfolgt was auch oft reproduzierbar ist.

Vielleicht hat einer eine Idee woran das liegen kann.

Beste Grüße.
PCUser66

Skjall

Moin,

ohne nerven zu wollen  ;) : Gibt es schon was neues zum Opener?

VG
Jan