DOIF Syntax Error bei Temperaturberechnung

Begonnen von andyalmera, 25 April 2017, 12:51:23

Vorheriges Thema - Nächstes Thema

andyalmera

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

Damian

Da wird wohl [T_diff] nicht numerisch sein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

automatisierer

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])}

andyalmera

Klasse, die Klammern waren es...
Danke "automatisierer", was  hat sich denn geändert, vorher lief es doch mit den Klammern?!?

Calle78

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
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Calle78

"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 ;)
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI