Seite 1 von 1

Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 1. Feb 2021 09:50
von oh3twh
Hi liebes Forum,

ich habe mal eine Frage, wie man Einheiten (Temperaturen in °C oder Preise in €) für Items konfiguriert.

Konkret habe ich das Problem bei meinem KM200 Binding (Buderus Connector). Bei einigen Werten haben die Items keine "°C" Einheiten.
Und ich kann nicht erkennen, wie man das ändert.

Hier im Beispiel: Vorlauf vs. Sollwert
temps.png
Ich bin die Items und Things und Channels sukzessive durchgegangen. Vielleicht habe ich generell etwas falsch verstanden, aber ich kann keine Konfig finden in der ich dem Item, Thing, Channel, etc die "Unit °C" ergänzen kann.

Könnt ihr mir auf die Sprünge helfen?

grüße
\thomas

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 1. Feb 2021 10:25
von Detlef
Hallo

ich habe gerade ein Temperatur Idem bearbeitet. Bei mir ist es ein "Number" . Bei mir war es so:
Idem / Edit dann Type: " Number " auf und "Number und Dimensionen" Temperatur auswählen eingerichtet.
Bei mir wurde dann Grad am Idem angezeigt. Aber Vorsicht bei mir läuft eine Rules was die Werte vom Idem ausliest.
Meine Rules macht nun Probleme, weil jetzt das Idem keine reine Zahl mehr ist?

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 1. Feb 2021 10:27
von Darkwin101
füge Metadata bei deinem Item ein, unter Pattern %.1f Einheit

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 1. Feb 2021 10:30
von Anbeku
Detlef hat geschrieben: 1. Feb 2021 10:25 Meine Rules macht nun Probleme, weil jetzt das Idem keine reine Zahl mehr ist?
So wird es sein. Dann musst du dem Vergleichswert auch eine Einheit geben

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 1. Feb 2021 10:41
von oh3twh
Darkwin101 hat geschrieben: 1. Feb 2021 10:27 füge Metadata bei deinem Item ein, unter Pattern %.1f Einheit
OK perfekt!! Das war der missing link in meinem Verständnis. VIELEN DANK!!!

Sind die Metadata-Konfigurationen irgendwo im OH3 Docu dokumentiert?

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 1. Feb 2021 17:10
von sihui
oh3twh hat geschrieben: 1. Feb 2021 10:41 Sind die Metadata-Konfigurationen irgendwo im OH3 Docu dokumentiert?

https://www.openhab.org/docs/configurat ... esentation

Code: Alles auswählen

Number    Livingroom_Temperature   "Temperature [%.1f °C]"             // e.g. "23.5 °C"
String    Livingroom_TV_Channel    "Now Playing [%s]"                  // e.g. "Lorem ipsum"
DateTime  Livingroom_TV_LastUpdate "Last Update [%1$ta %1$tR]"         // e.g. "Sun 15:26"
Number    Livingroom_Clock_Battery "Battery Charge [%d %%]"            // e.g. "50 %"
Location  My_Location              "My Location [%2$s°N %3$s°E %1$sm]" // e.g. "49.26°N 123.19°E 0m"

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 10. Mär 2024 11:03
von starbright
Hab versucht die Unit per GUI einzustellen. Laut Doku gibt es sowohl % als auch ppm. Möchte ich für Luftfeuchte und CO2 Konzentration nutzen. Ok, das zweite ist speziell aber das es für Luftfeuchte nichts vorderfiniertes gibt ist komisch (openHAB 3.4)
https://v34.openhab.org/docs/concepts/u ... t-of-units
Ich kann aber nur number.dimensionless auswählen und dann wird "one" als Einheit angezeigt?!?
Oder wie bekomme ich das hin?

(Das ist eine MQTT channels sind die alle als Numbers definiert. Eines als Number.temperature - das funktioniert, die anderen als Number.dimensionless - weil was passendes gibt es da nicht)

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 10. Mär 2024 11:45
von udo1toni
Number:Dimensionless ist korrekt, Du musst anschließend die Unit aber noch auf % setzen, denn Dimensionless kann halt beides sein. Die Unit muss einmal in den Metadaten als Unit gesetzt werden und zusätzlich noch in der State Description im Pattern, z.B. %.1f %% für Prozent mit einer Nachkommastelle.

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 10. Mär 2024 16:09
von starbright
Dankeschön - wie immer ein super Tip! Tatsächlich reicht in Metadata/State description/pattern (wie in deinem Beispiel). Andererseits gibt in den ChannelData/Configuration/advanced es einen Eintrag vom man Unit direkt eintragen kann, aber das führte nicht zum Erfolg.

Re: Einheiten von Items richtig konfigurieren und anzeigen

Verfasst: 10. Mär 2024 20:02
von udo1toni
Nein, wenn Du openHAB4 einsetzt, ist der Unit-Parameter NICHT optional (leider ist er aber über die Metadaten realisiert, Du wirst also nicht gezwungen, ihn zu setzen).

Der Unit Parameter im UoM Item bestimmt, in welchem Format der Wert im Item vorliegt.

Beispiel:
Ein Channel liefert die Temperatur als Integerzahl in zehntel Grad Celsius (und weil ich es mir einfach mache, handelt es sich um einen mqtt Channel).
Du setzt im Channel selbst den Unit Parameter auf "d°C", also Dezigrad Celsius, womit der Wert als Grad Celsius mit einer Nachkommastelle im System landet, eine "eigene" Umrechnung ist also unnötig.
Du möchtest den Wert gerne in Kelvin speichern, weil Du Wissenschaftler bist ;) und trägst deshalb in der Item Unit "K" ein. Außerdem möchtest Du den Wert in °F mit einer Nachkommastelle anzeigen lassen und setzt entsprechend das State Description Pattern auf "%.1f °F".

Und weil das Item persistiert wird, bekommst Du im zugehörigen Chart den Messwert in K ausgegeben, denn die Persistence nutzt den Zahlenwert, so wie er im Item vorliegt (ohne Unit). Beim Auslesen der Persistence wiederum orientiert sich die Persistence ebenfalls am Unit-Parameter des Items, weshalb der Wert dann in einer Rule fehlerfrei als QuantityType mit welcher Einheit auch immer (solange es eine unterstützte Temperatureinheit ist) verwendet werden kann.

Ganz wichtig: die Item Unit wird nur einmalig gesetzt. Änderungen an dieser Stelle führen zu Fehlinterpretation aller bereits persistierten Daten (weil sich ja nun der Umrechnungsfaktor geändert hat, in der Datenbank wird die Einheit nicht gespeichert, schon gar nicht pro Messwert).
Das gleiche gilt (wenn als Option vorhanden) auch für den Unit Parameter im Channel, aber der ist ohnehin nicht frei wählbar, sondern abhängig vom real gelieferten Zahlenwert.