FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Vize am 20 April 2021, 21:13:10

Titel: [gelöst] Schaltfunktion mit mehreren Start-/Endzeiten
Beitrag von: Vize am 20 April 2021, 21:13:10
Hallo zusammen,

ich hatte mir schonmal eine Schaltung nach dem Beispiel unter "Darstellungselement mit Eingabemöglichkeit im Frontend und Schaltfunktion" aus der commandref gebaut.

Nun möchte ich gerne analog eine Schaltung für eine Zirkulationspumpe mit mehreren Schaltzeiten realisieren.
Diese soll morgens einmal starten und wieder ausgehen und dann noch einmal abends starten und wieder ausgehen.
Wahlweise soll aber auch die Möglichkeit bestehen, dass sie entweder nur morgens oder nur abends schaltet.

Bin ich mit folgendem Codeschnipsel auf dem richtigen Weg?
define zirku_zeitprogramm DOIF (["$SELF:button: auto"] and ([[$SELF:begin1,"00:00"]] or [[$SELF:begin2,"00:00"]])) (set zirkulation_switch on) DOELSEIF (["$SELF:button: auto"] and ([[$SELF:end1,"00:01"]] or [[$SELF:end2,"00:01"]])) (set zirkulation_switch off)

begin1 = Startzeit morgens
begin2 = Startzeit abends

end1 = Stoppzeit morgens
end2 = Stoppzeit abends

Bei der Klammersetzung im "or" Teil bin ich mir auch noch nicht sicher, ob das so stimmt...  :-[

Vielen Dank schonmal für jegliche Hinweise und Tipps!

VG
Andreas
Titel: Antw:Schaltfunktion mit mehreren Start-/Endzeiten
Beitrag von: Vize am 21 April 2021, 20:04:49
So, dann will ich mir mal selbst antworten...  ;)

Folgender code funktioniert:
([$SELF:button] eq "auto" and ([[$SELF:begin1,"00:00"]] or [[$SELF:begin2,"00:00"]])) (set zirkulation_switch on) \
DOELSEIF ([$SELF:button] eq "auto" and ([[$SELF:end1,"00:01"]] or [[$SELF:end2,"00:01"]])) (set zirkulation_switch off) \
DOELSEIF (["$SELF:button: manuell"]) (set zirkulation_switch on)


Dazu noch die nötigen Attribute:
cmdState auto an|auto aus|manuell an
readingList button begin1 end1 begin2 end2
setList button:auto,manuell begin1:time end1:time begin2:time end2:time
webCmd button:begin1:end1:begin2:end2


Etwas zu knabbern hatte ich an der Abfrage des buttons. Wie dargestellt funktioniert
[$SELF:button] eq "auto"
in diesem Fall.

["$SELF:button: auto"]
tut es nicht. Habe aber keine Ahnung, warum. Vielleicht liegt es an der and Verknüpfung mit einer Zeitangabe?

VG
Andreas
Titel: Antw:Schaltfunktion mit mehreren Start-/Endzeiten
Beitrag von: Otto123 am 21 April 2021, 20:57:18
Zitat von: Vize am 21 April 2021, 20:04:49
Etwas zu knabbern hatte ich an der Abfrage des buttons. Wie dargestellt funktioniert
[$SELF:button] eq "auto"
in diesem Fall.

["$SELF:button: auto"]
tut es nicht. Habe aber keine Ahnung, warum. Vielleicht liegt es an der and Verknüpfung mit einer Zeitangabe?
Hallo Andreas,

kann ich Dir ev. sagen: die untere Variante triggert (wird wahr) exakt nur auf den Event: Also nur für den Moment wo Du den button von "irgendwas" auf auto schaltest. Die obere Variante fragt den Wert ab, immer dann wenn irgendetwas das DOIF triggert, also auch zu den Timern.

Gruß Otto
Titel: Antw:[gelöst] Schaltfunktion mit mehreren Start-/Endzeiten
Beitrag von: Vize am 22 April 2021, 07:46:50
Hallo Otto,

aah, jetzt ist der Groschen gefallen...
Alles klar, habe ich verstanden.
Hätte mal die commandref zu DOIF besser lesen sollen...  :-[ ;)

Vielen Dank!

VG
Andreas