FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: andyalmera am 25 April 2017, 12:51:23

Titel: DOIF Syntax Error bei Temperaturberechnung
Beitrag von: andyalmera am 25 April 2017, 12:51:23
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
Titel: Antw:DOIF Syntax Error bei Temperaturberechnung
Beitrag von: Damian am 25 April 2017, 13:25:34
Da wird wohl [T_diff] nicht numerisch sein.
Titel: Antw:DOIF Syntax Error bei Temperaturberechnung
Beitrag von: automatisierer am 25 April 2017, 13:35:02
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])}
Titel: Antw:DOIF Syntax Error bei Temperaturberechnung
Beitrag von: andyalmera am 25 April 2017, 14:14:32
Klasse, die Klammern waren es...
Danke "automatisierer", was  hat sich denn geändert, vorher lief es doch mit den Klammern?!?
Titel: Antw:DOIF Syntax Error bei Temperaturberechnung
Beitrag von: Calle78 am 01 Mai 2017, 14:35:57
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
Titel: Antw:DOIF Syntax Error bei Temperaturberechnung
Beitrag von: Damian am 01 Mai 2017, 17:43:16
~~

kenne ich nicht. siehe http://perldoc.perl.org/perlop.html

vermutlich meinst du =~

Titel: Antw:DOIF Syntax Error bei Temperaturberechnung
Beitrag von: Calle78 am 03 Mai 2017, 23:07:40
"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 ;)