PERL-Warning im DOIF und finde den Fehler nicht

Begonnen von bmwfan, 02 Januar 2018, 21:59:36

Vorheriges Thema - Nächstes Thema

bmwfan

Hallo,
ich bekomme nach Umzug von Raspi 2 (Wheezy) auf Raspi 3 (Stretch) jede Sekunde diesen Fehler:
2018.01.02 21:53:07.183 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 2952) line 1.
2018.01.02 21:53:07.183 3: eval: di_EG_KU_Jal_Fen: warning in condition c02


Das DOIF ist
([?du_Rollo_Master] ne "aus" and [HauptStr:state] ne "home" and [du_Tageslicht] eq "dunkel" and [?Jal_KU_Fenster_03:level] > 20 and ([16:00-23:00])) (set Jal_KU_Fenster_03 level 20) ##1 Jalousie schliessen wenn Dunkel UND niemand Zuhause UND nicht ganz zu
DOELSEIF ([?du_Rollo_Master] ne "aus" and [HauptStr:state] eq "home" and [du_Tageslicht] eq "dunkel" and ([?Wetter_Pro:fc1tempMax] > 23 or [?Wetter_Pro:fc1weatherDay] eq "sonnig") and [18:00-22:00] and [?Jal_KU_Fenster_03:level] != 100) (set Jal_KU_Fenster_03 level 100) ##2 Öffnen, wenn Dunkel UND jemand nach Hause gekommen ist, aber nicht nach 22:00 Uhr und nicht wenn Wetterbericht für nächsten Tag Sonne oder über 23 Grad vorhergesagt hat
DOELSEIF ([?du_Rollo_Master] ne "aus" and [Jal_KU_Fenster_03:level] == 20) (set Jal_KU_Fenster winkel 50) ##3 Lamellen stellen wenn Beschattung oder Jalousie zu
DOELSEIF ([?du_Rollo_Master] ne "aus" and [du_Beschattung_Haus] eq "ja" and [?Jal_KU_Fenster_03:level] >20 and ([du_Tageslicht] eq "hell" and (([07:03-14:00|1234] and !$we) or [09:03-14:00|57]))) (set Jal_KU_Fenster_03 level 20) ##4 Jalousie auf Beschattungslevel setzen
DOELSEIF ([Ga_UmweltSen:windSpeed] > 35) (set Jal_KU_Fenster_03 level 100) ##5 Öffnen, wenn Windgeschwindigkeit zu hoch
DOELSEIF ([23:59]) ## andere commands wieder freimachen


List des Wetter_Pro ist:
2018-01-02 21:15:05   fc1_temp21      4
     2018-01-02 21:15:05   fc1_tempMax     10
     2018-01-02 21:15:05   fc1_tempMin     3
     2018-01-02 21:15:05   fc1_uv          2
     2018-01-02 21:15:05   fc1_weatherDay  Regenschauer
     2018-01-02 21:15:05   fc1_weatherDayIcon https://www.proplanta.de/wetterdaten/images/symbole/t6.gif


Da der Fehler aus der 2.ten Condition herrührt dachte ich an die Abfrage des Wetter_Pro (Proplanta-Modul). Aber, soweit ich das sehe, ist der Code korrekt. fc1_tempMax ist eine Zahl, fc1_weatherDay ist ein String. So frage ich doch auch ab.

Kann jemand erkennen, wo der Fehler liegt?

Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

viegener

Mach doch mal zur Sicherheit ein list von Jal_KU_Fenster_03
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

bmwfan

Anbei das list:
Internals:
   DEF        00010A77_03
   IODev     
   MODEL      HMW_LC_Bl1_DR
   NAME       Jal_KU_Fenster_03
   NR         206
   PeerList   Jal_KU_Fenster_01 Jal_KU_Fenster_02
   STATE      100
   TYPE       HM485
   chanNo     03
   device     Jal_KU_Fenster_00
   READINGS:
     2018-01-03 20:20:10   R-change_over_delay 0.50
     2018-01-03 20:20:10   R-logging       on
     2018-01-03 20:20:10   R-reference_run_counter 0
     2018-01-03 20:20:10   R-reference_running_time_bottom_top 40.00
     2018-01-03 20:20:10   R-reference_running_time_top_bottom 39.00
     2018-01-03 20:20:29   direction       none
     2018-01-03 20:20:29   level           100
     2018-01-03 20:20:29   state           level_100
     2017-12-31 22:49:10   winkel          45
     2018-01-03 20:20:29   working         off
   devHash:
     DEF        00010A77
     FW_VERSION 3.06
     IODev      HM485_LAN
     MODEL      HMW_LC_Bl1_DR
     NAME       Jal_KU_Fenster_00
     NR         204
     STATE      ACK
     TYPE       HM485
     channel_01 Jal_KU_Fenster_01
     channel_02 Jal_KU_Fenster_02
     channel_03 Jal_KU_Fenster_03
     peer_act_0 channel_01 → Jal_KU_Fenster_03
     peer_act_1 channel_02 → Jal_KU_Fenster_03
     peer_sen_0 channel_03 ← Jal_KU_Fenster_01
     peer_sen_1 channel_03 ← Jal_KU_Fenster_02
     READINGS:
       2018-01-03 20:20:10   R-central_address 00000001
       2018-01-03 20:20:10   R-logging_time  2.00
       2018-01-03 20:20:29   configStatus    OK
       2018-01-03 20:20:29   state           ACK
     cache:
       linkParams:


es kommen noch viele Zeilen im list, aber ich denke die werden nicht benötigt. Wenn doch, reiche ich sie nach.

Auch hier kann ich nicht erkennen, was falsch ist. Ich habe auch noch einige weitere Jalousien, die ich so abfrage und von keiner kommt eine Fehlermeldung.
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

Damian

2018.01.02 21:53:07.183 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 2952) line 1.
2018.01.02 21:53:07.183 3: eval: di_EG_KU_Jal_Fen: warning in condition c02


ist doch ziemlich eindeutig:

[?Wetter_Pro:fc1tempMax] > 23

D.h. in fc1tempMax hast du nicht numerische Werte drin.

Wenn du die Ursache nicht beheben kannst, dann kannst du auch definieren:

[?Wetter_Pro:fc1tempMax:d,0] > 23
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

viegener

Ich glaube beim 10. Lesen habe ich es gesehen:

das reading heisst: fc1_tempMax und im DOIF steht fc1tempMax
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

bmwfan

Habe durch Versuche herausgefunden (bevor ich Eure posts gelesen hatte), dass wirklich das Wetter_Pro-Modul verantwortlich ist. Dass ein fehlendes "_" die Ursache ist hat habe ich, trotz zig-fachem Lesen und vergleichen, total übersehen.

Danke Euch beiden. Jetzt geht es.

@Damian: Dabei habe ich aber im log (verbose 4) folgende Zeile gefunden, die regelmäßig auftaucht. das DOIF-Modul habe ich heute upgedated:
2018.01.03 20:56:51.562 4: Looking for SVN Id in module 98_DOIF.pm

Ist das ein Fehler in meinem Programm, der diesen Eintrag verursacht oder nur ein Hinweis, der für mich nichts zu bedeuten hat?

Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

Damian

Zitat von: bmwfan am 03 Januar 2018, 21:02:39
Habe durch Versuche herausgefunden (bevor ich Eure posts gelesen hatte), dass wirklich das Wetter_Pro-Modul verantwortlich ist. Dass ein fehlendes "_" die Ursache ist hat habe ich, trotz zig-fachem Lesen und vergleichen, total übersehen.

Danke Euch beiden. Jetzt geht es.

@Damian: Dabei habe ich aber im log (verbose 4) folgende Zeile gefunden, die regelmäßig auftaucht. das DOIF-Modul habe ich heute upgedated:
2018.01.03 20:56:51.562 4: Looking for SVN Id in module 98_DOIF.pm

Ist das ein Fehler in meinem Programm, der diesen Eintrag verursacht oder nur ein Hinweis, der für mich nichts zu bedeuten hat?

Gruß Jürgen

Das Modul hat eine normale SVN-Id. Woher die Meldung kommt, kann ich dir nicht sagen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

viegener

Die Meldung kommt vermutlich aus 98_version - ist aber wohl keine Fehlermeldung und bei verbose 4 würde ich auch solche "normalen" Meldungen erwarten
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können