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

Dazu zwei Ideen:
Entweder einfach in diesem notify den zweiten Befehl set pumpe on
also:set Aktor.:FILTER=NAME!=$NAME off;;set pumpe on

Oder wenn Du den Timer nur an den Ventile festlegen willst machst Du ein weiteres Gerät welches bei allen Ventilen auf timedOn reagiert
Die Idee ist ungetestet!
2020-12-05 18:11:08 CUL_HM SD3 timedOn: running
2020-12-05 18:11:14 CUL_HM SD3 timedOn: 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

remo

#16
Ich habe mir das Konstrukt mit webCmd, eventMap und devStateIcon hübsch machen können.

Aber: selber "Fehler" wie zuvor:
langsame Auslösezeiten und "Connection Lost" als PopUp in der oberen linken Ecke und die Seite aktualisiert sich nicht.
Lasse ich webCmd, eventMap und devStateIcon raus und schalte die Ventile manuell über das Eingabefeld, ist alles bestens ...

Otto123

Dein ursprünglicher Code ist noch aktiv?
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

ZitatDein ursprünglicher Code ist noch aktiv?

nein.

remo

#19
Vielleicht hilft das:

############### VENTIL: HINTEN2
define ventilHinten2 CUL_HM xxx04
attr ventilHinten2 userattr room_map structexclude
attr ventilHinten2 expert 2_raw
attr ventilHinten2 model HM-LC-SW4-SM-2
attr ventilHinten2 peerIDs 00000000,
attr ventilHinten2 subType switch

attr ventilHinten2 webCmd ein:aus
attr ventilHinten2 eventMap on:ein off:aus
attr ventilHinten2 devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr ventilHinten2 room BEWÄSSERUNG
attr ventilHinten2 group 02_Kreise
attr ventilHinten2 alias hinten2



define n_Aktorx notify ventil.*:on set ventil.*:FILTER=NAME!=$NAME {(("$EVENT" eq 'on')?'off':'on')}
attr n_Aktorx disabledAfterTrigger 1

Otto123

Nur mal zur Kontrolle, was sagt list ventil.*

Es klingt so, als schickst Du dein FHEM in eine zeitliche Schleife und die Weboberfläche reagiert nicht mehr.
Ich habe ja nie behauptet, dein ursprünglicher Code ist der Grund - mir war der nur zu kompliziert ;)

Also da ist was, was auf die Aktion die Du ausführst reagiert und eine Schleife läuft. Siehst Du was im Eventmonitor oder im Log? Hast Du freezmon aktiv?
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

list

Listet sauber alle vier Ventile auf.

Freezmon hab ich nicht aktiviert.

Das EventLog ist unauffällig: es erscheint zumindest nix doppelt.

remo

Es scheint auch nur in einen Loop zu laufen wenn ich die Aktoren über das Web mit eventMap, webCmd und decStateIcon schalte. Also wenn ich diese drei Zeilen rauskommentiere und manuell über das Textfeld set ventilX on eingeben, geht's. Sind die drei Zeilen aktiv und ich schalte mit der Maus über das Web, geht's nicht.

remo

#23
set ventilVorne on
set ventilHinten1 on

usw.

als manuelle Eingabe über das Textfeld funktioniert.
Nach jedem Enter refresht die Seite und alles ist gut.
Auch wenn es ziemlich träge ist...

Klicke ich hingegen auf die Aktoren (webCmd) dauert der Schaltvorgang lange und es erscheint "Connection Lost"...
Nach 5 Sekunden fängt sich die Seite meist aber wieder.
Schön ist das aber nicht.


Hier nochmal der aktuelle Code (auch wenn das nicht allzu gerne gesehen ist):

############### VENTIL: VORNE
define ventilVorne CUL_HM 001
attr ventilVorne userattr room_map structexclude
attr ventilVorne expert 2_raw
attr ventilVorne model HM-LC-SW4-SM-2
attr ventilVorne peerIDs 00000000,
attr ventilVorne subType switch

attr ventilVorne webCmd ein:aus
attr ventilVorne eventMap on:ein off:aus
attr ventilVorne devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr ventilVorne room BEWÄSSERUNG
attr ventilVorne group 02_Kreise
attr ventilVorne alias vorne



############### VENTIL: SEITE
define ventilSeite CUL_HM 002
attr ventilSeite userattr room_map structexclude
attr ventilSeite expert 2_raw
attr ventilSeite model HM-LC-SW4-SM-2
attr ventilSeite peerIDs 00000000,
attr ventilSeite subType switch

attr ventilSeite webCmd ein:aus
attr ventilSeite eventMap on:ein off:aus
attr ventilSeite devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr ventilSeite room BEWÄSSERUNG
attr ventilSeite group 02_Kreise
attr ventilSeite alias Seite



############### VENTIL: HINTEN1
define ventilHinten1 CUL_HM 003
attr ventilHinten1 userattr room_map structexclude
attr ventilHinten1 expert 2_raw
attr ventilHinten1 model HM-LC-SW4-SM-2
attr ventilHinten1 peerIDs 00000000,
attr ventilHinten1 subType switch

attr ventilHinten1 webCmd ein:aus
attr ventilHinten1 eventMap on:ein off:aus
attr ventilHinten1 devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr ventilHinten1 room BEWÄSSERUNG
attr ventilHinten1 group 02_Kreise
attr ventilHinten1 alias hinten1



############### VENTIL: HINTEN2
define ventilHinten2 CUL_HM 004
attr ventilHinten2 userattr room_map structexclude
attr ventilHinten2 expert 2_raw
attr ventilHinten2 model HM-LC-SW4-SM-2
attr ventilHinten2 peerIDs 00000000,
attr ventilHinten2 subType switch

attr ventilHinten2 webCmd ein:aus
attr ventilHinten2 eventMap on:ein off:aus
attr ventilHinten2 devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr ventilHinten2 room BEWÄSSERUNG
attr ventilHinten2 group 02_Kreise
attr ventilHinten2 alias hinten2



define n_Aktorx notify ventil.*:on set ventil.*:FILTER=NAME!=$NAME {(("$EVENT" eq 'on')?'off':'on')}
attr n_Aktorx disabledAfterTrigger 1






Auszug aus dem EventLog:

2020-12-06 16:37:07 CUL_HM SW4_2 commState: CMDs_pending
2020-12-06 16:37:07 CUL_HM SW4_2 CMDs_pending
2020-12-06 16:37:07 CUL_HM ventilSeite set_on noArg
2020-12-06 16:37:07 CUL_HM SW4_2 commState: CMDs_processing...
2020-12-06 16:37:07 CUL_HM ventilSeite trigLast: fhem:02
2020-12-06 16:37:07 CUL_HM SW4_2 commState: CMDs_done
2020-12-06 16:37:07 CUL_HM SW4_2 CMDs_done
2020-12-06 16:37:07 CUL_HM SW4_2 commState: CMDs_pending
2020-12-06 16:37:07 CUL_HM SW4_2 CMDs_pending
2020-12-06 16:37:07 CUL_HM ventilHinten1 set_off noArg
2020-12-06 16:37:07 CUL_HM SW4_2 commState: CMDs_processing...
2020-12-06 16:37:07 CUL_HM ventilHinten1 trigLast: fhem:02
2020-12-06 16:37:07 CUL_HM ventilHinten2 set_off noArg
2020-12-06 16:37:07 CUL_HM ventilVorne set_off noArg
2020-12-06 16:37:07 CUL_HM ventilSeite deviceMsg: ein (to 5B154A)
2020-12-06 16:37:07 CUL_HM ventilSeite level: 100
2020-12-06 16:37:07 CUL_HM ventilSeite pct: 100
2020-12-06 16:37:07 CUL_HM ventilSeite ein
2020-12-06 16:37:07 CUL_HM ventilSeite timedOn: aus
2020-12-06 16:37:07 CUL_HM SW4_2 commState: CMDs_processing...
2020-12-06 16:37:07 CUL_HM ventilHinten1 deviceMsg: aus (to 5B154A)
2020-12-06 16:37:07 CUL_HM ventilHinten1 level: 0
2020-12-06 16:37:07 CUL_HM ventilHinten1 pct: 0
2020-12-06 16:37:07 CUL_HM ventilHinten1 aus
2020-12-06 16:37:07 CUL_HM ventilHinten1 timedOn: aus
2020-12-06 16:37:07 CUL_HM ventilHinten2 trigLast: fhem:02
2020-12-06 16:37:08 CUL_HM SW4_2 commState: CMDs_processing...
2020-12-06 16:37:08 CUL_HM ventilHinten2 deviceMsg: aus (to 5B154A)
2020-12-06 16:37:08 CUL_HM ventilHinten2 level: 0
2020-12-06 16:37:08 CUL_HM ventilHinten2 pct: 0
2020-12-06 16:37:08 CUL_HM ventilHinten2 aus
2020-12-06 16:37:08 CUL_HM ventilHinten2 timedOn: aus
2020-12-06 16:37:08 CUL_HM ventilVorne trigLast: fhem:02
2020-12-06 16:37:08 CUL_HM SW4_2 commState: CMDs_done
2020-12-06 16:37:08 CUL_HM SW4_2 CMDs_done
2020-12-06 16:37:08 CUL_HM ventilVorne deviceMsg: aus (to 5B154A)
2020-12-06 16:37:08 CUL_HM ventilVorne level: 0
2020-12-06 16:37:08 CUL_HM ventilVorne pct: 0
2020-12-06 16:37:08 CUL_HM ventilVorne aus
2020-12-06 16:37:08 CUL_HM ventilVorne timedOn: aus
2020-12-06 16:37:15 HMUARTLGW HMLAN1 UNKNOWNCODE A0DE1A6103F17F22B86040601C800::-86:HMLAN1
2020-12-06 16:37:15 HMUARTLGW HMLAN1 UNKNOWNCODE A11E1A0022B86043F17F204996C5627795902::-71:HMLAN1
2020-12-06 16:37:15 HMUARTLGW HMLAN1 UNKNOWNCODE A19E1A6033F17F22B86047323E80F82F256E00962FF4332E38907::-86:HMLAN1
2020-12-06 16:37:15 HMUARTLGW HMLAN1 UNKNOWNCODE A0EE180022B86043F17F200668BE1BE::-71:HMLAN1

Otto123

Moin,

habe jetzt eine Weile geschaut und drüber nachgedacht:
ZitatKlicke ich hingegen auf die Aktoren (webCmd) dauert der Schaltvorgang lange und es erscheint "Connection Lost"...
Nach 5 Sekunden fängt sich die Seite meist aber wieder.
Schön ist das aber nicht.
Ist das eine generelles Verhalten? Als bei allen HM Geräten so? Liegt das Verhalten ev. nicht an dieser Logik?

Im Eventlog sehe ich jetzt überhaupt keinen on Event mehr. Klar Du hast das mit EventMap umgemappt. Ich bin mir immer nicht 100% sicher was da passiert. Ich habe solche "Spielereien" mittlerweile alle wieder rausgenommen.

Also was ich sagen will: Laut deinem Eventlog dürfte das notify von "mir" gar  nicht anspringen. Trotzdem erfolgt ja die Schaltlogik wie gewünscht.
Kannst Du mal ein list n_Aktorx zeigen?

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

#25
Hallo Otto,

Zitathabe jetzt eine Weile geschaut und drüber nachgedacht
Vielen Dank für deine Mühe!

ZitatIst das eine generelles Verhalten? Als bei allen HM Geräten so? Liegt das Verhalten ev. nicht an dieser Logik?
Nein, alles andere ist super schnell und stabil!
Ich habe auch nicht gerade wenig mit FHEM umgesetzt und nutze es schon seit ca. 4 Jahren.
Ständig kommt etwas hinzu und hin und wieder fliegt auch mal etwas raus oder
ich optimiere mal etwas. Programmierung und IT sind mir auch nicht völlig fremd.
Aber hier lege ich mir echt die Karten!
Alles andere, was ich so brauchte, habe ich mir immer (nahezu) selbstständig erarbeiten können.

ZitatIch habe solche "Spielereien" mittlerweile alle wieder rausgenommen.
Wie hast du das dann umgesetzt?
Oder gibt es einen Best Practise oder eine Art "Norm"?

ZitatKannst Du mal ein list n_Aktorx zeigen?
Internals:
   CFGFN      ./FHEM/006_bewaesserung.cfg
   DEF        ventil.*:on set ventil.*:FILTER=NAME!=$NAME {(("$EVENT" eq 'on')?'off':'on')}
   FUUID      5fcd719c-f33f-1ce0-277f-58b77c643561c172
   NAME       n_Aktorx
   NOTIFYDEV  ventil.*
   NR         861
   NTFY_ORDER 50-n_Aktorx
   REGEXP     ventil.*:on
   STATE      active
   TYPE       notify
   READINGS:
     2020-12-07 01:04:44   state           active
Attributes:
   disabledAfterTrigger 1

Otto123

Hallo remo,

dein list bestätigt meine Vermutung. Fällt Dir was auf?
Internals:
   CFGFN     
   DEF        Aktor.:on set Aktor.:FILTER=NAME!=$NAME {(("$EVENT" eq 'on')?'off':'on')}
   FUUID      5fca8b8b-f33f-27f7-3d03-aca8726804c29a28
   NAME       n_Aktorx
   NOTIFYDEV  Aktor.
   NR         180891
   NTFY_ORDER 50-n_Aktorx
   REGEXP     Aktor.:on
   STATE      2020-12-04 20:22:02
   TRIGGERTIME 1607109722.86281
   TYPE       notify
   READINGS:
     2020-12-04 20:19:39   state           active
Attributes:
   disabledAfterTrigger 1
   room       Test

Bei Dir STATE      active - das bedeutet im Klartext: definiert und noch nie gelaufen. Also wer immer deine Logik abarbeitet, dieses notify hat nichts damit zu tun  :o

Ich verändert einfach die Events nicht mehr: on ist eben on und gut. Auch wenn das beim Rolladen oben bedeutet ;)

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

#27
Zitatdieses notify hat nichts damit zu tun
Wie kann das kommen?!


Ich habe mir jetzt nochmal ein Testkonstrukt gebaut.
Ohne Aktoren, nur Dummys und über das Web mit der "Maus" geschaltet.

Code:
define Aktor1 dummy
define Aktor2 dummy
define Aktor3 dummy
define Aktor4 dummy
attr Aktor. room Test

attr Aktor1 webCmd ein:aus
attr Aktor1 eventMap on:ein off:aus
attr Aktor1 devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr Aktor2 webCmd ein:aus
attr Aktor2 eventMap on:ein off:aus
attr Aktor2 devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr Aktor3 webCmd ein:aus
attr Aktor3 eventMap on:ein off:aus
attr Aktor3 devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

attr Aktor4 webCmd ein:aus
attr Aktor4 eventMap on:ein off:aus
attr Aktor4 devStateIcon ein:sprinkler_icon@5ECD3C aus:sprinkler_icon@808080 .*:sprinkler_icon@F19A38

define n_Aktory notify Aktor.:on set Aktor.:FILTER=NAME!=$NAME {(("$EVENT" eq 'on')?'off':'on')}
attr n_Aktory disabledAfterTrigger 1
attr n_Aktory room Test


EventLog:
2020-12-07 16:31:30 dummy Aktor1 aus
2020-12-07 16:31:30 dummy Aktor3 aus
2020-12-07 16:31:30 dummy Aktor4 aus
2020-12-07 16:31:30 dummy Aktor2 ein
2020-12-07 16:31:36 dummy Aktor1 aus
2020-12-07 16:31:36 dummy Aktor2 aus
2020-12-07 16:31:36 dummy Aktor4 aus
2020-12-07 16:31:36 dummy Aktor3 ein
2020-12-07 16:31:40 dummy Aktor1 aus
2020-12-07 16:31:40 dummy Aktor2 aus
2020-12-07 16:31:40 dummy Aktor3 aus
2020-12-07 16:31:40 dummy Aktor4 ein


list n_Aktory:
Internals:
   CFGFN      ./FHEM/006_bewaesserung.cfg
   DEF        Aktor.:on set Aktor.:FILTER=NAME!=$NAME {(("$EVENT" eq 'on')?'off':'on')}
   FUUID      5fce4aaa-f33f-1ce0-4e69-cdda64eff31f39bb
   NAME       n_Aktory
   NOTIFYDEV  Aktor.
   NR         882
   NTFY_ORDER 50-n_Aktory
   REGEXP     Aktor.:on
   STATE      2020-12-07 16:31:40
   TRIGGERTIME 1607355100.35103
   TYPE       notify
   READINGS:
     2020-12-07 16:30:50   state           active
Attributes:
   disabledAfterTrigger 1
   room       Test



Ergebnis:
Überwiegend "Connection Lost..." und keine Aktualisierung der Seite ... wie vorher also!
Ich vermute, dass das Notify das Problem verursacht.

Otto123

Deinen Test kann ich 100% nachvollziehen - ist bei mir genau wie Du beschreibst - aber
Zitat von: remo am 07 Dezember 2020, 16:33:33
Ich vermute, dass das Notify das Problem verursacht.
Dann mach mal
deleteattr Aktor. devStateIcon

und versuch nochmal  ;D
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

Zitatund versuch nochmal

Gut, jetzt ist mein Sprinkler-Icon weg, die Farben auch, ABER ES FUNKTIONIERT!

"aktiviere" ich meine Icons und Farben wieder, ist das Verhalten wie zuvor ...

Wie kann das sein???