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
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?
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.
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.
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...
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?
also müsste vor dem attr di_waschmaschine_fertig wait 300 ein DOELSEIF oder DOELSE ?
Ist egal, welches ich nehme ?
Dann bekomme ich aber diese Meldung:
di_waschmaschine_fertig DOIF: no left bracket of condition: attr di_waschmaschine_fertig wait 300
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.
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!