Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte

Begonnen von Andy77H, 25 Dezember 2017, 23:43:17

Vorheriges Thema - Nächstes Thema

Andy77H

Hallo!

Habe einen HS658GXS6 Ofen und in letzter Zeit habe ich das Problem, dass FHEM immer mal wieder abschmiert, wenn ein Programm am Ofen beendet oder abgebrochen wird (aber nicht immer), im FHEM-Log findet sich dann der Fehler:

'"' expected, at character offset 1430 (before "(end of string)") at ./FHEM/48_HomeConnect.pm line 760.

Hat das jemand schon gehabt bzw. Abhilfe?

Danke & Ciao,

Andy

Pf@nne

Moin Andy,

ich habe das gleiche Problem.
Ohne jetzt schon weiter gesucht zu haben ist liegt es wohl an einem syntaktisch falschen json, der von HomeConnect rein kommt. Daher wäre es sinnvoll den defekten json erstmal zu analysieren.
Könntest du bitte mal sowohl im Gerät als auch bei der Verbindung verbose auf 5 setzten und versuchen den json "einzufangen"?

Das könnten wir dann HomeConnect mitteilen.

Das Json-Handling ist glaube ich Bestandteil von FHEM und nicht der beiden HomeConnect-Module.
Das müsste ich dann auch mal ansprechen.
Durch einen defekten Json-String sollte einem nicht gleich die ganze FHEM-Instanz um die Ohren fliegen.


Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

swhome

Stimmt. Durch einen Fehler in einem Modul sollte nicht das ganze FHEM abkacheln. Mir ein Rätsel warum das so ist.

Inzwischen habe ich herausgefunden wie ich diese Json Parser Fehler abfangen kann, aber leider sind es viele Stellen die in Frage kommen und daher dauert es eine Weile. Wer Zeit hat ist eingeladen mitzuhelfen.
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!

Florian_GT

Zitat von: swhome am 26 Dezember 2017, 11:50:52
Stimmt. Durch einen Fehler in einem Modul sollte nicht das ganze FHEM abkacheln. Mir ein Rätsel warum das so ist.

Inzwischen habe ich herausgefunden wie ich diese Json Parser Fehler abfangen kann, aber leider sind es viele Stellen die in Frage kommen und daher dauert es eine Weile. Wer Zeit hat ist eingeladen mitzuhelfen.

Der Fehler war am 19.12. noch nicht da. Vielleicht kann man es so eingrenzen.
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

Pf@nne

Zitat von: afloria am 27 Dezember 2017, 18:05:12
Der Fehler war am 19.12. noch nicht da. Vielleicht kann man es so eingrenzen.

Ich meine der Fehler ist bei mir schon von Anfang an da.....Auch schon vor dem 19.12
FHEM auf: DS415+ (Master), Raspberry Pi 2

Andy77H

Hallo!

Ist jetzt gerade wieder passiert, hier die letzten Einträge im FHEM-Log:

2018.01.01 13:16:08 5: HS658GXS6 event channel data: {"items":[{"timestamp":1514808634,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1514808634,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration","key":"BSH.Common.Option.Duration","unit":"seconds","value":600,"level":"hint"},{"timestamp":1514808634,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1514808634,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative","key":"BSH.Common.Option.StartInRelative","unit":"seconds","value":0,"level":"hint"},{"timestamp":1514808634,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime","key":"BSH.Common.Option.RemainingProgramTime","unit":"seconds","value":225,"level":"hint"},{"timestamp":1514808634,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":375,"level":"hint"},{"timestamp":1514808634,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ProgramProgress","key":"BSH.Common.Option.ProgramProgress","unit":"%","value":63,"level":"hint"}]}

2018.01.01 13:16:08 4: BSH.Common.Root.ActiveProgram = Cooking.Oven.Program.HeatingMode.HotAir
2018.01.01 13:16:08 4: BSH.Common.Option.Duration = 600 seconds
2018.01.01 13:16:08 4: Cooking.Oven.Option.SetpointTemperature = 180 °C
2018.01.01 13:16:08 4: BSH.Common.Option.StartInRelative = 0 seconds
2018.01.01 13:16:08 4: BSH.Common.Option.RemainingProgramTime = 225 seconds
2018.01.01 13:16:08 4: BSH.Common.Option.ElapsedProgramTime = 375 seconds
2018.01.01 13:16:08 4: BSH.Common.Option.ProgramProgress = 63 %
2018.01.01 13:16:18 5: HS658GXS6 event channel searching for data
2018.01.01 13:16:18 5: HS658GXS6 event channel received event:NOTIFY
data:{"items":[{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration","key":"BSH.Common.Option.Duration","unit":"seconds","value":600,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative","key":"BSH.Common.Option.StartInRelative","unit":"seconds","value":0,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime","key":"BSH.Common.Option.RemainingProgramTime","unit":"seconds","value":219,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":381,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ProgramProgress","key":"BSH.Common.Option.ProgramProgress","unit":"%","value":64,"level":"hint"}]}
id:SIEMENS-HS658GXS6-68A40E04C5C6


2018.01.01 13:16:18 5: HS658GXS6 event channel data: {"items":[{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration","key":"BSH.Common.Option.Duration","unit":"seconds","value":600,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative","key":"BSH.Common.Option.StartInRelative","unit":"seconds","value":0,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime","key":"BSH.Common.Option.RemainingProgramTime","unit":"seconds","value":219,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":381,"level":"hint"},{"timestamp":1514808640,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ProgramProgress","key":"BSH.Common.Option.ProgramProgress","unit":"%","value":64,"level":"hint"}]}

2018.01.01 13:16:18 4: BSH.Common.Root.ActiveProgram = Cooking.Oven.Program.HeatingMode.HotAir
2018.01.01 13:16:18 4: BSH.Common.Option.Duration = 600 seconds
2018.01.01 13:16:18 4: Cooking.Oven.Option.SetpointTemperature = 180 °C
2018.01.01 13:16:18 4: BSH.Common.Option.StartInRelative = 0 seconds
2018.01.01 13:16:18 4: BSH.Common.Option.RemainingProgramTime = 219 seconds
2018.01.01 13:16:18 4: BSH.Common.Option.ElapsedProgramTime = 381 seconds
2018.01.01 13:16:18 4: BSH.Common.Option.ProgramProgress = 64 %
2018.01.01 13:16:28 5: HS658GXS6 event channel searching for data
2018.01.01 13:16:28 5: HS658GXS6 event channel received event:NOTIFY
data:{"items":[{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration","key":"BSH.Common.Option.Duration","unit":"seconds","value":600,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative","key":"BSH.Common.Option.StartInRelative","unit":"seconds","value":0,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime","key":"BSH.Common.Option.RemainingProgramTime","unit":"seconds","value":213,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":387,"level":"hint"},{
2018.01.01 13:16:28 5: HS658GXS6 event channel data: {"items":[{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration","key":"BSH.Common.Option.Duration","unit":"seconds","value":600,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative","key":"BSH.Common.Option.StartInRelative","unit":"seconds","value":0,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime","key":"BSH.Common.Option.RemainingProgramTime","unit":"seconds","value":213,"level":"hint"},{"timestamp":1514808646,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":387,"level":"hint"},{
'"' expected, at character offset 1430 (before "(end of string)") at ./FHEM/48_HomeConnect.pm line 760.


Es ist nicht passiert, als als das Programm beendet war, sondern als sich der Ofen nach einer gewissen Idle-Zeit selbst abgeschalten hat...

FHEM-Prozess ist definitiv nicht mehr da....

Ciao,

Andy

Pf@nne

#6
Moin Andy,

danke für die Forschungsarbeit!

So wie es aussieht kommt da ein syntaktisch falsches json von HomeConnect rein, zumindest sieht es im LOG so aus.
Wenn ich den JSON aus dem LOG mal anschaue meckert FHEM hier völlig zu recht.

Ein "normaler" event channel data sieht so aus:

2018.01.01 13:16:18 5: HS658GXS6 event channel received event:NOTIFY

{
"items": [{
"timestamp": 1514808640,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active",
"key": "BSH.Common.Root.ActiveProgram",
"value": "Cooking.Oven.Program.HeatingMode.HotAir",
"level": "hint"
}, {
"timestamp": 1514808640,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration",
"key": "BSH.Common.Option.Duration",
"unit": "seconds",
"value": 600,
"level": "hint"
}, {
"timestamp": 1514808640,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature",
"key": "Cooking.Oven.Option.SetpointTemperature",
"unit": "°C",
"value": 180,
"level": "hint"
}, {
"timestamp": 1514808640,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative",
"key": "BSH.Common.Option.StartInRelative",
"unit": "seconds",
"value": 0,
"level": "hint"
}, {
"timestamp": 1514808640,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime",
"key": "BSH.Common.Option.RemainingProgramTime",
"unit": "seconds",
"value": 219,
"level": "hint"
}, {
"timestamp": 1514808640,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime",
"key": "BSH.Common.Option.ElapsedProgramTime",
"unit": "seconds",
"value": 381,
"level": "hint"
}, {
"timestamp": 1514808640,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ProgramProgress",
"key": "BSH.Common.Option.ProgramProgress",
"unit": "%",
"value": 64,
"level": "hint"
}]
}


Die Errorzeile sieht auch irgendwie nach zwei Ereignissen aus?

2018.01.01 13:16:28 5: HS658GXS6 event channel received event:NOTIFY


{
"items": [{
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active",
"key": "BSH.Common.Root.ActiveProgram",
"value": "Cooking.Oven.Program.HeatingMode.HotAir",
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration",
"key": "BSH.Common.Option.Duration",
"unit": "seconds",
"value": 600,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature",
"key": "Cooking.Oven.Option.SetpointTemperature",
"unit": "°C",
"value": 180,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative",
"key": "BSH.Common.Option.StartInRelative",
"unit": "seconds",
"value": 0,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime",
"key": "BSH.Common.Option.RemainingProgramTime",
"unit": "seconds",
"value": 213,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime",
"key": "BSH.Common.Option.ElapsedProgramTime",
"unit": "seconds",
"value": 387,
"level": "hint"
}, {


Dieser JSON ist schon defekt, weil nicht richtig abgeschlossen, führt aber scheinbar noch nicht zu einem Fehler im FHEM-JSON-Modul.

Dieses Event läßt dann FHEM crashen:

2018.01.01 13:16:28 5: HS658GXS6 event channel



{
"items": [{
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active",
"key": "BSH.Common.Root.ActiveProgram",
"value": "Cooking.Oven.Program.HeatingMode.HotAir",
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration",
"key": "BSH.Common.Option.Duration",
"unit": "seconds",
"value": 600,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature",
"key": "Cooking.Oven.Option.SetpointTemperature",
"unit": "°C",
"value": 180,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative",
"key": "BSH.Common.Option.StartInRelative",
"unit": "seconds",
"value": 0,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime",
"key": "BSH.Common.Option.RemainingProgramTime",
"unit": "seconds",
"value": 213,
"level": "hint"
}, {
"timestamp": 1514808646,
"handling": "none",
"uri": "/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime",
"key": "BSH.Common.Option.ElapsedProgramTime",
"unit": "seconds",
"value": 387,
"level": "hint"
}, {


Auch dieses JSON ist nicht richtig abgeschlossen und daher defekt.


Ich spreche darüber nochmal mit Stefan.....
FHEM auf: DS415+ (Master), Raspberry Pi 2

Andy77H

Danke mal dafür - diesmal war es definitiv, als ich ein laufendes Zeitprogramm abgebrochen habe:

2018.01.04 19:12:15 5: HS658GXS6 event channel data: {"items":[{"timestamp":1515089527,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1515089527,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.Duration","key":"BSH.Common.Option.Duration","unit":"seconds","value":1800,"level":"hint"},{"timestamp":1515089527,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/Cooking.Oven.Option.SetpointTemperature","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1515089527,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.StartInRelative","key":"BSH.Common.Option.StartInRelative","unit":"seconds","value":0,"level":"hint"},{"timestamp":1515089527,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.RemainingProgramTime","key":"BSH.Common.Option.RemainingProgramTime","unit":"seconds","value":141,"level":"hint"},{"timestamp":1515089527,"handling":"none","uri":"/api/homeappliances/SIEMENS-HS658GXS6-68A40E04C5C6/programs/active/BSH.Common.Option.ElapsedProgramTime","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":2165,"level":"hint"}
, or ] expected while parsing array, at character offset 1430 (before "(end of string)") at ./FHEM/48_HomeConnect.pm line 760.


Vielleicht hilft's ja bei der Fehlersuche...

Ciao,

Andy

CoolTux

#8
Zitat von: swhome am 26 Dezember 2017, 11:50:52
Stimmt. Durch einen Fehler in einem Modul sollte nicht das ganze FHEM abkacheln. Mir ein Rätsel warum das so ist.

Inzwischen habe ich herausgefunden wie ich diese Json Parser Fehler abfangen kann, aber leider sind es viele Stellen die in Frage kommen und daher dauert es eine Weile. Wer Zeit hat ist eingeladen mitzuhelfen.

FHEM hat damit nichts zu tun. Da ist jeder Autor selber für verantwortlich


my $parsed = $JSON->decode ($json);

Das in einem eval aufrufen.


my $parsed = eval{$JSON->decode ($json)};
if($@){
        Log3 $name, 3, " ($name) - JSON error while request: $@";
        return;
    }

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

swhome

#9
Hallo allseits, ich habe gerade eine neue Version der Schnittstelle veröffentlicht, die hoffentlich alle erdenklichen JSON Parser Fehler sinnvoll abfängt. Nachdem dazu ziemlich viele Änderungen erforderlich waren, bitte ich um rege Mithilfe beim Testen.

Edit: Übersicht der Code-Änderungen
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!

Pf@nne

Moin Stefan,

ich habe eben ein Update gefahren.
Ob es jetzt hält, kann ich dir sagen wenn die Tochter heute Mittag ihre Pizza (per Programm) durch hat.
Erstmal vielen Dank.

Gruß
Marco

FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

Bisher keine Abstürze.... 8)

Daher erstmal geschlossen....
FHEM auf: DS415+ (Master), Raspberry Pi 2