richtige Schreibweise at Befehl und if

Begonnen von speedy0074, 20 September 2015, 16:48:22

Vorheriges Thema - Nächstes Thema

speedy0074

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)

rapster

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 :)

speedy0074


dev0

Von der Klammer abgesehen solltest du dir mal die Befehle ReadingsVal und Value in der Command Ref ansehen (Perl specials).