**gelöst** notify mit mehreren at und innerhalb at mehrere devices

Begonnen von elektrikpe2, 29 März 2021, 11:11:29

Vorheriges Thema - Nächstes Thema

elektrikpe2

Hallo,

ich muss mal wieder die Genies benühen. Ich habe wieder Problem mit ; Bitte mal drüber schauen
define n_allepumpenhintereinander notify Pumpe_Alle:on {fhem("set Pumpevtest on ;; define tmp_time1 at +00:00:05 set Pumpevtest off; set Pumpettest on ;; define tmp_time2 at +00:00:10 set Pumpettest off; set Pumpewtest on ;; define tmp_time3 at +00:00:15 set Pumpewtest off; set Pumpe_Alle off")}

Ich möchte meine Pumpen im Abstand von (hier alles nur Test) einer bestimmten Zeit laufen lassen. Dazu mache ich die erste direkt an und im Rahmen der at-Zeiten alle (testweise 5 sec) die vorher angeschaltete aus und eine weitere an. Zum Abschluss wird ein Dummy zurückgesetzt. Das läuft auch dann, wenn ich nur ein Device schalte. Bitte um Hilfe. Danke.

LG Peter

Otto123

#1
Hallo Peter,

in der FHEM Kommanozeile muss jedes ; was in der DEF bleiben soll verdoppelt werden!
Hier wird es mehrfach ungenügend:
Zitatset Pumpevtest off; set Pumpettest on
In einem define in einem define muss dann wieder alles verdoppelt werden!
https://commandref.fhem.de/commandref_DE.html#command

Für meine Begriffe tust Du dich bei deinem notify leichter, wenn Du sleep verwendest (ungetestet):
define n_allepumpenhintereinander notify Pumpe_Alle:on set Pumpevtest on ;; sleep 5;; set Pumpevtest off;; set Pumpettest on ;; sleep 10 ;; set Pumpettest off;; set Pumpewtest on ;; sleep 15 ;; set Pumpewtest off;; set Pumpe_Alle off

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

rudolfkoenig

Und ich empfehle on-for-timer, wenn die Geraete sowas verstehen.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

elektrikpe2

Hallo alle,

erstmal Danke. Von Otto sieht ja schon sehr viel einfacher aus.

Wenn ich on-for-timer nehme, erreiche ich aber doch nicht, dass die dann brav hintereinander laufen.

Und wenn ich mir das so ansehe, könnte ich es doch auch in einen Doif mit wait machen so:
defmod di_allepumpenhintereinander DOIF ([Pumpe_Alle] eq "on"") (set PumpeVorne_HM on) (set PumpeVorne_HM off, set PumpeTerrasse_HM on) (set PumpeTerrasse_HM off, set PumpeWiese_HM on) (set PumpeWiese_HM off, set Pumpe_Alle off)
wait 0,900,900,900


Das müsste doch auch funktionieren?

LG Peter


Otto123

ZitatWenn ich on-for-timer nehme
Aber Du erreichst, dass der Hardware Timer es macht und Dein Garten nicht geflutet wird wenn irgendwas stehen bleibt.
Dein DOIF wird nicht gehen: Anzahl der " und die wait Konstruktion - da bin ich spontan unsicher.
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

elektrikpe2

#6
Ja, das mit den Wait-Blöcken würde stimmen, aber ihr plädiert ja dann für diese Lösung:

define n_allepumpenhintereinander notify Pumpe_Alle:on set Pumpevtest on-for-timer 5 ;; sleep 5;; set Pumpettest on-for-timer 5 ;; sleep 5 ;; set Pumpewtest on-for-timer 5 ;; sleep 5 ;; set Pumpe_Alle off


Sleep führt hier ja nicht zum Stillstand von FHEM so wie ich das irgendwo gelesen habe (nur sicherheitshalber)?

LG Peter

Otto123

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

elektrikpe2