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
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.
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
Das hat mit dem Callback gar nichts zu tun. Das ganze kommt als Antwort aus einer ganz normalen HTTP Anfrage.
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)...
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...?
Schaue ich mir im neuen Jahr sehr gerne an.
Grüße