PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 307681) line

Begonnen von Elektrolurch, 15 Juli 2020, 11:17:14

Vorheriges Thema - Nächstes Thema

Elektrolurch

Ich habe da ein kleines Problem.
Ich bekomme immer wieder in unregelmässigen Abständen folgende Fehlermeldung:


2020.07.15 01:12:47 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 307681) line 1.


Die Meldungen kommmen alle paar Stunden, zwei bis fünf mal hintereinander und dann ist wieder Ruhe.
Die einzigen Dinge die ich neu angelegt habe, sind KLF200 Fenster und Rolladen und zwei DOIF dazu.
In beiden DOIF werden Wetterdaten aus dem Internet mit verwendet.

Wie kann ich es anstellen, dass ich mehr Infos zu obiger Fehlermeldung bekomme (Ausgabe der Code-Zeile?

Elektrolurch
configDB und Windows befreite Zone!

Otto123

Hi,

Du fragst im DOIF Werte ab die offenbar leer sind.

Also such die Bedingung mit > und schau ob Du Dich verschrieben hast ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Elektrolurch

Hallo Otto,

natürlich war das auch zuerst meine Idee, aber das DOIF funktioniert ja korekt:
Außerdem fange ich ja mögliche leere Werte schon ab:

([Bu_Thermostat:desired-temp] eq "off" and [Bu_Thermostat:measured-temp] > 20 and [Bu_Thermostat:measured-temp] > [Ga_Temperatur:temperature] and
[Daemmerung:twilight_weather] and
[Daemmerung:twilight_weather] < 20
)
({ShutterControl_Klima("open")})
(
set Bu_Dachfenster pct 100,
set Gz_Dachfenster pct 100
)
DOELSEIF([Daemmerung:twilight_weather] and
[Daemmerung:twilight_weather] > 20 and
[Bu_Dachfenster:pct] > 10)
(
set Bu_Dachfenster securedVentilation,
set Gz_Dachfenster securedVentilation
)
({ShutterControl_Klima("close")}
)


Ich würde ja gerne sehen, woher die perl - Warnung ja wirklich kommt?

Elektrolurch
configDB und Windows befreite Zone!

Otto123

Von einem dieser Readings welches offenbar in diesem Moment leer ist.
[Bu_Thermostat:measured-temp] > 20 and
[Bu_Thermostat:measured-temp] >
[Ga_Temperatur:temperature]
[Daemmerung:twilight_weather] > 20 and
[Bu_Dachfenster:pct] > 10)

Wenn Du 'leer' abfangen willst musst Du ne oder eg nehmen.
Also String1="" String2="voll"
(String1 ne "")
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Elektrolurch

Gibt es keine Möglichkeit, den perl - Ausdruck bei einer Fehlermeldung auszugeben?
Ich bin ja noch nicht einmal sicher, ob es dieses DOIF ist....
configDB und Windows befreite Zone!

JoWiemann

Zitat von: Elektrolurch am 15 Juli 2020, 11:39:05
Gibt es keine Möglichkeit, den perl - Ausdruck bei einer Fehlermeldung auszugeben?
Ich bin ja noch nicht einmal sicher, ob es dieses DOIF ist....

In den global Settings stacktrace einschalten. Dann siehts Du von wo der Fehler kommt.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Otto123

Es ist eine Warnung ;)

Dein DOIF funktioniert (scheinbar) denn Perl nimmt dann für 'leer' im numerischen Vergleich 0 wie man leicht testen kann:
{ "" > 3 }
{ "" < 3 }
{ "" > -3 }



Ich vermute die Wetterdaten ;) eventuell werden readings temporär gelöscht und dann wieder befüllt. Dein DOIF (oder was anderes) grätscht da dazwischen.

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Elektrolurch

Danke

attr global stacktrace 1

war hilfreich.
Es war ein anderes DOIF, als ich dachte und bei genaueren hinsehen war da bei einem Namen ein Tippfehler drin....
Ok, gefunden.

Elektrolurch
configDB und Windows befreite Zone!