FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: kjmEjfu am 10 Januar 2022, 14:35:25

Titel: (fixed) json2namevalue: Error parsing
Beitrag von: kjmEjfu am 10 Januar 2022, 14:35:25
Beim Hochfahren bekomme ich 72x die Zeile

json2namevalue: Error parsing ><Status.MISSING_SERVICE: 1008>< for prefix/name:1

im Logfile.
Leider habe ich Null Idee, wo ich mit der Suche nach der Ursache anfangen kann.
Was will mir die Fehlermeldung sagen und wie kann ich herausfinden, wodurch dies ausgelöst wird?
Titel: Antw:json2namevalue: Error parsing
Beitrag von: rudolfkoenig am 10 Januar 2022, 14:40:41
Vermutlich kriegt die Funktion was uebergeben, was kein JSON ist.

"attr global verbose 5" oder "perl fhem.pl -d fhem.cfg" sollte beim Lokalisieren helfen.
Titel: Antw:json2namevalue: Error parsing
Beitrag von: kjmEjfu am 10 Januar 2022, 14:48:42
verbose 5 ist die Hölle ;-) Da wühle ich mich schon eine halbe Stunde durch.

Kann ich daraus, dass es 72x erscheint, entnehmen, dass 72 verschiedene Topics betroffen sind oder kann das auch eine kleinere Menge sein?
Titel: Antw:json2namevalue: Error parsing
Beitrag von: rudolfkoenig am 10 Januar 2022, 14:59:44
Ja.
Diese Angabe ist ohne Gewaehr. :)
Titel: Antw:json2namevalue: Error parsing
Beitrag von: Beta-User am 10 Januar 2022, 15:03:42
...manche Gegenstellen nehmen es nicht so genau und wechseln schon mal zwischen JSON und Klartext - v.a. dann, wenn noch keine Daten bekannt sind.

ebus ist da so ein Kandidat, es gibt aber noch andere.

@Rudi: Vielleicht sollte man in diesem Fall einfach {decode_error => $input} zurückgeben und nichts ins Log schreiben ($input für den übergebenen String)?
Titel: Antw:json2namevalue: Error parsing
Beitrag von: kjmEjfu am 10 Januar 2022, 15:10:05
Naja, wenn im Fehler irgendwas drin stehen würde, was einem beim Identifizieren des entsprechenden Devices helfen würde ... ;-)
Titel: Antw:json2namevalue: Error parsing
Beitrag von: kjmEjfu am 10 Januar 2022, 15:29:08
Aaaaaaaaaaaaaaaaaah, jetzt macht es klick.

"Status.MISSING_SERVICE: 1008" war keine Meldung von Perl oder FHEM, sondern das ist der Wert der im MQTT-Topic steht.
Und plötzlich macht es Sinn.

Gefunden, danke.
Titel: Antw:(fixed) json2namevalue: Error parsing
Beitrag von: rudolfkoenig am 10 Januar 2022, 15:55:17
Habe mit Traurigkeit festgestellt, dass die json2nameValue Fehlermeldungen "nicht optimal"sind: diese Fehlermeldung wird auf attr global verbose 1 ausgegeben, der Rest auf verbose 4.

Ab sofort wird der Fehler (nur) als JSON zurueckgegeben, sowohl die Fehlermeldung, wie auch das Input.
fhem> { my $h = json2nameValue( '{"a":"b", "c":7, <Status.MISSING_SERVICE: 1008>}' );; join("\n", map { "$_=>$h->{$_}" } keys %{$h}) }
json2nameValueErrorText=>error parsing '<Status.MISSING_SERVICE: 1008>'
json2nameValueInput=>{"a":"b", "c":7, <Status.MISSING_SERVICE: 1008>}


Bin gespannt auf dem feedback in den naechsten Tagen.
Titel: Antw:(fixed) json2namevalue: Error parsing
Beitrag von: carlos am 22 Januar 2022, 10:59:48
Hallo,
Ich bekomme folgenden Fehler:

aktuell_json2nameValueErrorText error parsing 'e-05'     2022-01-22 09:58:32
aktuell_json2nameValueInput {"wallbox":{"wert":0.01,"einheit":"W"},"netzeinspeisung":{"wert":0.01,"einheit":"W"},"speicherbeladung":{"wert":0.01,"einheit":"W"},"autarkie":{"wert":13.68,"einheit":"%"},"speicherentnahme":{"einheit":"W","wert":7.3},"stromerzeugung":{"wert":52.559,"einheit":"W"},"stromverbrauch":{"einheit":"W","wert":464.273},"netzbezug":{"einheit":"W","wert":400.764},"speicherfuellstand":{"einheit":"%","wert":1e-05}}
2022-01-22 09:58:32

bzw.

json2nameValueErrorText error parsing '"":null,"speicherbeladung":null,"netzbezug":null,"speicherentnahme":null,"wallbox":null,"stromverbrauch":null,"einheit":"Wh","speicherfuellstand":null'
2022-01-16 17:47:07
json2nameValueInput
{"stromerzeugung":null,"autarkie":null,"netzeinspeisung":null,"":null,"speicherbeladung":null,"netzbezug":null,"speicherentnahme":null,"wallbox":null,"stromverbrauch":null,"einheit":"Wh","speicherfuellstand":null}
2022-01-16 17:47:07

beim parsen.
Was kann man da machen?
Titel: Antw:(fixed) json2namevalue: Error parsing
Beitrag von: TomLee am 22 Januar 2022, 11:28:51
Ich meine bisher mitgenommen zu haben das 1e-05 in einem JSON nicht gültig (https://www.json.org/json-de.html) ist.

Man könnte den JSON vor der Übergabe an j2nv "manipulieren" ->1e-05 umrechnen in 0.00001.
Titel: Antw:(fixed) json2namevalue: Error parsing
Beitrag von: rudolfkoenig am 22 Januar 2022, 16:49:59
ZitatWas kann man da machen?
Hier melden.

Zitataktuell_json2nameValueErrorText error parsing 'e-05'     2022-01-22 09:58:32
Habs gefixt.

Zitatjson2nameValueErrorText error parsing '"":null,...
Da das laut https://www.json.org/json-en.html gueltig ist, wird ab sofort kein Fehler mehr gemeldet.
ABER: falls man keinen prefix spezifiziert, und der Wert ungleich null ist, dann wird ein Schluessel mit dem leeren String erzeugt, was spaeter vmtl. zu Problemen fuehrt.

Aus Interesse: Was erzeugt sowas?
Titel: Antw:(fixed) json2namevalue: Error parsing
Beitrag von: carlos am 22 Januar 2022, 17:03:11
Mein Senec Speicher, liefert das app API so.