Hallo an alle,
kann mir mal jemand helfen. wollte eine Steuerung machen die aller 10s einen Wert abfragt.
aber ich komme mit der Schreibweise nicht klar.
#GPIO Daten
define gpio_17 RPI_GPIO 17
attr gpio_17 direction output
attr gpio_17 eventMap off:An on:Aus
attr gpio_17 room Heizung
define gpio_18 RPI_GPIO 18
attr gpio_18 direction output
attr gpio_18 eventMap off:An on:Aus
attr gpio_18 room Heizung
# Temperatursensoren
define temp1 GPIO4 28-000005fb368d
attr temp1 group 1-wire
attr temp1 icon icoTemp
attr temp1 room Heizung
#### Slider für Heizungen
define temp1_Slider dummy
attr temp1_Slider alias Heizung Solltemperatur
attr temp1_Slider group Heizungsregelung
attr temp1_Slider room Heizung
attr temp1_Slider setList state:slider,15,1,80
attr temp1_Slider sortby 01
attr temp1_Slider webCmd state
#attr temp1_Slider setList state:slider,15.0,0.5,80.0,1
define SetzSliderNotify notify SZ_Heizung:* {\
my $timerwert = ReadingsVal("gpio17","ReadingName","off");;\
fhem ("set temp1_Slider $timerwert");;\
}
define Relais_schalten at +*00:00:10 {if("temp1:temperature") >= "temp1_Slider") { fhem("set gpio_17 off-for-timer 3") } else { fhem("set gpio_18 off-for-timer 3")}}
die letzte zeile mag fhem nicht.
015.09.20 16:40:44 3: Relais_schalten: syntax error at (eval 869) line 1, near ") >="
das funktioniert aber nur wenn ich den slider bewege und ein at befehl mit 10s Intervall bringt auch fehler
define Relais_schalten_17 DOIF ([temp1:temperature] >= [temp1_Slider]) (set gpio_17 off-for-timer 3)
define Relais_schalten_18 DOIF ([temp1:temperature] <= [temp1_Slider]) (set gpio_18 off-for-timer 3)
Sagt doch die Meldung dass der Fehler in der Nähe von ") >=" zu suchen ist, wenn du dir die Stelle anschaust, bemerkst du sicherlich dass dort eine Klammer ")" zuviel ist :)
Stimmt ::)
Danke
Von der Klammer abgesehen solltest du dir mal die Befehle ReadingsVal und Value in der Command Ref ansehen (Perl specials).