Hallo zusammen,
Benutze OH4.1.2 auf dem raspi
Habe ein Temperatur Item der den Wert als Zahl zb. 1000 augibt ich aber Ihn duch 100 teilen will damit eine 10 ausgegebn wird.
Leider konnte ich für OH4 zum Thema Transformation und JSONPATH nicht viel auf deutsch finden.
OH4 Transformation
-
- Beiträge: 2
- Registriert: 27. Sep 2022 14:16
OH4 Transformation
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- udo1toni
- Beiträge: 13989
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH4 Transformation
Die Frage ist, aus welchem Thing/Channel der Wert kommt.
Wenn es sich um mqtt oder http handelt, öffne die Advanced Options des Channels und setze den Paramter unit auf c°C (Centigrad Celsius).
EDIT: aus dem Channellink, geht ja hervor, dass es sich um Modbus handelt (Guten Morgen, Udo!). Keine Ahnung, ob Modbus einen unit Parameter bietet. Falls nicht, kannst Du die Umrechnung aber auch im Link vornehmen, dort gibt es als Optionsfeld Profile, und dort die Option DSL. Wenn Du das auswählst, gibt es weiter unten zwei Felder, von denen das Thing to Item interessant ist. Dort trägst Du
ein. Wahlweise kann es auch notwendig sein, stattdessen
einzutragen (so steht es in der Doku, war bisher bei mir nicht notwendig, aber ich nutze das gerade auch nicht, also hat es da vielleicht eine Änderung gegeben...)
Im Item (Metadata) gibt es ebenfalls einen Parameter unit, den solltest Du auf °C einstellen, außerdem gibt es noch in den Metadatan die State Description. In der State Description gibt es den Parameter Pattern, dort trägst Du %.1f °C ein, für die Anzeige mit einer Nachkommastelle. Falls Du zwei Nachkommastellen willst, schreibst Du statt der 1 eine 2.
Da die vorherigen Werte schon mit dem falschen Faktor persistiert wurden, solltest Du die Persistence für das Item löschen. Im Ordner $OPENHAB_USERDATA gibt es einen Unterordner persistence, dort den Ordner rrd4j und in diesem Ordner gibt es eine Datei Modbus_Data_10200_Value_as_Number.rrd. Diese Datei löschst Du. openHAB wird sie beim eintreffen des nächsten Wertes automatisch wieder anlegen.
Wenn es sich um mqtt oder http handelt, öffne die Advanced Options des Channels und setze den Paramter unit auf c°C (Centigrad Celsius).
EDIT: aus dem Channellink, geht ja hervor, dass es sich um Modbus handelt (Guten Morgen, Udo!). Keine Ahnung, ob Modbus einen unit Parameter bietet. Falls nicht, kannst Du die Umrechnung aber auch im Link vornehmen, dort gibt es als Optionsfeld Profile, und dort die Option DSL. Wenn Du das auswählst, gibt es weiter unten zwei Felder, von denen das Thing to Item interessant ist. Dort trägst Du
Code: Alles auswählen
| input * 0.01
Code: Alles auswählen
| input.to_f * 0.01
Im Item (Metadata) gibt es ebenfalls einen Parameter unit, den solltest Du auf °C einstellen, außerdem gibt es noch in den Metadatan die State Description. In der State Description gibt es den Parameter Pattern, dort trägst Du %.1f °C ein, für die Anzeige mit einer Nachkommastelle. Falls Du zwei Nachkommastellen willst, schreibst Du statt der 1 eine 2.
Da die vorherigen Werte schon mit dem falschen Faktor persistiert wurden, solltest Du die Persistence für das Item löschen. Im Ordner $OPENHAB_USERDATA gibt es einen Unterordner persistence, dort den Ordner rrd4j und in diesem Ordner gibt es eine Datei Modbus_Data_10200_Value_as_Number.rrd. Diese Datei löschst Du. openHAB wird sie beim eintreffen des nächsten Wertes automatisch wieder anlegen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 2
- Registriert: 27. Sep 2022 14:16
Re: OH4 Transformation
Habe im Item (Metadata) IParameter Pattern, eingetragen %.1f °C State Description und Nachkommastellen sind da aber leider keine Umrechnung
Die Datei Datei Modbus_Data_10200_Value_as_Number.rrd gelöscht.
Optionsfeld Profile, und dort die Option DSL ausgewählt:
| input * 0.01 und auch | input.to_f * 0.01
hat aber leider nichts gebracht.
Habe ein Screenshot von dem Thing Cannel beigefügt,ist ein Value as Number.
Die Datei Datei Modbus_Data_10200_Value_as_Number.rrd gelöscht.
Optionsfeld Profile, und dort die Option DSL ausgewählt:
| input * 0.01 und auch | input.to_f * 0.01
hat aber leider nichts gebracht.
Habe ein Screenshot von dem Thing Cannel beigefügt,ist ein Value as Number.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.