PERL WARNING: Argument "---" isn't numeric in numeric gt (>) ...

Begonnen von Gisbert, 03 August 2017, 21:47:15

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo damian

ich erhalte immer wieder PERL WARINGs, wie z.B. diese:
2017.08.03 18:15:05 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92205) line 1.
2017.08.03 18:15:05 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:05 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92209) line 1.
2017.08.03 18:15:05 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:06 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92215) line 1.
2017.08.03 18:15:06 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:06 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92220) line 1.
2017.08.03 18:15:06 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:07 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92225) line 1.
2017.08.03 18:15:07 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:07 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92230) line 1.
2017.08.03 18:15:07 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:07 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92235) line 1.
2017.08.03 18:15:07 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:07 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92240) line 1.
2017.08.03 18:15:07 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:08 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92245) line 1.
2017.08.03 18:15:08 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:08 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92250) line 1.
2017.08.03 18:15:08 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:08 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92255) line 1.
2017.08.03 18:15:08 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:09 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92260) line 1.
2017.08.03 18:15:09 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:15:48 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92443) line 1.
2017.08.03 18:15:48 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:16:05 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 92456) line 1.
2017.08.03 18:16:05 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:20:03 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 93356) line 1.
2017.08.03 18:20:03 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:21:21 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 93651) line 1.
2017.08.03 18:21:21 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:25:03 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 94522) line 1.
2017.08.03 18:25:03 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:25:40 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 94705) line 1.
2017.08.03 18:25:40 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:25:49 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 94721) line 1.
2017.08.03 18:25:49 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:30:03 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 95608) line 1.
2017.08.03 18:30:03 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:31:09 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 95859) line 1.
2017.08.03 18:31:09 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:33:32 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 96287) line 1.
2017.08.03 18:33:32 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:35:03 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 96620) line 1.
2017.08.03 18:35:03 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:35:49 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 96782) line 1.
2017.08.03 18:35:49 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:38:39 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 97306) line 1.
2017.08.03 18:38:39 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:40:03 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 97608) line 1.
2017.08.03 18:40:03 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:43:52 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 98457) line 1.
2017.08.03 18:43:52 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03
2017.08.03 18:45:03 1: PERL WARNING: Argument "---" isn't numeric in numeric gt (>) at (eval 98723) line 1.
2017.08.03 18:45:03 3: eval: Treppenhaus.Markisensteuerung: warning in condition c03


Ein list des Befehls ist wirklich lang und unübersichtlich, deshalb erst einmal die raw definition.
Was ist die Ursache und wie kann ich es abstellen?
defmod Treppenhaus.Markisensteuerung DOIF ([Treppenhaus.Markise.hoch.dum] eq "off" and [Treppenhaus.Markise:level] != 0 and [DWD.Wetter:_ff] <= 35 and [TH.Kuhlmannweg8:temperature] >= 22 \
and (([Wetter.Leverkusen:code] >= 28 and [Wetter.Leverkusen:code] <= 34) or [Wetter.Leverkusen:code] == 36 or [Wetter.Leverkusen:code] == 44) \
and [DWD.Wetter:_rr1] == 0 and [13:00-22:00] and [myTwilight:azimuth] >=185 and sunset_abs(-6000) gt $hms) \
(set Treppenhaus.Markise off) \
DOELSEIF ([Treppenhaus.Markise.runter.dum] eq "on" and [Treppenhaus.Markise:level] != 100 and ([DWD.Wetter:_ff] > 35 or [DWD.Wetter:_rr1] != 0)) \
(set Treppenhaus.Markise on) \
DOELSEIF ([Treppenhaus.Markise.runter.dum] eq "off" and [Treppenhaus.Markise:level] != 100 and ([DWD.Wetter:_ff] > 35 or [TH.Kuhlmannweg8:temperature] < 22 \
or not (([Wetter.Leverkusen:code] >= 28 and [Wetter.Leverkusen:code] <= 34) or [Wetter.Leverkusen:code] == 36 or [Wetter.Leverkusen:code] == 44) \
or [DWD.Wetter:_rr1] != 0 or [myTwilight:azimuth] <185 or sunset_abs(-6000) le $hms)) \
(set Treppenhaus.Markise on) \
DOELSEIF ([Treppenhaus.Markise.runter.dum] eq "on") \
DOELSEIF ([Treppenhaus.Markise.hoch.dum] eq "on") \
DOELSEIF (([Treppenhaus.Markise:level] == 100 and [Treppenhaus.Markise.runter.dum] eq "off") or ([Treppenhaus.Markise:level] == 100 and [Treppenhaus.Markise.hoch.dum] eq "off"))
attr Treppenhaus.Markisensteuerung devStateIcon cmd_1:fts_sunblind@red (cmd_2|cmd_3|cmd_6):fts_sunblind_0@gray cmd_4:fts_shutter_down@red cmd_5:fts_shutter_up@red
attr Treppenhaus.Markisensteuerung icon fts_sunblind
attr Treppenhaus.Markisensteuerung repeatsame 3:3:3:3:3:3
attr Treppenhaus.Markisensteuerung room CUL_HM,Mobile
attr Treppenhaus.Markisensteuerung wait 60:60:60:1:1:1


Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

amenomade

c03 = DOELSEIF ([Treppenhaus.Markise.runter.dum] eq "off" and [Treppenhaus.Markise:level] != 100 and ([DWD.Wetter:_ff] > 35 or [TH.Kuhlmannweg8:temperature] < 22 \
or not (([Wetter.Leverkusen:code] >= 28 and [Wetter.Leverkusen:code] <= 34) or [Wetter.Leverkusen:code] == 36 or [Wetter.Leverkusen:code] == 44) \
or [DWD.Wetter:_rr1] != 0 or [myTwilight:azimuth] <185 or sunset_abs(-6000) le $hms)) \


Irgendwelches Reading ist nicht numerisch sondern ergibt ---
([Wetter.Leverkusen:code] ?
[DWD.Wetter:_ff] ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gisbert

Hallo amenomade,

vielen Dank für die Erklärung.
Ich hab im Forum nach "PERL WARNING" gesucht, aber die Erklärung, so denn welche gegeben wurden, nicht verstanden.
Ich ziehe mir Wetterdaten aus dem Internet ([Wetter.Leverkusen:code] und [DWD.Wetter:_ff]) und ab und an werden keine Werte geliefert, sondern nur "---".
Das verstehe ich jetzt, vielen Dank.

Es ergeben sich aber noch ein paar Fragen.

Welches Verhalten kann ich in diesem Fall erwarten?
Ist diese (Teil)bedingung dann nicht erfüllt und das DOIF arbeitet entsprechend?

Gibt es eine Möglichkeit das Verhalten zu ändern, bzw. den Fehler abzufangen?
Gibt es einen Ratschlag, den Du mir geben kannst?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

amenomade

Ich würde es einfach "schützen", mit einer Bedingung, die zuerst vewertet wird, bevor die numersiche im Einsatz kommt. Beispiel:
([sr:read] ne "---" and [sr:read] > 5)
  (setreading sr write greater)
DOELSEIF ([sr:read] ne "---" and [sr:read] < 5)
  (setreading sr write lower)


Da es von Perl interpretiert wird, sobald sr:read = "---", wird der Rest nicht bewertet.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gisbert

#4
Hallo amenomade,

vielen Dank für die Unterstützung.
Mit dem Codeschnipsel komme ich noch nicht klar.

In der commandref steht zu setreading:
setreading <devspec> <reading> <value>
Besipiel: setreading lampe state on


Ich verstehe nicht, was write greater oder write lower bewirken soll.
Kannst du mir nochmals auf die Sprünge helfen?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

amenomade

Sorry, war nur ein Test von mir. Als Befehl hab ich setreading genutzt, nur um das Ergenbis sehen zu können. Ich war zu Faul, um alles in dein DOIF zu übersetzten ;)

Bei dir wäre natürlich "setreading" eher etwas mit Treppenhaus.Markise on oder off, wie Du schon hast.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus