Ventilsteuerung (Bewässerung) mit vier Kreisen und HM-LC-SW4-SM-2

Begonnen von remo, 04 Dezember 2020, 14:42:58

Vorheriges Thema - Nächstes Thema

Otto123

Aber Du hast jetzt kurze Zeiten gewählt:
2020-12-08 21:57:12 CUL_HM ventilVorne timedOn: running
2020-12-08 21:57:12 CUL_HM ventilHinten1 timedOn: aus
2020-12-08 21:57:13 CUL_HM ventilHinten2 timedOn: aus
2020-12-08 21:57:13 CUL_HM ventilSeite timedOn: aus
2020-12-08 21:57:24 CUL_HM ventilVorne timedOn: aus


Gute Nacht :)
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

remo

Genau. Zum Testen. Weil ich nicht jedes Mal 5 Minuten warten möchte, um zu sehen, ob es funktioniert. Keine gute Idee?

Otto123

naja ich meine 5 sec disable würde reichen? Dann müsste doch die Pumpe erst am Ende des on-for-timer ausschalten?

Denn das notify macht ja beides, es schaltet die Pumpe ein und beim letzten wieder aus!
define n_Aktorx2 notify ventil.*:timedOn:.* {if ($EVTPART1 eq "running") {fhem("set pumpe on")}else{fhem("set pumpe off")}}
attr n_Aktorx2 disableAfterTrigger 5
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

remo

So, ganz stranges Verhalten:

mit on-for-timer 30 und
disableAfterTrigger 5

Bleiben das Ventil und die Pumpe (Laterne zum Testen) 30 Sekunden ein und gehen dann auch beide wieder aus --- check!

Aber :D

Wenn ich die Ventile nun manuell über das Web schalte (immer nur eins ein, die anderen dann aus; ohne on-for-timer), schaltet sich die Laterne für einen kurzen Moment (1 Sekunden) mit ein...  :o

Otto123

Moin,

ok dagegen hätte ich eventuell was:
attr ventil.* event-on-change-reading .*

Du kannst im Eventmonitor wieder schön sehen warum es passiert:
Ohne eocr
2020-12-09 09:56:08 CUL_HM SD3 commState: CMDs_pending
2020-12-09 09:56:08 CUL_HM SD3 set_on
2020-12-09 09:56:09 CUL_HM SD3 commState: CMDs_done
2020-12-09 09:56:09 CUL_HM SD3 deviceMsg: on (to VCCU)
2020-12-09 09:56:09 CUL_HM SD3 level: 100
2020-12-09 09:56:09 CUL_HM SD3 pct: 100
2020-12-09 09:56:09 CUL_HM SD3 on
2020-12-09 09:56:09 CUL_HM SD3 timedOn: off

mit eocr
2020-12-09 09:54:49 CUL_HM SD3 commState: CMDs_pending
2020-12-09 09:54:49 CUL_HM SD3 set_on
2020-12-09 09:54:49 CUL_HM SD3 commState: CMDs_done
2020-12-09 09:54:49 CUL_HM SD3 deviceMsg: on (to VCCU)
2020-12-09 09:54:49 CUL_HM SD3 level: 100
2020-12-09 09:54:49 CUL_HM SD3 pct: 100
2020-12-09 09:54:49 CUL_HM SD3 on

Wobei mein letztes notify ja auf den running event reagiert. Oder hast Du in dem anderen notify zusätzlich noch set Pumpe on drin?
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

remo

Moin Otto, gut geschlafen? :D

mit
attr ventil.* event-on-change-reading .*
sieht on-for-timer nun gut aus.

Allerdings kann ich jetzt zwei Ventile einschalten.
Also es schaltet sich nicht immer das vorhergehende Ventil ab, wenn ich ein anderes einschalte ...

ZitatWobei mein letztes notify ja auf den running event reagiert. Oder hast Du in dem anderen notify zusätzlich noch set Pumpe on drin?
define n_ventile notify ventil.*:on set ventil.*:FILTER=NAME!=$NAME off;; set Laterne on;;
define n_Aktorx2 notify ventil.*:timedOn:.* {if ($EVTPART1 eq "running") {fhem("set Laterne on")}else{fhem("set Laterne off")}}



remo

#81
ZitatAllerdings kann ich jetzt zwei Ventile einschalten.
Also es schaltet sich nicht immer das vorhergehende Ventil ab, wenn ich ein anderes einschalte ...

Das kann ich umgehen, indem ich
attr n_ventile disabledAfterTrigger 5
Sekunden mit dem nächsten manuellen Schaltvorgang warte...

EDIT:

attr n_ventile disabledAfterTrigger 1
reicht scheinbar aus, wenn das on-for-timer > 5 ist.
In der Praxis wird es sich später sowieso um einen längeren Zeitraum handeln.

Zum Stand:
- Manuelles Schalten der Ventile zzgl. Pumpe/Laterne (immer nur eine Ventil ein, aber Pumpe/Laterne mit einschalten) funktioniert.   ---   check!
- on-for-timer > 5 funktioniert (auch wenn zuvor schon ein Ventil ein war); Ventil + Pumpe/Laterne schalten nach Zeit X ab und das Web aktualisiert sich auch.   ----   check!

So, letzte Baustelle:
Pumpe/Laterne aus, wenn Ventil manuell aus

define n_ventile notify ventil.*:on set ventil.*:FILTER=NAME!=$NAME off;; set Laterne on;;

wenn man dort noch irgendwie "clever" set Laterne <ventil.state> einbauen könnte...  ???


EDIT 2:
Otto, es sieht wirklich gut aus bisher...
Meine Tests liefen wirklich gut bis jetzt!

remo

So, letzte Baustelle:
Pumpe/Laterne aus, wenn Ventil manuell aus

Code: [Auswählen]
define n_ventile notify ventil.*:on set ventil.*:FILTER=NAME!=$NAME off;; set Laterne on;;

wenn man dort noch irgendwie "clever" set Laterne <ventil.state> einbauen könnte

Hast du vielleicht noch einen heissen tipp für mich?

Otto123

Also doch beide Events abfangen
on -> alle Ventile außer das gerade geschaltete off, Pumpe on
off -> Pumpe off
?
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

remo

Zitaton -> alle Ventile außer das gerade geschaltete off, Pumpe on
genau. Funktioniert ja schon.
Zitatoff -> Pumpe off
genau. Ventil wieder manuell aus, also auch Pumpe aus.

Ist das realistisch?

Otto123

defmod n_ventile notify ventil.*:on|ventil.*:off set ventil.*:FILTER=NAME!=$NAME off;; set Laterne $EVENT
Eigentlich ist es doch bei dem notify egal ob die anderen Ventile auch off bekommen wenn die Pumpe aus geht?

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

remo

#86
ZitatEigentlich ist es doch bei dem notify egal ob die anderen Ventile auch off bekommen wenn die Pumpe aus geht?
Ich glaube wir haben uns missverstanden?!

IST-Zustand: ich schalte ein Ventil ein oder auf ein anderes um (egal welches), die anderen schalten ab, es schaltet sich die Pumpe/Laterne mit ein.   ---   check!
SOLL: ich schalte besagtes Ventil wieder aus (sodass alle Ventile ausgeschaltet sind), die Pumpe/Laterne schaltet sich ebenfalls mit aus.

EDIT:
So langsam macht mich die ganze Sache mürbe ...  :-\
Wir können auch gerne mal ein zwei Tage Pause machen :D

Otto123

Zitat von: remo am 09 Dezember 2020, 21:03:16
Ich glaube wir haben uns missverstanden?!
Ich glaube nicht :)

Was sollte das notify (die Modifikation oben) machen?
Es reagiert nicht nur auf den Befehl "ventil on" sondern auch auf "ventil off"

Bei ventil1 on passiert exakt das wie bisher: ventil 2-4 gehen off die Pumpe geht on.
Alles läuft sagen wir 10 min ...
Bei ventil1 off bekommen die ventile 2-4 auch wieder off, ist egal die sind off, aber die Pumpe bekommt auch ein off.

Das wolltest Du doch? Die Zeitsteuerung ist davon nicht betroffen.
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

remo

wenn ich
define n_ventile notify ventil.*:on set ventil.*:FILTER=NAME!=$NAME off;; set Latern on;;
durch
defmod n_ventile notify ventil.*:on|ventil.*:off set ventil.*:FILTER=NAME!=$NAME off;; set Laterne $EVENT
ersetze, blinken meine Ventil-Aktoren wie Weihnachtsbeleuchtung orange (undefined) ...


Otto123

machst Du mal bitte sicherheitshalber ein list n_ventile ?
Und schneidest mal ein on und ein off im Evntmonitor mit? ventil.*

Aber ich will Dich nicht stressen :)
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