Anzeige von Temperaturen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

HappyDexter
Beiträge: 36
Registriert: 17. Sep 2020 15:03
Answers: 0

Anzeige von Temperaturen

Beitrag von HappyDexter »

Hallo zusammen,

ich habe in meinem System aktuell 3 Temperaturmesser von Aqara laufen. Diese laufen auch soweit gut, jedoch macht Openhab hin und wieder die Anzeige sehr komisch und nicht passend zum Anzeige Pattern?
Nach Pattern sollte die Anzeige so formatiert werden: %.1f %unit%
Anzeige springt aber bei allen drei immer mal wieder auf so etwas: 14.50000000000001 °C
Anzeige.png
Das Item ist vom Type Number, hat die Dimension Temperatur mit der Unit °C und ist als Semantic Class Point.
Item.png
Das sieht für den Anwender in der Anzeigeoberfläche natürlich bescheiden aus. Kann ich das unterbinden?

Gruß
Happy
von peter-pan » 19. Dez 2024 01:36
Ich mach das auch nur mit "try and error". Aber ich hab mir mal das widget angeschaut und diesen Ausdruck eingearbeitet.

Code: Alles auswählen

  label: '= (props.tmp_label ? props.tmp_label + " " : "") +
    (items[props.tmp_item].displayState || items[props.tmp_item].state) + (props.tmp_suffix ? " " + props.tmp_suffix :
    "")'
Ergebnis:
ergebnis.jpg
Das UoM-Item sieht so aus:
uom-item.jpg
Vielleicht klappt's mit dieser Version.

Hier noch der ganze Yaml-Code:

Code: Alles auswählen

uid: z_testTemperatureHumidity
tags:
  - humidity
  - standalone
  - temperature
props:
  parameters:
    - description: Title of the cell.
      label: Title
      name: title
      required: true
      type: TEXT
      groupName: title
    - context: item
      description: The state of this item will be displayed as temperature.
      label: Temperature item
      name: tmp_item
      required: true
      type: TEXT
      groupName: items
    - context: item
      description: The state of this item will be displayed as humidity.
      label: Humidity item
      name: hum_item
      required: true
      type: TEXT
      groupName: items
    - context: item
      description: The display state of this item will be displayed as last update
        timestamp. Use an item with the timestamp as state and set the pattern
        of the "State Description" metadata to format the timestamp.
      label: Last update item
      name: update_item
      required: false
      type: TEXT
      groupName: items
    - description: Label to be displayed in front of the temperature.
      label: Temperature Label
      name: tmp_label
      required: false
      type: TEXT
      groupName: labels
    - description: Suffix to be displayed after the temperature.
      label: Temperature Suffix
      name: tmp_suffix
      required: false
      type: TEXT
      groupName: labels
    - description: Label to be displayed in front of the humidity.
      label: Humidity Label
      name: hum_label
      required: false
      type: TEXT
      groupName: labels
    - description: Suffix to be displayed after the humidity.
      label: Humidity Suffix
      name: hum_suffix
      required: false
      type: TEXT
      groupName: labels
    - description: Label to be displayed in front of the last update timestamp.
      label: Last Update Label
      name: update_label
      required: false
      type: TEXT
      groupName: labels
  parameterGroups:
    - name: title
      label: Title
    - name: items
      label: Items
    - name: labels
      label: Labels
timestamp: Dec 18, 2024, 7:47:19 PM
component: oh-label-cell
config:
  action: analyzer
  actionAnalyzerItems: =[props.hum_item, props.tmp_item]
  expandable: false
  footer: '= (props.update_item ? (props.update_label ? props.update_label :
    "")  + " " + items[props.update_item].displayState : "")'
  header: = props.title
  icon: oh:temperature
  label: '= (props.tmp_label ? props.tmp_label + " " : "") +
    (items[props.tmp_item].displayState || items[props.tmp_item].state)  + (props.tmp_suffix ? " " + props.tmp_suffix :
    "")'
  subtitle: '= (props.hum_label ? props.hum_label + " " : "") +
    items[props.hum_item].state + (props.hum_suffix ? " " + props.hum_suffix :
    "")'
  trendItem: = props.tmp_item
Den Namen der uid des widgets kannst du ja selbst anpassen.
Gehe zur vollständigen Antwort
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Anzeige von Temperaturen

Beitrag von Harka »

Moin,
schau mal bitte ob es beim Item unter Metadata wirklich ein Eintrag "State Description" gibt. Dieser sollte folgenden Wert haben

Code: Alles auswählen

%.2f %unit%

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

Re: Anzeige von Temperaturen

Beitrag von udo1toni »

Welche Version von openHAB nutzt Du?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

HappyDexter
Beiträge: 36
Registriert: 17. Sep 2020 15:03
Answers: 0

Re: Anzeige von Temperaturen

Beitrag von HappyDexter »

Hi,
Aktuell nutze ich die Version 4.3.0!
Ja ich habe eine StateDesciption in der der Pattern gesetzt ist:
Pattern.png
Mir ist jetzt noch aufgefallen, in der ItemAnzeige selbst werden immer nur 2 Nachkommastellen angezeigt. in Der Itemlist aber dann schon nicht mehr.
ItemAnzeige.png
ItemList.png
Gruß
Happy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
lenschith
Beiträge: 313
Registriert: 11. Dez 2020 22:36
Answers: 0

Re: Anzeige von Temperaturen

Beitrag von lenschith »

das ist richtig so. einmal ist der Wert geändert mit den Pattern und das in der Übersicht ist der tatsächliche Wert.

in den Widgets
.state
ist der tatsächliche Wert und
.displayState
zeigt den manipulierten Wert, also den den du über die Pattern rundest.

https://www.openhab.org/docs/ui/widget- ... ables.html

Gruß Lenschi
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

HappyDexter
Beiträge: 36
Registriert: 17. Sep 2020 15:03
Answers: 0

Re: Anzeige von Temperaturen

Beitrag von HappyDexter »

ok, in rules, oder einer BasicUI Datei könnte ich dann anstatt .state auf .diplayState gehen. Aber wie mache ich das an der Oberfläche wenn ich in einer Page ein Widget konfiguriere. Da gebe ich ja nur das anzuzeigende Item an.
widget.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Anzeige von Temperaturen

Beitrag von peter-pan »

Was ist denn das für ein Widget ? Wenn es ein Custom-Widget ist, müsstest du ggf. am Code etwas ändern.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

HappyDexter
Beiträge: 36
Registriert: 17. Sep 2020 15:03
Answers: 0

Re: Anzeige von Temperaturen

Beitrag von HappyDexter »

Ist im Add-On Store als User Interface drin.
WidgetBeschreibung.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
lenschith
Beiträge: 313
Registriert: 11. Dez 2020 22:36
Answers: 0

Re: Anzeige von Temperaturen

Beitrag von lenschith »

Das widget findest du nach der Installation in den Entwickler Tools/Widgets und dort kannst du das anpassen. Im Quellcode steht dort
.state
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED

HappyDexter
Beiträge: 36
Registriert: 17. Sep 2020 15:03
Answers: 0

Re: Anzeige von Temperaturen

Beitrag von HappyDexter »

Danke für die Info, habe es angepasst. Jetzt werden mir die Werte mal angezeigt und ganz oft als undefined angezeigt.
undefined.png
Ich habe das widget dann nochmal gelöscht und neu installiert, dann waren die Werte wieder sichtbar. Dann wieder state durch displayState ersetzt und wieder undefined.
Aenderung.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten