Hallo Ihr, ein DOIF welches meines Dafürhaltens früher funktionierte, tut nicht mehr das was es soll.
defmod BeregnungDOIF_PumpeCisterna DOIF ([#"^BEREGNUNG_SCHALTER_":state:"^on$"] ne "0" or [?$SELF:manu] eq "on") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^off$"] and [?$SELF:cmd] ne "4" and [?$SELF:cmd] ne "5.2") \
(set $SELF manu off) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^on$"] and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5.1") \
(set $SELF manu on) \
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:"^on$"] eq "0") \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5.2") \
()
attr BeregnungDOIF_PumpeCisterna readingList manu
attr BeregnungDOIF_PumpeCisterna wait 0:0:0:0:0,10:0
Das DOIF schaltet bei Beregnung die Brunnenpumpe an und danach wieder aus. Um zu vermeiden, dass sie auch ausschaltet, wenn man sie manuell eingeschaltet hatte, gibt es eine Variable "manu" die den Zustand der Pumpe "speichert" und nach der Beregnung wieder herstellt. cmd_5 verhindert bei längerer Abwesenheit ein verrockern der Pumpe. cmd_6 ist dazu da, durch Zustandwechsel cmd_5 täglich auszuführen.
Davon ausgehend, dass "manu" auf "off" steht .... Problem ist, dass ein BEREGNUNG_SCHALTER "on" das DOIF in cmd_1 halten sollte. Aber das DOIF geht nach Ausführung von cmd_1 direkt in cmd_3 (was ein "manu" on nach sich zieht und die Grundidee ad absurdum führt).
Durch "[?$SELF:cmd] ne "1"" in cmd_3 sollte dies verhindert sein. Das interessiert das DOIF aber nicht (aber hat es früher, meine ich, mal). Warum?
"manu" on oder min ein Beregner läuft sollten das DOIF immer in cmd_1 halten.
Danke und Grüße!
H.
Mann Mann, also, das ganze Ding mit allen angehängten Devices im Testsystem nachgebaut. Läuft wie eine Eins.
Der einzige Unterschied ist, dass alle BEREGNUNG_SCHALTER_ Devices im Testsystem Dummies sind und keine Homematic Schalter.
Dunkel erinnere ich mich an die, bis anhin mir immer noch unverständlichen und sich widersprechenden, Zwischenstati "set_off", "working: on", etc im state bei Homematic Devices.
Denke mal, das ist auch das, was dieses DOIF jetzt neuerdings wuschig macht. ABER, wie man sieht wurde schon damals der Versuch unternommen, dies möglichst zu kompensieren. Was hat sich da, falls, verändert?
und wie müßte es richtig sein, um nur den definitiven Event "on" und "off" im state zu filtern?
Also im DOIF hat sich an der Stelle nicht geändert.
mit der Angabe:
^on$
wird auf jeden Fall set_on ausgeschlossen.
... aus dieser Homematic Geschichte soll man schlau werden. Ich habe mal einen Homematic Schalter bemüht, der nicht wirklich Mechanik in Aktion bringt:
ist on, man schaltet aus
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen set_off
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen off
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen working: off
ist off, man schaltet an
2021-03-17 21:24:11 HM485 ZirkusOben_STECKDOSE_Aussen set_on
2021-03-17 21:24:11 HM485 ZirkusOben_STECKDOSE_Aussen on
2021-03-17 21:24:11 HM485 ZirkusOben_STECKDOSE_Aussen working: off
logisch ist das nicht, oder? was soll das working: off beim einschalten?
und ich denke, dies könnte das Problem sein. Aber wie muß ich die Syntax wählen, damit wirklich nur das passende "on" oder "off" (bei vielen aggregierten Devices) gefunden wird? Mit state liege ich da doch nicht ganz falsch.
[#"^ZirkusOben_STECKDOSE_":state:$_ eq "on"]
sollte nur den Status "on" zählen
Danke Damian.
PS: ich weiß jetzt, warum es früher immer ging und jetzt nicht mehr.
Früher wurden immer mindestens 2 Beregner gleichzeitig gefahren, da gab es dann immer laut status mindestens einen Aktiven, auch wenn der andere gerade Zorres im state stehen hatte. Jetzt läuft zum Teil nur ein Beregner und dadurch wurde kurz in cmd_4 gewechselt, was dann wieder cmd_3 ermöglichte. Zur Info
... doch noch nicht gelöst. Das DOIF zum besseren Verständnis noch etwas umgebaut, der Effekt ist der selbe.
defmod BeregnungDOIF_PumpeCisterna DOIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] ne "0" or [?$SELF:manu] eq "on") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] eq "0") \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^on$"] and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5") \
(set $SELF manu on) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^off$"] and [?$SELF:cmd] ne "2" and [?$SELF:cmd] ne "5") \
(set $SELF manu off) \
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off") \
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10) \
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5") \
()
attr BeregnungDOIF_PumpeCisterna readingList manu
attr BeregnungDOIF_PumpeCisterna room System
Im Event Monitor stellt sich das so dar
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 2
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 2
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_2
2021-03-19 14:37:10 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 set_on
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 1
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 1
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_1
2021-03-19 14:37:10 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 working: off
2021-03-19 14:37:10 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 on
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna manu: off
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 4
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 4
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_4
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna manu: on
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 3
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 3
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_3
list vom DOIF
Internals:
DEF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] ne "0" or [?$SELF:manu] eq "on")
(set PozzoHauptOben_PUMPE_Cisterna on)
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] eq "0")
(set PozzoHauptOben_PUMPE_Cisterna off)
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^on$"] and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5")
(set $SELF manu on)
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^off$"] and [?$SELF:cmd] ne "2" and [?$SELF:cmd] ne "5")
(set $SELF manu off)
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off")
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10)
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5")
()
FUUID 5c86875d-f33f-6bb4-4d74-e765a0dcecfc52bc
MODEL FHEM
NAME BeregnungDOIF_PumpeCisterna
NOTIFYDEV global,BEREGNUNG_SCHALTER_.*,PozzoHauptOben_PUMPE_Cisterna
NR 801
NTFY_ORDER 50-BeregnungDOIF_PumpeCisterna
STATE cmd_1
TYPE DOIF
VERSION 23466 2021-01-03 17:14:46
READINGS:
2021-03-19 14:38:45 Device PozzoHauptOben_PUMPE_Cisterna
2021-03-19 14:38:45 cmd 1
2021-03-19 14:38:45 cmd_event BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
2021-03-19 14:38:45 cmd_nr 1
2021-03-19 14:38:45 e_PozzoHauptOben_PUMPE_Cisterna_STATE on
2021-03-19 14:37:10 manu on
2021-03-18 18:14:23 mode enabled
2021-03-19 14:38:45 state cmd_1
2021-03-19 05:30:00 timer_01_c05 20.03.2021 05:30:00
2021-03-18 18:14:23 timer_02_c06 19.03.2021 17:30:00
2021-03-18 18:52:03 wait_timer no timer
Regex:
accu:
cond:
:
0:
"^BEREGNUNG_SCHALTER_" ^BEREGNUNG_SCHALTER_
1:
"^BEREGNUNG_SCHALTER_" ^BEREGNUNG_SCHALTER_
2:
"^PozzoHauptOben_PUMPE_Cisterna$:^on$" ^PozzoHauptOben_PUMPE_Cisterna$:^on$
3:
"^PozzoHauptOben_PUMPE_Cisterna$:^off$" ^PozzoHauptOben_PUMPE_Cisterna$:^off$
4:
5:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::AggregateDoIf($hash,'#','^BEREGNUNG_SCHALTER_','state','$_ eq "on"') ne "0" or ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','manu') eq "on"
1 ::AggregateDoIf($hash,'#','^BEREGNUNG_SCHALTER_','state','$_ eq "on"') eq "0"
2 ::EventDoIf('^PozzoHauptOben_PUMPE_Cisterna$',$hash,'^on$',0) and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "1" and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "5"
3 ::EventDoIf('^PozzoHauptOben_PUMPE_Cisterna$',$hash,'^off$',0) and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "2" and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "5"
4 ::DOIF_time_once($hash,0,$wday) and ::ReadingValDoIf($hash,'AnwesenheitHaupt','statStateDaypresent') eq "00:00:00" and ::InternalDoIf($hash,'PozzoHauptOben_PUMPE_Cisterna','STATE') eq "off"
5 ::DOIF_time_once($hash,1,$wday) and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') eq "5"
days:
do:
0:
0 set PozzoHauptOben_PUMPE_Cisterna on
1:
0 set PozzoHauptOben_PUMPE_Cisterna off
2:
0 set BeregnungDOIF_PumpeCisterna manu on
3:
0 set BeregnungDOIF_PumpeCisterna manu off
4:
0 set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10
5:
0
6:
helper:
DEVFILTER ^global$|^BEREGNUNG_SCHALTER_|^PozzoHauptOben_PUMPE_Cisterna$
NOTIFYDEV global|BEREGNUNG_SCHALTER_.*|PozzoHauptOben_PUMPE_Cisterna
event on
globalinit 1
last_timer 2
sleeptimer -1
timerdev BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
timerevent working: off,off
triggerDev PozzoHauptOben_PUMPE_Cisterna
timerevents:
working: off
off
timereventsState:
working: off
state: off
triggerEvents:
on
working: off
triggerEventsState:
state: on
working: off
internals:
all PozzoHauptOben_PUMPE_Cisterna:STATE
interval:
intervalfunc:
localtime:
0 1616214600
1 1616171400
readings:
realtime:
0 05:30:00
1 17:30:00
time:
0 05:30:00
1 17:30:00
timeCond:
0 4
1 5
timer:
0 0
1 0
timers:
4 0
5 1
trigger:
triggertime:
1616171400:
localtime 1616171400
hash:
1616214600:
localtime 1616214600
hash:
uiState:
uiTable:
Attributes:
devStateIcon disabled:general_aus@red:initialize initialize:general_an@yellow:disable initialized:general_an@yellow:disable cmd_1:general_an@green:disable cmd_2:general_an@yellow:disable cmd_3:general_an@green:disable cmd_4:general_an@yellow:disable cmd_5:general_an@blue:disable cmd_6:general_an@blue:disable
group Beregnung
readingList manu
room System
ich verstehe nicht, was genau cmd_4 (mit Homematic Schaltern) ermöglicht, was dann wieder cmd_3 ermöglicht. Wie beschrieben läuft es mit BEREGNUNG_SCHALTER_ als Dummies ohne Probleme.
Oh neee, alle Interpretationen von mir in den Beiträgen vorab waren nur ein Teil des Problems. PozzoHauptOben_PUMPE_Cisterna ist ja auch ein Homematic device. Da gibt es ja auch die Zwischenstati. Warum es früher lief und jetzt nicht mehr ??? .... wahrscheinlich Einbildung oder jetzt den speziellen Fall nie gehabt.
mmh, wie müßte die Syntax für PozzoHauptOben_PUMPE_Cisterna sein damit nur state on/off gefangen wird?
so
["^PozzoHauptOben_PUMPE_Cisterna$:^off$"]
nimmt er scheinbar auch das working: off mit.
Ich probiere es mal so
defmod BeregnungDOIF_PumpeCisterna DOIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] ne "0" or [?$SELF:manu] eq "on") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] eq "0") \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:state] eq "on" and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5") \
(set $SELF manu on) \
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:state] eq "off" and [?$SELF:cmd] ne "2" and [?$SELF:cmd] ne "5") \
(set $SELF manu off) \
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off") \
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10) \
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5") \
()
im state das set_on set_off sollte ignoriert werden und das working: on/off auch. Ob ich auf den event oder den state prüfe sollte hier keine Rolle spielen.
Moin,
du hast da sehr viele Vermutungen beschrieben, fhem und Computer machen ja eher logische Dinge. Und wenns nicht klappt, dann doch meistens weil man was falsches zum verarbeiten geliefert hat..... kennst du ja alles.
Ich kann nicht sagen, was sich bei Homematic genau geändert hat, weshalb das DOIF nun nicht mehr läuft, es gab aber vor einigen Wochen (weiß nicht mehr genau) doch diverse Umbauten.
Du vermutest, Dein DOIF wird von seltsamen Vorgängen der Homematic-devices "falsch" ausgeführt. Daher solltest Du da mal Schritt für Schritt dran gehen.
Mach mal den Event-Monitor auf und schreibe mit, was die verschiedenen Devices alles so von sich geben. Von der Zirkus_Oben Steckdose hast Du das ja in Auszügen schon gemacht. Mach es etwas ausführlicher: also den Schalter (was ist das übrigens genau für einer?) einschalten, eine Weile warten, ausschalten, Weile warten, on-for-timer senden, Weile warten etc. was da halt alles so sein kann (ein Weilchen warten nur, damit man bei den Ausgaben besser erkennen kann, was (zeitlich) zusammengehört) . Dein DOIF kannst Du ja solange auf disabled stellen, damit es nicht irgendwas auslöst.
Diese Ausgaben analysierst Du: welche Readings ändern sich wann und sind somit als Trigger nutzbar. Sind da noch andere Readings, die sich ändern, die Du aber gar nicht brauchst, dann mittels event-on-change-reading nur die durchlassen, die gebraucht werden (aber auch an die denken, die evtl. ganz woanders gebraucht werden).
Da Du im DOIF die Schalter aggregierst könntest Du mal ein test-DOIF schreiben und z.B. ein DOIF_reading anlegen mit der Aggregatsfunktion. Dann die Schalter mal ein/ausschalten um zu sehen, dass da auch das richtige rauskommt, also 0 für alles aus und x für beliebig viele an.
Uns abschliessend möchte ich Dich ermuntern, mal DOIF-Perl anzusehen. Du bist dort selbst verantwortlich den state des DOIF zu setzen, von alleine passiert das nicht. Und die bist sehr frei Readings und/oder Variablen zu nutzen, um irgendwelche Zustände zwischenzuspeichern und ggf. abzufragen. Außerdem kannst Du wunderbar die Bedingungen ineinander zu verschachteln, was im DOIF-fhem so nicht geht.
Aber zeig erst mal ein paar Event-monitor Auszüge der Schalter.
Zitatmmh, wie müßte die Syntax für PozzoHauptOben_PUMPE_Cisterna sein damit nur state on/off gefangen wird?
Im Eventmonitor die entsprechende Zeile vollständig markieren und dann [Create/Modify Device] klicken, dort dann DOIF auswählen. Ein OK brauchts nicht, da würde gleich ein neues Device angelegt, einfach die Zeile kopieren und dann den Vorgang abbrechen.
Viele Erfolg!
Moinsen Sany und danke für deinen langen Beitrag.
Im Prinzip habe ich alle deine Vorschläge durch. Das Problem ist (wahrscheinlich) das working: off wenn man homematic switches anschaltet.
Wie geschrieben funktioniert ein Testaufbau (bisher in allen hier zelebrierten Varianten) mit Dummies reibungslos.
Das Schalten eines Homematic Switches gibt dir
Zitat von: holle75 am 17 März 2021, 21:37:03
... aus dieser Homematic Geschichte soll man schlau werden. Ich habe mal einen Homematic Schalter bemüht, der nicht wirklich Mechanik in Aktion bringt:
ist on, man schaltet aus
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen set_off
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen off
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen working: off
ist off, man schaltet an
2021-03-17 21:24:11 HM485 ZirkusOben_STECKDOSE_Aussen set_on
2021-03-17 21:24:11 HM485 ZirkusOben_STECKDOSE_Aussen on
2021-03-17 21:24:11 HM485 ZirkusOben_STECKDOSE_Aussen working: off
im Event-Monitor
Das mit dem Markieren im Event-Monitor ergibt fast die selbe syntax wie die von mir anfänglich genutzte (aber hey, nice, was gelernt. Danke!)
([PozzoHauptOben_PUMPE_Cisterna:"^on$"])
das hier fängt meines Erachtens alle Events von PozzoHauptOben_PUMPE_Cisterna mit on drin, also auch working: on oder dann im anderen Zweig das off, welches mir das DOIF durcheinanderbringt.
aber ja, sie ist leicht anders, werde ich probieren.
Das hier ist ein (fehlerhafter) Durchlauf
Zitat von: holle75 am 19 März 2021, 14:49:01
Im Event Monitor stellt sich das so dar
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 2
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 2
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_2
2021-03-19 14:37:10 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 set_on
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 1
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 1
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_1
2021-03-19 14:37:10 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 working: off
2021-03-19 14:37:10 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 on
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna manu: off
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 4
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 4
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_4
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna manu: on
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 3
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd: 3
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-19 14:37:10 DOIF BeregnungDOIF_PumpeCisterna cmd_3
Glaube woher meine Stochern im Trüben kam ist, dass ich vergaß, dass der PozzoHauptOben_PUMPE_Cisterna Switch auch Homematic ist und nur für die aggregierten BEREGNUNG_SCHALTER_ den Fehler gesucht habe. Da es in einem sehr unüblichen Fall (die Pumpe ist aus, was sie selten ist, und die Beregnung läuft an, was sie normalerweise tut wenn die Pumpe sowieso an ist) jetzt die Probleme hat, kann es sein, dass es noch nie funktioniert hat und ich es nur nicht bemerkt habe.
Perl-DOIF ist sicherlich mächtig, aber wie du siehst, fällt mir schon der Standard schwer, ohne mich noch zusätzlich mit der Perl-Syntax rumzuschlagen ;)
Die eigentliche Frage bleibt:
Zitat von: holle75 am 20 März 2021, 13:19:02
mmh, wie müßte die Syntax für PozzoHauptOben_PUMPE_Cisterna sein damit nur state on/off gefangen wird?
(dies für die Variante wo nach Events getriggert wird)
Danke und Grüße
H.
mit:
([PozzoHauptOben_PUMPE_Cisterna:"^on$"])
triggern Events, die nur "on" beinhalten.
Der Teil in Anführungszeichen wird gegen alles was hinter dem Device kommt geprüft.
Also würde "set_on" nicht triggern und auch nicht "working: on"
Unabhängig davon befinden sich alle drei Angaben offenbar innerhalb eines Event-Blocks (gleiche Uhrzeit), damit wird das DOIF-Modul nur einmal geweckt und nicht drei mal.
Zum Testen kann man sich immer Mini-DOIFs bauen, die nur eine Triggeranweisung haben. Damit kann man schnell erkennen, wie oft und wann etwas triggert oder eben nicht triggert.
aus der cref:
(["^FS$:^temp$"] triggert auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt
ich finde den Event-Teil unglücklich beschrieben, denn ich denke der gesamte Event muss genau "temp" heißen.
Im Eventmonitor siehst Du z.B.
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen on
2021-03-17 21:23:57 HM485 ZirkusOben_STECKDOSE_Aussen working: on
nach der o.g. Regel würde ich sagen:
["^ZirkusOben_STECKDOSE_Aussen$:^on$"] kann eigentlich nur auf "state" triggern, denn working kommt ja im Event nicht vor.
Ich habe ein Homematic-Schaltsteckdose, dort ist event-on-change-reading auf "state" gesetzt. Die liefert:
2021-03-19_23:46:47 Steckdose_StehlampeTV set_off noArg
2021-03-19_23:46:47 Steckdose_StehlampeTV off
2021-03-20_17:24:03 Steckdose_StehlampeTV set_on noArg
2021-03-20_17:24:03 Steckdose_StehlampeTV on
Ein Trigger, wie oben beschrieben, arbeitet korrekt. Ich habe allerdings in keinem einzigen Homematic bzw. in meinem gesamten System kein "working".
Nochmal die Frage: was ist das für ein Schalter?
und setz bei den Schaltern mal event-on-change-reading state und beobachte dann.
Wie schon beschrieben, die event-on- Attribute können auch Dinge ausblenden, die Du woanders brauchst.
Sehe gerade, Damian hat es auch noch mal eindeutig geschrieben, was ich eben getestet habe.
Gruß
Danke Damian, allerdings bin ich dann hiermit komplett lost.
Wenn es als Testdoif mit Dummies funktioniert und die Event-Syntax den einzigen Unterschied zu Homematic Schaltern, das "working: on/off" und "set_on/off" richtigerweise ignoriert ....
Ich probiere morgen (die Beregnung läuft nur einmal am Tag und ich muß es ja mit den echten Schaltern probieren) im Hauptsystem die Variante mit der Abfrage nach state und nicht event.
Zitat von: Damian am 20 März 2021, 18:54:50
Unabhängig davon befinden sich alle drei Angaben offenbar innerhalb eines Event-Blocks (gleiche Uhrzeit), damit wird das DOIF-Modul nur einmal geweckt und nicht drei mal.
das ist ja das Problem. Irgend ein (Zwischen-) Event mit "off" von BeregnungDOIF_PumpeCisterna triggert cmd_4 was wiederum cmd_3 möglich macht, obwohl das DOIF eigentlich in cmd_1 stehen sollte wenn ein oder mehrere BEREGNUNG_SCHALTER_ on sind
Das bei der "alten" Variante mit Trigger per event:
defmod BeregnungDOIF_PumpeCisterna DOIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] ne "0" or [?$SELF:manu] eq "on") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] eq "0") \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^on$"] and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5") \
(set $SELF manu on) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^off$"] and [?$SELF:cmd] ne "2" and [?$SELF:cmd] ne "5") \
(set $SELF manu off) \
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off") \
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10) \
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5") \
()
attr BeregnungDOIF_PumpeCisterna readingList manu
attr BeregnungDOIF_PumpeCisterna room System
und ich such den Übeltäter der für BeregnungDOIF_PumpeCisterna das "off" generiert. Da fällt mir nur das working: off wenn man einen Homematic Schalter anschaltet auf. Dieses off gibt es beim Dummy Testaufbau nicht und es funktioniert.
Sany, sorry das hat sich gerade überschnitten.
Das sind HM-Wired 12-7 Schalter.
Die Idee mit event-on-change-reading alles außer state zu filtern ist gut. Aber sollte, wenn das RegEx für state richtig ist irrelevant sein?
... vielleicht sollte ich mal Thorsten der das HM-Wired Modul geschrieben hat fragen, was das working: xxx ist, wenn Sany das bei seinen HM Devices nicht hat.
Bei mir ist alles was HM ist wired, ich kenn es nur so.
ZitatIch probiere morgen (die Beregnung läuft nur einmal am Tag und ich muß es ja mit den echten Schaltern probieren) im Hauptsystem die Variante mit der Abfrage nach state und nicht event.
dann lass doch, wenn das alles läuft, da mal den Eventmonitor mitlaufen, schön gefiltert nach den einzelnen Schaltern und dem DOIF (also mehrere Event-Monitore). Es ist ja wohl irgendein Event, was die Probleme verursacht, also solltest Du da anfangen zu suchen.
ZitatDie Idee mit event-on-change-reading alles außer state zu filtern ist gut. Aber sollte, wenn das RegEx für state richtig ist irrelevant sein?
Jein. Wenn es funktioniert kann man sagen, es ist irrelevant. Allerdings arbeitet fhem ja nun mal Event-gesteuert, d.h. die Schalter produzieren Events, die Du mittels regex im DOIF ausfilterst. Bei jedem Event wird also das DOIF "an"-getriggert (und vermutlich noch viele andere Devices) um dann festzustellen: nö, passt nicht in die Regex, also mach ich nix. Das belastet das System/kostet Systemzeit, nenn es wie Du magst. Unterdrückst Du den Event durch event-on-XXX Attribute schon im auslösenden Device passiert gar nix innerhalb des Systems. Es muss nur klar sein, was man durchläßt und was man unterdrückt, damit es nicht woanders fehlt. Als Beispiel wenn Deine Schalter noch ein battery-reading hätten dann könntest Du auf state und battery im Device begrenzen, im DOIF wird dann nur auf state gefiltert, also deutlich weniger Events als wenn das Schalterdevice alles raushaut, was es so zu bieten hat.
Meine Homematic ist alles klassich Funk. Wired habe ich nicht, kann nicht mal sagen, ob das von fhem aus 2 verschiedene Welten (und damit Modul-Autoren) sind.
Zitat von: Sany am 20 März 2021, 20:43:56
dann lass doch, wenn das alles läuft, da mal den Eventmonitor mitlaufen, schön gefiltert nach den einzelnen Schaltern und dem DOIF (also mehrere Event-Monitore). Es ist ja wohl irgendein Event, was die Probleme verursacht, also solltest Du da anfangen zu suchen.
habe im Moment die "state-Variante" vom DOIF aktiv. Erstmal werde ich schauen, ob die funktioniert als Backup (oder finale Lösung). Dann Interessehalber/zwangsweise (weil wenn es tatsächlich etwas mit dem Verhalten von HMW switches zu tun hat, wird das noch öfter eine Herausforderung) wieder die alte "Event-Variante" einspielen und testen.
Zitat von: Sany am 20 März 2021, 20:43:56
Jein. Wenn es funktioniert kann man sagen, es ist irrelevant. Allerdings arbeitet fhem ja nun mal Event-gesteuert, d.h. die Schalter produzieren Events, die Du mittels regex im DOIF ausfilterst. Bei jedem Event wird also das DOIF "an"-getriggert (und vermutlich noch viele andere Devices) um dann festzustellen: nö, passt nicht in die Regex, also mach ich nix. Das belastet das System/kostet Systemzeit, nenn es wie Du magst. Unterdrückst Du den Event durch event-on-XXX Attribute schon im auslösenden Device passiert gar nix innerhalb des Systems. Es muss nur klar sein, was man durchläßt und was man unterdrückt, damit es nicht woanders fehlt. Als Beispiel wenn Deine Schalter noch ein battery-reading hätten dann könntest Du auf state und battery im Device begrenzen, im DOIF wird dann nur auf state gefiltert, also deutlich weniger Events als wenn das Schalterdevice alles raushaut, was es so zu bieten hat.
das Konzept ist mir schon bekannt und ich möchte mich was gerade die event-on-change-reading event-min-interval event-on-update-reading Kombinationen angeht als "besessen" bezeichnen ... aber hier würde mich jetzt erstmal eher der "nackte" Durchgang interessieren, bevor ich es der RegEx leichter mache. Du weißt was ich meine ...
Danke für deine Gedanken.
ich werde berichten.
Hast du schon DOIF_Tools ausprobiert? Das unterstützt einen bei der Fehlersuche.
schon öfter in die commandref/Wiki? bzgl DOIFTools geschaut, aber das kam mir auf den ersten/zweiten Blick recht unintuitiv vor. Plus noch irgendwas mit attr zu verschiedenen Devices in der cfg? Oder irgendwas installieren? Ich weiß nicht mehr, irgendwas hat Unbehagen ausgelöst. (sorry Ellert)
Ich denke mit dem bisher zusammengetragenen wird sich das Problem finden. Und es muß ja jetzt nach all den Tests irgendwas mit besonderem Verhalten von HMW switches zu tun haben.
die "state-version" funktioniert auch nicht. Selbes Problem, dass "manu" auf on geht wegen Wechsel in cmd_4 und dann direkt in cmd_3
List BeregnungDOIF_PumpeCisterna nach dem Anlaufen
Internals:
DEF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] ne "0" or [?$SELF:manu] eq "on")
(set PozzoHauptOben_PUMPE_Cisterna on)
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] eq "0")
(set PozzoHauptOben_PUMPE_Cisterna off)
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:state] eq "on" and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5")
(set $SELF manu on)
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:state] eq "off" and [?$SELF:cmd] ne "2" and [?$SELF:cmd] ne "5")
(set $SELF manu off)
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off")
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10)
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5")
()
FUUID 5c86875d-f33f-6bb4-4d74-e765a0dcecfc52bc
MODEL FHEM
NAME BeregnungDOIF_PumpeCisterna
NOTIFYDEV BEREGNUNG_SCHALTER_.*,global,PozzoHauptOben_PUMPE_Cisterna
NR 801
NTFY_ORDER 50-BeregnungDOIF_PumpeCisterna
STATE cmd_3
TYPE DOIF
VERSION 23466 2021-01-03 17:14:46
READINGS:
2021-03-21 11:00:01 Device PozzoHauptOben_PUMPE_Cisterna
2021-03-21 11:00:01 cmd 3
2021-03-21 11:00:01 cmd_event PozzoHauptOben_PUMPE_Cisterna
2021-03-21 11:00:01 cmd_nr 3
2021-03-21 11:00:01 e_PozzoHauptOben_PUMPE_Cisterna_STATE on
2021-03-21 11:00:01 e_PozzoHauptOben_PUMPE_Cisterna_state on
2021-03-21 11:00:01 manu on
2021-03-20 13:22:13 mode enabled
2021-03-21 11:00:01 state cmd_3
2021-03-21 10:06:15 timer_01_c05 22.03.2021 05:30:00
2021-03-21 10:06:15 timer_02_c06 21.03.2021 17:30:00
Regex:
accu:
cond:
:
0:
"^BEREGNUNG_SCHALTER_" ^BEREGNUNG_SCHALTER_
1:
"^BEREGNUNG_SCHALTER_" ^BEREGNUNG_SCHALTER_
4:
5:
PozzoHauptOben_PUMPE_Cisterna:
0:
1:
2:
state ^PozzoHauptOben_PUMPE_Cisterna$:^state:
3:
state ^PozzoHauptOben_PUMPE_Cisterna$:^state:
4:
5:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::AggregateDoIf($hash,'#','^BEREGNUNG_SCHALTER_','state','$_ eq "on"') ne "0" or ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','manu') eq "on"
1 ::AggregateDoIf($hash,'#','^BEREGNUNG_SCHALTER_','state','$_ eq "on"') eq "0"
2 ::ReadingValDoIf($hash,'PozzoHauptOben_PUMPE_Cisterna','state') eq "on" and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "1" and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "5"
3 ::ReadingValDoIf($hash,'PozzoHauptOben_PUMPE_Cisterna','state') eq "off" and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "2" and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') ne "5"
4 ::DOIF_time_once($hash,0,$wday) and ::ReadingValDoIf($hash,'AnwesenheitHaupt','statStateDaypresent') eq "00:00:00" and ::InternalDoIf($hash,'PozzoHauptOben_PUMPE_Cisterna','STATE') eq "off"
5 ::DOIF_time_once($hash,1,$wday) and ::ReadingValDoIf($hash,'BeregnungDOIF_PumpeCisterna','cmd') eq "5"
days:
do:
0:
0 set PozzoHauptOben_PUMPE_Cisterna on
1:
0 set PozzoHauptOben_PUMPE_Cisterna off
2:
0 set BeregnungDOIF_PumpeCisterna manu on
3:
0 set BeregnungDOIF_PumpeCisterna manu off
4:
0 set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10
5:
0
6:
helper:
DEVFILTER ^global$|^PozzoHauptOben_PUMPE_Cisterna$|^BEREGNUNG_SCHALTER_
NOTIFYDEV global|PozzoHauptOben_PUMPE_Cisterna|BEREGNUNG_SCHALTER_.*
event working: off,on
globalinit 1
last_timer 2
sleeptimer -1
timerdev PozzoHauptOben_PUMPE_Cisterna
timerevent working: off,on
triggerDev PozzoHauptOben_PUMPE_Cisterna
timerevents:
working: off
on
timereventsState:
working: off
state: on
triggerEvents:
working: off
on
triggerEventsState:
working: off
state: on
internals:
all PozzoHauptOben_PUMPE_Cisterna:STATE
intervalfunc:
localtime:
0 1616387400
1 1616344200
perlblock:
readings:
all PozzoHauptOben_PUMPE_Cisterna:state
realtime:
0 05:30:00
1 17:30:00
time:
0 05:30:00
1 17:30:00
timeCond:
0 4
1 5
timer:
0 0
1 0
timers:
4 0
5 1
trigger:
triggertime:
1616344200:
localtime 1616344200
hash:
1616387400:
localtime 1616387400
hash:
uiState:
uiTable:
Attributes:
devStateIcon disabled:general_aus@red:initialize initialize:general_an@yellow:disable initialized:general_an@yellow:disable cmd_1:general_an@green:disable cmd_2:general_an@yellow:disable cmd_3:general_an@green:disable cmd_4:general_an@yellow:disable cmd_5:general_an@blue:disable cmd_6:general_an@blue:disable
group Beregnung
readingList manu
room System
hier lese ich öfter mal das "working" als event oder timerevents, welches ja mit dem state in der Theorie nichts zu tun haben sollte (was dann das selbe Problem bei der "event-variante" wäre).
Event Monitor beim Anlaufen um 11:00:01 (10:38:15 sind das manuelle Ausschalten von PozzoHauptOben_PUMPE_Cisterna, damit "manu" off steht)
2021-03-21 10:38:15 HM485 PozzoHauptOben_PUMPE_Cisterna set_off
2021-03-21 10:38:15 DOIF BeregnungDOIF_PumpeCisterna manu: off
2021-03-21 10:38:15 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 4
2021-03-21 10:38:15 DOIF BeregnungDOIF_PumpeCisterna cmd: 4
2021-03-21 10:38:15 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-21 10:38:15 DOIF BeregnungDOIF_PumpeCisterna cmd_4
2021-03-21 10:38:15 HM485 PozzoHauptOben_PUMPE_Cisterna working: off
2021-03-21 10:38:15 HM485 PozzoHauptOben_PUMPE_Cisterna off
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 2
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd: 2
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_2
2021-03-21 11:00:01 HM485 BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17 set_on
2021-03-21 11:00:01 HM485 PozzoHauptOben_PUMPE_Cisterna set_off
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 1
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd: 1
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_1
2021-03-21 11:00:01 HM485 BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17 on
2021-03-21 11:00:01 HM485 BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17 working: off
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna manu: off
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 4
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd: 4
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_4
2021-03-21 11:00:01 HM485 PozzoHauptOben_PUMPE_Cisterna working: off
2021-03-21 11:00:01 HM485 PozzoHauptOben_PUMPE_Cisterna off
2021-03-21 11:00:01 HM485 PozzoHauptOben_PUMPE_Cisterna set_on
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna manu: on
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 3
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd: 3
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-21 11:00:01 DOIF BeregnungDOIF_PumpeCisterna cmd_3
2021-03-21 11:00:01 HM485 PozzoHauptOben_PUMPE_Cisterna working: off
2021-03-21 11:00:01 HM485 PozzoHauptOben_PUMPE_Cisterna on
ich verstehe es nicht. Vielleicht einer von euch.
Hi,
ich glaube, ich kenne jetzt das Problem.
Zuerst schlage ich Dir vor,
attr global mseclog 1
mal zu setzen. Das gibt in den Logs und im Eventonitor die Millisekunden zu den Ereignissen.
Dann schauen wir das hier mal an:
2021-03-21 14:28:34.066 CUL_HM Steckdose_StehlampeTV set_on noArg
2021-03-21 14:28:34.790 CUL_HM Steckdose_StehlampeTV on
2021-03-21 14:28:44.514 CUL_HM Steckdose_StehlampeTV set_off noArg
2021-03-21 14:28:44.948 CUL_HM Steckdose_StehlampeTV off
2021-03-21 14:29:23.422 CUL_HM Steckdose_StehlampeTV on
2021-03-21 14:29:29.134 CUL_HM Steckdose_StehlampeTV off
Es ist wieder meine Stehlampe am Fernseher, die per Homematic-Funksteckdose geschaltet wird.
die ersten 2 Zeilen: geschaltet von der fhem-Oberfläche aus (könnte auch von einem DOIF/notify sein):
- fhem schickt den Einschaltbefehl "set-on"
- Steckdose antwortet mit "on" ca 0,7sec später
die nächsten 2 Zeilen das selbe mit ausschalten, also "set-off" --> "off" ca 0,5sec später.
die letzten beiden Zeilen zeigen nur was kommt, wenn ich an der Steckdose selbst den Taster betätige, on/off
Das passiert bei deinen Schaltern und der Pumpe auch.
Im dritten und vierten Zweig deine DOIF hast Du folgendes:
[PozzoHauptOben_PUMPE_Cisterna:state] eq "on"
respekive "off". Bei dieser Zustandsabfrage passiert aber folgendes:
fhem sendet PozzoHauptOben_PUMPE_Cisterna set-on, die Pumpe meldet PozzoHauptOben_PUMPE_Cisterna on (etwas später). Allerdings reagiert das DOIF schon alleine auf "PozzoHauptOben_PUMPE_Cisterna" und checkt dann, ob das Reading state "on" ist. Im Moment, wo set-on gesendet wurde ist state der Pumpe aber noch "off", genau die Konstellation, die Du im 4ten Zweig abfragst. Deshalb springt das DOIF in Zweig 4, wenn die Pumpe dann "on" meldet landet das ganze in Zweig 3. Zuvor passiert das ähnlich beim Schalter, weshalb zuerst Zweig2 und dann Zweig1 getriggert wird.
Du müsstest also sowohl die Aggregationen als auch die Abfragen in Zweig 3+4 auf den Event "on" / "off" umstellen, damit das DOIF nicht durch die "set-XX" angesprochen wird und dann die Abfrage des state der Devices macht. Probier das doch mal.
das müsste dann etwa so aussehen:
[PozzoHauptOben_PUMPE_Cisterna:"^on$"]
Aus der cref:
ZitatAnwendungsbeispiel: Einfache Ereignissteuerung, "remotecontrol" ist hier ein Device, es wird in eckigen Klammern angegeben. Ausgewertet wird der Status des Devices - nicht das Event.
define di_garage DOIF ([remotecontrol] eq "on") (set garage on) DOELSEIF ([remotecontrol] eq "off") (set garage off)
Das Modul wird getriggert, sobald das angegebene Device hier "remotecontrol" ein Event erzeugt. Das geschieht, wenn irgendein Reading oder der Status von "remotecontrol" aktualisiert wird. Ausgewertet wird hier der Zustand des Status von remotecontrol nicht das Event selbst.
Die working haben eher keinen Einfluss, da sie (vermutlich) zeitgleich mit dem "on"/"off" kommen. Trotzdem würde ich sie per event-on-change-reading state ausblenden.
Viel Erfolg!
P.S. was mir noch aufgefallen ist: du machst diese Zustandsabfragen immer mit
[?$SELF:cmd] eq "5"
Ich bin mir nicht ganz sicher, aber cmd hat doch nur numerische Werte, also selbst bei 5.1 oder so. Solltest Du dann nicht == 5 statt eq "5" verwenden? Oder noch übersichtlicher: per cmdstate den Zuständen "sprechende" Namen geben und dann einen String-Vergleich eq "Name" verwenden?
Vielen Dank Sany, für deine Mühen! Ziemlich genau so wie du vorschlägst ist die "event-variante" die ich beim ersten Realisieren des Problems hatte.
Zitat von: holle75 am 19 März 2021, 14:49:01
... doch noch nicht gelöst. Das DOIF zum besseren Verständnis noch etwas umgebaut, der Effekt ist der selbe.
defmod BeregnungDOIF_PumpeCisterna DOIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] ne "0" or [?$SELF:manu] eq "on") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] eq "0") \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^on$"] and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5") \
(set $SELF manu on) \
DOELSEIF (["^PozzoHauptOben_PUMPE_Cisterna$:^off$"] and [?$SELF:cmd] ne "2" and [?$SELF:cmd] ne "5") \
(set $SELF manu off) \
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off") \
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10) \
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5") \
()
attr BeregnungDOIF_PumpeCisterna readingList manu
attr BeregnungDOIF_PumpeCisterna room System
aber ich werde es jetzt mal explizit so
[PozzoHauptOben_PUMPE_Cisterna:"^on$"]
modifizieren .... und die Millisekunden aktivieren.... und morgen testen
Ansonsten würde mich mittlerweile auch sehr eine anderer Interpretation der eigentlichen Aufgabe interessieren.
Ich will ja nur, dass ein vorheriger Zustand nach Ausführung einer Aufgabe gehalten oder wieder gesetzt wird. Ist ja eigentlich nicht ungewöhnlich.
Vielleicht ist mein Ansatz auch einfach blöd.
Dein PS: Mmh, mach ich bis anhin immer so und funktioniert in anderen DOIF´s ... Resp. "früher" (oder zu einem bestimmten Zeitpunkt) ging es bei mir nur so.
Edit: was auch vielleicht noch helfen könnte, wäre ein attr wait 1:1:1:1:1:1
Beregnung doch mal manuell geschaltet, es geht ja im Moment nur ums Einschalten
DOIF
defmod BeregnungDOIF_PumpeCisterna DOIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] ne "0" or [?$SELF:manu] eq "on") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
DOELSEIF ([#"^BEREGNUNG_SCHALTER_":state:$_ eq "on"] eq "0") \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:"^on$"] and [?$SELF:cmd] ne "1" and [?$SELF:cmd] ne "5") \
(set $SELF manu on) \
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:"^off$"] and [?$SELF:cmd] ne "2" and [?$SELF:cmd] ne "5") \
(set $SELF manu off) \
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off") \
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10) \
DOELSEIF ([17:30] and [?$SELF:cmd] eq "5") \
()
Event Monitor (16:35:13 ist wieder das manuelle Ausschalten von PozzoHauptOben_PUMPE_Cisterna)
2021-03-21 16:35:13.084 HM485 PozzoHauptOben_PUMPE_Cisterna set_off
2021-03-21 16:35:13.144 DOIF BeregnungDOIF_PumpeCisterna manu: off
2021-03-21 16:35:13.164 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 4
2021-03-21 16:35:13.164 DOIF BeregnungDOIF_PumpeCisterna cmd: 4
2021-03-21 16:35:13.164 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-21 16:35:13.164 DOIF BeregnungDOIF_PumpeCisterna cmd_4
2021-03-21 16:35:13.179 HM485 PozzoHauptOben_PUMPE_Cisterna off
2021-03-21 16:35:13.179 HM485 PozzoHauptOben_PUMPE_Cisterna working: off
2021-03-21 16:35:25.205 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 2
2021-03-21 16:35:25.205 DOIF BeregnungDOIF_PumpeCisterna cmd: 2
2021-03-21 16:35:25.205 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
2021-03-21 16:35:25.205 DOIF BeregnungDOIF_PumpeCisterna cmd_2
2021-03-21 16:35:25.210 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 set_on
2021-03-21 16:35:25.224 HM485 PozzoHauptOben_PUMPE_Cisterna set_off
2021-03-21 16:35:25.250 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 1
2021-03-21 16:35:25.250 DOIF BeregnungDOIF_PumpeCisterna cmd: 1
2021-03-21 16:35:25.250 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
2021-03-21 16:35:25.250 DOIF BeregnungDOIF_PumpeCisterna cmd_1
2021-03-21 16:35:25.255 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 on
2021-03-21 16:35:25.255 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 working: off
2021-03-21 16:35:25.269 HM485 PozzoHauptOben_PUMPE_Cisterna set_on
2021-03-21 16:35:25.289 DOIF BeregnungDOIF_PumpeCisterna manu: off
2021-03-21 16:35:25.299 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 4
2021-03-21 16:35:25.299 DOIF BeregnungDOIF_PumpeCisterna cmd: 4
2021-03-21 16:35:25.299 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-21 16:35:25.299 DOIF BeregnungDOIF_PumpeCisterna cmd_4
2021-03-21 16:35:25.307 HM485 PozzoHauptOben_PUMPE_Cisterna off
2021-03-21 16:35:25.307 HM485 PozzoHauptOben_PUMPE_Cisterna working: off
2021-03-21 16:35:25.328 DOIF BeregnungDOIF_PumpeCisterna manu: on
2021-03-21 16:35:25.338 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 3
2021-03-21 16:35:25.338 DOIF BeregnungDOIF_PumpeCisterna cmd: 3
2021-03-21 16:35:25.338 DOIF BeregnungDOIF_PumpeCisterna cmd_event: PozzoHauptOben_PUMPE_Cisterna
2021-03-21 16:35:25.338 DOIF BeregnungDOIF_PumpeCisterna cmd_3
2021-03-21 16:35:25.346 HM485 PozzoHauptOben_PUMPE_Cisterna on
2021-03-21 16:35:25.346 HM485 PozzoHauptOben_PUMPE_Cisterna working: off
selbes Problem... und ja, irgendwie ist das noch immer Kraut und Rüben und das Eine übersteuert das Andere ...
Ich verstehe nicht, wer was wie im DOIF triggert und welche RegEx auf was genau von welchem Device greift... wer wie verzögert was für einen event generiert und welche Stelle im DOIF darauf reagiert.
So langsam verstehe ich Sanys Ansatz, ALLE beteiligten Devices auf Änderung on/off im state zu reduzieren, aber schön ist ist das nicht... und hätte irgendwann irgendwo Nebenwirkungen.
Ich probiere jetzt noch die Variante mit wait und ansonsten fällt das hier unter "versucht und nicht gekonnt" und ich muß mir einen komplett anderen Ansatz überlegen.
Grmpf, mit dem attr wait gehts. Bei erstem Test ohne alle Möglichkeiten durchprobiert zu haben.
Sany, dein Ansatz mit diesen Verzögerungen scheint richtig zu sein (also das Problem zu sein).
Ich weiß nur nicht, wieso gerade dieses Gefühl von Befriedigung nicht aufkommen will.
Fühlt sich irgendwie wie Pfusch an ;D
ZitatDein PS: Mmh, mach ich bis anhin immer so und funktioniert in anderen DOIF´s ... Resp. "früher" (oder zu einem bestimmten Zeitpunkt) ging es bei mir nur so.
Ich meine auch nicht, dass es nicht geht, ich finde es nur unsauber. In Perl kannst Du Äpfel mit Birnen vergleichen (respektive Strings und Zahlen), aber ein "String-Vergleich" von Zahlen vergleicht die Zahlen lexikalisch/alphabetisch. Bei eq oder == scheint irgendwie alles möglich zu sein. Bei größer/kleiner kann es schon schwieriger werden vorherzusagen, was Perl draus macht. Sauberste Lösung und lesbarste wären eindeutige Namen (cmdstate) mit Stringvergleichen.
Waits können helfen, ändert aber erst mal nix am triggern des DOIF und macht das ganze zu verstehen vielleicht noch komplexer, da du ja auch noch schauen musst, ob die Timer durchlaufen oder zurückgesetzt werden oder....
Ich würde versuchen etwas Ruhe reinzubringen durch DOIF_Readings für deine Beregnerschalter. Hätte auch den Vorteil, dass du der Aggregation auf die Finger schauen kannst. Du machst also eine DOIF_Reading mit z.B.
aktivierteBeregnungSchalter:[#"^BEREGNUNG_SCHALTER_":state:"^on$"]
(die Syntax habe ich auf meinem Testsytem gebaut, dort klappt das) und dann im DOIF nutzt du
[$SELF:aktivierteBeregnungSchalter] == 0 (oder > 0)
Hat den Vorteil, dass das DOIF nicht getriggert wird wenn sich die Zahl der Beregnungsschalter wenn größer 0 ändert.
ZitatAnsonsten würde mich mittlerweile auch sehr eine anderer Interpretation der eigentlichen Aufgabe interessieren.
Ich muss gestehen, dass ich die Aufgabenstellung noch nicht so ganz durchdrungen habe: Die Beregnungsschalter schaltet wer ein? und wie?
die Pumpe schaltet wer und wie um den Zustand Manu zu erzeugen?
Gruß
P.S. sehe gerade, Du hast schon fleißig weitergeschrieben, dies ist die Anwort auf Deinen Post nach meinem letzten, da wo du die wait 1:1:1 ind Spiel bringst.
zeig mal bitte ein
list BEREGNUNG_SCHALTER_
EINER der insgesamt 12 8 aggregierten BEREGNUNG_SCHALTER_
BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
Internals:
DEF 00012064_14
FUUID 5c86875c-f33f-6bb4-85a7-e6e3beaa3e87265d
NAME BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
NR 309
STATE off
TYPE HM485
chanNo 14
device BEREGNUNG_12_7_MEQ0064131
peerRole actuator
READINGS:
2017-05-18 19 D-subType switch
2021-03-21 10 R-logging on
2021-03-21 17 state off
2021-03-21 17 working off
devHash:
DEF 00012064
FUUID 5c86875c-f33f-6bb4-28f1-98dbfae95ceaba65
FailedConfigReads 0
IODev HM_LAN_WIRED
NAME BEREGNUNG_12_7_MEQ0064131
NR 294
RawDeviceType 18
RawFwVersion 774
STATE ACK
TYPE HM485
channel_01 BEREGNUNG_TASTER_12_7_MEQ0064131_01
channel_02 BEREGNUNG_TASTER_12_7_MEQ0064131_02
channel_03 BEREGNUNG_TASTER_12_7_MEQ0064131_03
channel_04 BEREGNUNG_TASTER_12_7_MEQ0064131_04
channel_05 BEREGNUNG_TASTER_12_7_MEQ0064131_05
channel_06 BEREGNUNG_TASTER_12_7_MEQ0064131_06
channel_07 BEREGNUNG_TASTER_12_7_MEQ0064131_07
channel_08 BEREGNUNG_TASTER_12_7_MEQ0064131_08
channel_09 BEREGNUNG_TASTER_12_7_MEQ0064131_09
channel_10 BEREGNUNG_TASTER_12_7_MEQ0064131_10
channel_11 BEREGNUNG_TASTER_12_7_MEQ0064131_11
channel_12 BEREGNUNG_TASTER_12_7_MEQ0064131_12
channel_13 BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13
channel_14 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
channel_15 BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15
channel_16 BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16
channel_17 BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17
channel_18 BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18
channel_19 BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19
READINGS:
2021-03-21 10 D-deviceKey HMW_IO12_SW7_DR
2021-03-21 10 D-fwVersion 3.06
2021-03-21 10 D-serialNr MEQ0064131
2021-03-21 10 R-central_address 00000001
2021-03-21 10 R-logging_time 2.00
2021-03-21 10 configStatus OK
2021-01-27 18 state ACK
cache:
sets Unknown argument ?, choose one of config getConfig raw reset
01:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
02:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
03:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
04:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
05:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
06:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
07:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
08:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
09:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
10:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
11:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
12:
allowedSets press_short press_long
sets Unknown argument ?, choose one of config peer href='/fhem?detail=BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17'>BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17,BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13,BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18,BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15,BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13,BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16,BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19,BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14,Container_FEEDER_Chicken,Container_FROSTSCHUTZ_Wasser_Chicken,Container_LICHT_19,Container_LICHT_Aussen_Nachtlicht,Container_LICHT_Aussen_Strahler,Container_LICHT_Innen,Container_ROLLADEN_Chicken_UpDown_03,Container_STECKDOSE_Innen_Chicken,Kueche_Campeggio_LICHT_Aussen,Kueche_Campeggio_STECKDOSE_Aussen,Kueche_ELEKTROZAUN,Kueche_FROSTSCHUTZ,Kueche_LICHT_Tettoia_Ambiente,Kueche_LICHT_Tettoia_Arbeitsplatte,Kueche_LICHT_Tettoia_Tisch,Kueche_STECKDOSE_Aussen_Arbeitsplatte,Kueche_VENTILATOR,Magazzino_12_7_OEQ0161406_18,Magazzino_12_7_OEQ0161406_19,Magazzino_LICHT_Aussen,Magazzino_LICHT_Innen,Magazzino_STECKDOSE_Aussen_ZirkusUnten,Magazzino_STECKDOSE_Innen,PozzoHauptOben_PUMPE_Cisterna,PozzoHauptOben_PUMPE_Pozzo,Waschhaus_FROSTSCHUTZ,Waschhaus_HEIZUNG,Waschhaus_LICHT_Aussen,Waschhaus_LICHT_Decke,Waschhaus_LICHT_Spiegel,Waschhaus_STECKDOSE_Innen,Waschhaus_TRIGGER_Luefter,ZirkusOben_12_7_JEQ0149009_16,ZirkusOben_BOILER_Stauraum,ZirkusOben_FROSTSCHUTZ_Stauraum,ZirkusOben_HEIZKISSEN_Stauraum,ZirkusOben_KLIMA,ZirkusOben_LICHT_Anbau_Stehlampe,ZirkusOben_LICHT_Aussen,ZirkusOben_LICHT_Bad_Spiegel,ZirkusOben_LICHT_Bett_Ambiente,ZirkusOben_LICHT_Kueche_LED,ZirkusOben_Plug_CatFeeder_Aussen,ZirkusOben_STECKDOSE_Aussen,ZirkusOben_STECKDOSE_HochschrankDouble,ZirkusOben_TRIGGER_Luefter press_long press_short
peeredChannels:
13:
allowedSets on off toggle inhibit install_test
sets Unknown argument ?, choose one of config inhibit install_test off on peer href='/fhem?detail=BEREGNUNG_TASTER_12_7_MEQ0064131_01'>BEREGNUNG_TASTER_12_7_MEQ0064131_01,BEREGNUNG_TASTER_12_7_MEQ0064131_02,BEREGNUNG_TASTER_12_7_MEQ0064131_03,BEREGNUNG_TASTER_12_7_MEQ0064131_04,BEREGNUNG_TASTER_12_7_MEQ0064131_05,BEREGNUNG_TASTER_12_7_MEQ0064131_06,BEREGNUNG_TASTER_12_7_MEQ0064131_07,BEREGNUNG_TASTER_12_7_MEQ0064131_08,BEREGNUNG_TASTER_12_7_MEQ0064131_09,BEREGNUNG_TASTER_12_7_MEQ0064131_10,BEREGNUNG_TASTER_12_7_MEQ0064131_11,BEREGNUNG_TASTER_12_7_MEQ0064131_12,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_01,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_02,Container_TASTER_01,Container_TASTER_02,Container_TASTER_03,Container_TASTER_04,Container_TASTER_05,Container_TASTER_06,Container_TASTER_09,Container_TASTER_10,Container_TASTER_11,Container_TASTER_12,Container_TASTER_links,Container_TASTER_rechts,HMW_LC_Sw2_DR_MEQ0726012_01,HMW_LC_Sw2_DR_MEQ0726012_02,Kueche_TASTER_05,Kueche_TASTER_06,Kueche_TASTER_07,Kueche_TASTER_08,Kueche_TASTER_09,Kueche_TASTER_10,Kueche_TASTER_11,Kueche_TASTER_12,Kueche_TASTER_Arbeitsplatte_ObenLinks,Kueche_TASTER_Arbeitsplatte_ObenRechts,Kueche_TASTER_Arbeitsplatte_UntenLinks,Kueche_TASTER_Arbeitsplatte_UntenRechts,Magazzino_TASTER_03,Magazzino_TASTER_04,Magazzino_TASTER_05,Magazzino_TASTER_06,Magazzino_TASTER_07,Magazzino_TASTER_08,Magazzino_TASTER_09,Magazzino_TASTER_10,Magazzino_TASTER_11,Magazzino_TASTER_12,Magazzino_TASTER_Oben,Magazzino_TASTER_Unten,PozzoHauptOben_TASTER_01,PozzoHauptOben_TASTER_02,Waschhaus_TASTER_04,Waschhaus_TASTER_05,Waschhaus_TASTER_06,Waschhaus_TASTER_07,Waschhaus_TASTER_08,Waschhaus_TASTER_09,Waschhaus_TASTER_10,Waschhaus_TASTER_11,Waschhaus_TASTER_12,Waschhaus_TASTER_PIR,Waschhaus_TASTER_links,Waschhaus_TASTER_rechts,ZirkusOben_TASTER_02,ZirkusOben_TASTER_03,ZirkusOben_TASTER_04,ZirkusOben_TASTER_05,ZirkusOben_TASTER_06,ZirkusOben_TASTER_07,ZirkusOben_TASTER_08,ZirkusOben_TASTER_09,ZirkusOben_TASTER_10,ZirkusOben_TASTER_Bad_Links,ZirkusOben_TASTER_Bad_Rechts,ZirkusOben_TASTER_BettLinks_Links,ZirkusOben_TASTER_BettLinks_Rechts,ZirkusOben_TASTER_BettRechts_Links,ZirkusOben_TASTER_BettRechts_Rechts,ZirkusOben_TASTER_HauptTuer_ObenLinks,ZirkusOben_TASTER_HauptTuer_ObenRechts,ZirkusOben_TASTER_HauptTuer_UntenLinks,ZirkusOben_TASTER_HauptTuer_UntenRechts,ZirkusOben_TASTER_PIR,ZirkusOben_TASTER_TerrassenTuer_ObenLinks,ZirkusOben_TASTER_TerrassenTuer_ObenRechts,ZirkusOben_TASTER_TerrassenTuer_UntenLinks,ZirkusOben_TASTER_TerrassenTuer_UntenRechts toggle off-for-timer on-till-overnight off-till off-till-overnight intervals blink on-till on-for-timer
peeredChannels:
14:
allowedSets on off toggle inhibit install_test
sets Unknown argument ?, choose one of config inhibit install_test off on peer href='/fhem?detail=BEREGNUNG_TASTER_12_7_MEQ0064131_01'>BEREGNUNG_TASTER_12_7_MEQ0064131_01,BEREGNUNG_TASTER_12_7_MEQ0064131_02,BEREGNUNG_TASTER_12_7_MEQ0064131_03,BEREGNUNG_TASTER_12_7_MEQ0064131_04,BEREGNUNG_TASTER_12_7_MEQ0064131_05,BEREGNUNG_TASTER_12_7_MEQ0064131_06,BEREGNUNG_TASTER_12_7_MEQ0064131_07,BEREGNUNG_TASTER_12_7_MEQ0064131_08,BEREGNUNG_TASTER_12_7_MEQ0064131_09,BEREGNUNG_TASTER_12_7_MEQ0064131_10,BEREGNUNG_TASTER_12_7_MEQ0064131_11,BEREGNUNG_TASTER_12_7_MEQ0064131_12,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_01,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_02,Container_TASTER_01,Container_TASTER_02,Container_TASTER_03,Container_TASTER_04,Container_TASTER_05,Container_TASTER_06,Container_TASTER_09,Container_TASTER_10,Container_TASTER_11,Container_TASTER_12,Container_TASTER_links,Container_TASTER_rechts,HMW_LC_Sw2_DR_MEQ0726012_01,HMW_LC_Sw2_DR_MEQ0726012_02,Kueche_TASTER_05,Kueche_TASTER_06,Kueche_TASTER_07,Kueche_TASTER_08,Kueche_TASTER_09,Kueche_TASTER_10,Kueche_TASTER_11,Kueche_TASTER_12,Kueche_TASTER_Arbeitsplatte_ObenLinks,Kueche_TASTER_Arbeitsplatte_ObenRechts,Kueche_TASTER_Arbeitsplatte_UntenLinks,Kueche_TASTER_Arbeitsplatte_UntenRechts,Magazzino_TASTER_03,Magazzino_TASTER_04,Magazzino_TASTER_05,Magazzino_TASTER_06,Magazzino_TASTER_07,Magazzino_TASTER_08,Magazzino_TASTER_09,Magazzino_TASTER_10,Magazzino_TASTER_11,Magazzino_TASTER_12,Magazzino_TASTER_Oben,Magazzino_TASTER_Unten,PozzoHauptOben_TASTER_01,PozzoHauptOben_TASTER_02,Waschhaus_TASTER_04,Waschhaus_TASTER_05,Waschhaus_TASTER_06,Waschhaus_TASTER_07,Waschhaus_TASTER_08,Waschhaus_TASTER_09,Waschhaus_TASTER_10,Waschhaus_TASTER_11,Waschhaus_TASTER_12,Waschhaus_TASTER_PIR,Waschhaus_TASTER_links,Waschhaus_TASTER_rechts,ZirkusOben_TASTER_02,ZirkusOben_TASTER_03,ZirkusOben_TASTER_04,ZirkusOben_TASTER_05,ZirkusOben_TASTER_06,ZirkusOben_TASTER_07,ZirkusOben_TASTER_08,ZirkusOben_TASTER_09,ZirkusOben_TASTER_10,ZirkusOben_TASTER_Bad_Links,ZirkusOben_TASTER_Bad_Rechts,ZirkusOben_TASTER_BettLinks_Links,ZirkusOben_TASTER_BettLinks_Rechts,ZirkusOben_TASTER_BettRechts_Links,ZirkusOben_TASTER_BettRechts_Rechts,ZirkusOben_TASTER_HauptTuer_ObenLinks,ZirkusOben_TASTER_HauptTuer_ObenRechts,ZirkusOben_TASTER_HauptTuer_UntenLinks,ZirkusOben_TASTER_HauptTuer_UntenRechts,ZirkusOben_TASTER_PIR,ZirkusOben_TASTER_TerrassenTuer_ObenLinks,ZirkusOben_TASTER_TerrassenTuer_ObenRechts,ZirkusOben_TASTER_TerrassenTuer_UntenLinks,ZirkusOben_TASTER_TerrassenTuer_UntenRechts toggle intervals blink on-till on-for-timer off-for-timer on-till-overnight off-till off-till-overnight
peeredChannels:
15:
allowedSets on off toggle inhibit install_test
sets Unknown argument ?, choose one of config inhibit install_test off on peer href='/fhem?detail=BEREGNUNG_TASTER_12_7_MEQ0064131_01'>BEREGNUNG_TASTER_12_7_MEQ0064131_01,BEREGNUNG_TASTER_12_7_MEQ0064131_02,BEREGNUNG_TASTER_12_7_MEQ0064131_03,BEREGNUNG_TASTER_12_7_MEQ0064131_04,BEREGNUNG_TASTER_12_7_MEQ0064131_05,BEREGNUNG_TASTER_12_7_MEQ0064131_06,BEREGNUNG_TASTER_12_7_MEQ0064131_07,BEREGNUNG_TASTER_12_7_MEQ0064131_08,BEREGNUNG_TASTER_12_7_MEQ0064131_09,BEREGNUNG_TASTER_12_7_MEQ0064131_10,BEREGNUNG_TASTER_12_7_MEQ0064131_11,BEREGNUNG_TASTER_12_7_MEQ0064131_12,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_01,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_02,Container_TASTER_01,Container_TASTER_02,Container_TASTER_03,Container_TASTER_04,Container_TASTER_05,Container_TASTER_06,Container_TASTER_09,Container_TASTER_10,Container_TASTER_11,Container_TASTER_12,Container_TASTER_links,Container_TASTER_rechts,HMW_LC_Sw2_DR_MEQ0726012_01,HMW_LC_Sw2_DR_MEQ0726012_02,Kueche_TASTER_05,Kueche_TASTER_06,Kueche_TASTER_07,Kueche_TASTER_08,Kueche_TASTER_09,Kueche_TASTER_10,Kueche_TASTER_11,Kueche_TASTER_12,Kueche_TASTER_Arbeitsplatte_ObenLinks,Kueche_TASTER_Arbeitsplatte_ObenRechts,Kueche_TASTER_Arbeitsplatte_UntenLinks,Kueche_TASTER_Arbeitsplatte_UntenRechts,Magazzino_TASTER_03,Magazzino_TASTER_04,Magazzino_TASTER_05,Magazzino_TASTER_06,Magazzino_TASTER_07,Magazzino_TASTER_08,Magazzino_TASTER_09,Magazzino_TASTER_10,Magazzino_TASTER_11,Magazzino_TASTER_12,Magazzino_TASTER_Oben,Magazzino_TASTER_Unten,PozzoHauptOben_TASTER_01,PozzoHauptOben_TASTER_02,Waschhaus_TASTER_04,Waschhaus_TASTER_05,Waschhaus_TASTER_06,Waschhaus_TASTER_07,Waschhaus_TASTER_08,Waschhaus_TASTER_09,Waschhaus_TASTER_10,Waschhaus_TASTER_11,Waschhaus_TASTER_12,Waschhaus_TASTER_PIR,Waschhaus_TASTER_links,Waschhaus_TASTER_rechts,ZirkusOben_TASTER_02,ZirkusOben_TASTER_03,ZirkusOben_TASTER_04,ZirkusOben_TASTER_05,ZirkusOben_TASTER_06,ZirkusOben_TASTER_07,ZirkusOben_TASTER_08,ZirkusOben_TASTER_09,ZirkusOben_TASTER_10,ZirkusOben_TASTER_Bad_Links,ZirkusOben_TASTER_Bad_Rechts,ZirkusOben_TASTER_BettLinks_Links,ZirkusOben_TASTER_BettLinks_Rechts,ZirkusOben_TASTER_BettRechts_Links,ZirkusOben_TASTER_BettRechts_Rechts,ZirkusOben_TASTER_HauptTuer_ObenLinks,ZirkusOben_TASTER_HauptTuer_ObenRechts,ZirkusOben_TASTER_HauptTuer_UntenLinks,ZirkusOben_TASTER_HauptTuer_UntenRechts,ZirkusOben_TASTER_PIR,ZirkusOben_TASTER_TerrassenTuer_ObenLinks,ZirkusOben_TASTER_TerrassenTuer_ObenRechts,ZirkusOben_TASTER_TerrassenTuer_UntenLinks,ZirkusOben_TASTER_TerrassenTuer_UntenRechts toggle on-for-timer on-till blink intervals off-till-overnight on-till-overnight off-till off-for-timer
peeredChannels:
16:
allowedSets on off toggle inhibit install_test
sets Unknown argument ?, choose one of config inhibit install_test off on peer href='/fhem?detail=BEREGNUNG_TASTER_12_7_MEQ0064131_01'>BEREGNUNG_TASTER_12_7_MEQ0064131_01,BEREGNUNG_TASTER_12_7_MEQ0064131_02,BEREGNUNG_TASTER_12_7_MEQ0064131_03,BEREGNUNG_TASTER_12_7_MEQ0064131_04,BEREGNUNG_TASTER_12_7_MEQ0064131_05,BEREGNUNG_TASTER_12_7_MEQ0064131_06,BEREGNUNG_TASTER_12_7_MEQ0064131_07,BEREGNUNG_TASTER_12_7_MEQ0064131_08,BEREGNUNG_TASTER_12_7_MEQ0064131_09,BEREGNUNG_TASTER_12_7_MEQ0064131_10,BEREGNUNG_TASTER_12_7_MEQ0064131_11,BEREGNUNG_TASTER_12_7_MEQ0064131_12,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_01,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_02,Container_TASTER_01,Container_TASTER_02,Container_TASTER_03,Container_TASTER_04,Container_TASTER_05,Container_TASTER_06,Container_TASTER_09,Container_TASTER_10,Container_TASTER_11,Container_TASTER_12,Container_TASTER_links,Container_TASTER_rechts,HMW_LC_Sw2_DR_MEQ0726012_01,HMW_LC_Sw2_DR_MEQ0726012_02,Kueche_TASTER_05,Kueche_TASTER_06,Kueche_TASTER_07,Kueche_TASTER_08,Kueche_TASTER_09,Kueche_TASTER_10,Kueche_TASTER_11,Kueche_TASTER_12,Kueche_TASTER_Arbeitsplatte_ObenLinks,Kueche_TASTER_Arbeitsplatte_ObenRechts,Kueche_TASTER_Arbeitsplatte_UntenLinks,Kueche_TASTER_Arbeitsplatte_UntenRechts,Magazzino_TASTER_03,Magazzino_TASTER_04,Magazzino_TASTER_05,Magazzino_TASTER_06,Magazzino_TASTER_07,Magazzino_TASTER_08,Magazzino_TASTER_09,Magazzino_TASTER_10,Magazzino_TASTER_11,Magazzino_TASTER_12,Magazzino_TASTER_Oben,Magazzino_TASTER_Unten,PozzoHauptOben_TASTER_01,PozzoHauptOben_TASTER_02,Waschhaus_TASTER_04,Waschhaus_TASTER_05,Waschhaus_TASTER_06,Waschhaus_TASTER_07,Waschhaus_TASTER_08,Waschhaus_TASTER_09,Waschhaus_TASTER_10,Waschhaus_TASTER_11,Waschhaus_TASTER_12,Waschhaus_TASTER_PIR,Waschhaus_TASTER_links,Waschhaus_TASTER_rechts,ZirkusOben_TASTER_02,ZirkusOben_TASTER_03,ZirkusOben_TASTER_04,ZirkusOben_TASTER_05,ZirkusOben_TASTER_06,ZirkusOben_TASTER_07,ZirkusOben_TASTER_08,ZirkusOben_TASTER_09,ZirkusOben_TASTER_10,ZirkusOben_TASTER_Bad_Links,ZirkusOben_TASTER_Bad_Rechts,ZirkusOben_TASTER_BettLinks_Links,ZirkusOben_TASTER_BettLinks_Rechts,ZirkusOben_TASTER_BettRechts_Links,ZirkusOben_TASTER_BettRechts_Rechts,ZirkusOben_TASTER_HauptTuer_ObenLinks,ZirkusOben_TASTER_HauptTuer_ObenRechts,ZirkusOben_TASTER_HauptTuer_UntenLinks,ZirkusOben_TASTER_HauptTuer_UntenRechts,ZirkusOben_TASTER_PIR,ZirkusOben_TASTER_TerrassenTuer_ObenLinks,ZirkusOben_TASTER_TerrassenTuer_ObenRechts,ZirkusOben_TASTER_TerrassenTuer_UntenLinks,ZirkusOben_TASTER_TerrassenTuer_UntenRechts toggle off-for-timer on-till-overnight off-till off-till-overnight intervals blink on-for-timer on-till
peeredChannels:
17:
allowedSets on off toggle inhibit install_test
sets Unknown argument ?, choose one of config inhibit install_test off on peer href='/fhem?detail=BEREGNUNG_TASTER_12_7_MEQ0064131_01'>BEREGNUNG_TASTER_12_7_MEQ0064131_01,BEREGNUNG_TASTER_12_7_MEQ0064131_02,BEREGNUNG_TASTER_12_7_MEQ0064131_03,BEREGNUNG_TASTER_12_7_MEQ0064131_04,BEREGNUNG_TASTER_12_7_MEQ0064131_05,BEREGNUNG_TASTER_12_7_MEQ0064131_06,BEREGNUNG_TASTER_12_7_MEQ0064131_07,BEREGNUNG_TASTER_12_7_MEQ0064131_08,BEREGNUNG_TASTER_12_7_MEQ0064131_09,BEREGNUNG_TASTER_12_7_MEQ0064131_10,BEREGNUNG_TASTER_12_7_MEQ0064131_11,BEREGNUNG_TASTER_12_7_MEQ0064131_12,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_01,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_02,Container_TASTER_01,Container_TASTER_02,Container_TASTER_03,Container_TASTER_04,Container_TASTER_05,Container_TASTER_06,Container_TASTER_09,Container_TASTER_10,Container_TASTER_11,Container_TASTER_12,Container_TASTER_links,Container_TASTER_rechts,HMW_LC_Sw2_DR_MEQ0726012_01,HMW_LC_Sw2_DR_MEQ0726012_02,Kueche_TASTER_05,Kueche_TASTER_06,Kueche_TASTER_07,Kueche_TASTER_08,Kueche_TASTER_09,Kueche_TASTER_10,Kueche_TASTER_11,Kueche_TASTER_12,Kueche_TASTER_Arbeitsplatte_ObenLinks,Kueche_TASTER_Arbeitsplatte_ObenRechts,Kueche_TASTER_Arbeitsplatte_UntenLinks,Kueche_TASTER_Arbeitsplatte_UntenRechts,Magazzino_TASTER_03,Magazzino_TASTER_04,Magazzino_TASTER_05,Magazzino_TASTER_06,Magazzino_TASTER_07,Magazzino_TASTER_08,Magazzino_TASTER_09,Magazzino_TASTER_10,Magazzino_TASTER_11,Magazzino_TASTER_12,Magazzino_TASTER_Oben,Magazzino_TASTER_Unten,PozzoHauptOben_TASTER_01,PozzoHauptOben_TASTER_02,Waschhaus_TASTER_04,Waschhaus_TASTER_05,Waschhaus_TASTER_06,Waschhaus_TASTER_07,Waschhaus_TASTER_08,Waschhaus_TASTER_09,Waschhaus_TASTER_10,Waschhaus_TASTER_11,Waschhaus_TASTER_12,Waschhaus_TASTER_PIR,Waschhaus_TASTER_links,Waschhaus_TASTER_rechts,ZirkusOben_TASTER_02,ZirkusOben_TASTER_03,ZirkusOben_TASTER_04,ZirkusOben_TASTER_05,ZirkusOben_TASTER_06,ZirkusOben_TASTER_07,ZirkusOben_TASTER_08,ZirkusOben_TASTER_09,ZirkusOben_TASTER_10,ZirkusOben_TASTER_Bad_Links,ZirkusOben_TASTER_Bad_Rechts,ZirkusOben_TASTER_BettLinks_Links,ZirkusOben_TASTER_BettLinks_Rechts,ZirkusOben_TASTER_BettRechts_Links,ZirkusOben_TASTER_BettRechts_Rechts,ZirkusOben_TASTER_HauptTuer_ObenLinks,ZirkusOben_TASTER_HauptTuer_ObenRechts,ZirkusOben_TASTER_HauptTuer_UntenLinks,ZirkusOben_TASTER_HauptTuer_UntenRechts,ZirkusOben_TASTER_PIR,ZirkusOben_TASTER_TerrassenTuer_ObenLinks,ZirkusOben_TASTER_TerrassenTuer_ObenRechts,ZirkusOben_TASTER_TerrassenTuer_UntenLinks,ZirkusOben_TASTER_TerrassenTuer_UntenRechts toggle intervals on-for-timer on-till blink on-till-overnight off-till off-for-timer off-till-overnight
peeredChannels:
18:
allowedSets on off toggle inhibit install_test
sets Unknown argument ?, choose one of config inhibit install_test off on peer href='/fhem?detail=BEREGNUNG_TASTER_12_7_MEQ0064131_01'>BEREGNUNG_TASTER_12_7_MEQ0064131_01,BEREGNUNG_TASTER_12_7_MEQ0064131_02,BEREGNUNG_TASTER_12_7_MEQ0064131_03,BEREGNUNG_TASTER_12_7_MEQ0064131_04,BEREGNUNG_TASTER_12_7_MEQ0064131_05,BEREGNUNG_TASTER_12_7_MEQ0064131_06,BEREGNUNG_TASTER_12_7_MEQ0064131_07,BEREGNUNG_TASTER_12_7_MEQ0064131_08,BEREGNUNG_TASTER_12_7_MEQ0064131_09,BEREGNUNG_TASTER_12_7_MEQ0064131_10,BEREGNUNG_TASTER_12_7_MEQ0064131_11,BEREGNUNG_TASTER_12_7_MEQ0064131_12,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_01,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_02,Container_TASTER_01,Container_TASTER_02,Container_TASTER_03,Container_TASTER_04,Container_TASTER_05,Container_TASTER_06,Container_TASTER_09,Container_TASTER_10,Container_TASTER_11,Container_TASTER_12,Container_TASTER_links,Container_TASTER_rechts,HMW_LC_Sw2_DR_MEQ0726012_01,HMW_LC_Sw2_DR_MEQ0726012_02,Kueche_TASTER_05,Kueche_TASTER_06,Kueche_TASTER_07,Kueche_TASTER_08,Kueche_TASTER_09,Kueche_TASTER_10,Kueche_TASTER_11,Kueche_TASTER_12,Kueche_TASTER_Arbeitsplatte_ObenLinks,Kueche_TASTER_Arbeitsplatte_ObenRechts,Kueche_TASTER_Arbeitsplatte_UntenLinks,Kueche_TASTER_Arbeitsplatte_UntenRechts,Magazzino_TASTER_03,Magazzino_TASTER_04,Magazzino_TASTER_05,Magazzino_TASTER_06,Magazzino_TASTER_07,Magazzino_TASTER_08,Magazzino_TASTER_09,Magazzino_TASTER_10,Magazzino_TASTER_11,Magazzino_TASTER_12,Magazzino_TASTER_Oben,Magazzino_TASTER_Unten,PozzoHauptOben_TASTER_01,PozzoHauptOben_TASTER_02,Waschhaus_TASTER_04,Waschhaus_TASTER_05,Waschhaus_TASTER_06,Waschhaus_TASTER_07,Waschhaus_TASTER_08,Waschhaus_TASTER_09,Waschhaus_TASTER_10,Waschhaus_TASTER_11,Waschhaus_TASTER_12,Waschhaus_TASTER_PIR,Waschhaus_TASTER_links,Waschhaus_TASTER_rechts,ZirkusOben_TASTER_02,ZirkusOben_TASTER_03,ZirkusOben_TASTER_04,ZirkusOben_TASTER_05,ZirkusOben_TASTER_06,ZirkusOben_TASTER_07,ZirkusOben_TASTER_08,ZirkusOben_TASTER_09,ZirkusOben_TASTER_10,ZirkusOben_TASTER_Bad_Links,ZirkusOben_TASTER_Bad_Rechts,ZirkusOben_TASTER_BettLinks_Links,ZirkusOben_TASTER_BettLinks_Rechts,ZirkusOben_TASTER_BettRechts_Links,ZirkusOben_TASTER_BettRechts_Rechts,ZirkusOben_TASTER_HauptTuer_ObenLinks,ZirkusOben_TASTER_HauptTuer_ObenRechts,ZirkusOben_TASTER_HauptTuer_UntenLinks,ZirkusOben_TASTER_HauptTuer_UntenRechts,ZirkusOben_TASTER_PIR,ZirkusOben_TASTER_TerrassenTuer_ObenLinks,ZirkusOben_TASTER_TerrassenTuer_ObenRechts,ZirkusOben_TASTER_TerrassenTuer_UntenLinks,ZirkusOben_TASTER_TerrassenTuer_UntenRechts toggle off-for-timer on-till-overnight off-till off-till-overnight intervals blink on-till on-for-timer
peeredChannels:
19:
allowedSets on off toggle inhibit install_test
sets Unknown argument ?, choose one of config inhibit install_test off on peer href='/fhem?detail=BEREGNUNG_TASTER_12_7_MEQ0064131_01'>BEREGNUNG_TASTER_12_7_MEQ0064131_01,BEREGNUNG_TASTER_12_7_MEQ0064131_02,BEREGNUNG_TASTER_12_7_MEQ0064131_03,BEREGNUNG_TASTER_12_7_MEQ0064131_04,BEREGNUNG_TASTER_12_7_MEQ0064131_05,BEREGNUNG_TASTER_12_7_MEQ0064131_06,BEREGNUNG_TASTER_12_7_MEQ0064131_07,BEREGNUNG_TASTER_12_7_MEQ0064131_08,BEREGNUNG_TASTER_12_7_MEQ0064131_09,BEREGNUNG_TASTER_12_7_MEQ0064131_10,BEREGNUNG_TASTER_12_7_MEQ0064131_11,BEREGNUNG_TASTER_12_7_MEQ0064131_12,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_01,Container_ROLLADEN_Chicken_TASTER_OEQ0935949_02,Container_TASTER_01,Container_TASTER_02,Container_TASTER_03,Container_TASTER_04,Container_TASTER_05,Container_TASTER_06,Container_TASTER_09,Container_TASTER_10,Container_TASTER_11,Container_TASTER_12,Container_TASTER_links,Container_TASTER_rechts,HMW_LC_Sw2_DR_MEQ0726012_01,HMW_LC_Sw2_DR_MEQ0726012_02,Kueche_TASTER_05,Kueche_TASTER_06,Kueche_TASTER_07,Kueche_TASTER_08,Kueche_TASTER_09,Kueche_TASTER_10,Kueche_TASTER_11,Kueche_TASTER_12,Kueche_TASTER_Arbeitsplatte_ObenLinks,Kueche_TASTER_Arbeitsplatte_ObenRechts,Kueche_TASTER_Arbeitsplatte_UntenLinks,Kueche_TASTER_Arbeitsplatte_UntenRechts,Magazzino_TASTER_03,Magazzino_TASTER_04,Magazzino_TASTER_05,Magazzino_TASTER_06,Magazzino_TASTER_07,Magazzino_TASTER_08,Magazzino_TASTER_09,Magazzino_TASTER_10,Magazzino_TASTER_11,Magazzino_TASTER_12,Magazzino_TASTER_Oben,Magazzino_TASTER_Unten,PozzoHauptOben_TASTER_01,PozzoHauptOben_TASTER_02,Waschhaus_TASTER_04,Waschhaus_TASTER_05,Waschhaus_TASTER_06,Waschhaus_TASTER_07,Waschhaus_TASTER_08,Waschhaus_TASTER_09,Waschhaus_TASTER_10,Waschhaus_TASTER_11,Waschhaus_TASTER_12,Waschhaus_TASTER_PIR,Waschhaus_TASTER_links,Waschhaus_TASTER_rechts,ZirkusOben_TASTER_02,ZirkusOben_TASTER_03,ZirkusOben_TASTER_04,ZirkusOben_TASTER_05,ZirkusOben_TASTER_06,ZirkusOben_TASTER_07,ZirkusOben_TASTER_08,ZirkusOben_TASTER_09,ZirkusOben_TASTER_10,ZirkusOben_TASTER_Bad_Links,ZirkusOben_TASTER_Bad_Rechts,ZirkusOben_TASTER_BettLinks_Links,ZirkusOben_TASTER_BettLinks_Rechts,ZirkusOben_TASTER_BettRechts_Links,ZirkusOben_TASTER_BettRechts_Rechts,ZirkusOben_TASTER_HauptTuer_ObenLinks,ZirkusOben_TASTER_HauptTuer_ObenRechts,ZirkusOben_TASTER_HauptTuer_UntenLinks,ZirkusOben_TASTER_HauptTuer_UntenRechts,ZirkusOben_TASTER_PIR,ZirkusOben_TASTER_TerrassenTuer_ObenLinks,ZirkusOben_TASTER_TerrassenTuer_ObenRechts,ZirkusOben_TASTER_TerrassenTuer_UntenLinks,ZirkusOben_TASTER_TerrassenTuer_UntenRechts toggle intervals blink on-till on-for-timer off-for-timer on-till-overnight off-till off-till-overnight
peeredChannels:
linkParams:
actuator:
address_start 857
address_step 6
channel_param channel
channels 01 02 03 04 05 06 07 08 09 10 11 12
count 27
peer_param actuator
type link
parameter:
HASH(0x179c310)
HASH(0x179fd10)
sensor:
address_start 45
address_step 28
channel_param channel
channels 13 14 15 16 17 18 19
count 29
peer_param sensor
type link
parameter:
HASH(0x17a2ab0)
HASH(0x17a2da0)
HASH(0x17a2fb0)
HASH(0x17a3298)
HASH(0x17a3550)
HASH(0x17a3af0)
HASH(0x17a3de0)
HASH(0x17a41a0)
HASH(0x17a45f0)
HASH(0x17a49c8)
HASH(0x17a4e38)
HASH(0x17a5258)
HASH(0x17a5660)
HASH(0x17a5a68)
HASH(0x17a6e88)
HASH(0x17a7140)
HASH(0x17a73f8)
HASH(0x17a7998)
HASH(0x17a8b78)
HASH(0x17a8e30)
HASH(0x17a91f0)
HASH(0x17a9640)
HASH(0x17a9a18)
HASH(0x17a9e88)
HASH(0x17aa2a8)
HASH(0x17aa6b0)
HASH(0x17aaab8)
HASH(0x17abed8)
peers:
actuators:
sensors:
Attributes:
room Beregnung
subType switch
den Rest deines letzten Beitrags muß ich erstmal durcharbeiten
sorry vertippt:
list BEREGNUNG_SCHALTER_.*
ich möchte ALLE sehen, aber nur die Liste, nicht die Definitionen
Weiterhin macht
or [?$SELF:manu] eq "on"
im ersten Zweig eigentlich keinen Sinn: Manu wird von der Pumpe bei on gesetzt. Wenn jetzt alle Beregnungsschalter off gehen wird der erste Zweig "angetriggert, die BeregnungsschalterAnzahl ist zwar 0, aber durch das "or" wird der Zweig doch wahr und die Pumpe eingeschaltet. Und DOIF arbeitet immer von links nach rechts bis ein Zustandswechsel erfolgt. Da aber nach einem set_on ein on zurückkommt wird gleich darauf wieder das DOIF "durchgearbeitet". Und auch bei jedem working.... wird zumindest durchgearbeitet. Ich verstehe Dich an dieser Stelle nicht so ganz, warum Du das nicht einfach mal eliminierst.
Bisher hast Du ja noch nicht rausgefunden, wofür das ist, es scheint aber "die Abläufe" in diesem DOIF evtl. zu beeinträchtigen. Doch, Thorsten hat Dir das gestern erklärt! Also machs mal weg, hat in diesem Fall keine Nebenwirkungen. Also in allen Tastern event-on-change-reading state.
ZitatSo langsam verstehe ich Sanys Ansatz, ALLE beteiligten Devices auf Änderung on/off im state zu reduzieren, aber schön ist ist das nicht... und hätte irgendwann irgendwo Nebenwirkungen.
aktuell hast Du jetzt und hier Nebenwirkungen ;-)
Ich habe mal den letzten Event-Auszug eingedampft:
2021-03-21 16:35:13.084 HM485 PozzoHauptOben_PUMPE_Cisterna set_off
2021-03-21 16:35:13.179 HM485 PozzoHauptOben_PUMPE_Cisterna off
2021-03-21 16:35:25.224 HM485 PozzoHauptOben_PUMPE_Cisterna set_off
2021-03-21 16:35:25.269 HM485 PozzoHauptOben_PUMPE_Cisterna set_on
2021-03-21 16:35:25.307 HM485 PozzoHauptOben_PUMPE_Cisterna off
2021-03-21 16:35:25.346 HM485 PozzoHauptOben_PUMPE_Cisterna on
Wie Du siehst, werden die Befehle an die Pumpe sogar "zwischengespeichert", sonst könnte set_off,set_on nicht zu off,on werden. Jedenfalls soll hier die Pumpe wohl ausgeschaltet werden, Dein DOIF schaltet sie mehrfach innerhalb von nicht mal eine halben Sekunde.
BEREGNUNG_SCHALTER_Blauregen_12_7_MEQ0064131_17
BEREGNUNG_SCHALTER_CampeggioOben_12_7_MEQ0064131_13
BEREGNUNG_SCHALTER_CampeggioUnten_12_7_MEQ0064131_18
BEREGNUNG_SCHALTER_HinterKueche_12_7_MEQ0064131_15
BEREGNUNG_SCHALTER_Magazzino_12_7_OEQ0161406_13
BEREGNUNG_SCHALTER_Waschhaus_12_7_MEQ0064131_16
BEREGNUNG_SCHALTER_ZaunTettoia_12_7_MEQ0064131_19
BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14
das or [?$SELF:manu] eq "on" war ursprünglich dafür gedacht, das DOIF immer in cmd_1 zu halten wenn die Pumpe an ist (manu on), egal was sonst noch so passiert. Triggern tut es nicht. Dieses DOIF ist über die Zeit gewachsen und sah auch schon wesentlich komplexer aus. Glaube mittlerweile braucht man es tatsächlich nicht mehr.
die ganzen set_on, set_off, on sind mit dem wait weg. Die kamen vom Nicht-Funktionieren des ganzen Konstruktes.
Ich baue gerade die Variante mit den DOIF-Readings
ps: denke das or [?$SELF:manu] eq "on" braucht es in cmd_1.
Sonst schaltet mir das DOIF die Pumpe aus, wenn alle Beregner aus sind obwohl sie manuell eingeschaltet wurde.
du kannst ja mal zum ergiebigen Testen das DOIF kopieren und die Pumpe ersetzt Du durch ne übrige Lampe. Dann deaktivierst Du das "PumpenDOIF" solange du am testen bist.
Zitatobwohl sie manuell eingeschaltet wurde.
ich hatte ja schon mal gefragt, wer da was wann schaltet. Um evtl. ein andere Lösung zu bauen sollte das bekannt sein. Bisher kann ich Dir nur helfen, das das DOIF richtig arbeitet, nicht aber bei der Logik des ganzen.
Also wenn Du Zeit hast versuch die Aufgabenstellung ausführlich zu schildern.
Danke für die Liste der Schalter. Ich hatte kurz die Befürchtung, dass da noch "unter-Module" sein könnten wie bei Homematic-Thermostaten oder der Schaltsteckdose mit Leistungsmessung. Die hätten bei der AggregationsRegex vielleicht auch noch mitgemischt.
Bin mal gespannt auf die neueste Version. Vielleicht dann mal wieder ein list vom DOIF und den Eventmonitor dazu. Sonst wirds unübersichtlich.
Gruß
Sany!
das hier (hab jetzt auch gleich die != eingebaut)
BeregnungDOIF_PumpeCisterna DOIF ([$SELF:aktivierteBeregnungSchalter] > 0 or [?$SELF:manu] eq "on") \
(set PozzoHauptOben_PUMPE_Cisterna on) \
DOELSEIF ([$SELF:aktivierteBeregnungSchalter] == 0) \
(set PozzoHauptOben_PUMPE_Cisterna off) \
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:"^on$"] and [?$SELF:cmd] != 1 and [?$SELF:cmd] != 5) \
(set $SELF manu on) \
DOELSEIF ([PozzoHauptOben_PUMPE_Cisterna:"^off$"] and [?$SELF:cmd] != 2 and [?$SELF:cmd] != 5) \
(set $SELF manu off) \
DOELSEIF ([05:30] and [?AnwesenheitHaupt:statStateDaypresent] eq "00:00:00" and [?PozzoHauptOben_PUMPE_Cisterna] eq "off") \
(set PozzoHauptOben_PUMPE_Cisterna on-for-timer 10) \
DOELSEIF ([17:30] and [?$SELF:cmd] == 5) \
()
attr BeregnungDOIF_PumpeCisterna DOIF_Readings aktivierteBeregnungSchalter:[#"^BEREGNUNG_SCHALTER_":state:"^on$"]
attr BeregnungDOIF_PumpeCisterna readingList manu
attr BeregnungDOIF_PumpeCisterna room System
mit dem event log beim Einschalten
2021-03-21 18:54:06.704 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 set_on
2021-03-21 18:54:06.765 DOIF BeregnungDOIF_PumpeCisterna cmd_nr: 1
2021-03-21 18:54:06.765 DOIF BeregnungDOIF_PumpeCisterna cmd: 1
2021-03-21 18:54:06.765 DOIF BeregnungDOIF_PumpeCisterna cmd_event: BeregnungDOIF_PumpeCisterna
2021-03-21 18:54:06.765 DOIF BeregnungDOIF_PumpeCisterna cmd_1
2021-03-21 18:54:06.782 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 working: off
2021-03-21 18:54:06.782 HM485 BEREGNUNG_SCHALTER_Zitronen_12_7_MEQ0064131_14 on
2021-03-21 18:54:06.808 HM485 PozzoHauptOben_PUMPE_Cisterna set_on
2021-03-21 18:54:06.849 HM485 PozzoHauptOben_PUMPE_Cisterna on
2021-03-21 18:54:06.849 HM485 PozzoHauptOben_PUMPE_Cisterna working: off
macht das und sieht so aus, wie ich mir das ursprünglich mal gedacht (und mit dem wait auch in unhübsch getan) hatte.
Dein Trick das Wirrwarr auf ein DOIF Reading zu legen hat geholfen.
jetzt fühlt es sich auch nicht mehr nach Pfusch an ;)
... und ich möchte nie mehr nach "off"s suchen müssen, bitte.
Die alte Idee war:
- meine Zisternen-Pumpe wird entweder manuell oder durch Anwesenheit/Abwesenheit automatisch an oder ausgeschaltet
- wenn durch Abwesenheit oder manuell ausgeschaltet, muß sie trotzdem wenn die Beregnung läuft angehen
- danach soll sie wieder den selben Zustand annehmen (bleibt an wenn vorher an oder aus wenn vorher aus)
EDIT: falls das hier mal jemand nachvollziehen möchte. Ich habe das kleine "Extra" vergessen zu erklären
- cmd_5 schaltet bei Abwesenheit die Pumpe für 10 Sekunden an um ein verrockern zu vermeiden (sonst kann es dir passieren, dass der Dichtungsring, resp Eisenoxid im Wasser an der Welle nach Wochen der Nichtbenutzung die Pumpe blockiert)
- cmd_6 ist für einen Statuswechsel zu cmd_5 damit cmd_5 täglich ausgeführt wird
ich muß jetzt die Tage mal alle Varianten durchprobieren. Aber wenn das Anschalten Beregner -> Beregnung sauber läuft (und der Rest auf dem Testsystem mit Dummies auch) bin ich guter Dinge.
vielen Dank an dich! für deine Zeit
Gruß!
H.
na das freut mich. Nur bei dem working bist Du ziemlich resistent, was die Beratung angeht ;D ;D ;). Thorsten hat es doch erklärt: Der Taster ist nur zwischen "set_on" und "on" "working", meldet das aber erst mit "on", also kommt da IMMER "working off" -> also kann es auch, NUR FÜR DIE TASTER!!, weg! :) Macht es einfach leserlicher.
Bei der Pumpe musst Du Dir halt überlegen, ob Du das nutzen möchtest, ich unterstelle mal, wenn die Pumpe per on-for-timer eingeschaltet wird ist working on. Das kann man sich zu nutze machen.
Aber jetzt teste mal, ob alles wie gewünscht läuft, dann kann da ja ein Haken dran
Viel Erfolg!
Sany
noch eine Frage: WIE wird die Pumpe manuell geschaltet? Am Aktor? Über die fhem-Oberfäche? Ein "Sender" der den Aktor bedient? Ich will nur wissen, wie das DOIF mitbekommt, dass die Pumpe manuell geschaltet wurde. Und die Pumpe kann auch laufen, wenn nichts beregnet wird (ist quasi unter Strom, aber fördert nix)
Nee, nicht Beratungsresistent, aber immer unwillig, wenn ich keine Notwendigkeit sehe :D
(oder deinen Punkt nicht 100%tig verstehe?)
Ich will einfach nicht bei geschätzt 150 Devices da jetzt ein event-on-change-reading hinbasteln. Auch wenns nur die Taster sind, oder auch wenns nur die switches wären. Und auch nicht nur bei den 9 Devices für das DOIF jetzt weil ichs dann vergesse und irgendwann wieder dumme Fragen stelle weil was nicht funktioniert.
Das "working" ist ja nicht das Problem wie sich rausgestellt hat (und ich hätte zwischendurch meinen A.... drauf verwettet, einfach weil mir nix mehr eingefallen ist). Und die paar working Events (lass es 200 am Tag sein ... wie oft schaltest du einen Taster/Schalter?) bei abertausenden anderen Events über den Tag machen mMn den Kohl nicht fett.
Wenn ichs nicht kapier, gerne verdeutlichen. Ich weiß deine Detektivarbeit sehr zu schätzen, da wird auch der Rest Sinn machen können.
Die Pumpe wird über DOIF´s oder manuell auf der Weboberfläche oder ftui gesteuert -> HMW Aktor -> "unter Strom gesetzt" wird ein (mechanischer) Druckmesser, der dann bei Abfall im Leitungsystem final die Pumpe anschaltet (und auch abschalten würde wenn kein Bezug). Die Beregner sind über Ventile (wieder HMW 12-7, aber über 24V AC versorgt) angesteuert.
Edit: ach so, du meintest wegen meinem "nie wieder offs suchen müssen" das mit dem working? Hab das schon kapiert, das stand jetzt eher als Synonym für die ganze Affäre.
Zitataber immer unwillig, wenn ich keine Notwendigkeit sehe :D
(oder deinen Punkt nicht 100%tig verstehe?)
wenn Du Muße hast, lies mal hier:
https://forum.fhem.de/index.php/topic,117075.msg1114300.html#msg1114300 (https://forum.fhem.de/index.php/topic,117075.msg1114300.html#msg1114300)
Da ist nicht jeder Beitrag relevant, aber so ein paar grundlegende Infos kann man daraus ableiten. Ich habe dort auch meine Erfahrungen geschildert.
Kurz: jeder unnötige event bedeutet Last fürs System, je weniger desto besser für alles. Es war wohl mal so, dass praktisch jeder Event, der von irgendeinem Device gefeuert wurde, alle anderen Devices irgendwie "angetriggert" hat. Das wurde besser durch NOTIFYDEV, also eine Liste in jedem Device, von welchem "Sender" Events überhaupt in Betracht gezogen werden. Haben aber wohl nicht alle Module. Das blöde ist, wenn das System mal an Belasungsgrenzen stößt kommen eigenartige Dinge dabei raus, die man nirgends zuordnen kann (bei mir z.B. dauernde "Hänger" von kurzer Dauer. Damit kannst Du Dinge, die von Zeiten im Sekundenbereich abhängen (Zähler z.B.) vergessen. Meiner Meinung nach ist es eigentlich immer wichtig bei neuen "Dingen" in fhem, also z.B. ein DOIF, von allen Beteiligten erst mal per Eventmonitor mitzuplotten: was liefert das Device eigentlich und wie oft, was brauche ich davon, was nicht (-> event-on-xx) und dann die Logik überlegen und dann Schritt-für-Schritt das DOIF entwickeln. Dabei immer den Eventmonitor der beteiligten Device und des DOIF offen haben. Auch ein tail aufs Logfiel von fhem offenbart manchen Fehler direkt nach klicken auf modify. Und spätestens beim dritten DOELSEIF über DOIF-Perl nachdenken (ok, das scheint ein Steckenpferd von mir zu sein). Und generell: All das was ich hier so von mir gebe ist nur meine Meinung und wird zum Großteil auf Erfahrung und ausprobieren gestützt. Und auf keinen Fall kann es vollständig sein (ich weiß ja nicht alles) und es kann sogar sein, dass es falsch ist.
So, das war genug OT, würde mich für dich freuen, wenn morgen die Beregnung in all seinen Varianten läuft!
Gruß
Natürlich hast du Recht. Das Prinzip ist richtig.
Ich bin noch an dem Punkt wo ich abwäge, wie aufwendig oder nebeneffektbelastet die Einschränkung im Verhältnis zum Nutzen ist. Oder wieviele Events ich tatsächlich mit wie viel Problemen die damit entstehen nicht passieren lasse.
Das wären jetzt in dem speziellen Fall 150 Zeilen in der cfg für geschätzt 100-200 Events am Tag. Allerdings wären diese 150 Zeilen im Ergebnis zu 99% problemfrei.
Bei Devices die gesprächsfreudig sind habe ich auch schon eine Woche gesessen um all die Auswirkungen in den Griff zu bekommen. Da lohnt es sich dann aber auch, weil es um tausende von events am Tag geht.
bin komplett bei dir, aber ab und zu einfach ein bißchen faul ;)
es sei mir gegönnt.
Nochmals Danke und ich berichte falls das Ganze doch nicht funktionieren will ...
lieb Gruß
H.
noch ein kurzer Abschlussbericht. Ohne ein kleines
wait 0:2:2:2:0:0
verhaspelt sich das DOIF noch immer (aber nur noch "ab und zu"). Das macht nach Sanys Erklärung mit dem zeitlichen Versatz Trigger/Abfrage auch Sinn.
Auch ein event-on-change-reading auf state der beteilgten HMW Devices führte nicht zur Lösung (das set_on gibts ja trotzdem im state -> trigger)