FHEM Forum

FHEM => Automatisierung => Thema gestartet von: achim60 am 15 Januar 2017, 15:02:11

Titel: exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: achim60 am 15 Januar 2017, 15:02:11
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
Titel: exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: rubbertail am 15 Januar 2017, 15:31:57
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?
Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: achim60 am 15 Januar 2017, 15:44:56
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.
Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: achim60 am 15 Januar 2017, 15:52:28
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.

Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: automatisierer am 15 Januar 2017, 15:58:37
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...
Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: achim60 am 15 Januar 2017, 16:28:27
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?





 
Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: achim60 am 15 Januar 2017, 16:31:42
also müsste vor dem attr di_waschmaschine_fertig wait 300 ein DOELSEIF oder DOELSE ?
Ist egal, welches ich nehme ?
Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: achim60 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
Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: Damian am 15 Januar 2017, 19:53:26
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.
Titel: Antw:exHpected DOELSEIF or DOELSE: attr di_waschmaschine_fertig wait 300
Beitrag von: achim60 am 16 Januar 2017, 08:59:03
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!