Nachkommazahl in time series in Prozent anzeigen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
hermann59
Beiträge: 16
Registriert: 25. Feb 2021 08:38
Answers: 0

Nachkommazahl in time series in Prozent anzeigen

Beitrag von hermann59 »

Ich habe ein Balkonkraftwerk "Anker Solix 2 E1600 Pro" mit Speicher, deren aktuelle Werte ich per solix2mqtt aus der anker cloud in meinen MQTT-Broker übertragen lasse. In MQTT kommt ein Akku-Ladestand als Nachkommazahl (z.B. "0.56" für 56%) an. Diesen Wert habe ich als Channel des Things definiert und ihm ein Item zugeordnet. Das Item enthält den korrekten Wert (z. b. 0.56) und wird auch in Prozenz (z. B. 56%) angezeigt.
Nun möchte ich den Verlauf der Speicherladung in einem chart visualisieren. Was muss ich tun, damit die y-Achse Werte zwischen 0 und 100% und nicht Werte zwischen 0 und 1 anzeigt?
Screenshot.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von udo1toni »

Du musst das Item korrekt definieren :)
Das Zauberwort lautet QuantityType.
Vorausgesetzt, Du verwendest eine aktuelle Version OH4.x, kannst Du im number Channel über die unit angeben, wie der Wert hereinkommt (ich vermute mal, dass Du unit=ONE angeben musst, müsste man aber ausprobieren)
Im Item musst Du ebenfalls die unit angeben, und dafür muss das Item vom Typ Number:Dimensionless sein. Ist das der Fall, so kannst Du in den Metadaten des Items den Parameter unit auf "%" setzen. Außerdem kannst Du, ebenfalls in den Metadaten, das stateDescription pattern auf "%.1f %%" festlegen. Es kann sein, dass Du ohne Verlust der alten Daten davon kommst, weil der Wert eh schon im passenden Format gespeichert ist, vielleicht sind die alten Werte aber auch um den Faktor 100 verkehrt, dann musst Du die Persistence Daten manuell löschen (nachträgliches Bearbeiten der historischen Daten ist - abhängig von der verwendeten Persistence - beschwerlich bis unmöglich.)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

hermann59
Beiträge: 16
Registriert: 25. Feb 2021 08:38
Answers: 0

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von hermann59 »

Hallo Udo,
danke für den Hinweis. Das hatte ich auch schon probiert. Dann wird aber aus "total_battery_power": "0.12" in json (was eben bedeutet 12%) der Wert 0,12% im item. Das item soll aber den Wert 12% haben. Der Wert 0,12 ist ja eigentlich korrekt, nur die Darstellung im chart ist falsch.

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

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von udo1toni »

Wie gesagt, die unit muss passend gesetzt werden. Notfalls kann man auch mit anderen Einheiten tricksen, aber eigentlich sollte es auch direkt gehen, nur muss die Einheit an allen Stellen korrekt angegeben werden.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

hermann59
Beiträge: 16
Registriert: 25. Feb 2021 08:38
Answers: 0

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von hermann59 »

Egal, welchen QuantityType, welche unit und stateDescription ich auch verwende im channel/item: Entweder wird der Wert "0.25" aus dem json (bedeutet 25%) entweder im Item als 25% und dann im chart als 0.25 angezeigt oder schon der Wert im Item ist falsch (0,25%).
Ich gebe es auf. Für so einen Mist den ganzen Sonntag zu investieren ist es mir nicht wert.

mike69
Beiträge: 64
Registriert: 17. Nov 2020 22:38
Answers: 0

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von mike69 »

Manchmal ist das so, das aktuelle Projekt kostete mich 3 Tage.
Das ist ein Hobby, und Hobbies können auch mal Zeit in Anspruch nehmen.
Und es gibt User,die verbrennen richtig Zeit um uns Nulpen zu helfen. Hobby eben...

Gruß
openHAB 4.2.0 auf Debian 12 als VM unter Proxmox

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von Harka »

Moin,
wenn Udos Lösung wirklich nicht zum Erfolg führt kannst Du als PlanB noch den Wert gleich am Eingang mittels Transformation mit 100 Multiplizieren. Beispiel - ist aber abhängig von Deiner sonstigen Konfiguration. Außerdem können im Folgenden falsche Werte erscheinen.

Code: Alles auswählen

JS: | parseFloat(input)*100
Besser Channel neu anlegen als Number und mit Unit Of Measurement und hoffen

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

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von udo1toni »

Ich habe das bei mir heute nachvollzogen und kann bestätigen, dass der Wert tatsächlich nicht korrekt umgesetzt wird. Daher wird der Weg der Incoming Value Transformation tatsächlich der korrekte Weg sein, wie von Harka beschrieben (dafür muss allerdings Java Script Scripting als Addon installiert sein) oder auch so:

Code: Alles auswählen

transformationPattern: DSL: | (input as Number) * 100
Aus dem Kopf, weil gerade nicht vor meinem System. Kann auch sein, dass man auch hier parsen muss:

Code: Alles auswählen

transformationPattern: DSL: | Float.parseFloat(input) * 100
Die DSL steht bis incl. OH4.x immer zur Verfügung, sie wird erst in OH5 optional werden (wenn ich mich korrekt erinnere)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

hermann59
Beiträge: 16
Registriert: 25. Feb 2021 08:38
Answers: 0

Re: Nachkommazahl in time series in Prozent anzeigen

Beitrag von hermann59 »

Ich habe jetzt einen zweiten Channel angelegt mit "Incoming Value Transformations"

Code: Alles auswählen

JSONPATH:$.solarbank_info.total_battery_power ∩ JS: | parseFloat(input)*100
und anschließend damit ein neues Item eingeführt, welches ich nur für die graphische Darstellung verwende.

Nicht besonders schön, aber es geht.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten