Hallo! Zum Thema Warmwasser Vorlaufpumpe (ob nun sinnig oder nicht) habe ich mir folgendes DOIF überlegt.
define vorlauftemp DOIF ([05:00-22:00|12345] or [07:00-23:00|60] and [Dummy_Anwesenheit] eq "present") (set Wasser_Vorlauf ein) DOELSE (set Wasser_Vorlauf aus)
Kurze Erklärung: Schalte Wasser_Vorlauf ein, wenn Mo.,Di.,Mi.,Do.,Fr., zwischen 5:00 u. 22:00 Uhr, ODER Sa.,So.,Feiertag zwischen 7:00 u. 23:00 Uhr und jemand zu Hause ist (Dummy_Anwesenheit] eq "present") Trift nichts zu, schalte Wasser_Vorlauf aus
Leider funktioniert es so nicht. Die "oder" Bedingung scheint so nicht zu funtionieren. Im Log kann ich keinen Fehler feststellen. Auch gibt es keine Fehlermeldung im DOIF selber. Wie kann ich das Problem so lösen bzw. erstmal eingrenzen?
Die Prüfung auf deinen Anwesenheitsdummy ist ein wenig merkwürdig.
AND hat eine höhrere Prioriät als OR.
Ich denke, dass hier ein paar Klammern fehlen:
define vorlauftemp DOIF
(
(
[05:00-22:00|12345] or
[07:00-23:00|60]
) and
[Dummy_Anwesenheit] eq "present"
)
(set Wasser_Vorlauf ein)
DOELSE
(set Wasser_Vorlauf aus)
Hi,
versuchs mal so
DOIF (([05:00-22:00|8] or [07:00-23:00|7]) and [Dummy_Anwesenheit] eq "present")
Gruß
Andreas
edit: zu langsam...
So macht es natürlich Sinn. Das wußte ich bisher gar nicht. Funktioniert so einwandfrei. Danke euch.
Zitat von: Vize am 02 März 2016, 12:41:11
DOIF (([05:00-22:00|8] or [07:00-23:00|7]) and [Dummy_Anwesenheit] eq "present")
...und wenn mir jetzt noch jemand verrät wie man es hinbekommt, das die Pumpe in der aktiven Zeit zu jeder vollen und halben Stunde für [3] Minuten läuft dann ist auch mein Problem gelöst !
Danke.
Hallo ak323,
schon die commandref für DOIF durchgearbeitet?
Dort stehen einige Lösungsansätze für dein Vorhaben...
Gruß
Andreas
Zitat von: Vize am 05 März 2016, 14:25:10
Hallo ak323,
schon die commandref für DOIF durchgearbeitet?
Dort stehen einige Lösungsansätze für dein Vorhaben...
Gruß
Andreas
Nö ...
Hallo zusammen
Hatte so ein ähnliches doif schon am laufen nur ohne Zeit und Wochentag, nur auf Anwesenheit. Was so funktionierte
Hab es mir nun umgebaut und eben getestet nur leider funktioniert es nicht
Define zirku_pumpe doif (([Anwesenheit_im_Haus] eq "anwesend") and ([05:00-10:37|1|2|3|4|5] or [07:00-23:00|0|6])) (set Keller.Sd.Zirku on) DOELSEIF ([Anwesenheit_im_Haus] eq "abwesend") (set Keller.Sd.Zirku off)
Muss ich Anwesenheit und tag bzw Zeitabfrage tauschen?
Gruß
Gesendet von meinem SM-N9005 mit Tapatalk
ZitatDefine zirku_pumpe doif
FHEM unterscheidet Gross- und Kleinschreibung, s. http://fhem.de/commandref_DE.html#DOIF ; hier: Syntax
Hallo
Hab alles richtig geschrieben war nur formatfehler handy.
Habe das doif nur um diese ergänzt
and ([05:00-10:37|1|2|3|4|5] or [07:00-23:00|0|6]))
Ansonsten lief das doif ja vorher ohne Probleme
Gruß
Gesendet von meinem SM-N9005 mit Tapatalk
Schreibe die Wochentagsangaben wie in dem Beispiel der Commandref
Zitatdefine di_radio DOIF ([08:00-10:00|135]) (set radio on) DOELSE (set radio off)
Hallo
so funktioniert es ;D hatte mich in der commandref von diesem Satz durcheinander bringen lassen:
Hinter der Zeitangabe kann ein oder mehrere Wochentage als Ziffer getrennt mit einem Pipezeichen | angegeben werden.
(([Anwesenheit_im_Haus] eq "anwesend") and ([06:00-22:30|12345] or [06:30-23:00|06])) (set Keller.Sd.Zirku on) DOELSE ([Anwesenheit_im_Haus] eq "abwesend") (set Keller.Sd.Zirku off)
Zitat von: eule66 am 07 März 2016, 16:28:44
Hallo
so funktioniert es ;D hatte mich in der commandref von diesem Satz durcheinander bringen lassen:
Hinter der Zeitangabe kann ein oder mehrere Wochentage als Ziffer getrennt mit einem Pipezeichen | angegeben werden.
(([Anwesenheit_im_Haus] eq "anwesend") and ([06:00-22:30|12345] or [06:30-23:00|06])) (set Keller.Sd.Zirku on) DOELSE ([Anwesenheit_im_Haus] eq "abwesend") (set Keller.Sd.Zirku off)
und wenn du noch weiter in der Commandref-Zeile liest, dann wirst du feststellen, dass 12345 das Gleiche ist wie 8 und 06 das Gleiche wie 7. Und nebenbei werden Feiertage auch noch berücksichtigt.
Gruß
Damian
Hallo Damian
danke für deine Hilfe, das doif Modul ist schon eine klasse für sich ! :D
Ich hab aber noch ein kleines Problem, ich erhalte jetzt folgende Meldung im Logfile
2016.03.07 22:30:00 2: ZirkuPumpe_an: anwesend eq "abwesend": Unknown command anwesend, try help.
2016.03.07 22:30:00 3: CUL_HM set Keller.Sd.Zirku off
2016.03.08 06:00:00 3: CUL_HM set Keller.Sd.Zirku on
schalten tut er aber laut Logfile, hatte auch versucht die alten Stati einzutragen, also absent und present, aber da
schaltet es gar nicht.
Grüße
Zitat von: eule66 am 08 März 2016, 16:51:36
Hallo Damian
danke für deine Hilfe, das doif Modul ist schon eine klasse für sich ! :D
Ich hab aber noch ein kleines Problem, ich erhalte jetzt folgende Meldung im Logfile
2016.03.07 22:30:00 2: ZirkuPumpe_an: anwesend eq "abwesend": Unknown command anwesend, try help.
2016.03.07 22:30:00 3: CUL_HM set Keller.Sd.Zirku off
2016.03.08 06:00:00 3: CUL_HM set Keller.Sd.Zirku on
schalten tut er aber laut Logfile, hatte auch versucht die alten Stati einzutragen, also absent und present, aber da
schaltet es gar nicht.
Grüße
Wenn du eine Bedingung angibst, dann musst du DOELSEIF statt DOELSE nehmen.
Gruß
Damian
Ok alles klar werde es nachher gleich testen
Danke
Gesendet von meinem SM-N9005 mit Tapatalk
Hallo Damian
Leider funktioniert der Code so nicht, mit DOELSE hat er geschaltet mit DOELSEIF schaltet es die Steckdose nicht.
(([Anwesenheit_im_Haus] eq "anwesend") and ([06:00-22:32|12345] or [06:30-23:00|06])) (set Keller.Sd.Zirku on) DOELSEIF ([Anwesenheit_im_Haus] eq "abwesend") (set Keller.Sd.Zirku off)
Gesendet von meinem SM-N9005 mit Tapatalk
Zitat von: eule66 am 09 März 2016, 16:54:13
Hallo Damian
Leider funktioniert der Code so nicht, mit DOELSE hat er geschaltet mit DOELSEIF schaltet es die Steckdose nicht.
(([Anwesenheit_im_Haus] eq "anwesend") and ([06:00-22:32|12345] or [06:30-23:00|06])) (set Keller.Sd.Zirku on) DOELSEIF ([Anwesenheit_im_Haus] eq "abwesend") (set Keller.Sd.Zirku off)
Gesendet von meinem SM-N9005 mit Tapatalk
([Anwesenheit_im_Haus] eq "anwesend" and ([06:00-22:32|8] or [06:30-23:00|7])) (set Keller.Sd.Zirku on) DOELSE (set Keller.Sd.Zirku off)
Gruß
Damian
Ok so geht es, also muss im Ausführungsteil die Bedingung nicht nochmal erwähnt werden
Gruß Ronny
Gesendet von meinem SM-N9005 mit Tapatalk