Hallo zusammen,
ich bekomme seit einiger Zeit Fehlermeldungen bei der Temperaturberechnung mit DOIF.
Letzten Sommer funktionierte noch alles tadellos, bis auf Updates habe ich FHEM nicht angefasst.
2017.04.24 06:59:54 1: PERL WARNING: Argument "syntax error at (eval 299905) line 1, near "0.125)"\n" isn't numeric in numeric gt (>) at (eval 299906) line 1.
2017.04.24 06:59:54 3: eval: Steuerung_Solar_Ventil: warning in condition c01
Mein Code sieht folgendermaßen aus.
################
# Solar-Ventil #
################
define T_diff DOIF
attr T_diff alias Temperatur_Differenz
attr T_diff room Poolsteuerung
attr T_diff state {([DS18B20_7499D8060000:temperature:d])-([DS18B20_388AD6060000:temperature:d])}
define Steuerung_Solar_Ventil DOIF ([T_diff] > 0 and [DS18B20_388AD6060000:temperature:d] < 31) (set HM_3B60B3 on) DOELSE (set HM_3B60B3 off)
attr Steuerung_Solar_Ventil room Steuerung
attr Steuerung_Solar_Ventil wait 300
define Steuerung_Solar_Kuehlung DOIF ([DS18B20_7499D8060000:temperature:d] > 50) (set HM_3B60B3 on) DOELSE (set HM_3B60B3 off)
attr Steuerung_Solar_Kuehlung room Steuerung
attr Steuerung_Solar_Kuehlung wait 300
Ich komme leider nicht mehr weiter, was mache ich falsch?!?
Vielen Dank im Vorraus...
Grüße,
andyalmera
Da wird wohl [T_diff] nicht numerisch sein.
und ich tippe das liegt daran:
attr T_diff state {([DS18B20_7499D8060000:temperature:d])-([DS18B20_388AD6060000:temperature:d])}
mach mal statt
)-(
nur:
attr T_diff state {([DS18B20_7499D8060000:temperature:d]-[DS18B20_388AD6060000:temperature:d])}
Klasse, die Klammern waren es...
Danke "automatisierer", was hat sich denn geändert, vorher lief es doch mit den Klammern?!?
Hey Leute,
ich habe hier etwas ganz ähnliches:
2017.05.01 01:29:40.423 1: PERL WARNING: Smartmatch is experimental at (eval 194267) line 1.
2017.05.01 01:29:40.423 3: eval: PowerOffCTRL: warning in condition c01
Die entsprechende Zeile lautet
define PowerOffCTRL DOIF ([HarmonyHub:currentActivity] ~~ /PowerOff/) (set Sideboard off)
seht ihr da einen Fehler?
danke euch!
ciao Carlo
~~
kenne ich nicht. siehe http://perldoc.perl.org/perlop.html
vermutlich meinst du =~
"First available in Perl 5.10.1 (the 5.10.0 version behaved differently), binary ~~ does a "smartmatch" between its arguments." aber =~ reicht hier vielleicht, bin verzweifelt genug und versuchs ;)