FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Beagel am 18 Januar 2016, 23:11:40

Titel: mehrere Schaltzeiten an einem Tag, in Verbindung von Anwesenheit
Beitrag von: Beagel am 18 Januar 2016, 23:11:40
Hallo zusammen,
ich möchte gerne eine Zirkulationspumpe nach Anwesenheit von Handy 1 oder Handy 2 schalten, hier mit define Testlampe_an at +*00:00:15 {if(Value("1_iPhone") eq "present" || Value("2_iPhone") eq "present") { fhem("set Intertechno_5 on") } else { fhem("set Intertechno_5 off")}}
funktioniert das schon.
Nun soll aber nicht die ganze Zeit bei Anwesenheit die Pumpe laufen (z.B. Nachts aus) sondern nur am Tag zu bestimmten Uhrzeiten z. B. von 5:00 Uhr bis max 9:00 Uhr dann wieder um 12:00 Uhr bis 14:00 Uhr und um 17:00 Uhr bis 20:00 Uhr.
Gibt es dafür irgendeine Möglichkeit?

Gruß Beagel
Titel: ein Versuch
Beitrag von: MacDad am 19 Januar 2016, 08:01:52
Moin Beagel,

ein DOIF könnte (D)eine Lösung sein.
Hier http://fhem.de/commandref_DE.html#DOIF (http://fhem.de/commandref_DE.html#DOIF) findest Du viele Anwendungsbeispiele, mein Versuch daraus sieht so aus:

Ich fange gerade erst damit an, daher gilt ... alles "ohne Gewähr"  ;)

define Test_Beagel DOIF
(([05:00-09:00] or [12:00-14:00] or [17:00-20:00]) and
([?1_iPhone:presence] eq "present" or [?2_iPhone:presence] eq "present" ))
(set Intertechno_5 on)
DOELSEIF
(set Intertechno_5 off)


Gruß Dirk
Titel: Antw:mehrere Schaltzeiten an einem Tag, in Verbindung von Anwesenheit
Beitrag von: Otto123 am 19 Januar 2016, 08:22:37
kleine Korrektur es muss DOELSE
(set Intertechno_5 off)

heißen. Sonst müsste ja noch eine Abfrage (IF) definiert sein.
Der Abschluss ist wenn dann ein DOELSE

Gruß Otto
Titel: Antw:mehrere Schaltzeiten an einem Tag, in Verbindung von Anwesenheit
Beitrag von: Hollo am 19 Januar 2016, 09:13:34
Nur so als Anregung...
Auch wenn es schön ist, 1 Problem in 1 Zeile zu lösen, bin ich eher ein Fan von universellen Ansätzen.

Also Teilaspekte einzeln lösen und damit "Hilfsdummy füttern:
- Anwesenheit
- Tag/Nacht
- Hell/Dunkel
oder so ähnlich.

Dann ist man sehr flexibel, wenn sich etwas ändert (1 Person mehr oder weniger, andere Nachtzeit etc.), und braucht im glücklichsten Fall nur an 1 Stelle ändern.
Titel: Antw:mehrere Schaltzeiten an einem Tag, in Verbindung von Anwesenheit
Beitrag von: Beagel am 21 Januar 2016, 21:55:31
Hallo zusammen,
bin jetzt erst dazu gekommen den Vorschlag mit dem DOIF auszuprobieren, scheint der richtig Ansatz zusein,
hab den Code noch etwas umgestellt. Testlampe wird eingeschaltet wenn ein Handy present ist oder innerhalb der laufenden Schaltzeit auf present geht
Zitatdefine Testlampe_an DOIF (([?05:15-07:00] or [?13:00-14:29] or [?18:03-20:02]) and ([1_iPhone:presence] eq "present" or [2_iPhone:presence] eq "present" )) (set Intertechno_5 on) DOELSE (set Intertechno_5 off)
attr Testlampe_an do always
sobald alle Handys absent wird die Testlampe ausgeschaltet. Bin mir nicht sicher ob do always gebraucht wird.

Danke für die Hilfe und die konstruktiven Vorschläge.

Gruß Beagel
Titel: Antw:mehrere Schaltzeiten an einem Tag, in Verbindung von Anwesenheit
Beitrag von: Otto123 am 21 Januar 2016, 22:26:16
Wenn Du ein DOELSE als Abschluss hast, brauchst Du normal kein do always.