Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Eleven
Beiträge: 53
Registriert: 15. Okt 2018 10:27
Answers: 0

Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Beitrag von Eleven »

Hallo,
ich versuche schon seit geraumer Zeit, mir die aktuellen Ist- und Soll-Temperaturen in einer Zeile nebeneinander anzeigen zu lassen.
Gemäß dem log werden Werte ausgegeben, allerdings wird nichts auf der Sitemap angezeigt.

items

Code: Alles auswählen

Number      AZ_Heizung_ActTemp                          "AZ_Heizung Ist-Temperatur [%.1f °C]"                   <temperature>       (Heating_AZ,AZ,Temperatures,test)                       { channel="zwave:device:e16eec95:node43:sensor_temperature" }
Number      AZ_Heizung_SetTemp                          "AZ_Heizung Solltemperatur [%.1f °C]"                   <temperature>       (Heating_AZ,AZ,Heating_TargetTemps,test)                { channel="zwave:device:e16eec95:node43:thermostat_setpoint_heating" }
String      AZ_Heizung_SetTemp_ActTemp                  "AZ_Heizung Set-Temp / Akt-Temp "                        <temperature>       (test)
rules

Code: Alles auswählen

rule "2 Temperaturen in einer Zeile" 
when 
    Item AZ_Heizung_ActTemp received update or
    Item AZ_Heizung_SetTemp received update
then 
    AZ_Heizung_SetTemp_ActTemp.postUpdate("Ist: " + String::format("%.1f", (AZ_Heizung_ActTemp.state as DecimalType).floatValue()) + " °C , Soll: " + String::format("%.1f", (AZ_Heizung_SetTemp.state as DecimalType).floatValue()) + " °C")
end
sitemap

Code: Alles auswählen

Text item=AZ_Heizung_SetTemp_ActTemp label="Soll- / Ist-Temperatur"
logausgabe:

Code: Alles auswählen

2020-02-16 20:26:33.994 [vent.ItemStateChangedEvent] - AZ_Heizung_SetTemp_ActTemp changed from Ist: 19,0 °C , Soll: 20,0 °C to Ist: 19,2 °C , Soll: 20,0 °C
Habt Ihr vielleicht eine Idee warum auf der Sitemap kein Wert ausgegeben wird?


Grüße eleven

eiGelbGeek
Beiträge: 226
Registriert: 11. Aug 2019 06:39
Answers: 4

Re: Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Beitrag von eiGelbGeek »

Eleven hat geschrieben: 16. Feb 2020 20:49

Code: Alles auswählen

String      AZ_Heizung_SetTemp_ActTemp                  "AZ_Heizung Set-Temp / Akt-Temp "                        <temperature>       (test)

Code: Alles auswählen

String      AZ_Heizung_SetTemp_ActTemp                  "AZ_Heizung Set-Temp / Akt-Temp [%s]"                        <temperature>       (test)
Eleven hat geschrieben: 16. Feb 2020 20:49

Code: Alles auswählen

Text item=AZ_Heizung_SetTemp_ActTemp label="Soll- / Ist-Temperatur"

Code: Alles auswählen

Text item=AZ_Heizung_SetTemp_ActTemp label="Soll- / Ist-Temperatur [%s]"

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

Re: Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Beitrag von udo1toni »

Nur zur Erläuterung: Wenn Du ein Item mit einem Channel verlinkst, kümmert sich openHAB selbst darum, dass das Label des Items den Status enthält.

Bei Items, die nicht mit einen Channel verlinkt sind (also ungebundene Items oder solche, die nur mit einem OH1 Binding verknüpft sind) muss man selbst dafür sorgen, indem man den dynamischen Teil des Labels setzt, dies geschieht ausschließlich am Ende des Labels, und zwar innerhalb eckiger Klammern.

Das Label "Test [%s]" ergibt also das Label Test und rechts davon den Status als String. Es gibt verschiedene Formatierungsoptionen, %s für String, %d für eine Ganzzahl und %.1f für eine Dezimalzahl, die mit einer Nachkommastelle ausgegeben wird. Für %d muss der Status ebenfalls eine Ganzzahl sein. Die Anzahl Nachkommastellen bei %.1f ist von 0 bis 9 beliebig.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Eleven
Beiträge: 53
Registriert: 15. Okt 2018 10:27
Answers: 0

Re: Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Beitrag von Eleven »

Nach dem setzen von [%s] funktioniert es nun.
Vielen lieben Dank für die Hilfe und natürlich auch für die sehr ausführliche Erklärung!!

Grüße eleven

Antworten