Ich bin langsam am verzweifeln :-[
Ich möchte in einer ReadingsGroup die EInheit abschneiden, weil ich dauernd Fehler im Log habe.
Es sind Stromverbrauchswerte von drei Fritz DECT 200, die hinter dem Wert noch die EInheit (W) stehen haben.
Ich habe mit dem $VALUE gespielt und hier rumgesucht, aber leider nichts gefunden, was funktioniert.
Im Moment habe ich unter valueFormat (wieder) %.1f Watt
Das Reading sieht so aus: 0.00 W
Die Fehlermeldung so: PERL WARNING: Argument "0.00 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 612
das geht zum beispiel so:{[split(" ", $VALUE)]->[0] ." Watt"}
oder{if( $VALUE =~ m/([\d.]*)/ ) {return "$1 Watt"; } return $VALUE;}
gruss
andre
Danke Andre, der zweite Code lässt zumindest den Fehler verschwinden.
Allerdings zweigt mir die ReadingsGroup jetzt nur noch einstellig an und das auch noch falsch?
Aktuell habe ich ein Reading in einer Fritz 546 von 230 Watt und die ReadingsGroup zeigt 5 Watt??
im zweiten beispiel war eine klammer falsch.
gruss
andre
Danke Andre, jetzt geht es
Hallo zusammen,
ich bin relativ neu in der Materie und noch nicht ganz so erfahren wo ich nach was suchen soll und hoffe hier einen kleinen Gedankenanstoß zu bekommen. ;)
Ich habe eine ähnliche Fehlermeldung in meinen Logs drin:
PERL WARNING: Argument "0.00 W" isn't numeric in numeric lt (<) at (eval 11008) line 1.
PERL WARNING: Argument "0.00 W" isn't numeric in numeric lt (<) at (eval 11166) line 1.
PERL WARNING: Argument "0.00 W" isn't numeric in numeric lt (<) at (eval 11328) line 1.
Leider habe ich nicht die geringste Idee wo ich eines der beiden Programmzeilen einfügen soll.
Die Meldung selber dürfte durch dieses Define ausgelöst werden:
define SteckdoseHTPC_aus at +*00:15:00 { if (!$wday == 5 || !$we) {if (Value("Rene_Handy") eq "absent") { if (ReadingsVal("ug_bar_steckdose","power","") < 20) {fhem ("set ug_bar_steckdose off");; }}}}
Dies tritt in Verbindung mit einem AVM PowerLine- Adapter 546e auf.
Könnt Ihr mir eventuell ein wenig auf die Sprünge helfen?
Gruß,
Richy
ich weiss zwar nicht was das in deinem fall mit readingsGroup zu tun hat :)...
das problem ist das dein reading nicht nur zahlen enthält sondern auch die einheit und du dann beim vergleich eine warnung bekommst. um das zu vermeiden musst du die einheit abschneiden.
das geht in dem du entweder ReadingNum statt ReadingVal verwenderst oder z.b. auch so:define SteckdoseHTPC_aus at +*00:15:00 { if (!$wday == 5 || !$we) {if (Value("Rene_Handy") eq "absent") { if ((split(' ',ReadingsVal("ug_bar_steckdose","power","")))[0] < 20) {fhem ("set ug_bar_steckdose off");; }}}}
gruss
andre
Ich stimme Dir vollkommen zu das es nichts mit ReadingsGroup zu tun hat, aber die Fehlermeldung ist sehr ähnlich und es handelt sich auch um einen PowerLine- Adapter.
Alle anderen ähnlichen Beiträge hier im Forum haben mich leider auch nicht weiter gebracht, also musste ich mir einen Beitrag aussuchen in dem ich schreiben konnte. ;)
Genau das war es! Vielen Dank für die Hilfe! :)
Gruß,
Richy