Home Connect: Fehler in "Change settings"

Begonnen von Schlimbo, 28 Februar 2018, 19:23:47

Vorheriges Thema - Nächstes Thema

Schlimbo

Guten Abend zusammen,
meine Kaffeemaschine ist nun angekommen und wurde natürlich gleich in FHEM integriert.
Beim Versuch die Maschine über FHEM einzuschalten bekam ich aber den gleichen Fehler wie "Hans-Ulrich Tag":
Zitat von: Hans-Ulrich Tag am 28 Oktober 2017, 14:15:57
Und ein Versuch, den Standby zu aktivieren, erzeugt:
{"error":{"key":"400","description":"The request content was malformed:\nUnexpected character 'B' at input index 55 (line 1, position 56), expected JSON Value:\n{\"data\":{\"key\":\"BSH.Common.Setting.PowerState\",\"value\":BSH.Common.EnumType.PowerState.Standby}}\n                                                       ^\n"}}

Im Log steht folgendes:
2018.02.28 18:31:28.533 3: set command: BSH.Common.Setting.PowerState
2018.02.28 18:31:28.534 4: KAFFE0753 PUT request: https://api.home-connect.com/api/homeappliances/SIEMENS-KAFFE0753-54387543782H/settings/BSH.Common.Setting.PowerState with data: {"data":{"key":"BSH.Common.Setting.PowerState","value":BSH.Common.EnumType.PowerState.On}}
2018.02.28 18:31:28.537 4: KAFFE0753: no token refresh needed
2018.02.28 18:31:28.819 4: KAFFE0753 PUT response: {"error":{"key":"400","description":"The request content was malformed:\nUnexpected character 'B' at input index 55 (line 1, position 56), expected JSON Value:\n{\"data\":{\"key\":\"BSH.Common.Setting.PowerState\",\"value\":BSH.Common.EnumType.PowerState.On}}\n                                                       ^\n"}}
2018.02.28 18:31:31.844 5: KAFFE0753 event channel searching for data
2018.02.28 18:31:31.845 5: KAFFE0753 event channel received no data


Aufgefallen ist mir hier, dass der Wert nach "value" nicht in Anführungszeichen steht.
Im Code 48_HomeConnect.pm ist die stelle in Zeile 193 zu finden:
my $json = "{\"data\":{\"key\":\"$command\",\"value\":$setval"
Nach Änderung in
my $json = "{\"data\":{\"key\":\"$command\",\"value\":\"$setval\""
Funktioniert es dann.

@swhome: könntest du dir das bitte mal ansehen und im Modul fixen?

Gruß Schlimbo

Schlimbo

Bitte auch noch Zeile 174 checken, diese sieht ähnlich aus:
my $json = "{\"data\":{\"key\":\"$command\",\"value\":$optval";

Schlimbo

Zitat von: Schlimbo am 28 Februar 2018, 19:23:47
Nach Änderung in
my $json = "{\"data\":{\"key\":\"$command\",\"value\":\"$setval\""
Funktioniert es dann.
Ganz so einfach ist es leider doch nicht, bei Value muss unterscheiden werden, ob der Datentyp Enumeration,  Integer oder Boolean ist, nur Enumeration muss in Anführungszeichen gesetzt werden.

swhome

Der Fehler sollte nun behoben sein, nur noch numerische Werte werden ohne Anführungszeichen übertragen.
Im Einsatz: FHEM auf Raspberry Pi mit 350 devices, hauptsächlich Homematic Wired und HM-Heizungsregler, dazu diverse Eigenbauten für Fussbodenheizung und LED Beleuchtung. Und jetzt mit Alexa!

Schlimbo

Hallo Stefan,
das Einschalten klappt leider noch nicht, bekomme noch die gleiche Fehlermeldung wie vorher:
{"error":{"key":"400","description":"The request content was malformed:\nUnexpected character 'B' at input index 55 (line 1, position 56), expected JSON Value:\n{\"data\":{\"key\":\"BSH.Common.Setting.PowerState\",\"value\":BSH.Common.EnumType.PowerState.On}}\n                                                       ^\n"}}

Mortas

Bei mir kommt leider auch ein Fehler bein Ein oder Standby befehl. Kaffe kann ich über fhem rauslassen.

{"error":{"key":"400","description":"The request content was malformed:\nUnexpected character 'S' at input index 55 (line 1, position 56), expected JSON Value:\n{\"data\":{\"key\":\"BSH.Common.Setting.PowerState\",\"value\":Standby}}\n                                                       ^\n"}}

Kann man das irgendwie beheben?

danke euch