[Gelöst] bei Zahl: Komma statt Punkt

Begonnen von MaJu, 30 November 2023, 13:32:19

Vorheriges Thema - Nächstes Thema

MaJu

Ein DOIF berechnet alle paar Sekunden die Summe aus mehreren Mess-Steckdosen und schreibt sie in einen dummy, den ich mir dann in einer ReadingsGroup anzeigen lasse.

Allerdings steht da ein Punkt statt Komma. Statt "1,347 kW" steht da "1.347 kW", womit es wie ein tausender-Trennpunkt aussieht.
Die Anzeige soll in kW erfolgen, ein Wechsel auf Watt ist an dieser Stelle nicht sinnvoll.

Wie kann ich aus dem Punkt ein Komma machen? Entweder im DOIF (direkt in der DEF oder als Attribut), im dummy oder in der ReadingsGroup?

Mein DOIF:
([+00:00:10])
(set Stromverbrauch {(([Shelly1:power]+[Shelly2:power]+[Shelly4:power]+[Shelly5:power]+[Shelly6:power])/1000)})

Attribut "valueFormat" in der Readingsgroup (um es auf 3 Nachkommastellen zu kürzen und "kW" anzufügen:
{state => "aktuell: %.3f kW"}
Ich stehe auf dem Schlauch und komme auch mit der Suche nicht weiter. Vielen Dank bereits vorab.
Erlebnisreiche Grüße aus Leipzig!

Otto123

Hi,

eine Möglichkeit: in dem Ursprungsdevice ein userReadings in der Art (geht sicher besser, der Code ist bei mir uralt ;) ).
userReadings tempText {my $val = ReadingsVal($name,"temperature","Fehler"); $val =~ s/\./,/; $val;},Dann dieses modifizierte Reading nehmen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MaJu

Vielen Dank. Das geht sogar direkt in dem dummy.

Allerdings klappt es nicht, diesen Wert in der readingsGroup auf 3 Nachkommastellen zu kürzen, da FHEM das Komma nicht als solches interpretiert.

Hier muss ich nun vermutlich schon vorher ran und es bei der Berechnung im DOIF anpassen, dass da nur 3 Nachkommastellen rauskommen.
Erlebnisreiche Grüße aus Leipzig!

Otto123

userReadings tempText {my $val = sprintf("%.3f",ReadingsVal($name,"temperature","Fehler")); $val =~ s/\./,/; "aktuell $val kW"}Und in der Readingsgroup einfach den formatierten Wert nehmen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MaJu

Ganz herzlichen Dank Otto, so funktioniert es hervorragend!

Grüße nach "fast um die Ecke" (bei mir: Leipzig-Zentrum).
Erlebnisreiche Grüße aus Leipzig!