FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: NewbieNew am 12 März 2023, 15:26:09

Titel: gelöst: userReadings mit Tausenderpunkt formatieren
Beitrag von: NewbieNew am 12 März 2023, 15:26:09
Hallo an alle,
ich suche krampfhat eine Lösung. Ich möchte ein userReading durch 1000 teilen und die Anzeige mit Komma und Tausenderpunkt formatieren.

Ein Stück habe ich schon geschafft:

kWh { my $val = (ReadingsVal("$name", "total_consumption", 0)/1000); $val =~ s/\./,/; return $val;}


macht aus 26730040   26730,04

Also fehlt nur noch der Tausenderpunkt. Würde mit bitte jemand auf die Sprünge helfen?

Dankeschön
Titel: Antw:userReadings mit Tausenderpunkt formatieren
Beitrag von: DeeSPe am 12 März 2023, 15:30:43
Hatte ich auch mal hier im Forum gefunden.

sub tausender
{
  my $zahl = shift;
  my $text = reverse $zahl;
  $text =~ s/\./\,/g;  #replace decimal point by decimal comma
  $text =~ s/(\d\d\d)(?=\d)(?!\d*\,)/$1./g;
  return scalar reverse $text;
}


Gruß
Dan
Titel: Antw:userReadings mit Tausenderpunkt formatieren
Beitrag von: NewbieNew am 12 März 2023, 15:46:50
Hallo Dan,
dankeschön. Aber wie baue ich das in mein userReading ein?

Danke
Titel: Antw:userReadings mit Tausenderpunkt formatieren
Beitrag von: DeeSPe am 12 März 2023, 15:51:07
Na die Funktion in die 99_myUtils.pm und dann:
kWh:total_consumption.* {tausender(ReadingsNum($name,'total_consumption',0)/1000)}

Gruß
Dan
Titel: Antw:userReadings mit Tausenderpunkt formatieren
Beitrag von: NewbieNew am 12 März 2023, 17:51:53
Super, Dankeschön. Läuft.

Schönen Sonntag Euch allen.