exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300

Begonnen von achim60, 15 Januar 2017, 15:02:11

Vorheriges Thema - Nächstes Thema

achim60

Hallo,
die Benachrichtigungen sollen erst ausgeführt werden, wenn der Status von Power 5 Minuten lang unter 11 Watt liegt.
Ich erhalte aber immer die Meldung : exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300 !

Leider kann ich das nicht deuten ???


define di_waschmaschine_fertig DOIF ([HM_4CB277_Pwr:power] < 11) (set HR.WaschmaschineBetrieb off, set HM_4656DC_Dis_01 displayWM short line4 Waesche green ok , set Sprachausgabe playTone 001)attr di_waschmaschine_fertig wait 300



Gruß
Achim

rubbertail

Vermutlich fehlt ihm ein "wenn xy nicht erfüllt ist, was dann?" - also einfach ein "DOELSE" dahinter mit gar nix drin; ausserdem ist deine "attr"-Definition ganz hinten nach der ")" nicht wirklich logisch, was ist das?
FHEM auf Raspi, CUL433, CUL868, RFXTRX433e, CULCuBE
FRITZ: Fritzbox7590AX, 6xFritzDECT301, 10xFritzDECT200, FritzRepeater 6000
MAX!: Fensterkontakte
netatmo: Wetterstation & Thermostat
Milights, IT, Withings, HUE

achim60

Anwendungsbeispiel: Benachrichtung "Waschmaschine fertig", wenn Verbrauch mindestens 5 Minuten unter 2 Watt (Perl-Code wird in geschweifte Klammern gesetzt):


define di_washer DOIF ([power:watt]<2) ({system("wmail washer finished")})
attr di_washer wait 300


Das habe ich von hier https://fhem.de/commandref_DE.html#DOIF.
Ich dachte das attr di_washer wait 300 also 5 Minuten wartet bis er die Benachrichtigung ausführt.

achim60

ich habe es jetzt einmal so gemacht:


([HM_4CB277_Pwr:power] < 11) DOELSE (set HR.WaschmaschineBetrieb off, set HM_4656DC_Dis_01 displayWM short line4 Waesche green ok , set Sprachausgabe playTone 001)
attr di_waschmaschine_fertig wait 300


und bekomme die Meldung beim abspeichern nicht mehr. Mal schauen ob es klappt.


automatisierer

warum soll es nicht klappen? es wäre interessant zu wissen gewesen , wobei diese Fehlermeldung entsteht... jetzt allerdings nicht mehr.

Die Fehlermeldung ist gekommen, weil du das Attribut in die gleiche Zeile wie das define geschrieben hast und will sagen, dass da ein DOELSEIF oder DOELSE erwartet wird und kein attr...

achim60

Ich bin ein blutiger Anfänger und komme jetzt nicht mehr mit.


Also ich habe als erstes so begonnen:
define di_waschmaschine_fertig DOIF ([HM_4CB277_Pwr:power] < 11) (set HR.WaschmaschineBetrieb off, set HM_4656DC_Dis_01 displayWM short line4 Waesche green ok , set Sprachausgabe playTone 001)

Dann bin ich auf Save config gegangen und alles war gut.
Nur bekomme ich Fehlmedungen obwohl die Waschmaschine noch gar nicht fertig ist.

Die Meldung kommt wenn ich nachträglich das attr di_waschmaschine_fertig wait 300 eintrage und dann auf modify di_waschmaschine_fertig klicke. (Anhang)
Ich mache irgendwas falsch, aber was?





 

achim60

also müsste vor dem attr di_waschmaschine_fertig wait 300 ein DOELSEIF oder DOELSE ?
Ist egal, welches ich nehme ?

achim60

Dann bekomme ich aber diese Meldung:

di_waschmaschine_fertig DOIF: no left bracket of condition: attr di_waschmaschine_fertig wait 300

Damian

Zitat von: achim22 am 15 Januar 2017, 16:35:15
Dann bekomme ich aber diese Meldung:

di_waschmaschine_fertig DOIF: no left bracket of condition: attr di_waschmaschine_fertig wait 300

"attr di_waschmaschine_fertig wait 300" gehört nicht in das Definitionsfenster DEF, sondern ist eines der Attribute des Moduls - es ist weiter unten zu definieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

achim60

Zitat von: Damian am 15 Januar 2017, 19:53:26
"attr di_waschmaschine_fertig wait 300" gehört nicht in das Definitionsfenster DEF, sondern ist eines der Attribute des Moduls - es ist weiter unten zu definieren.


jetzt ist der "Groschen" gefallen  ;)

Besten dank!