FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: RedStar73 am 24 November 2017, 22:27:35

Titel: Wert Spliten
Beitrag von: RedStar73 am 24 November 2017, 22:27:35
wollte Komma durch Punkt ersetzen, klappt leider nicht, was stimmt mit diesem Befehl nicht

my $temps=(ReadingsVal("heizungszdummy","state",""));;\
$temps =~ s/\,/ . /;;\

das bedeutet z.B. , wenn der wert von heizungszdummy 21,5, möchte ich diesen wert durch 21.5 ersetzen.

danke
Titel: Antw:Wert Spliten
Beitrag von: Otto123 am 24 November 2017, 23:29:07
Hi,

klappt nicht? Die Katzenklappe oder welche?  ;D

Sowas kannst Du direkt in der FHEM Kommandozeile ausprobieren - funktioniert :)
{ my $val = "21,5" ;; $val =~ s/\,/./ ;; return $val}

Gruß Otto
Titel: Antw:Wert Spliten
Beitrag von: Prof. Dr. Peter Henning am 25 November 2017, 08:02:41
https://regex101.com/

LG

pah
Titel: Antw:Wert Spliten
Beitrag von: JensS am 25 November 2017, 10:19:18
Heist dein Dummy wirklich heizungszdummy?
Was sagt {return (ReadingsVal("heizungszdummy","state",""))}
?
Wenn du lediglich den Wert aus dem Reading "state" als Internal STATE setzen möchtest, kannst du das perattr heizungszdummy stateFormat {my $temps=(ReadingsVal("heizungszdummy","state",""));;$temps =~ s/\,/./;;return $temps}
erledigen. (sh. Beitrag von Otto123)
Allerdings müssen dann neue Werte an das Reading "state" übergeben werden.
setreading heizungszdummy state 21,4

Gruß Jens