FHEM Forum

FHEM => Automatisierung => Thema gestartet von: dan1180 am 09 Dezember 2020, 13:31:44

Titel: PERL WARNING: Argument "off" isn't numeric
Beitrag von: dan1180 am 09 Dezember 2020, 13:31:44
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.
Titel: Antw:PERL WARNING: Argument "off" isn't numeric
Beitrag von: Damian am 09 Dezember 2020, 13:55:16
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]))
Titel: Antw:PERL WARNING: Argument "off" isn't numeric
Beitrag von: dan1180 am 09 Dezember 2020, 14:07:31
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
Titel: Antw:PERL WARNING: Argument "off" isn't numeric
Beitrag von: MadMax-FHEM am 09 Dezember 2020, 14:28:17
Doch ;)

Ich nehme mal an es sind Homematic WDTs oder HKTs!?

Die können auch "on" oder "off" sein...

Gruß, Joachim
Titel: Antw:PERL WARNING: Argument "off" isn't numeric
Beitrag von: dan1180 am 09 Dezember 2020, 14:50:25
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?!
Titel: Antw:PERL WARNING: Argument "off" isn't numeric
Beitrag von: Frank_Huber am 09 Dezember 2020, 15:29:29
[Device:Reading:d] greift nur bei Dezimalzahlen. könnte das deine Lösung sein?
https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
Titel: Antw:PERL WARNING: Argument "off" isn't numeric
Beitrag von: dan1180 am 09 Dezember 2020, 15:43:04
Hallo Frank,

ich müsste also z.B. aus

ezwts:measured-temp

das hier machen:

ezwts:measured-temp:d0

?

Werde das gleich mal testen.

Titel: Antw:PERL WARNING: Argument "off" isn't numeric
Beitrag von: Frank_Huber am 09 Dezember 2020, 16:04:40
:d nimmt die Zahl wie sie ist.
:d0 rundet noch auf ganze Zahlen.
Ich würde es erstmal mit :d versuchen.