Hallo,
ich möchte einen 4 Kanal Schalter für eine Beregnungssteuerung benutzen.
Da dies schön komprimiert dargestellt werden soll, möchte ich keinen Split in 4 Devices.
Das ganze funktioniert fast wie es soll:
defmod MQTT2_zigbee_Beregnung MQTT2_DEVICE zigbee_Beregnung
attr MQTT2_zigbee_Beregnung alias Beregnung
attr MQTT2_zigbee_Beregnung comment Channel 1 for MQTT2_zigbee_Beregnung, see also MQTT2_zigbee_Beregnung_CH2
attr MQTT2_zigbee_Beregnung devStateIcon 1.ON:sani_sprinkling@blue:off1 1.OFF:sani_sprinkling@gray:on1 2.ON:sani_sprinkling@blue:off2 2.OFF:sani_sprinkling@gray:on2 3.ON:sani_sprinkling@blue:off3 3.OFF:sani_sprinkling@gray:on3 4.ON:sani_sprinkling@blue:off4 4.OFF:sani_sprinkling@gray:on4
attr MQTT2_zigbee_Beregnung devicetopic zigbee2mqtt/Beregnung
attr MQTT2_zigbee_Beregnung eventMap /on-for-timer1 3600:AN1/on-for-timer2 3600:AN2/on-for-timer3 3600:AN3/on-for-timer4 600:AN4/
attr MQTT2_zigbee_Beregnung model zigbee2mqtt_2channel_split
attr MQTT2_zigbee_Beregnung readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr MQTT2_zigbee_Beregnung room MQTT2_DEVICE
attr MQTT2_zigbee_Beregnung setList on1:noArg $DEVICETOPIC/l1/set {"state":"ON"}\
off1:noArg $DEVICETOPIC/l1/set {"state":"OFF"}\
toggle1:noArg $DEVICETOPIC/l1/set {"state":"TOGGLE"}\
\
on2:noArg $DEVICETOPIC/l2/set {"state":"ON"}\
off2:noArg $DEVICETOPIC/l2/set {"state":"OFF"}\
toggle2:noArg $DEVICETOPIC/l2/set {"state":"TOGGLE"}\
\
on3:noArg $DEVICETOPIC/l3/set {"state":"ON"}\
off3:noArg $DEVICETOPIC/l3/set {"state":"OFF"}\
toggle3:noArg $DEVICETOPIC/l3/set {"state":"TOGGLE"}\
\
on4:noArg $DEVICETOPIC/l4/set {"state":"ON"}\
off4:noArg $DEVICETOPIC/l4/set {"state":"OFF"}\
toggle4:noArg $DEVICETOPIC/l4/set {"state":"TOGGLE"}
attr MQTT2_zigbee_Beregnung setStateList on1 off1 toggle1 on2 off2 toggle2
attr MQTT2_zigbee_Beregnung stateFormat 1:state_l1\
2:state_l2\
3:state_l3\
4:state_l4\
setstate MQTT2_zigbee_Beregnung 1:OFF\
2:OFF\
3:OFF\
4:OFF\
doch leider ist der on-for-timer nicht in der SetList includiert....
Den hätte ich jedoch gerne, das die Beregnung nach bspw. 30 min wieder ausgeht. Kann mit jemand helfen die setList entsprechend zu erweitern:
on-for-timer1 {my $duration = .....
vielen Dank & sommerliche Grüße
hi,
aufteilung in 4 Devices wäre einfacher
und sonst einen watchdog auf 30min
viele spass
Danke für die schnelle Antwort. Ich wollte vermeiden 4 unterschiedliche devices zu generieren (aus Platzgründen auf der Bildschirmoberfläche.)
In dieser Quelle
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele (https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele)
wurde die SetList ergänzt
on-for-timer {my $duration = $EVTPART1*10; 'cmnd/DVES_575127/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
kann mir jemand helfen das für meinen Schalter anzupassen ?
Zitat von: Müller am 18 August 2024, 12:24:52Ich wollte vermeiden 4 unterschiedliche devices zu generieren
Tja, nicht alles, was man "will" ergibt tatsächlich sinnvolle Ergebnisse.
d.h. es geht nicht ?
hi,
es geht schon, mit 4 Devices,
und 1 anzeige Device z.B. readingsGroup
gruss
danke Eismann, damit kann arbeiten
Hättest du noch die raw definition für mich als Anleitung ?
Danke
hi,
ja
z.B. Steckdose:
defmod rg.Steckdose.Wohnzimmer readingsGroup SO_0101:state@Fernseher,state@SO_0102,state@SO_0103,state@SO_0201_Sw,state@SO_0401,state@SO_0402,state@Radio\
SO_0101:<LG_TV>,<DVD>,<Test>,<PC>,!LA,!AL,!RA
attr rg.Steckdose.Wohnzimmer alias Wohnzimmer
attr rg.Steckdose.Wohnzimmer cellStyle {"r:1" => 'style="text-align:center;; color:#FFA500;; font-weight:bold;; font-size:10px;;"',\
"r:2" => 'style="text-align:center;; color:#FFA500;; font-weight:bold;; font-size:10px;;"'}
attr rg.Steckdose.Wohnzimmer noheading 1
attr rg.Steckdose.Wohnzimmer nonames 1
attr rg.Steckdose.Wohnzimmer notime 1
attr rg.Steckdose.Wohnzimmer room Wohnzimmer,multimedia,readingsGroup
attr rg.Steckdose.Wohnzimmer style style="border:0px;;background:none;;box-shadow:none;;"
attr rg.Steckdose.Wohnzimmer valueColumns { "Wohnzimmer" => 'colspan="3"', "Arbeitszimmer" => 'colspan="3"', "Schlafzimmer" => 'colspan="2"',\
"Küche" => 'colspan="3"', "Bad" => 'colspan="1"', "Flur" => 'colspan="1"'}
attr rg.Steckdose.Wohnzimmer valueFormat { if($READING eq "LA") { \
if(ReadingsVal("SO_0401","power",0) > 0) {\
$VALUE = "Laden"." ". ReadingsVal("SO_0401","power",0) . " W";;\
} else {\
$VALUE = "Laden";;\
}\
}\
elsif($READING eq "AL") { \
if(ReadingsVal("SO_0402","power",0) > 0) {\
$VALUE = "Alexa"." ". ReadingsVal("SO_0402","power",0) . " W";;\
} else {\
$VALUE = "Alexa";;\
}\
}\
elsif($READING eq "RA") { \
if(ReadingsVal("SO_0403","power",0) > 0) {\
$VALUE = "Radio"." ". ReadingsVal("SO_0403","power",0) . " W";;\
} else {\
$VALUE = "Radio";;\
}\
}\
}
attr rg.Steckdose.Wohnzimmer valueIcon { state => '%devStateIcon' }
z.B. Licht
defmod rg.Licht.wz readingsGroup DL_0101:state@DL_0101,state@LED_0101,state@SL_0101,state@FL_0101_Sw1,state@FL_0101_Sw2\
DL_0101:<Wohnzimmer>
attr rg.Licht.wz alias Wohnzimmer
attr rg.Licht.wz cellStyle {\
"r:1" => 'style="text-align:center;; color:#FFA500;; font-weight:bold;; font-size:10px;;"',\
"r:2" => 'style="text-align:center;; color:#FFA500;; font-weight:bold;; font-size:10px;;"'}
attr rg.Licht.wz noheading 1
attr rg.Licht.wz nonames 1
attr rg.Licht.wz notime 1
attr rg.Licht.wz room light,readingsGroup
attr rg.Licht.wz style style="border:0px;;background:none;;box-shadow:none;;"
attr rg.Licht.wz valueColumns { "Wohnzimmer" => 'colspan="5"', "Arbeitszimmer" => 'colspan="2"', "Schlafzimmer" => 'colspan="2"',\
"Küche" => 'colspan="2"', "Bad" => 'colspan="1"', "Flur" => 'colspan="1"'}
attr rg.Licht.wz valueIcon { state => '%devStateIcon', all_on => '%devStateIcon'}
defmod rg.Licht.wz readingsGroup DL_0101:state@DL_0101,state@LED_0101,state@SL_0101,state@FL_0101_Sw1,state@FL_0101_Sw2\
DL_0101:<Wohnzimmer>
attr rg.Licht.wz alias Wohnzimmer
attr rg.Licht.wz cellStyle {\
"r:1" => 'style="text-align:center;; color:#FFA500;; font-weight:bold;; font-size:10px;;"',\
"r:2" => 'style="text-align:center;; color:#FFA500;; font-weight:bold;; font-size:10px;;"'}
attr rg.Licht.wz noheading 1
attr rg.Licht.wz nonames 1
attr rg.Licht.wz notime 1
attr rg.Licht.wz room light,readingsGroup
attr rg.Licht.wz style style="border:0px;;background:none;;box-shadow:none;;"
attr rg.Licht.wz valueColumns { "Wohnzimmer" => 'colspan="5"', "Arbeitszimmer" => 'colspan="2"', "Schlafzimmer" => 'colspan="2"',\
"Küche" => 'colspan="2"', "Bad" => 'colspan="1"', "Flur" => 'colspan="1"'}
attr rg.Licht.wz valueIcon { state => '%devStateIcon', all_on => '%devStateIcon'}
es sind nur ein paar Beispiele!
SO_0101:state@Fernseher,state@SO_0102,state@SO_0103 ist die steckdosen leiste
defmod SO_0101 MQTT2_DEVICE
attr SO_0101 IODev MQTT2C
attr SO_0101 alias Fernseher
attr SO_0101 cmdIcon on:general_an off:general_aus
attr SO_0101 devStateIcon { my $Schalter = ReadingsVal($name,"state_l1","off");;\
my $Status = ReadingsVal($name,"availability","offline");;\
if($Status eq "online") {\
if($Schalter eq "on") { \
return "on:it_television@#00FF00:off";;\
} elsif($Schalter eq "off") {\
return "off:it_television@#8C8C8C:on";;\
} else {\
return ".*:it_television@#FF0000:off";; \
}\
} else {\
return ".*:it_television@#FF0000:off";;\
}\
}
attr SO_0101 devicetopic zigbee2mqtt/EG/SO_0101
attr SO_0101 group socket
attr SO_0101 icon hue_filled_outlet@#00FF00
attr SO_0101 readingList $DEVICETOPIC/availability:.* availability\
$DEVICETOPIC:.* { my $ret=json2nameValue($EVENT);; $ret->{state_l1}=lc($ret->{state_l1}) if defined $ret->{state_l1};; return $ret }
attr SO_0101 room Wohnzimmer,mqtt,multimedia
attr SO_0101 setList on:noArg $DEVICETOPIC/set {"state_l1":"on"}\
off:noArg $DEVICETOPIC/set {"state_l1":"off"}
attr SO_0101 stateFormat state_l1
attr SO_0101 webCmd on:off
defmod SO_0102 MQTT2_DEVICE
attr SO_0102 IODev MQTT2C
attr SO_0102 alias DVD
attr SO_0102 cmdIcon on:general_an off:general_aus
attr SO_0102 devStateIcon { my $Schalter = ReadingsVal($name,"state_l2","off");;\
my $Status = ReadingsVal($name,"availability","offline");;\
if($Status eq "online") {\
if($Schalter eq "on") { \
return "on:it_drive_removable@#00FF00:off";;\
} elsif($Schalter eq "off") {\
return "off:it_drive_removable@#8C8C8C:on";;\
} else {\
return ".*:it_drive_removable@#FF0000:off";; \
}\
} else {\
return ".*:it_drive_removable@#FF0000:off";;\
}\
}
attr SO_0102 devicetopic zigbee2mqtt/EG/SO_0101
attr SO_0102 group socket
attr SO_0102 icon hue_filled_outlet@#00FF00
attr SO_0102 readingList $DEVICETOPIC/availability:.* availability\
$DEVICETOPIC:.* { my $ret=json2nameValue($EVENT);; $ret->{state_l2}=lc($ret->{state_l2}) if defined $ret->{state_l2};; return $ret }
attr SO_0102 room Wohnzimmer,mqtt,multimedia
attr SO_0102 setList on:noArg $DEVICETOPIC/set {"state_l2":"on"}\
off:noArg $DEVICETOPIC/set {"state_l2":"off"}
attr SO_0102 stateFormat state_l2
attr SO_0102 webCmd on:off
gruss
Hallo,
wenn man genau wüsste was für ein Device das auf zigbee2mqtt.io ist, könnte man in der Doku nachschauen ob on-for-timer im Gerät unterstützt wird.
Dann könnte man wieder alles in einem MQTT2_DEVICE umsetzen...
Gruß Thomas
Hallo TomLee,
hier ist das Gerät.
https://www.zigbee2mqtt.io/devices/TYWB_4ch-RF.html#mhcozy-tywb%25204ch-rf (https://www.zigbee2mqtt.io/devices/TYWB_4ch-RF.html#mhcozy-tywb%25204ch-rf)
hi,
Lidl HG06338 (https://www.zigbee2mqtt.io/devices/HG06338.html#lidl-hg06338)
bei meiner gibt es auch die gleichen befehle: {"state" : "ON", "on_time": 300} => 5min
war aber nie begeistert!
einfacher war eben
fhem("set DL_0601 on-for-timer 30");
gruss
OT
Zitat von: eisman am 18 August 2024, 14:12:20war aber nie begeistert!
einfacher war eben
Hab keine Devices welche das unterstützen, wie muss man das verstehen ?
Funktioniert der Timer nicht zuverlässig oder hat dir nur die Umsetzung in setList nicht gepasst/gefallen ?
hi,TomLee
setList 300:noArg $DEVICETOPIC/set {"state" : "ON", "on_time": 300, "off_wait_time": 120}
läst sich in SUB besser schreiben_
fhem("set DL_0601 on-for-timer " . ReadingsVal("RA_0600","Licht",30));
ich habe in jeden Raum einen Dummy für Grundeinstellungen. wo ich den timer wert ändern kann
gruss
setList
timer:noArg $DEVICETOPIC/l1/set {"state" : "ON", "on_time": 300}
gibt mir in zigbee2mqtt
die Fehlermeldung
error 2024-08-18 14:42:29Invalid message 'null', skipping...
auch diese Variante:
timer:noArg $DEVICETOPIC/l1/set {"state":"ON","on_time":30}
kein Effekt und die gleiche Fehlermeldung
Immer noch OT, weil wir/ich hier jetzt von einem "vereinzelten" Gerät als Basis schreibe(n).
Zitatläst sich in SUB besser schreiben.
auch kann man den Wert einfacher ändern.
Ein selbst definierter on-for-timer ersetzt den durch useSetExtensions erzeugten.
Warum verwendest du das nicht so, ist doch besser den Timer im Gerät zu verwenden:
on-for-timer $DEVICETOPIC/set {"state" : "ON", "on_time": $EVTPART1}
Zitat von: Müller am 18 August 2024, 14:43:48setList
timer:noArg $DEVICETOPIC/l1/set {"state" : "ON", "on_time": 300}
gibt mir in zigbee2mqtt
die Fehlermeldung
error 2024-08-18 14:42:29Invalid message 'null', skipping...
auch diese Variante:
timer:noArg $DEVICETOPIC/l1/set {"state":"ON","on_time":30}
kein Effekt und die gleiche Fehlermeldung
und bei mir funktioniert es so {"state":"ON","on_time":30} mit einer lampe
{"state_l1":"ON","on_time":30}
funktioniert mit der steckdose nicht, sollte so aber richtig sein.
gruss
Zitat von: Müller am 23 April 2516, 09:18:03
kein Effekt und die gleiche Fehlermeldung
Hab die Doku nicht ganz verstanden 8)
So ?on-for-timer1 $DEVICETOPIC/set {"countdown_l1": $EVTPART1}
Oder setzt das nur einen fixen Wert für jedes mal wenn eingeschaltet wird ?Ups, jetzt war ich in der Doku zu dem anderen Device mit Temperatur und Feuchtigkeitsmesser, sry.
hi,
bei der Lampe geht es,
bei der steckdosenleiste geht es nicht.
Gruss
Zitat von: TomLee am 18 August 2024, 14:57:01Immer noch OT, weil wir/ich hier jetzt von einem "vereinzelten" Gerät als Basis schreibe(n).
Zitatläst sich in SUB besser schreiben.
auch kann man den Wert einfacher ändern.
Ein selbst definierter on-for-timer ersetzt den durch useSetExtensions erzeugten.
Warum verwendest du das nicht so, ist doch besser den Timer im Gerät zu verwenden:
on-for-timer $DEVICETOPIC/set {"state" : "ON", "on_time": $EVTPART1}
gute idee :)
ich habe eine sub die für einige lampen geht,
und muss nichts weiter eintragen.
bei einer Lampe gebe ich dir recht und ich bin da etwas altmodisch.
gruss
Zitat von: TomLee am 18 August 2024, 15:09:24Zitat von: Müller am 23 April 2516, 09:18:03
kein Effekt und die gleiche Fehlermeldung
Hab die Doku nicht ganz verstanden 8)
So ?
on-for-timer1 $DEVICETOPIC/set {"countdown_l1": $EVTPART1}
Oder setzt das nur einen fixen Wert für jedes mal wenn eingeschaltet wird ?
Ups, jetzt war ich in der Doku zu dem anderen Device mit Temperatur und Feuchtigkeitsmesser, sry.
das ist von der Firmware abhängig und geht nicht bei jeden device,
bei der steckdosenleiste geht es nicht.
Lampe (https://www.zigbee2mqtt.io/devices/14147206L.html#lidl-14147206l)
funktioniert es.
gruss
https://github.com/Koenkk/zigbee2mqtt/issues/20230#issue-2044478367
ZitatBesides the "wrong device" issue, there's an additional one: the 4 relays cannot be triggered independently. There can only be 1 switch on and 3 off, at any time. When you try to swith on the 2nd switch, the one already on is turning off.
Ist das wirklich so bei dem 4 Kanal-Device das immer nur eines der Reais an sein kann ?
hi,
habe ich auch gelesen, (in einem anderen Forum).
ich selber habe das teil nicht.
gruss
Hallo,
man kann den 4 Kanal Schalter in 3 verschiedenen Modi betreiben.
1: unabhängiges Schalten
2: nur ein Kanal ist jeweils an
3: unabhängiges Einschalten für 1-2 sec
kann man ein einem Knopf einstellen
Gruß
Ok, danke. War mir nicht sicher ob ich alles nach meinem verlinkten issue-Beitrag richtig verstanden habe / die darauffolgenden Beiträge sich darauf beziehen.
Ich habe nun ein notify angelegt, welches mit Verzögerung wieder ausschaltet
hi,
mal ein Beispiel für einen WD:
defmod wd.Steckdose watchdog Steckdose:on 00:30:00 Steckdose:off set Steckdose off;;
attr wd.Steckdose autoRestart 1
attr wd.Steckdose devStateStyle style="text-align:right;;"
wird die Steckdose eingeschaltet, Schaltet sie nach 30min aus,
oder die Steckdose wird vorher ausgeschaltet, dann löst der WD nicht aus.
gruss
Also ich habe mich mal am watchdog versucht, aber irgendwie funktioniert das nicht bei mir.
Schaut der Watchdog nach dem state des device oder ob der entsprechende Befehlgesendet wird ?
Ich habe eine Osramlampe die mit on bzw off geschaltet wird, aber ein watchdog funktioniert nur mit ON OFF mit on off passiert nix
für den 4 Kanal Schalter wäre dies on2, on3 oder on4 aber was stelle ich beim watchdog ein ??
hi,
den state on/off.
watchdog (https://wiki.fhem.de/wiki/Watchdog)
defmod wd.FE0100.alarm watchdog FE_0100:heizung:.off 00:30:00 FE_0100:heizung:.on { FensterAlarm(1) }
attr wd.FE0100.alarm autoRestart 1
''''''''''''''''''''''
defmod wd.Test watchdog SO_0101:state_l3:.ON 00:03:00 SO_0101:state_l3:.OFF set SO_0101 state_l3 off;;
attr wd.Test autoRestart 1
gruss
Moin,
Zitathi,
den state on/off.
nach der Raw-Definition im ersten Beitrag doch eher
state_lx ?
Jetzt, wo der Thread wieder offen ist, hier ein weiterer Vorschlag alles in einem Device umzusetzen, wenn das mit
on_time nicht klappt:
on-for-timer_l1 {fhem("set $NAME on1;sleep $EVTPART1;set $NAME off1;")}
on-for-timer_l2 {fhem("set $NAME on2;sleep $EVTPART1;set $NAME off2;")}
on-for-timer_l3 {fhem("set $NAME on3;sleep $EVTPART1;set $NAME off3;")}
on-for-timer_l4 {fhem("set $NAME on4;sleep $EVTPART1;set $NAME off4;")}
Zitat von: TomLee am 25 August 2024, 09:47:28nach der Raw-Definition im ersten Beitrag doch eher state_lx ?
okay stimmt, state_l1
ich war noch bei meinem Device und da funktioniert alles mit den FHEM Sachen...
gruss
Zitat von: TomLee am 25 August 2024, 09:47:28Jetzt, wo der Thread wieder offen ist, hier ein weiterer Vorschlag alles in einem Device umzusetzen, wenn das mit on_time nicht klappt:
Code Auswählen Erweitern
on-for-timer_l1 {fhem("set $NAME on1;sleep $EVTPART1;set $NAME off1;")}
on-for-timer_l2 {fhem("set $NAME on2;sleep $EVTPART1;set $NAME off2;")}
on-for-timer_l3 {fhem("set $NAME on3;sleep $EVTPART1;set $NAME off3;")}
on-for-timer_l4 {fhem("set $NAME on4;sleep $EVTPART1;set $NAME off4;")}
@TomLee es funktioniert, habs mal mit meinem Device ausprobiert,
die vereinzelung bietet mehr funktionen in kürzerer zeit: siehe Bild
gruss
Zitatdie vereinzelung bietet mehr funktionen in kürzerer zeit: siehe Bild
Stell ich auch gar nicht in Frage.
Die Aufgabe/Frage war und ist (für mich) aber weiterhin wie man es in einem "vereinten" lösen kann.
Unabhängig davon ob das für andere Sinn macht oder nicht.
ZitatDa dies schön komprimiert dargestellt werden soll, möchte ich keinen Split in 4 Devices.
hi TomLee,
das war jetzt nicht negative gemeint, klar geht es um die kompakte Darstellung,
sorry
Hallo,
danke für eure Rückmeldungen.
on-for-timer_l1 {fhem("set $NAME on1;sleep $EVTPART1;set $NAME off1;")}
on-for-timer_l2 {fhem("set $NAME on2;sleep $EVTPART1;set $NAME off2;")}
on-for-timer_l3 {fhem("set $NAME on3;sleep $EVTPART1;set $NAME off3;")}
on-for-timer_l4 {fhem("set $NAME on4;sleep $EVTPART1;set $NAME off4;")}
habe ich in die setList kopiert ohne Änderungen.
Es funktioniert nach ersten Probieren prima.
Vielen Dank
defmod MQTT2_zigbee_Beregnung MQTT2_DEVICE zigbee_Beregnung
attr MQTT2_zigbee_Beregnung alias Beregnung
attr MQTT2_zigbee_Beregnung devStateIcon 1.ON:sani_sprinkling@blue:off \
1.OFF:sani_sprinkling@gray:AN1 \
2.ON:sani_sprinkling@blue:off2 \
2.OFF:sani_sprinkling@gray:AN2 \
3.ON:sani_sprinkling@blue:off3 \
3.OFF:sani_sprinkling@gray:AN3 \
4.ON:sani_sprinkling@blue:off4 \
4.OFF:sani_sprinkling@gray:AN4
attr MQTT2_zigbee_Beregnung devicetopic zigbee2mqtt/Beregnung
attr MQTT2_zigbee_Beregnung eventMap /on-for-timer 2700:AN1/\
/on-for-timer_l2 2700:AN2/\
/on-for-timer_l3 2700:AN3/\
/on-for-timer_l4 1500:AN4/
attr MQTT2_zigbee_Beregnung group Beregnung
attr MQTT2_zigbee_Beregnung model zigbee2mqtt_2channel_split
attr MQTT2_zigbee_Beregnung readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr MQTT2_zigbee_Beregnung room Baßler_komplett,MQTT2_DEVICE
attr MQTT2_zigbee_Beregnung setList on:noArg $DEVICETOPIC/l1/set {"state":"ON"}\
off:noArg $DEVICETOPIC/l1/set {"state":"OFF"}\
toggle:noArg $DEVICETOPIC/l1/set {"state":"TOGGLE"}\
\
on2:noArg $DEVICETOPIC/l2/set {"state":"ON"}\
off2:noArg $DEVICETOPIC/l2/set {"state":"OFF"}\
toggle2:noArg $DEVICETOPIC/l2/set {"state":"TOGGLE"}\
\
on3:noArg $DEVICETOPIC/l3/set {"state":"ON"}\
off3:noArg $DEVICETOPIC/l3/set {"state":"OFF"}\
toggle3:noArg $DEVICETOPIC/l3/set {"state":"TOGGLE"}\
\
on4:noArg $DEVICETOPIC/l4/set {"state":"ON"}\
off4:noArg $DEVICETOPIC/l4/set {"state":"OFF"}\
toggle4:noArg $DEVICETOPIC/l4/set {"state":"TOGGLE"}\
\
on-for-timer_l1 {fhem("set $NAME on1;;sleep $EVTPART1;;set $NAME off1;;")}\
on-for-timer_l2 {fhem("set $NAME on2;;sleep $EVTPART1;;set $NAME off2;;")}\
on-for-timer_l3 {fhem("set $NAME on3;;sleep $EVTPART1;;set $NAME off3;;")}\
on-for-timer_l4 {fhem("set $NAME on4;;sleep $EVTPART1;;set $NAME off4;;")}
attr MQTT2_zigbee_Beregnung setStateList on off toggle
attr MQTT2_zigbee_Beregnung sortby 01
attr MQTT2_zigbee_Beregnung stateFormat 1:state_l1\
2:state_l2\
3:state_l3\
4:state_l4\
attr MQTT2_zigbee_Beregnung webCmd :