Mehrere Werte in einer Zeile anzeigen

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

domi1705
Beiträge: 35
Registriert: 11. Aug 2019 21:28

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von domi1705 »

Rules

Code: Alles auswählen

rule "Anzeige Wetter"
	when
		Item localCurrentTemperature changed or
		Item localCurrentHumidity changed
	then
		val String strTemp = if(localCurrentTemperature.state instanceof Number) String::format("%.1f °C",(localCurrentTemperature.state as Number).floatValue) else "--.- °C"
		val String strHum = if(localCurrentHumidity.state instanceof Number) String::format("%.0f %",(localCurrentHumidity.state as Number).floatValue) else "-- %"
		Anzeige_Wetter.postUpdate(strTemp + " / "+strHum)
end
Item

Code: Alles auswählen

String Anzeige_Wetter "Anzeige Wetter[%s]"
Sitemaps

Code: Alles auswählen

Frame label="Wetter"    valuecolor=["red"] {
        Text item=Anzeige_Wetter label="Wetter [%s]" icon="temperature"

domi1705
Beiträge: 35
Registriert: 11. Aug 2019 21:28

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von domi1705 »

Ich habe eigentlich nichts großartig geändert.. wo kann der Fehler sein?

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

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von udo1toni »

Deine Fehlermeldung passt nicht zum geposteten Code. Es ist nicht so, dass Du nicht selbst probieren sollst, den Fehler zu beseitigen, aber Du musst schon darauf achten, Fehlermeldungen und Code zusammenhängend zu halten.

Der Code sieht auf den ersten Blick gut aus, unter der Voraussetzung, dass das System neu gestartet wurde, nachdem alle Änderungen vorgenommen wurden, sollte die Rule funktionieren.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

domi1705
Beiträge: 35
Registriert: 11. Aug 2019 21:28

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von domi1705 »

Code: Alles auswählen

[ntime.internal.engine.RuleEngineImpl] - Rule 'Anzeige Wetter': Conversion = '%'

Code: Alles auswählen

The value of the local variable StrTemp is not used

The value of the local variable StrHum is not used

Ja ich habe das ja bisschen geändert... trotzdem wird das angezeigt...

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

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von peter-pan »

domi1705 hat geschrieben: 14. Okt 2020 18:56 [ntime.internal.engine.RuleEngineImpl] - Rule 'Anzeige Wetter': Conversion = '%'
Darauf kann ich mir im Moment keinen Reim machen. Dazu fehlt es mir an den notwendigen Infos, die müsstest du vielleicht noch posten.
domi1705 hat geschrieben: 14. Okt 2020 18:56 The value of the local variable StrTemp is not used
The value of the local variable StrHum is not used
Diese Meldung ist nur eine Info und sagt aus, dass diese Variablen zwar in der Rule definiert, aber nicht benutzt werden. Ich habe auch weiter oben in deiner Rule gesehen, dass du die Variablen "strTemp" und "strHum" deklariert hast. Das ist anders als "StrTemp" und "StrHum". Bitte Gross-/Kleinschreibung beachten ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

domi1705
Beiträge: 35
Registriert: 11. Aug 2019 21:28

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von domi1705 »

Habe ich angepasst.

Leider auch das zeigt keine Änderung.

in meiner Oberfläche wird nur

Code: Alles auswählen

Wetter             -
angezeigt

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

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von udo1toni »

Oh Mann... Da hab ich mal wieder Tomaten auf den Augen gehabt...

Du nutzt String::format für die Humidity. Das Zeichen dafür ist ein % für die relative Luftfeuchte. % ist aber auch das Zeichen, mit dem die Variablen für die Formatierung gekennzeichnet werden (z.B. %d oder %.1f oder %s), somit muss das Zeichen ecaped werden, nämlich mit einem %. Die zweite Zeile muss also so aussehen:

Code: Alles auswählen

val String strHum = if(localCurrentHumidity.state instanceof Number) String::format("%.0f %%",(localCurrentHumidity.state as Number).floatValue) else "-- %"
                                                                                          /\ da...
Kleines %-Zeichen, große Wirkung...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

domi1705
Beiträge: 35
Registriert: 11. Aug 2019 21:28

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von domi1705 »

Perfekt, da war der Fehler!

Jetzt noch meine Frage, wie ist denn die Rule für die Anzeige wie viele Lampen in einem Bereich an sind

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von PeterA »

domi1705 hat geschrieben: 16. Okt 2020 06:24 Perfekt, da war der Fehler!

Jetzt noch meine Frage, wie ist denn die Rule für die Anzeige wie viele Lampen in einem Bereich an sind
Hier ist ggf. gar keine Rule notwendig wenn Du eine "Zählende" Gruppe verwendest:

Code: Alles auswählen

Group:String:COUNT("ON") EingeschalteteLampen	"Lampen EIN [%d]"			  // e.g. "2"
- OpenHab 2.4
#PWRUP

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

Re: Mehrere Werte in einer Zeile anzeigen

Beitrag von udo1toni »

Oder Du nutzt

Code: Alles auswählen

Group:Switch:OR(ON,OFF) Lampen	"Lampen EIN [%d]"
Alle Switch Items, welche in der Gruppe Lampen Mitglied sind und den Zustand ON haben, werden hierbei gezählt. Die Gruppe selbst hat aber entweder den Zustand ON oder OFF (ON, sobald ein Item den Zustand ON hat)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten