Autor Thema: Tausender-Trennzeichen mit valueFormat?  (Gelesen 982 mal)

Offline grappa24

  • Hero Member
  • *****
  • Beiträge: 1057
Tausender-Trennzeichen mit valueFormat?
« am: 14 Oktober 2022, 11:29:46 »
(Wie) kann man denn ein Tausender-Trennzeichen setzen?valueFormat "%'d" geht leider nicht (bei mir).
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Online JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3561
Antw:Tausender-Trennzeichen mit valueFormat?
« Antwort #1 am: 14 Oktober 2022, 13:43:19 »
(Wie) kann man denn ein Tausender-Trennzeichen setzen?valueFormat "%'d" geht leider nicht (bei mir).

Laut commandref werden die Formatierungszeichen der Sprintf-Stilformat-Zeichen verwendet. M. W. gibt es kein Zeichen für eine Tausender Formatierung in Perl. %d mit Apostroph gibt es in C/C++.

Grüße Jörg

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1541
    • Cyanide & Happiness
Antw:Tausender-Trennzeichen mit valueFormat?
« Antwort #2 am: 14 Oktober 2022, 14:33:07 »
Würde dir eine Funktion in der myUtils helfen? Weiss nicht, ob dies mit readingsGroup funktioniert.
viele Grüße, yersinia
----
FHEM 6.2 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl
Hilfreich Hilfreich x 1 Liste anzeigen

Offline grappa24

  • Hero Member
  • *****
  • Beiträge: 1057
Antw:Tausender-Trennzeichen mit valueFormat?
« Antwort #3 am: 14 Oktober 2022, 16:16:20 »
@yersinia: Prima, das hilft mir, muss ich halt nur vorschalten
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Offline Franz Tenbrock

  • Hero Member
  • *****
  • Beiträge: 1421
  • trotz 1000 Beiträgen immer noch Anfänger :-(
Antw:Tausender-Trennzeichen mit valueFormat?
« Antwort #4 am: 28 November 2022, 18:02:26 »
würde mich auch interessieren,
würde gerne in meiner Readingsgroup die Watt Werte in KW umgerechnet anzeigen, leider nur dummy

hatte so was wie das hier probiert:

valueFormat {(my $NewValue = $VALUE / 1000)}
damit kann ich im Reading umrechnen, aber nun habe ich teilweise 4 Nachkommastellen, das dann formatieren habe ich noch nicht geschafft
« Letzte Änderung: 28 November 2022, 19:12:13 von Franz Tenbrock »
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Offline grappa24

  • Hero Member
  • *****
  • Beiträge: 1057
Antw:Tausender-Trennzeichen mit valueFormat?
« Antwort #5 am: 30 November 2022, 10:29:40 »
Mit der sub von yersinia hab ich es z.B. wie folgt umgesetzt:

brightness 3455.77
userReadings Brightness { tausender((split(/\./, ReadingsVal("HM_6ABA70","brightness", 5000.0)))[0]) }
Brightness 3.455

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;
}

P.S. Das split() entfernt die Nachkommastellen:
split(/\./, ... [0])
« Letzte Änderung: 30 November 2022, 10:33:52 von grappa24 »
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

 

decade-submarginal