Nachkommazahl in time series in Prozent anzeigen
-
- Beiträge: 16
- Registriert: 25. Feb 2021 08:38
Nachkommazahl in time series in Prozent anzeigen
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?
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?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- udo1toni
- Beiträge: 15241
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Nachkommazahl in time series in Prozent anzeigen
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.)

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
-
- Beiträge: 16
- Registriert: 25. Feb 2021 08:38
Re: Nachkommazahl in time series in Prozent anzeigen
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.
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.
- udo1toni
- Beiträge: 15241
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Nachkommazahl in time series in Prozent anzeigen
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
-
- Beiträge: 16
- Registriert: 25. Feb 2021 08:38
Re: Nachkommazahl in time series in Prozent anzeigen
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.
Ich gebe es auf. Für so einen Mist den ganzen Sonntag zu investieren ist es mir nicht wert.
-
- Beiträge: 64
- Registriert: 17. Nov 2020 22:38
Re: Nachkommazahl in time series in Prozent anzeigen
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ß
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
-
- Beiträge: 488
- Registriert: 30. Apr 2021 13:13
Re: Nachkommazahl in time series in Prozent anzeigen
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. Besser Channel neu anlegen als Number und mit Unit Of Measurement und hoffen
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
- udo1toni
- Beiträge: 15241
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Nachkommazahl in time series in Prozent anzeigen
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:
Aus dem Kopf, weil gerade nicht vor meinem System. Kann auch sein, dass man auch hier parsen muss:
Die DSL steht bis incl. OH4.x immer zur Verfügung, sie wird erst in OH5 optional werden (wenn ich mich korrekt erinnere)
Code: Alles auswählen
transformationPattern: DSL: | (input as Number) * 100
Code: Alles auswählen
transformationPattern: DSL: | Float.parseFloat(input) * 100
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 16
- Registriert: 25. Feb 2021 08:38
Re: Nachkommazahl in time series in Prozent anzeigen
Ich habe jetzt einen zweiten Channel angelegt mit "Incoming Value Transformations"
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.
Code: Alles auswählen
JSONPATH:$.solarbank_info.total_battery_power ∩ JS: | parseFloat(input)*100
Nicht besonders schön, aber es geht.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.