Seite 1 von 2
JSONPATH:$ WARN Meldung
Verfasst: 26. Jun 2022 09:21
von Locke
EDIT: läuft auf Raspberry Pi 4, 2GB RAM, openHAB 3.2
Moin,
ich habe eine WARN-Meldung von "einem" Temperaturfühler DS18B20 (angeschlossen sind 3) im Log. Angeschlossen sind die Fühler an einem NodeMCU mit Tasmoata.
Die Werte werden geliefert, bei den anderen Fühler ist alles OK.
Was mich wundert ist die Uhrzeit, 8:47 ist korrekt, aber im Log unter Time steht 7:47. Hängt es damit zusammen ?
Unter Channel Konfiguration habe ich bei: "Incoming Value Transformations"
JSONPATH:$.DS18B20-2.Temperature
die 2 anderen sind genauso Konfiguriert nur als DS18B20-1 / DS18B20-3
Habt ihr eine Idee ?
Code: Alles auswählen
2022-06-26 08:47:10.314 [WARN ] [t.generic.ChannelStateTransformation] - Executing the JSONPATH-transformation failed: Invalid path '$.DS18B20-2.Temperature' in '{"Time":"2022-06-26T07:47:10","DS18B20":{"Id":"011929255446","Temperature":26.6},"TempUnit":"C"}'
Re: JSONPATH:$ WARN Meldung
Verfasst: 26. Jun 2022 10:11
von udo1toni
Es steht eigentlich im Klartext da:
Invalid path '$.DS18B20-2.Temperature'
Wenn Du das JOSN etwas anders formatierst:
Code: Alles auswählen
{
"Time": "2022-06-26T07:47:10",
"DS18B20": {
"Id": "011929255446",
"Temperature": 26.6
},
"TempUnit": "C"
}
kannst Du auch direkt sehen, dass der Fühler als
DS18B20 angemeldet ist, nicht als
DS18B20-2.
Re: JSONPATH:$ WARN Meldung
Verfasst: 26. Jun 2022 10:43
von Locke
Hi Udo,
das war der richtige Hinweis, ich habe die Fühler gestern erst in betrieb genommen und hatte sie vorher an einem anderen vorhandenen NodeMCU mitangeschlossen.
Dann habe mich entschieden einen NodeMCU nur für die Heizung zu nehmen. Leider habe ich diesen einen Fühler beim entfernen vom vorhanden NodeMCU übersehen.

Der Fehler war gar nicht von dem Heizung NodeMCU und da habe ich nur gesucht.
Ist mir jetzt durch die ID aufgefallen.
Man sollte doch die Augen mehr aufmachen beim kontrollieren.
Danke Dir
schönen Sonntag noch
Re: JSONPATH:$ WARN Meldung
Verfasst: 26. Jun 2022 13:09
von udo1toni
Prima!
Re: JSONPATH:$ WARN Meldung
Verfasst: 20. Okt 2022 08:52
von hsdneo
Hi,
hierzu könnte ich auch mal Hilfe benötigen. Via Tasmota nutze ich 13 Sensoren und Geräte, die dann via MQTT den Status übermitteln. Diese habe ich per manuell angelegtem MQTT Generic Thing eingebunden.
Dort habe ich die für mich wichtigen Channels angelegt für z.B. Temperatur. Mein Log ist nun aber voll von Warnmeldungen, die für mich grundsätzlich auch nachvollziehbar sind. Nun ist aber die Frage, ob ich die irgendwie weg kriege?
Code: Alles auswählen
2022-10-20 08:20:03.871 [WARN ] [t.generic.ChannelStateTransformation] - Executing the JSONPATH-transformation failed: Invalid path '$.ZbReceived.Temp_Garage.LinkQuality' in '{"ZbReceived":{"Steckdose_Arbeitszimmer":{"Device":"0x4188","Name":"Steckdose_Arbeitszimmer","Power":1,"Endpoint":3,"LinkQuality":170}}}'
Hier drin wird ja versucht eine Transformation durchzuführen für den Temperaturfühler in der Garage aber für die Lieferung des Items Steckdose Arbeitszimmer. Kann man das irgendwie vermeiden?
Danke
Re: JSONPATH:$ WARN Meldung
Verfasst: 20. Okt 2022 22:57
von udo1toni
Dein Problem ist, dass Du offensichtlich schlechte Topics verwendest.
Du fragst nach
$.ZbReceived.Temp_Garage.LinkQuality, die Payload ist aber
Code: Alles auswählen
{
"ZbReceived": {
"Steckdose_Arbeitszimmer": {
"Device": "0x4188",
"Name": "Steckdose_Arbeitszimmer",
"Power": 1,
"Endpoint": 3,
"LinkQuality": 170
}
}
}
Unterhalb
ZbReceived gibt es schlicht keinen Block
Temp_Garage, deshalb die Warnmeldung.
Ohne weitergehende Information über Deine exakte Konfiguration wird es aber schwer, das einzugrenzen.
Grundsätzlich: Jedes Device hat ein eigenes, eindeutiges Topic?
Du hast für jedes Device ein eigenes Thing angelegt? (ist nicht zwingend, aber sinnvoll)
Jedes Device ist nur "für sich selbst" zuständig (es sind keine RF-Transmitter o.Ä. beteiligt)?
Re: JSONPATH:$ WARN Meldung
Verfasst: 21. Okt 2022 10:27
von hsdneo
Heißt dann vermutlich, dass ich jedem Gerät irgendwie ein separates Topic geben müsste oder? Wie mache ich das denn aber via Tasmota?
Anbei die MQTT Config aus dem Tasmota -> hatte dort schon versucht mal mit '%topic%' zu arbeiten anstelle von "tasmota" im Bereich Topic, aber das hat nur das Topic für alle auf einen anderen Wert geändert.
Re: JSONPATH:$ WARN Meldung
Verfasst: 21. Okt 2022 14:19
von rfu
Wenn Du allen Geräten das Topic "Tasmota" gibst kannst Du ja nicht unterscheiden von welchem die Message kam!
Wenn Du stattdessen z.B. für Deinen Temperaturfühler in der Garage das Topic auf "Temp_Garage" setzt, dann kannst Du Dein Thing / die Channels im Openhab genau auf dieses Topic lauschen lassen.
Wenn jetzt für dieses Topic eine Message kommt, wird in der Payload ja immer "Temp_Garage" und nie "Steckdose_Arbeitszimmer" auf der zweiten Ebene stehen, so dass es da keine Verwirrung geben kann...
rfu
Re: JSONPATH:$ WARN Meldung
Verfasst: 21. Okt 2022 14:22
von hsdneo
Jap, genau das habe ich mir schon soweit gedacht. Jedoch wüsste ich nicht, wie ich die unterschiedlichen Sensoren hinter 1 Tasmota Bridge mit unterschiedlichen Topics versehen kann. Ggf. eine Idee?
Re: JSONPATH:$ WARN Meldung
Verfasst: 21. Okt 2022 15:41
von hsdneo
Ok - vergesst es - ich mache es einfacher. Tasmota kann auch einfach als Hue Bridge emuliert werden. Dann kann ich mir das gesamte JSONPATH Zeug sparen. Und die Latenz ist dabei auch deutlich geringer.