Autor Thema: Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte  (Gelesen 181 mal)

Offline Andy77H

  • New Member
  • *
  • Beiträge: 15
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

Offline Pf@nne

  • Moderator
  • Sr. Member
  • ***
  • Beiträge: 828
    • tech_LogBuch
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #1 am: 26 Dezember 2017, 07:48:03 »
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

Offline swhome

  • Moderator
  • Full Member
  • ***
  • Beiträge: 164
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #2 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.
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!

Offline afloria

  • Full Member
  • ***
  • Beiträge: 166
    • Florian-Asche
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #3 am: 27 Dezember 2017, 18:05:12 »
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.
Proxmox Server mit vielen virtuellen VMs
FHEM mit TabletUI
Hardware: Ethersex (Pollin NETIO Boards), SONOFF, SONOFF POW, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera)

Offene Projekte: Steuerung für Rolladenwickler (Rademacher), Verbindung OpenHR20, Sensorenstation

Offline Pf@nne

  • Moderator
  • Sr. Member
  • ***
  • Beiträge: 828
    • tech_LogBuch
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #4 am: 29 Dezember 2017, 03:08:57 »
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

Offline Andy77H

  • New Member
  • *
  • Beiträge: 15
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #5 am: 01 Januar 2018, 13:39:28 »
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

Offline Pf@nne

  • Moderator
  • Sr. Member
  • ***
  • Beiträge: 828
    • tech_LogBuch
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #6 am: 01 Januar 2018, 14:14:47 »
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.....
« Letzte Änderung: 01 Januar 2018, 15:33:00 von Pf@nne »
FHEM auf: DS415+ (Master), Raspberry Pi 2

Offline Andy77H

  • New Member
  • *
  • Beiträge: 15
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #7 am: 04 Januar 2018, 19:28:20 »
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

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 12719
Antw:Syntaktisch falsches JSON, war:Siemens Home Connect Hausgeräte
« Antwort #8 am: 04 Januar 2018, 19:34:23 »
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;
    }
« Letzte Änderung: 04 Januar 2018, 19:40:31 von 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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline swhome

  • Moderator
  • Full Member
  • ***
  • Beiträge: 164
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
« Letzte Änderung: Heute um 10:40:18 von swhome »
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!

Offline Pf@nne

  • Moderator
  • Sr. Member
  • ***
  • Beiträge: 828
    • tech_LogBuch
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

 

decade-submarginal