FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Porsti am 14 Juni 2016, 15:12:11

Titel: Doif mit Zahlen oder String
Beitrag von: Porsti am 14 Juni 2016, 15:12:11
Hallo zusammen,

habe da eine Fehlermelund in meinem Log:


2016.06.14 11:46:31 1: PERL WARNING: Argument "off" isn't numeric in numeric ge (>=) at (eval 112663) line 1.
2016.06.14 11:46:31 3: eval: {if(ReadingValIf('HM_xxxxxx_Climate','desired-temp','') >= 18){fhem('set HM_xxxxx_Climate desired-temp 21')}}


Das Problem an der Sache ist das wenn es war genug ist die Heizung manuell im Sommer deaktiviere.
Dann erschein in dem reading "desired-temp" anstatt einer Temperatur die ich bei Abwesendheit die Solltemperatur absenke.
Heute habe ich dann durch verbose 3 herausgefunden woher die meldung kommt.
Da die Thermostate jetzt ausgeschaltet sind steht in der Solltemperatur jetzt leider "off".

Bekommt man dieses Problem gelöst?


Internals:
   DEF        xxxxxx
   NAME       HM_xxxxxx_Climate
   NR         358
   STATE      T: 22.7 desired: off
   TYPE       CUL_HM
   chanNo     02
   device     HM_xxxxxx
   Readings:
     2016-05-06 19:44:05   CommandAccepted yes
     2015-05-10 17:19:03   R-dayTemp       21 C
     .
     .
     2015-10-28 07:51:57   battery         ok
     2016-06-14 14:42:22   boostTime       -
     2016-06-14 14:42:22   commReporting   off
     2016-06-14 14:42:22   controlMode     manual
     2016-06-14 15:05:15   desired-temp    off
     2016-06-14 15:05:15   humidity        57
     2016-06-14 15:05:15   measured-temp   22.7
     .
     .


Gruß und dankbar für eine Tipp
Porsti
Titel: Antw:Doif mit Zahlen oder String
Beitrag von: Ellert am 14 Juni 2016, 15:41:10
Du könntest  "ge" statt ">=" verwenden, das DOIF für diese Zeit deaktiveren oder die Ausgabeformatierung http://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen verwenden.
Titel: Antw:Doif mit Zahlen oder String
Beitrag von: Porsti am 14 Juni 2016, 21:23:07
Hi,

habe jetzt den Filter (:d) auf Zahlen gesetzt aber keine gefundene Zahl bringt auch einen Fehler im log.


2016.06.14 20:05:43 1: PERL WARNING: Argument "" isn't numeric in numeric ge (>=) at (eval 376115) line 1


Gibt es vielleicht eine möglichkeit einen ersatzwert zu setzen wenn keine Zahl gefunden wurde?

Gruß
Porsti
Titel: Antw:Doif mit Zahlen oder String
Beitrag von: CoolTux am 14 Juni 2016, 21:52:14

$val=($val=~'on'?10.5:$val)


Bitte entsprechend anpassen und einbauen oder sich im Netzt über Perlprogrammierung (https://wiki.selfhtml.org/wiki/Perl/Bedingte_Anweisungen#Einfache_Entweder-Oder-Abfrage) informieren.