Werte von HTTP Binding Ignorieren

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
stutmich
Beiträge: 14
Registriert: 4. Mär 2023 17:43
Answers: 0

Werte von HTTP Binding Ignorieren

Beitrag von stutmich »

Hallo

Ich frage über ein HTTP Binding eine API im Internet ab. Die liefert als Ergebnis:
{"cmd":"VarReturn","name":"TempWasser","result":20.125,"device":"210042001247343432313031","body":{"devi.....

Ich hole mir aktuell das "result" mit JSONPath "$.result" in ein Number Item --> klappt auch.

Hin und wieder liefert mein Temperatursensor aber "-127". Kann ich diesen Werte "überlesen" in Openhab, damit er nicht in meine GrafanaDB eingetragen wird?

Ich könnte auch mein Programm auf dem Controller anpassen, der die -127 liefert. Mag ich aber nicht, da ich dieses Problem auch an anderen Stellen habe, wo ich das Programm selbst nicht anpassen kann.

Danke

Ich benutzte OpenHAB 3.4.2 auf eine RaspPI 4
von udo1toni » 20. Mai 2023 20:09
Die -127 ist ja eine Meldung über einen fehlenden Wert. eine Möglichkeit wäre, die JSONPATH Transformation mit einer anderen Transformation zu verknüpfen, so dass der Fehlerwert aussortiert wird. Ich hoffe mal, Du hast die Transformation direkt im Channel vorgenommen. Dann müsstest Du die Transformation ergänzen:

Code: Alles auswählen

statusTransformation:JSONPATH:$.result∩JS:filter127.js
Das Symbol ∩ wird in Windows als "Durchschnitt" bezeichnet, gemeint ist aber "Schnittmenge". Im Hilfstext zur Transformation ist dieses Zeichen aufgeführt, so dass man es dort jederzeit mittels Copy&Paste nutzen kann :)

Weiter braucht es ein JavaScript Script, welches im Verzeichnis /etc/openhab/transform/ liegen muss (Paketinstallation unter GNU/Linux) und den Namen filter127.js trägt (das war ja der Name, den ich oben ergänzt habe).
Inhalt:

Code: Alles auswählen

(function(value){
    var retval = "";
    if (value > -127)
        retval = value;
    return retval;
})(input)
Hast Du JSONPATH im Link zwischen Channel und Item hinterlegt, so musst Du den Ausdruck dort entfernen und im Channel einbauen.

Es gibt im Übrigen keine GrafanaDB.
Grafana ist ein Tool, um Daten aus verschiedenen Datenquellen zu visualisieren.
Im Zusammenhang mit openHAB wird man gewöhnlich InfluxDB nutzen, weil es meist um Messreihen geht, die über die Zeit aufgetragen werden sollen, darauf ist InfluxDB spezialisiert.
Gehe zur vollständigen Antwort

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Werte von HTTP Binding Ignorieren

Beitrag von udo1toni »

Die -127 ist ja eine Meldung über einen fehlenden Wert. eine Möglichkeit wäre, die JSONPATH Transformation mit einer anderen Transformation zu verknüpfen, so dass der Fehlerwert aussortiert wird. Ich hoffe mal, Du hast die Transformation direkt im Channel vorgenommen. Dann müsstest Du die Transformation ergänzen:

Code: Alles auswählen

statusTransformation:JSONPATH:$.result∩JS:filter127.js
Das Symbol ∩ wird in Windows als "Durchschnitt" bezeichnet, gemeint ist aber "Schnittmenge". Im Hilfstext zur Transformation ist dieses Zeichen aufgeführt, so dass man es dort jederzeit mittels Copy&Paste nutzen kann :)

Weiter braucht es ein JavaScript Script, welches im Verzeichnis /etc/openhab/transform/ liegen muss (Paketinstallation unter GNU/Linux) und den Namen filter127.js trägt (das war ja der Name, den ich oben ergänzt habe).
Inhalt:

Code: Alles auswählen

(function(value){
    var retval = "";
    if (value > -127)
        retval = value;
    return retval;
})(input)
Hast Du JSONPATH im Link zwischen Channel und Item hinterlegt, so musst Du den Ausdruck dort entfernen und im Channel einbauen.

Es gibt im Übrigen keine GrafanaDB.
Grafana ist ein Tool, um Daten aus verschiedenen Datenquellen zu visualisieren.
Im Zusammenhang mit openHAB wird man gewöhnlich InfluxDB nutzen, weil es meist um Messreihen geht, die über die Zeit aufgetragen werden sollen, darauf ist InfluxDB spezialisiert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

stutmich
Beiträge: 14
Registriert: 4. Mär 2023 17:43
Answers: 0

Re: Werte von HTTP Binding Ignorieren

Beitrag von stutmich »

Vielen Dank Udo1toni

das probiere ich so aus.

Das es keine GrafanaDB gibt ist natürlich richtig. Habe mich vorhin etwas vereinfacht ausgedrückt. Ich habe auch eine InfluxDB im HIntergrund.

stutmich
Beiträge: 14
Registriert: 4. Mär 2023 17:43
Answers: 0

Re: Werte von HTTP Binding Ignorieren

Beitrag von stutmich »

Hat sehr gut funktioniert, jetzt sehen die Kurven im Grafana super aus.

Ich hatte zuerst "Javascript Sripting" installiert, was aber nicht ausreicht/korrekt ist.
Nach einigem googeln habe ich gesehen es gibt auch spezielle Transformation AddOns. Nach dem Installieren des "Javascript Transformation" Plugin, funktionierte alles.
Vielleicht stolpert ja auch jemand anders darüber, daher hier erwähnt.

Vielen Dank

Antworten