FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: chunter1 am 29 Dezember 2015, 14:01:12

Titel: attr wait 0,0,x... aus DOIF heraus setzen?
Beitrag von: chunter1 am 29 Dezember 2015, 14:01:12
Wie kann ich in folgendem code die Werte von "wait" mittels Komma setzen?
Problem ist, dass die Kommas zwischen den einzelnen Werten nicht übernommen werden.


define REGLER DOIF ([+5])
(set testA {([Tist] - 23)})
(attr REGLER wait [b]0,0,0,{([Tist] - 23))}[/b])
(set testB on)
(set testB off)
Titel: Antw:attr wait 0,0,x... aus DOIF heraus setzen?
Beitrag von: Otto123 am 29 Dezember 2015, 14:03:54
Steht in der Commandref, Du musst doppelte Klammern setzen.

Gruß Otto
Titel: Antw:attr wait 0,0,x... aus DOIF heraus setzen?
Beitrag von: chunter1 am 29 Dezember 2015, 14:15:37
Habs jetzt mal so probiert:


(attr REGLER wait (0,0,0,{([Tist] - 23)}))


Im attr wait steht dann allerdings nur "(0" drin.
Titel: Antw:attr wait 0,0,x... aus DOIF heraus setzen?
Beitrag von: Otto123 am 29 Dezember 2015, 14:20:06
Ich würde es so probieren:
((attr REGLER wait [b]0,0,0,{([Tist] - 23))}[/b]))
ich habe aber nicht über Deinen Code nachgedacht. Aber die Anweisung muss einfach in zwei Klammern.

ZitatAngaben im Ausführungsteil:
Der Ausführungsteil wird immer, wie die Bedingung, in runden Klammern angegeben. Es werden standardmäßig FHEM-Befehle angegeben, wie z. B.: ...(set lamp on)
Sollen mehrere FHEM-Befehle ausgeführt werden, so werden sie mit Komma statt mit Semikolon angegeben ... (set lamp1 on, set lamp2 off)
Falls ein Komma nicht als Trennzeichen zwischen FHEM-Befehlen gelten soll, so muss der FHEM-Ausdruck zusätzlich in runde Klammern gesetzt werden: ...((set lamp1,lamp2 on),set switch on)
Perlbefehle müssen zusätzlich in geschweifte Klammern gesetzt werden: ... ({system ("wmail Peter is at home")})
Mehrere Perlbefehle hintereinander werden im DEF-Editor mit zwei Semikolons angegeben: ...({system ("wmail Peter is at home");;system ("wmail Marry is at home")})
FHEM-Befehle lassen sich mit Perl-Befehlen kombinieren: ... ({system ("wmail Peter is at home")}, set lamp on)
Titel: Antw:attr wait 0,0,x... aus DOIF heraus setzen?
Beitrag von: chunter1 am 29 Dezember 2015, 14:33:41
Vielen Dank!!
Jetzt kanns weiter gehn mit der Heizungsregelung ;)


([+5])
(set testA {([Tist] - 23)})
((attr REGLER wait 0,0,0,{([Tist] - 23)}))
(set testB on)
(set testB off)
Titel: Antw:attr wait 0,0,x... aus DOIF heraus setzen?
Beitrag von: Otto123 am 29 Dezember 2015, 15:26:27
Noch ein Hinweis:
Wenn Du per Code im FHEM eine Definition änderst, dass tust Du quasi mit dem attr Befehl in Deinem DOIF, bekommst Du hinterher das rote Fragezeichen, dass Du diese Änderung nicht gespeichert hast.
Oder anders: Wenn Du FHEM an beliebiger Stelle neu startest, möchtest Du ja gern den alten Zustand. Der Zustand der attr Änderung wird aber nicht automatisch gespeichert.
Wenn es Dich stört (?) oder Du den Zustand gesichert haben möchtest, musst Du ein save danach absetzen, also ins DOIF einbauen.

Gruß Otto
Titel: Antw:attr wait 0,0,x... aus DOIF heraus setzen?
Beitrag von: chunter1 am 29 Dezember 2015, 16:59:41
Super!
Danke für den Hinweis!!
... hab mich schon gefragt warum das rote Fragezeichen immer aufgetaucht ist.