[gelöst] Schaltfunktion mit mehreren Start-/Endzeiten

Begonnen von Vize, 20 April 2021, 21:13:10

Vorheriges Thema - Nächstes Thema

Vize

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

Vize

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Vize

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