Hallo,
die Heizperiode hat ja seit einigen Wochen wieder begonnen und nun habe ich festgestellt, dass meine DOIF-Statement nicht mehr funktioniert. Eigentlich sollte DREIMAL, alle 7 Minuten, ein Klingelton auf einem Fritzfon ausgegeben werden. Das Ganze hat bis zum Frühjahr noch funktioniert, aber jetzt klingelt es nur noch EINMAL. Könntet Ihr mir bitte bei der Fehlersuche helfen, hier ist meine Definition:
define di_BadO DOIF ([FensterBadO] eq "open" and [Vito200] eq "H+WW") (set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!) DOELSEIF ([FensterBadO] eq "open" and [di_BadO] eq "N1" and [Vito200] eq "H+WW") (set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!) DOELSEIF ([FensterBadO] eq "open" and [di_BadO] eq "N2" and [Vito200] eq "H+WW") (set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!") DOELSEIF ([FensterBadO] eq "closed")
attr di_BadO cmdState N1|N2|N3|N0
attr di_BadO wait 420:420:420
Anm.: "Vito200" repräsentiert den Status meiner Zentralheizung (WW=nur Warmwasser, H+WW=Heizung und Warmwasser)
Gruß
Blueberry63
define di_BadO DOIF ([FensterBadO] eq "open" and [Vito200] eq "H+WW") \
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!) \
DOELSEIF ([FensterBadO] eq "open" and [di_BadO] eq "N1" and [Vito200] eq "H+WW") \
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!) \
DOELSEIF ([FensterBadO] eq "open" and [di_BadO] eq "N2" and [Vito200] eq "H+WW") \
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!") \
DOELSEIF ([FensterBadO] eq "closed")
attr di_BadO cmdState N1|N2|N3|N0
attr di_BadO wait 420:420:420
nach dem letzten DOELSEIF fehlt der Ausführungsteil
...mmhh - klingt schon logisch, aber hier hatte ich bis jetzt nichts angegeben. Falls das Fenster wieder geschlossen wird, soll ja auch nichts passieren. Was macht man denn in so einem Fall?
Gruß
Blueberry63
hast Du do always gesetzt ?
attr di_BadO do always
Nein, habe ich nicht. Ist das die Lösung?
wenns mehrfach passieren soll schon
ZitatWünscht man eine Ausführung des gleichen Befehls mehrfach nacheinander bei jedem Trigger, unabhängig davon welchen Zustand das DOIF-Modul hat, weil z. B. Garage nicht nur über die Fernbedienung geschaltet wird und dann muss man das per "do always"-Attribut angeben:
Quelle:
http://fhem.de/commandref_DE.html#DOIF (http://fhem.de/commandref_DE.html#DOIF)
Wird do always verwendet, dann das DOIF mit DOELSE abschließen. Dein letztes DOELSEIF würde ich weglassen und durch besagtes DOELSE ohne ein Befehl ersetzten
define di_BadO DOIF ([FensterBadO] eq "open" and [Vito200] eq "H+WW") \
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!) \
DOELSEIF ([FensterBadO] eq "open" and [di_BadO] eq "N1" and [Vito200] eq "H+WW") \
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!) \
DOELSEIF ([FensterBadO] eq "open" and [di_BadO] eq "N2" and [Vito200] eq "H+WW") \
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!") \
DOELSE
attr di_BadO cmdState N1|N2|N3|N0
attr di_BadO wait 420:420:420
attr di_BadO do always
Mit DOELSE am Ende "klingelt" es überhaupt nicht mehr :(
Hat jemand einen anderen Vorschlag, wie man eine "Fenster ist noch offen"-Erinnerung beim Lüften realisiert?
Gruß
Blueberry63
wird eine Fehlermeldung geloggt ?
Das " ist sicher überflüssig
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!") \
Ein Fehlermeldung ist im LOG nicht zu sehen
Zitat von: blueberry63 am 17 November 2015, 13:53:12
Ein Fehlermeldung ist im LOG nicht zu sehen
Deine Lösung hat zufällig mal funktioniert.
Mit der Abfrage des eigenen Status hast du eine Rekursion (Loop) definiert, das wird mit der aktuellen Version des Moduls unterbunden.
Dafür kannst du mit repeatcmd (ab heute per Update verfügbar) automatische Wiederholungen definieren:
define di_BadO DOIF ([FensterBadO] eq "open" and [Vito200] eq "H+WW")
(set WLANAP2 ring 610 20 Alert show:Fenster BadO zumachen!)
attr di_Bad0 repeatcmd 420
attr di_Bad0 repreatsame 3
Gruß
Damian
@Damian,
damit läßt sich die Aufgabenstellung wesentlich einfacher lösen: Respekt!
Ich werde es nachher mal ausprobieren und kurz berichten.
Danke und Gruß
Blueberry63