FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: anatius am 30 Dezember 2020, 17:57:11

Titel: [ NUKI SmartLock ] JSON error while request: malformed JSON string
Beitrag von: anatius am 30 Dezember 2020, 17:57:11
Liebe Community,

Ich nutze mein NUKI Smart Lock mit FHEM. Bisher ging alles gut - nachdem ich FHEM neu aufgesetzt habe (neuer Server) und dabei wohl FHEM als auch die NUKI Firmware aktualisiert habe bekomme ich nun im FHEM Log immer folgende Meldung:

NUKIBridge (HaustuerNuki) - JSON error while request: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "HTTP 400 Bad Request...") at ./FHEM/73_NUKIBridge.pm line 816.

Webhook URI und Port sind korrekt gesetzt und erreichbar...

So sehen die Internals der Bridge aus:

Internals:
   BRIDGEAPI  1.9
   DEF        192.168.101.38 ANONYMIZED
   FUUID      5fd8ce6a-f33f-e3ce-7f3b-349b76c63d1b3c1a
   FVERSION   73_NUKIBridge.pm:v1.9.16-s20994/2020-01-16
   HOST       192.168.101.38
   NAME       HaustuerNuki
   NOTIFYDEV  global,HaustuerNuki
   NR         90
   NTFY_ORDER 50-HaustuerNuki
   PORT       8080
   STATE      connected
   TOKEN      Anonymized
   TYPE       NUKIBridge
   VERSION    v1.9.16
   WEBHOOK_COUNTER 34
   WEBHOOK_LAST 2020-12-30 17:47:05
   WEBHOOK_PORT 8088
   WEBHOOK_REGISTER sent
   WEBHOOK_URI /fhem/NUKIBridge-192.168.101.38
   WEBHOOK_URL http://192.168.101.23:8088/fhem/NUKIBridge-192.168.101.38
   READINGS:
     2020-12-30 17:55:29   bridgeType      Hardware
     2020-12-30 17:55:29   currentTime     2020-12-30T16:55:33+00:00
     2020-12-30 17:55:29   firmwareVersion 2.8.0
     2020-12-30 17:55:29   hardwareId      499944442
     2020-12-30 05:24:33   lastError       http://192.168.101.38:8080/info?token=Anonymized: empty answer received
     2020-12-30 17:55:29   serverConnected 1
     2020-12-30 17:55:29   serverId        580746723
     2020-12-30 17:55:29   state           connected
     2020-12-30 17:55:29   uptime          3422602
     2020-12-30 17:55:29   wifiFirmwareVersion 2.2.0
   fhem:
     infix      NUKIBridge
   helper:
     iowrite    0
     actionQueue:
Attributes:
   room       NUKI
   webhookFWinstance WEBhook
   webhookHttpHostname 192.168.101.23


Kann jemand helfen, mich auf den richtigen Pfad zu führen den Fehler zu beheben?

Danke!
Christian
Titel: Antw:[ NUKI SmartLock ] JSON error while request: malformed JSON string
Beitrag von: CoolTux am 30 Dezember 2020, 18:04:18
Da scheinen keine JSON Strings an zu kommen sondern irgendwas anderes. Aktuell ist diese Meldung per default auf Log 3 gelegt, ich könnte sie auf Log 4 legen. Aber eigentlich scheint es besser zu sein heraus zu finden wieso da als Antwort ein 400 kommt.
Titel: Antw:[ NUKI SmartLock ] JSON error while request: malformed JSON string
Beitrag von: anatius am 30 Dezember 2020, 19:09:41
Hallo cooltux,

Da bin ich 100% bei Dir - aber wie bekomme ich es hin, mitzulesen was als Antwort beim Callback ankommt?

Viele Grüße!
Christian
Titel: Antw:[ NUKI SmartLock ] JSON error while request: malformed JSON string
Beitrag von: CoolTux am 30 Dezember 2020, 19:14:35
Das hat mit dem Callback gar nichts zu tun. Das ganze kommt als Antwort aus einer ganz normalen HTTP Anfrage.
Titel: Antw:[ NUKI SmartLock ] JSON error while request: malformed JSON string
Beitrag von: anatius am 30 Dezember 2020, 21:46:10
OK - wir nähern uns der Sache. Und indeed - ein direkter Call der API via http://192.168.101.38:8080/lockAction?nukiId=522355300&action=3&token=ANONYMIZED resultiert in HTTP 400 Bad Request beim ersten Request, danach funktionieren folgende Requests aber fehlerfrei. Mir scheint, hier klappt irgendetwas mit dem Aufwachen aus dem Sleep Mode nicht korrekt beim NUKI. Ich habe daher die Diskussion ins NUKI Developer Forum verlagert und vermute einen Bug in der Firmware 2.9.14 (die ich auf dem NUKI habe)...
Titel: Antw:[ NUKI SmartLock ] JSON error while request: malformed JSON string
Beitrag von: anatius am 31 Dezember 2020, 07:52:09
So - nach Diskussion im NUKI Developer Forum eine Erhellung: mit der NUKI API v1.12.0 (vom September 2020 - siehe auch https://developer.nuki.io/page/nuki-bridge-http-api-1-12/4/ (https://developer.nuki.io/page/nuki-bridge-http-api-1-12/4/)) gibt es für den Endpoint /lockAction einen Parameter devicetype. Laut API Dokumentation sieht er optional aus, ist er aber nicht. Nur wenn man diesen mit übergibt funktioniert das NUKI Lock anständig... Das FHEM Modul müsste daher wohl für die neue API ein wenig angepasst werden...?
Titel: Antw:[ NUKI SmartLock ] JSON error while request: malformed JSON string
Beitrag von: CoolTux am 31 Dezember 2020, 10:18:22
Schaue ich mir im neuen Jahr sehr gerne an.


Grüße