Hallo zusammen,
ich habe aktuell ein Problem mit einem DOIF. Zur Ursachenforschung habe ich stacktrace aktiviert, komme aber mit der Ausgabe nicht wirklich weiter.
Folgendes steht im log:
2020.12.09 00:00:18 1: PERL WARNING: Argument "off" isn't numeric in numeric lt (<) at (eval 446419) line 1.
2020.12.09 00:00:18 3: eval: dihzgctr: warning in condition c01
2020.12.09 00:00:18 1: stacktrace:
2020.12.09 00:00:18 1: main::__ANON__ called by (eval 446419) (1)
2020.12.09 00:00:18 1: (eval) called by ./FHEM/98_DOIF.pm (2142)
2020.12.09 00:00:18 1: main::DOIF_CheckCond called by ./FHEM/98_DOIF.pm (2489)
2020.12.09 00:00:18 1: main::DOIF_Trigger called by ./FHEM/98_DOIF.pm (2715)
2020.12.09 00:00:18 1: main::DOIF_Notify called by fhem.pl (3810)
2020.12.09 00:00:18 1: main::CallFn called by fhem.pl (3727)
2020.12.09 00:00:18 1: main::DoTrigger called by fhem.pl (4097)
2020.12.09 00:00:18 1: main::Dispatch called by ./FHEM/00_HMUARTLGW.pm (1463)
2020.12.09 00:00:18 1: main::HMUARTLGW_Parse called by ./FHEM/00_HMUARTLGW.pm (1566)
2020.12.09 00:00:18 1: main::HMUARTLGW_Read called by fhem.pl (3810)
2020.12.09 00:00:18 1: main::CallFn called by fhem.pl (755)
2020.12.09 00:00:18 1: PERL WARNING: Argument "off" isn't numeric in numeric gt (>) at (eval 446420) line 1.
2020.12.09 00:00:18 3: eval: dihzgctr: warning in condition c02
2020.12.09 00:00:18 1: stacktrace:
2020.12.09 00:00:18 1: main::__ANON__ called by (eval 446420) (1)
2020.12.09 00:00:18 1: (eval) called by ./FHEM/98_DOIF.pm (2142)
2020.12.09 00:00:18 1: main::DOIF_CheckCond called by ./FHEM/98_DOIF.pm (2489)
2020.12.09 00:00:18 1: main::DOIF_Trigger called by ./FHEM/98_DOIF.pm (2715)
2020.12.09 00:00:18 1: main::DOIF_Notify called by fhem.pl (3810)
2020.12.09 00:00:18 1: main::CallFn called by fhem.pl (3727)
2020.12.09 00:00:18 1: main::DoTrigger called by fhem.pl (4097)
2020.12.09 00:00:18 1: main::Dispatch called by ./FHEM/00_HMUARTLGW.pm (1463)
2020.12.09 00:00:18 1: main::HMUARTLGW_Parse called by ./FHEM/00_HMUARTLGW.pm (1566)
2020.12.09 00:00:18 1: main::HMUARTLGW_Read called by fhem.pl (3810)
2020.12.09 00:00:18 1: main::CallFn called by fhem.pl (755)
Mein DOIF ist wie folgt definiert:
([tmpsshkk:temperature] > 52 and ([ezwts:measured-temp] < [ezwts:desired-temp] or [kuhkt:measured-temp] < [kuhkt:desired-temp] or [buhkt:measured-temp] < [buhkt:desired-temp] or [wchkt:measured-temp] < [wchkt:desired-temp]))
(set owswitch output hkp 1)
(set cthkkpmp on)
DOELSEIF
([tmpsshkk:temperature] < 48 or ([ezwts:measured-temp] > [ezwts:desired-temp] and [kuhkt:measured-temp] > [kuhkt:desired-temp] and [buhkt:measured-temp] > [buhkt:desired-temp] and [wchkt:measured-temp] > [wchkt:desired-temp]))
(set owswitch output hkp 0)
(set cthkkpmp off)
Das (für mich) seltsamste daran ist, dass ich mehrere Tage Ruhe hab und dann schreibt es mir aber an einem Tag im 1/2-Stunden-Takt mein Logfile voll?!
Danke für jeden Hinweis.
ZitatPERL WARNING: Argument "off" isn't numeric in numeric gt (>) at (eval 446420) line 1.
2020.12.09 00:00:18 3: eval: dihzgctr: warning in condition c02
in einem Reading deiner Größer-Vergleiche hast du statt einer Zahl ein "off" drin.
Also hier:
([ezwts:measured-temp] > [ezwts:desired-temp] and [kuhkt:measured-temp] > [kuhkt:desired-temp] and [buhkt:measured-temp] > [buhkt:desired-temp] and [wchkt:measured-temp] > [wchkt:desired-temp]))
Hallo Damian,
vielen Dank. Das habe ich verstanden. Aber woher kommt dieses "off"? In meinem DOIF frage ich ausschließlich Temperaturen ab. Die können doch nicht "off" sein?
Gruß
Dan
Doch ;)
Ich nehme mal an es sind Homematic WDTs oder HKTs!?
Die können auch "on" oder "off" sein...
Gruß, Joachim
Hallo Joachim,
Zitat
Ich nehme mal an es sind Homematic WDTs oder HKTs!?
Die können auch "on" oder "off" sein...
Jein; alles HKTs (HM-CC-RT-DN). Klar kann ich die auf on:off stellen. Die laufen aber alle ausschließlich im Automatikmodus. Und da sind immer Temperaturen programmiert?!
[Device:Reading:d] greift nur bei Dezimalzahlen. könnte das deine Lösung sein?
https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
Hallo Frank,
ich müsste also z.B. aus
ezwts:measured-temp
das hier machen:
ezwts:measured-temp:d0
?
Werde das gleich mal testen.
:d nimmt die Zahl wie sie ist.
:d0 rundet noch auf ganze Zahlen.
Ich würde es erstmal mit :d versuchen.