Einen String formatieren?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Einen String formatieren?

Beitrag von udo1toni »

Und statt %s kann sie auch %.1f nehemn, um eine Nachkommastelle angezeigt zu bekommen. ODer auch %.0f, wenn gar keine Nachkommastellen angezeigt werden sollen.

Das funktioniert übrigens auch mit anderen Bindings, z.B. mqtt kann das auch schon (da habe ich das gestern selbst eingepflegt...).

Hinweis am Rande: Die Persistence Services können nichts mit der Einheit anfangen (oder zumindest bei rrd4j ist das so). Die Zahl wird dann in dem Format gespeichert, welches das Label in der Itemdefinition hat. Wenn man also die Einheit nachträglich ändert, z.B. von Wh auf kWh, dann gibt es in den Daten einen Sprung :) Aber solche Einstellungen nimmt man ja gewöhnlich nur einmalig vor.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

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

Re: Einen String formatieren?

Beitrag von udo1toni »

peter-pan hat geschrieben: 22. Nov 2022 00:58 Wenn du an den Things Änderungen vornimmst, solltest du danach sicherheitshalber einen Restart von openHAB vornehmen. Das hat schon in der Vergangenheit manchmal ein Problem nach sich gezogen, da die Synchronisation nicht so hunderprozentig geklappt hat.
Ja, die *.things Dateien sind ja nicht von Anfang an dabei gewesen. Entsprechend wurden beim "Nachpflegen" der Funktion ein paar Dinge außer Acht gelassen. So kommt es, dass zwar das Entfernen von Things und das Hinzufügen von Things einwandfrei funktioniert, aber beim Update eines Things ohne Hinzufügen oder Entfernen von Channels werden die Änderungen nicht umgehend erkannt. (Hint: wenn die ID des Channels umbenannt wird, wird ein Channel entfernt und ein neuer hinzugefügt...)

Bei Items hingegen funktioniert der Mechanismus vollständig, da er schon immer integraler Bestandteil von openHAB war, quasi schon seit Version 0.1...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

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

Re: Einen String formatieren?

Beitrag von peter-pan »

udo1toni hat geschrieben: 22. Nov 2022 13:04 Und statt %s kann sie auch %.1f nehmen, um eine Nachkommastelle angezeigt zu bekommen. Oder auch %.0f, wenn gar keine Nachkommastellen angezeigt werden sollen.
Das ist natürlich die bessere Wahl, vor allem für Type Number.
udo1toni hat geschrieben: 22. Nov 2022 13:04 Das funktioniert übrigens auch mit anderen Bindings, z.B. mqtt kann das auch schon (da habe ich das gestern selbst eingepflegt...).
Jetzt schäm' ich mich ein bisschen... :oops: :oops: :oops:

Code: Alles auswählen

Ein Item:
Number:Pressure         esp_amica_01_pres1          "ESP Amica  BME280 Luftdruck[%.1f %unit%]"               <pressure64>            (gAmica_01)                          ["Pressure", "Measurement"]                 { channel="mqtt:topic:claudi:esp_amica01:pres1"}    

Ein Channel:
Type number : pres1       "Pres. BME280"          [ stateTopic="tele/amica_01/SENSOR",  transformationPattern="JSONPATH:$.BME280.Pressure", unit="hPa"]
           
Das habe ich auch schon eine Weile so. Wenn ich mich nicht täusche, ist der Tipp von dir. Asche über mein Haupt. :)

Das ist halt dem Alter und auch der Tatsache geschuldet, dass ich immer weniger mit Grundlagen arbeite und mehr Zeit mit "Spielereien" an den Widgets verbringe, obwohl ich da wenig Struktur finde und viel Zeit mit "Try and Error" verbringe.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten