Perl Warning bei Systemstart (isn't numeric in numeric eq (==) )

Begonnen von Fixel2012, 30 November 2017, 02:58:21

Vorheriges Thema - Nächstes Thema

Fixel2012

Hi,

habe seit Monaten ein Perl Warning bezüglich eines DOIF's. Habe es selber nicht lösen können. Wahrscheinlich ist es etwas ganz banales.


2017.11.29 18:32:14 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at (eval 973) line 1.
2017.11.29 18:32:14 3: eval: Abfall_Benachrichtungen: warning in condition c01
2017.11.29 18:32:14 1: stacktrace:
2017.11.29 18:32:14 1:     main::__ANON__                      called by (eval 973) (1)
2017.11.29 18:32:14 1:     (eval)                              called by ./FHEM/98_DOIF.pm (1341)
2017.11.29 18:32:14 1:     main::DOIF_CheckCond                called by ./FHEM/98_DOIF.pm (1615)
2017.11.29 18:32:14 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (1736)
2017.11.29 18:32:14 1:     main::DOIF_Notify                   called by fhem.pl (3498)
2017.11.29 18:32:14 1:     main::CallFn                        called by fhem.pl (3418)
2017.11.29 18:32:14 1:     main::DoTrigger                     called by fhem.pl (4392)
2017.11.29 18:32:14 1:     main::readingsEndUpdate             called by FHEM/ABFALL_setUpdate.pm (220)
2017.11.29 18:32:14 1:     main::ABFALL_setUpdate              called by fhem.pl (3077)
2017.11.29 18:32:14 1:     main::HandleTimeout                 called by fhem.pl (628)


Hier ein etwas abgeschnittenes list(Stadt und Straße abgeschnitten):

Internals:
   DEF        ([AbfallcalenderModul:next_days:d] == 1 and [15:00]) (set teleBot message @#FhemGruppe Morgen wird [AbfallcalenderModul:next_text] abgeholt) DOELSEIF ([AbfallcalenderModul:now_text] ne "" and [06:00]) (set teleBot message @#FhemGruppe Heute wird [AbfallcalenderModul:now_text] abgeholt)
   NAME       Abfall_Benachrichtungen
   NR         227
   NTFY_ORDER 50-Abfall_Benachrichtungen
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-11-30 00:32:18   Device          AbfallcalenderModul
     2017-11-29 15:00:00   cmd             1
     2017-11-29 15:00:00   cmd_event       timer_1
     2017-11-29 15:00:00   cmd_nr          1
     2017-11-30 00:32:18   e_AbfallcalenderModul_next_days 4
     2017-11-30 00:32:18   e_AbfallcalenderModul_now_text Hausmüll
     2017-11-29 15:00:00   state           cmd_1
     2017-11-29 18:32:08   timer_01_c01    30.11.2017 15:00:00
     2017-11-29 18:32:08   timer_02_c02    30.11.2017 06:00:00
   condition:
     0          ReadingValDoIf($hash,'AbfallcalenderModul','next_days','','d') == 1 and DOIF_time_once($hash,0,$wday)
     1          ReadingValDoIf($hash,'AbfallcalenderModul','now_text') ne "" and DOIF_time_once($hash,1,$wday)
   days:
   devices:
     0           AbfallcalenderModul
     1           AbfallcalenderModul
     all         AbfallcalenderModul
   do:
     0:
       0          set teleBot message @#FhemGruppe Morgen wird [AbfallcalenderModul:next_text] abgeholt
     1:
       0          set teleBot message @#FhemGruppe Heute wird [AbfallcalenderModul:now_text] abgeholt
     2:


Hat jemand eine Idee was an der ersten Bedingung(c01) dieses Problem auslesen könnte?

Würde mich echt freuen, dieses Warning aus dem Log zu haben  ;D
Danke und Gruß,

Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Brockmann

Ich würde mal tippen, dass das Reading next_days beim Systemstart noch nicht vorhanden ist. Dann solltest Du einen Ersatzwert dafür angeben.
https://fhem.de/commandref_DE.html#DOIF_notexist

nils_

was machst du denn beim systemstart?

irgendwas triggert deinen Kalender und damit dein DOIF
viele Wege in FHEM es gibt!

Damian

Zitat von: Brockmann am 30 November 2017, 08:21:43
Ich würde mal tippen, dass das Reading next_days beim Systemstart noch nicht vorhanden ist. Dann solltest Du einen Ersatzwert dafür angeben.
https://fhem.de/commandref_DE.html#DOIF_notexist

Das wird das Problem sein.

Weitere Möglichkeiten sind:

attr  checkReadingEvent

oder

[AbfallcalenderModul:next_days:d,0] == 1

oder

[AbfallcalenderModul:next_days:d] eq "1"

Es gibt beliebig viele Möglichkeiten ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fixel2012

Super, Danke euch.

Habe mich mal für notExists entschieden  :D

Aber warum das DOIF am start von Fhem getriggert wird verstehe ich nicht...  :o
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Damian

Zitat von: Fixel2012 am 30 November 2017, 11:24:53
Super, Danke euch.

Habe mich mal für notExists entschieden  :D

Aber warum das DOIF am start von Fhem getriggert wird verstehe ich nicht...  :o

Weil sich irgendein Reading  von AbfallcalenderModul ändert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fixel2012

Aber dann sollte doch nur getriggert werden, wenn auch die Uhrzeit gleich ist, wie in der Bedienung gegeben?

([AbfallcalenderModul:next_days:d] == 1 and [15:00])
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Damian

Zitat von: Fixel2012 am 30 November 2017, 11:29:19
Aber dann sollte doch nur getriggert werden, wenn auch die Uhrzeit gleich ist, wie in der Bedienung gegeben?

([AbfallcalenderModul:next_days:d] == 1 and [15:00])

Der Trigger kommt nicht nur vom Timer sondern auch vom Device. Wenn du de Device nur abfragen möchtest, dann solltest du den Trigger mit Fragezeichen unterbinden:

([?AbfallcalenderModul:next_days:d] == 1 and [15:00])
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Fixel2012

Danke dir! Das Fragezeichen hatte ich schon mal genutzt, aber anscheinend wieder vergessen was es bedeutet und wofür es gut ist  ;D
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify