[ NUKI SmartLock ] JSON error while request: malformed JSON string

Begonnen von anatius, 30 Dezember 2020, 17:57:11

Vorheriges Thema - Nächstes Thema

anatius

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

CoolTux

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.
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

anatius

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

CoolTux

Das hat mit dem Callback gar nichts zu tun. Das ganze kommt als Antwort aus einer ganz normalen HTTP Anfrage.
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

anatius

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)...

anatius

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/) 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...?

CoolTux

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