FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: NaCkHaYeD am 06 August 2015, 18:58:03

Titel: DOIF
Beitrag von: NaCkHaYeD am 06 August 2015, 18:58:03
Hi,

momentan läuft meine Zirkulationspumpe nach einem c++ Programm, würde dies auch gerne per FHEM erledigen. Leider komme ich aber nicht auf den richtigen Syntax bei DOIF.

05:45-22:15 alle 30min für 2min
22:15-05:45 alle 45min für 1,5min

Probiert habe ich in etwa soetwas

(([?05:45-22:14] and [([:15]+[+:30])]) or ([?22:15-05:44] and [([:15]+[+:45])]))

Das funktioniert leider nicht. Das Problem ist, dass die Zeiten von x:15 an weglaufen. Kann man irgendwie sagen alle 30min, also [+:30] und 15min darauf addieren. Ab wann gilt das +:30, ab ersten Schaltpunkt oder ab Mitternacht.

mfg
NaCkHaYeD
Titel: Antw:DOIF
Beitrag von: Damian am 06 August 2015, 20:51:41
Zitat von: NaCkHaYeD am 06 August 2015, 18:58:03
Hi,

momentan läuft meine Zirkulationspumpe nach einem c++ Programm, würde dies auch gerne per FHEM erledigen. Leider komme ich aber nicht auf den richtigen Syntax bei DOIF.

05:45-22:15 alle 30min für 2min
22:15-05:45 alle 45min für 1,5min

Probiert habe ich in etwa soetwas

(([?05:45-22:14] and [([:15]+[+:30])]) or ([?22:15-05:44] and [([:15]+[+:45])]))

Das funktioniert leider nicht. Das Problem ist, dass die Zeiten von x:15 an weglaufen. Kann man irgendwie sagen alle 30min, also [+:30] und 15min darauf addieren. Ab wann gilt das +:30, ab ersten Schaltpunkt oder ab Mitternacht.

mfg
NaCkHaYeD


define di_zirkulation DOIF ([?05:45-22:14] and [+:15])
  (set pumpe on-for-timer 120)
DOELSIF ([?22:15-05:44] and [+:45])
  (set pumpe on-for-timer 90)

attr di_zirkulation do always

Gruß

Damian
Titel: Antw:DOIF
Beitrag von: NaCkHaYeD am 07 August 2015, 20:11:53
Hi,

leider erfüllt dies nicht meinen Zweck, da doif von Mitternacht wegzählt.
Der erste Teil sollte ab 5:45 jede 30min schalten. Dies ist aber nicht so, geschalten wird in deiner Lösung 6:00, 6:30, 7:00.
Ich bräuchte also einen Offset von 15min und hier liegt mein Problem.

mfg
NaCkHaYeD
Titel: Antw:DOIF
Beitrag von: Damian am 07 August 2015, 21:33:04
Zitat von: NaCkHaYeD am 07 August 2015, 20:11:53
Hi,

leider erfüllt dies nicht meinen Zweck, da doif von Mitternacht wegzählt.
Der erste Teil sollte ab 5:45 jede 30min schalten. Dies ist aber nicht so, geschalten wird in deiner Lösung 6:00, 6:30, 7:00.
Ich bräuchte also einen Offset von 15min und hier liegt mein Problem.

mfg
NaCkHaYeD

Ja. Geht z. Zt. nur auf Umwegen:

define di_zirkulation DOIF ([?05:45-22:14] and ([:45] or [:15]))
  (set pumpe on-for-timer 120)
DOELSIF ([22:15] or [23:00] or [23:45]...)
  (set pumpe on-for-timer 90)

attr di_zirkulation do always



Gruß

Damian
Titel: Antw:DOIF
Beitrag von: Mumpitz am 19 August 2015, 08:14:22
hallo zusammen

ich meine das ich die Antwort auf meine Frage hier im Forum schonmal irgendwo gelesen habe. Allerdings habe ich trotz langer Suche diesen Post nicht mehr gefunden....

folgendes: ich lasse mittels eines DOIF die Attribute eines anderen DOIF ändern. Dies funktioniert soweit absolut problemlos. Allerdings mit dem Nachteil, dass nach dem ausführen des DOIF's natürlich das rote Fragezeichen bei "save config" im Frontend erscheint.

Wie kann das umgangen werden?

([06:30] and [?Wetter:fc1_code] >= 30 and [?Wetter:fc1_code] <= 36) (attr di_SoSchu_Kueche wait 130:2400)
DOELSE (attr di_SoSchu_Kueche wait 900:2400)
Titel: Antw:DOIF
Beitrag von: Vize am 19 August 2015, 08:27:26
Moin,

ungeprüft!

([06:30] and [?Wetter:fc1_code] >= 30 and [?Wetter:fc1_code] <= 36) (attr di_SoSchu_Kueche wait 130:2400,save)
DOELSE (attr di_SoSchu_Kueche wait 900:2400,save)


Gruß
Andreas
Titel: Antw:DOIF
Beitrag von: Bartimaus am 19 August 2015, 09:24:45
Ich steuere meine ZirkuPumpe mittels THRESHOLD. Dazu nutze ich einen 1wire-Temperatursensor, den ich auf die Leitung geklebt habe.

Im DOIF steuere ich die Zeiten zu denen THRESHOLD aktiv sein soll. Funzt perfekt, und die Pumpe läuft nur so viel wie nötig.

Tip kam damals von Damian....  :)