gelöst: userReadings mit Tausenderpunkt formatieren

Begonnen von NewbieNew, 12 März 2023, 15:26:09

Vorheriges Thema - Nächstes Thema

NewbieNew

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

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

NewbieNew

Hallo Dan,
dankeschön. Aber wie baue ich das in mein userReading ein?

Danke

DeeSPe

Na die Funktion in die 99_myUtils.pm und dann:
kWh:total_consumption.* {tausender(ReadingsNum($name,'total_consumption',0)/1000)}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

NewbieNew

Super, Dankeschön. Läuft.

Schönen Sonntag Euch allen.