FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Steffmaster am 02 März 2016, 11:44:04

Titel: Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Steffmaster am 02 März 2016, 11:44:04
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?
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: FunkOdyssey am 02 März 2016, 12:35:47
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)
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Vize am 02 März 2016, 12:41:11
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...
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Steffmaster am 02 März 2016, 17:50:55
So macht es natürlich Sinn. Das wußte ich bisher gar nicht. Funktioniert so einwandfrei. Danke euch.
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: ak323 am 05 März 2016, 07:28:09
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.
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag 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
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: ak323 am 05 März 2016, 19:26:56
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ö ...
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: eule66 am 07 März 2016, 10:56:52
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
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Ellert am 07 März 2016, 12:23:18
ZitatDefine zirku_pumpe doif
FHEM unterscheidet Gross- und Kleinschreibung, s. http://fhem.de/commandref_DE.html#DOIF ; hier: Syntax
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: eule66 am 07 März 2016, 13:10:58
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

Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Ellert am 07 März 2016, 14:14:56
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)
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag 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)
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Damian am 07 März 2016, 16:41:54
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
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag 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
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Damian am 08 März 2016, 17:16:42
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
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: eule66 am 08 März 2016, 17:44:18
Ok alles klar werde es nachher gleich testen
Danke

Gesendet von meinem SM-N9005 mit Tapatalk

Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag 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
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: Damian am 09 März 2016, 19:47:19
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
Titel: Antw:Frage zu DOIF Vorlaufpumpe schalten nach Wochentagen
Beitrag von: eule66 am 11 März 2016, 10:59:44
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