Seite 1 von 1

Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Verfasst: 16. Feb 2020 20:49
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

Re: Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Verfasst: 16. Feb 2020 21:50
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]"

Re: Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Verfasst: 17. Feb 2020 01:13
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.

Re: Probleme mit Darstellung von 2 Temperaturwerten in einer Zeile

Verfasst: 17. Feb 2020 22:08
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