Perl Fehlermeldung wie nummerisches Argument mit "eq" nutzen

Begonnen von devien, 04 Juli 2017, 14:44:58

Vorheriges Thema - Nächstes Thema

devien

Hallo,

ich habe inzwischen eine regelmäßige Meldung im Log
2017.07.04 07:00:01 1: PERL WARNING: Argument "48.7M-BM-0C" isn't numeric in numeric gt (>) at (eval 1086285) line 1, <GEN20826> line 2233.
ich bin noch nicht annähernd firm in perl, aber mir ist schon klar das die Meldung besagt das es sich nicht um einen Numerischen Wert handelt und ich dies entsprechend umgehen ("eq") bzw parsen muss.
wenn ich in der dazugehörigen doif abfrage
([21:00-07:00])(set Relay2:FILTER=STATE=on off)(set Pumpe_02 dim 0)(set Relay3:FILTER=STATE=on off)(set Pumpe_03 dim 0)(set SR01CADO_Heat_bot message Solar cmd1) DOELSEIF([07:00-21:00] and ([Solar_temp_01] > 40.0 or [Solar_temp_04] > 40.0 or [Solar_temp_05] > 40.0 or [Solar_temp_06] > 40.0 or [Solar_temp_07] > 40.0 or [Solar_temp_08] > 40.0) and [DS18B20_Vorlauf_S:temperature] < 35.0)(set Pumpe_02 dim 26)(set Relay2:FILTER=STATE=off on)(set Pumpe_03 dim 91)(set Relay3:FILTER=STATE=off on)(set SR01CADO_Heat_bot message Solar cmd2) DOELSEIF([07:00-21:00] and [DS18B20_Vorlauf_S:temperature] >65.0)(set Relay2:FILTER=STATE=off on)(set Relay3:FILTER=STATE=off on)(set Pumpe_03 dim {([Pumpe_03:dim]-2)})(set SR01CADO_Heat_bot message Solar cmd3) DOELSEIF([07:00-21:00] and ([Solar_temp_01] > 40.0 or [Solar_temp_04] > 40.0 or [Solar_temp_05] > 40.0 or [Solar_temp_06] > 40.0 or [Solar_temp_07] > 40.0 or [Solar_temp_08] > 40.0) and [DS18B20_Vorlauf_S:temperature] <=65.0 and [DS18B20_Vorlauf_S:temperature] >35.0)(set Pumpe_02 dim 26)(set Relay2:FILTER=STATE=off on)(set Pumpe_03 dim 73)(set SR01CADO_Heat_bot message Solar cmd4)
jedoch anstelle ">" ein "eq" einfügen würde und der Wert weit über 40 liegt passt es wohl nicht mehr.

kann mir jemand sagen wie ich das umgangen bekommen bzw. wo ich nachlesen kann?

Gruß devien
FHEM + UniPi + Arduino = gute Lösung

Otto123

Hi,

Ich nehme ja an [Solar_temp_01] liefert "48.7M-BM-0C" und nicht 48.7 - oder?
Gib mal ein list Solar_temp_01 oder versuche selbst ein Reading zu finden welches nur die Zahl liefert. Dann nimmst Du [Solar_temp_01:<reading>]

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

devien

na klar, da ist dem ja ein reading vorgeschaltet, das dürfte es schon rausreißen, danke dir.
FHEM + UniPi + Arduino = gute Lösung

Fixel2012

Zitat von: Otto123 am 04 Juli 2017, 14:54:21
Hi,

Ich nehme ja an [Solar_temp_01] liefert "48.7M-BM-0C" und nicht 48.7 - oder?
Gib mal ein list Solar_temp_01 oder versuche selbst ein Reading zu finden welches nur die Zahl liefert. Dann nimmst Du [Solar_temp_01:<reading>]

Gruß Otto

[Solar_temp_01:<reading>:d]
ein ":d" blendet meines Wissens nach alle nicht nummerischen Werte des angegebenen Readings aus.
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

nils_

viele Wege in FHEM es gibt!