FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Mickey am 18 Oktober 2016, 01:50:35

Titel: userreading Fehlermeldung
Beitrag von: Mickey am 18 Oktober 2016, 01:50:35
Hallo,

mir ist die Fehlermeldung schon klar, aber wie kann ich das UserReading ändern, dass mir keine Warnung mehr ausgibt?
Funktionieren tut das UserReasing

ZitatPERL WARNING: Argument "keine Abgabe" isn't numeric in numeric gt (>) at (eval 37420) line 1.

Anzeige {
my $temp = ReadingsVal($name,"temperature","0");
my $dp = "keine Abgabe";
if ($temp gt 35){sprintf ("%.1f", $temp)." °C";}
else {sprintf ("%s", $dp);}
}


Danke für die Hilfe

LG, Michael
Titel: Antw:userreading Fehlermeldung
Beitrag von: DeeSPe am 18 Oktober 2016, 02:11:35
Anzeige {
my $temp = ReadingsNum($name,"temperature",0);
my $dp = "keine Abgabe";
if ($temp>35){sprintf("%.1f",$temp)." °C"}else{$dp}
}


Gruß
Dan
Titel: Antw:userreading Fehlermeldung
Beitrag von: DeeSPe am 18 Oktober 2016, 02:26:28
Oder noch eleganter in einer Zeile:
Anzeige {ReadingsNum($name,"temperature",0)>35?sprintf("%.1f",ReadingsNum($name,"temperature",0))." °C":"keine Abgabe"}

Gruß
Dan
Titel: Antw:userreading Fehlermeldung
Beitrag von: Mickey am 18 Oktober 2016, 03:43:57
Guten Morgen,

zeigt mir immer noch:

Zitat2016.10.18 03:39:27 1: PERL WARNING: Argument "18.2 °C" isn't numeric in numeric gt (>) at (eval 7213) line 1.
2016.10.18 03:39:27 1: PERL WARNING: Argument "18.2 °C" isn't numeric in numeric lt (<) at (eval 7214) line 1.
2016.10.18 03:41:45 1: PERL WARNING: Argument "keine Abgabe" isn't numeric in numeric gt (>) at (eval 7477) line 1.
2016.10.18 03:41:45 1: PERL WARNING: Argument "keine Abgabe" isn't numeric in numeric lt (<) at (eval 7478) line 1.

an

Grüße, Michael
Titel: Antw:userreading Fehlermeldung
Beitrag von: CoolTux am 18 Oktober 2016, 04:01:34
Verwendest Du auch wirklich ReadingaNum? Gib mal bitte Deinen aktuellen Code
Titel: Antw:userreading Fehlermeldung
Beitrag von: Mickey am 18 Oktober 2016, 04:11:30
Das ist der aktuelle code:

attr userReading

Anzeige {
my $temp = ReadingsNum($name,"temperature",0);
my $dp = "keine Abgabe";
if ($temp>45){sprintf("%.1f",$temp)." °C"}else{$dp}
}


ich schwöre  :o

kommt aber auch "ohne" das UserReadug
Zitat2016.10.18 04:06:31 1: PERL WARNING: Argument "18.1 °C" isn't numeric in numeric lt (<) at (eval 10487) line 1
.


Titel: Antw:userreading Fehlermeldung
Beitrag von: Mickey am 18 Oktober 2016, 04:18:05
Kann es an den Notify liegen ?

([HM_4EAE1A_T2]>50) (set Sonne_scheint ja)

([HM_4EAE1A_T2]<50) (set Sonne_scheint nein)
Titel: Antw:userreading Fehlermeldung
Beitrag von: Mickey am 18 Oktober 2016, 04:21:11
Hab`s geändert in:

([HM_4EAE1A_T2:temperature]>50) (set Sonne_scheint ja)


([HM_4EAE1A_T2:temperature]<50) (set Sonne_scheint nein)
Titel: Antw:userreading Fehlermeldung
Beitrag von: Mickey am 18 Oktober 2016, 04:29:23
 ;D ;D ;D

das war DER Tip

ZitatVerwendest Du auch wirklich ReadingaNum? Gib mal bitte Deinen aktuellen Code

Jetzt kommen keine WARNUNGEEN mehr, ist ja auch klar. Und ich dachte es kam vom userReading weil in der
Warnung "keine Abgabe" stand. Okay, kann ich mir noch nicht erklären.

oh nein, oh nein ... einfach mal "nachdenken", gelle.

DANKE euch
Titel: Antw:userreading Fehlermeldung
Beitrag von: CoolTux am 18 Oktober 2016, 04:36:40
Zitat von: Mickey am 18 Oktober 2016, 04:18:05
Kann es an den Notify liegen ?

([HM_4EAE1A_T2]>50) (set Sonne_scheint ja)

([HM_4EAE1A_T2]<50) (set Sonne_scheint nein)

Sieht eher aus wie ein DOIF. Ud nd dadurch das Du Dein STATE formatiert hast (stateFormat) hast du nun im STATE nicht nur eine Zahl sondern noch °C und das versucht DOIF zu vergleichen mit > oder <
Titel: Antw:userreading Fehlermeldung
Beitrag von: Mickey am 18 Oktober 2016, 04:41:04
Ja, war natürlich ein DOIF und nun ist es auch vollkommen klar geworden.
Ich "lerne" doch noch...  :D

Danke für die Hilfe.

Grüße, Michael