Formatierung für den Item Typ Number:Dimensionless

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Formatierung für den Item Typ Number:Dimensionless

Beitrag von scotty »

Hallo Zusammen,

Ich möchte mir den Ladezustand verschiedener Batterien anzeigen lassen. So wird z. B. aktuell ein Wert von 0.98 statt 98.0 % angezeigt. Ein entsprechende Formatierung dazu habe ich noch nicht gefunden, oder muss ich das über eine Regel lösen?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von peter-pan »

Ich hab das mal mit drei Items getestet:

Code: Alles auswählen

Number:Dimensionless   OC_WaF_Current_Humidity    "Aktuell Luftfeuchtigkeit [%.1f %unit%]" (gOCact) ["Measurement","Humidity"] {channel="openweathermap:onecall:bridge:local:current#humidity"}
Number:Dimensionless   OC_WaF_Current_Cloudiness  "Aktuell Bewölkung"                      (gOCact) ["Point"]                  {channel="openweathermap:onecall:bridge:local:current#cloudiness"}
Number:Dimensionless   OC_WaF_ForecastToday_Cloudiness "Heute Bewölkung [%.1f %%]"         (gOCact) ["Point"]                  {channel="openweathermap:onecall:bridge:local:forecastToday#cloudiness"}
Das Ergebnis in OH3:
unit.jpg
Wie du siehst, wird alles richtig angezeigt, sogar ohne Pattern. Was für eine Dimension verbirgt sich denn in deinem Item ? Hast du schon mal in der Konsole nachgeschaut, ob hier eine Quantity (UoM) mit gegeben wird ?

Code: Alles auswählen

openhab> items list | grep -i _cloudiness
OC_WaF_Current_Cloudiness (Type=NumberItem, State=86 %, Label=Aktuell Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
OC_WaF_ForecastToday_Cloudiness (Type=NumberItem, State=83 %, Label=Heute Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
Bist du sicher, dass das Item einen Quantity-Type hat ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von peter-pan »

...einen hab ich noch. (Es hat mir keine Ruhe gelassen :lol: ) Wenn du tatsächlich einen Wert mit "Null-Komma-Irgendwas (0.68)" als Status in deinem Item stehen hast, könntest du das per Expression umrechnen.
Hier mal ein Beispiel in einer Label-Card:
Yaml-Code:

Code: Alles auswählen

component: oh-label-card
config:
  item: Gosund_socket_02_VerbGesternt
  title: "Batterie - Level Test "
  label: =Number.parseInt(items.Gosund_socket_02_VerbGesternt.state*100)+ " %"
  footer: =items.Gosund_socket_02_VerbGesternt.state
slots: null
Damit wird dann nicht der Item-Status, sondern der Ausdruck, den du unter "Label" definiert hast ausgegeben.

Das sieht dann so aus:
unit.jpg
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

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

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von udo1toni »

ACH, das geht jetzt? Cool!
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von peter-pan »

udo1toni hat geschrieben: 23. Mär 2021 16:20 ACH, das geht jetzt? Cool!
Eigentlich wollte ich erst, was mit "split" und "slice" ausprobieren. Hab's aber nicht hingekriegt :oops: .
Und dann hab ich durch Zufall das mit "parseInt" gefunden.

Es gibt sicher auch noch andere Möglichkeiten (parseFloat), aber wer gerne Dezimalwerte mit einer bestimmten Anzahl von Nachkommastellen ausgegeben haben will, der kann auch mit diesem Ausdruck weiter kommen.

Code: Alles auswählen

=(items.Gosund_socket_02_VerbGestern.state*100).toFixed(2)+ " %"

einsch. einem bestimmten Pattern.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von scotty »

@peter-pan

Auf den ersten Blick habe ich mir gedacht, das könnte funktionieren - leider nein. OH3 baue ich parallel auf einer NAS im Docker auf. Da vermute ich inzwischen schon, dass verschiedene Dinge anders interpretiert werden. Per Konsole komme ich auch nur über Putty auf OH und nach Eingabe von "items list | grep -i _cloudiness" erhalte ich die Meldung "Items: Befehl nicht gefunden".
Vielleicht sollte ich auch noch erwähnen, dass ich die Items nach einem Tipp aus diesem Forum lediglich von OH2.5 nach OH 3.01 kopiert habe. Da muss allerdings auch häufig noch einmal "Hand" angelegt werden.
Bist du sicher, dass das Item einen Quantity-Type hat ?
Was heißt das genau und wie kann ich den Type ermitteln?

Gruß
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von peter-pan »

Mit Konsole meinte ich die Karaf-Konsole.
Also wenn du mit Putty auf deinen OH-Rechner(Shell-Konsole) gehst, musst du anschliessend in die Karaf-Konsole gehen.

Code: Alles auswählen

hab3@hostHAB3:~ $ openhab-cli console

Logging in as openhab
Password:

                           _   _     _     ____
   ___   ___   ___   ___  | | | |   / \   | __ )
  / _ \ / _ \ / _ \ / _ \ | |_| |  / _ \  |  _ \
 | (_) | (_) |  __/| | | ||  _  | / ___ \ | |_) )
  \___/|  __/ \___/|_| |_||_| |_|/_/   \_\|____/
       |_|       3.1.0.M2 - Milestone Build

Use '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
To exit, use '<ctrl-d>' or 'logout'.

openhab>
und dann kannst du deine Items selektieren:

Code: Alles auswählen

openhab> items list | grep -i _cloudiness
OC_WaF_ForecastDay3_Cloudiness (Type=NumberItem, State=12 %, Label=Tag 3 Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
OC_WaF_ForecastDay5_Cloudiness (Type=NumberItem, State=86 %, Label=Tag 5 Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
OC_WaF_ForecastDay4_Cloudiness (Type=NumberItem, State=36 %, Label=Tag 4 Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
OC_WaF_ForecastTomorrow_Cloudiness (Type=NumberItem, State=2 %, Label=Morgen Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
OC_WaF_Current_Cloudiness (Type=NumberItem, State=25 %, Label=Aktuell Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
OC_WaF_ForecastToday_Cloudiness (Type=NumberItem, State=97 %, Label=Heute Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
OC_WaF_ForecastDay2_Cloudiness (Type=NumberItem, State=99 %, Label=Tag 2 Bewölkung, Category=null, Tags=[Point], Groups=[gOCact])
openhab>
Das Standard-Passwort für die Konsole ist "habopen". Nach einer gewissen Inaktivität wirst du automatisch aus der Karaf-Konsole ausgeloggt und bist dann wieder in der Shell-Konsole. Du kannst dich aber auch aktiv aus der Karaf-Konsole mit "logout" ausloggen.

Das ist übrigens in OH2 und OH3 gleich.
scotty hat geschrieben: 23. Mär 2021 19:55 Was heißt das genau und wie kann ich den Type ermitteln?
Was sagt denn deine Binding-Beschreibung zu dem entsprechenden Channel ?


Edit: Poste mal das Item

Nochmal Edit: und anstelle von "-cloudiness" musst du natürlich ein Such-Muster deines Items eingeben ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von scotty »

Hier das Item:

Code: Alles auswählen

// Item Wohnen
Number HTwohnenDeviceWifiSignal                     "Signalstärke"                      {channel="shelly:shellyht:955aae:device#wifiSignal"}
Number:Time HTwohnenDeviceUptime                    "Laufzeit"                          {channel="shelly:shellyht:955aae:device#uptime"}
Switch HTwohnenDeviceUpdateAvailable                "Firmwareaktualisierung vorhanden"  {channel="shelly:shellyht:955aae:device#updateAvailable"}
Number:Temperature HTwohnenSensorsTemperature       "Sensors temperature"               {channel="shelly:shellyht:955aae:sensors#temperature"}
Number:Dimensionless HTwohnenSensorsHumidity        "Sensors humidity"                  {channel="shelly:shellyht:955aae:sensors#humidity"}
String HTwohnenDeviceWakeupReason                   "Device wakeup reason"              {channel="shelly:shellyht:955aae:device#wakeupReason"}
Number:Dimensionless HTwohnenBatteryBatteryLevel    "Battery level [%.1f %unit%]"       {channel="shelly:shellyht:955aae:battery#batteryLevel"}
Switch HTwohnenBatteryLowBattery                    "Battery low battery"               {channel="shelly:shellyht:955aae:battery#lowBattery"}
Number:ElectricPotential HTwohnenBatteryVoltage     "Battery voltage"                   {channel="shelly:shellyht:955aae:battery#voltage"}
DateTime HTwohnenSensorsLastUpdate                  "Sensors last update"               {channel="shelly:shellyht:955aae:sensors#lastUpdate"}
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von peter-pan »

Vorab, dass mit der Konfiguration in Text-Form ist kein Problem in OH3. Ich selber habe nur Text-Items in OH3 im Einsatz. Natürlich mit den OH3-spezifischen Erweiterungen (Tags) für das semantische Modell und noch ein paar Ergänzungen für Meta-Daten z.B. für bestimmte Widgets (Stepper) und evtl. einige Patterns. Lediglich bei den Things fahre ich zweigleisig. Das habe ich aber auch schon bei OH2 gemacht (Homematic).

Ich habe leider keine Shellies im Einsatz, deshalb kann ich auch nur vermuten. Aber ich habe beim Querlesen des Bindings keinen direkten Hinweis auf Quantity-Type (UoM)-Items gefunden, lediglich, dass es sich um einen %-Wert handeln soll.

Ich nehme an, dass du dieses Item meinst:

Code: Alles auswählen

Number:Dimensionless HTwohnenBatteryBatteryLevel    "Battery level [%.1f %unit%]"       {channel="shelly:shellyht:955aae:battery#batteryLevel"}
Das sieht eigentlich vom Aufbau her soweit ganz gut aus.
Dazu gleich eine Frage! Bekommst du in OH2 einen %-Wert angezeigt, oder ist es da auch ein Dezimal-Wert zwischen 0 und 1 ?

Wie schon weiter vorne beschrieben, kannst du dir die State-Werte in der Karaf-Konsole anschauen(OH2/OH3). Das Kommando wäre in diesem Fall

Code: Alles auswählen

items list | grep -i HTwohnenBatteryBatteryLevel
Eine weitere Möglichkeit der Anzeige wäre noch REST-Api (OH2) bzw. API-Explorer (OH3).

In OH3 gäbe es auch noch eine dritte Möglichkeit, die Developer-Sidebar. Hier kannst du einfach mal den Ausdruck:

Code: Alles auswählen

=items.HTwohnenBatteryBatteryLevel.state
in den Expression-Tester eintippen, dann würdest du den tatsächlichen "State" sehen, entweder mit UoM oder ohne.

Beispiel:
battery.jpg
Beispiel mit UoM:
uom.jpg
Das wäre jetzt mal im ersten Schritt zu klären. Welchen Wert enthält dein Item ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Formatierung für den Item Typ Number:Dimensionless

Beitrag von scotty »

So, nun hab ich alles noch einmal überarbeitet, d. h. Things und Items nach der OH Doku neu geschrieben. Dabei sind einige, kleinere Änderungen entstanden. Und siehe da: es funktioniert alles wie gewünscht. Bei der Shelly-Variante "H&T" handelt es sich um Thermometer, welche die meiste Zeit offline sind. Zu einrichten muss man sie dann aufwecken, damit OH die Things bilden kann.

Grundsätzlich habe ich durch dich wieder einiges dazu gelernt, danke dafür! Eine Frage hätte ich abschließend allerdings noch an dich: kopierst du die Things und Items ebenfalls oder gibt es eine Möglichkeit zum importieren bzw. konvertieren?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Antworten