DOIF neue Features (Sleep-Alternative)

Begonnen von Damian, 12 Juli 2015, 21:17:52

Vorheriges Thema - Nächstes Thema

Vize

Zitat von: Damian am 26 Juli 2015, 20:41:05

- das disable-Attribut deaktiviert jetzt komplett das Modul (Timer werden gelöscht) weniger Performanceverbrauch
- set disable  setzt das Modul in Zustand disable (Timer laufen weiter) der Zustand bleibt auch nach einem Neustart
- set initialize aktiviert ein inaktives Modul, bzw. setzt den Status auf initialized - der nächste Trigger führt zur Ausführung

Hi Damian,

folgendes in diesem Zusammenhang...k.A. ob es ein bug ist, oder ob ich zu doof bin...

Ich habe Dummies, um diverse Automatiken an- und auszuschalten.
Der Dummy wird von einem DOIF abgefragt und in den Automatiken sind auch DOIFs.

Beispiel Dummy:
Internals:
   CFGFN      ./FHEM/999_automatik.cfg
   NAME       du_eg_rollos_beschattung_an_aus
   NR         139
   STATE      on
   TYPE       dummy
   Readings:
     2015-07-31 18:56:16   state           on
Attributes:
   alias      EG Rollos Beschattungsautomatik
   devStateIcon on:general_an@green:off off:general_aus@red:on
   room       105_Esszimmer,105_Wohnzimmer


"Abfrage-DOIF":
Internals:
   CFGFN      ./FHEM/999_automatik.cfg
   DEF        ([du_eg_rollos_beschattung_an_aus] eq "off") (set di_eg_rollos_beschattung.* disable) DOELSE (set di_eg_rollos_beschattung.* initialize)
   NAME       di_eg_rollos_beschattung_an_aus
   NR         140
   NTFY_ORDER 50-di_eg_rollos_beschattung_an_aus
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-07-31 18:56:11   Device          du_eg_rollos_beschattung_an_aus
     2015-07-31 18:56:11   Event           off
     2015-07-31 18:56:11   cmd_event       du_eg_rollos_beschattung_an_aus
     2015-07-31 18:56:11   cmd_nr          1
     2015-07-31 18:56:11   e_du_eg_rollos_beschattung_an_aus_STATE off
     2015-07-31 18:56:11   mode            disabled
     2015-07-31 18:56:11   state           cmd_1
   Condition:
     0          InternalDoIf('du_eg_rollos_beschattung_an_aus','STATE','') eq "off"
   Devices:
     0           du_eg_rollos_beschattung_an_aus
     all         du_eg_rollos_beschattung_an_aus
   Do:
     0:
       0          set di_eg_rollos_beschattung.* disable
     1:
       0          set di_eg_rollos_beschattung.* initialize
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Internals:
     0           du_eg_rollos_beschattung_an_aus:STATE
     all         du_eg_rollos_beschattung_an_aus:STATE
   Itimer:
   Readings:
   State:
   Timerfunc:
   Trigger:
Attributes:
   room       999_Automatiken


Die "zu schaltenden" DOIFs heißen:
di_eg_rollos_beschattung_sued
und
di_eg_rollos_beschattung_west

Mit dieser Konstellation schaffe ich es GENAU EINMAL mit dem Dummy die "zu schaltenden" DOIFs in den Status disabled zu bringen und das wars. In den Status initialize bekomme ich sie nicht mehr...

Steht im Ausführungsteil des "Abfrage-DOIFs"
(set di_eg_rollos_beschattung.*(sued|west) disable) DOELSE (set di_eg_rollos_beschattung.*(sued|west) initialize)
kann ich fröhlich hin und her schalten...

Mach ich da was falsch, oder woran kann es liegen?

Gruß
Andreas

Damian

#76
Zitat von: Vize am 31 Juli 2015, 19:11:42

"Abfrage-DOIF":
Internals:
   CFGFN      ./FHEM/999_automatik.cfg
   DEF        ([du_eg_rollos_beschattung_an_aus] eq "off") (set di_eg_rollos_beschattung.* disable) DOELSE (set di_eg_rollos_beschattung.* initialize)
   NAME       di_eg_rollos_beschattung_an_aus
   NR         140
   NTFY_ORDER 50-di_eg_rollos_beschattung_an_aus
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-07-31 18:56:11   Device          du_eg_rollos_beschattung_an_aus
     2015-07-31 18:56:11   Event           off
     2015-07-31 18:56:11   cmd_event       du_eg_rollos_beschattung_an_aus
     2015-07-31 18:56:11   cmd_nr          1
     2015-07-31 18:56:11   e_du_eg_rollos_beschattung_an_aus_STATE off
     2015-07-31 18:56:11   mode            disabled
     2015-07-31 18:56:11   state           cmd_1


Ich glaube du machst was falsch.

Mit "set di_eg_rollos_beschattung.* disable" hat sich dein doif-modul selbst ausgeschaltet. Wie soll es sich dann jemals selbst wieder einschalten, wenn es ausgeschaltet ist?

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Vize

Jau, jetzt seh ich es auch...

Danke fürs lösen des vorm Kopf befindlichen Brettes!!!

Gruß
Andreas

Damian

Version 0.7

indirekte Wochentagangaben:

([21:00|[wday])(...)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

inesa394

Hallo

Mit deinen neuen Feature wollte ich meine notify und watchdog ablösen aber irgendwo ist da noch ein
Fehler drin. Meine Maschine soll wenn sie fertig ist nach 300sec abgeschalten werden "HR.Waschmaschine_Sw off"
mit entsprechender akustischer Meldung.In einen dummy HR.WaschmaschineBetrieb wird
der zustand jeweils gespeichert.Nur bekomme ich wenn Fall 3 und 4 eintrifft ständig  gemeldet
das die Maschine fertig ist was ich so nicht möchte.Vieleicht kannst du mir ja etwas helfen
Internals:
   DEF        ([HR.Waschmaschine_Power:power]>=9) (set HR.WaschmaschineBetrieb on) DOELSEIF ([HR.Waschmaschine_Power:power]>=3 && [HR.Waschmaschine_Power:power]<6) (set HR.WaschmaschineBetrieb ready,set Tuer.GongMP3 playTone 091) DOELSEIF ([HR.Waschmaschine_Power:power]>0 and [HR.Waschmaschine_Power:power]<3) (set Tuer.GongMP3 playTone 012,set HR.WaschmaschineBetrieb standby,set Tuer.GongLED on,set Tuer.GongLED off,set HR.Waschmaschine_Sw off) DOELSEIF ([HR.Waschmaschine_Power:power]==0) (set HR.WaschmaschineBetrieb off,set Tuer.GongMP3 playTone 013; set Tuer.GongLED on,set Tuer.GongLED off)
   NAME       HRWaschmaschineBetriebAus
   NR         465
   NTFY_ORDER 50-HRWaschmaschineBetriebAus
   STATE      cmd_4
   TYPE       DOIF
   Readings:
     2015-08-02 20:45:24   Device          HR.Waschmaschine_Power
     2015-08-02 20:45:24   Event           boot: off current: 0 energyCalc: 24414.7 frequency: 49.97 voltage: 232.3 statEnergy_kwh: Hour: 0.0000 Day: 3.0340 Month: 3.0340 Year: 3.0340 (since:  ) statEnergyMonth: 3034.0 statEnergyCalc: Hour: 0.0 Day: 3034.0 Month: 3034.0 Year: 3034.0 (since:  )
     2015-08-02 17:51:03   cmd_count       2
     2015-08-02 17:51:03   cmd_event       HR.Waschmaschine_Power
     2015-08-02 17:51:03   cmd_nr          4
     2015-08-02 20:45:24   e_HR.Waschmaschine_Power_power 0
     2015-08-02 17:51:03   state           cmd_4
     2015-08-02 20:45:27   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('HR.Waschmaschine_Power','power','')>=9
     1          ReadingValDoIf('HR.Waschmaschine_Power','power','')>=3 && ReadingValDoIf('HR.Waschmaschine_Power','power','')<6
     2          ReadingValDoIf('HR.Waschmaschine_Power','power','')>0 and ReadingValDoIf('HR.Waschmaschine_Power','power','')<3
     3          ReadingValDoIf('HR.Waschmaschine_Power','power','')==0
   Devices:
     0           HR.Waschmaschine_Power
     1           HR.Waschmaschine_Power
     2           HR.Waschmaschine_Power
     3           HR.Waschmaschine_Power
     all         HR.Waschmaschine_Power
   Do:
     0:
       0          set HR.WaschmaschineBetrieb on
     1:
       0          set HR.WaschmaschineBetrieb ready,set Tuer.GongMP3 playTone 091
     2:
       0          set Tuer.GongMP3 playTone 012,set HR.WaschmaschineBetrieb standby,set Tuer.GongLED on,set Tuer.GongLED off,set HR.Waschmaschine_Sw off
     3:
       0          set HR.WaschmaschineBetrieb off,set Tuer.GongMP3 playTone 013; set Tuer.GongLED on,set Tuer.GongLED off
   Helper:
     globalinit 1
     last_timer 0
     sleepdevice HR.Waschmaschine_Power
     sleepsubtimer -1
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           HR.Waschmaschine_Power:power
     1           HR.Waschmaschine_Power:power
     2           HR.Waschmaschine_Power:power
     3           HR.Waschmaschine_Power:power
     all         HR.Waschmaschine_Power:power
   State:
   Timerfunc:
   Trigger:
Attributes:
   do         resetwait
   icon       scene_washing_machine
   repeatsame 1:2:1:2
   room       Doif,Keller
   wait       60:5,5:0,10,30,10,300:5,20,5,0

Damian

Zitat von: inesa394 am 02 August 2015, 21:14:41
Hallo

Mit deinen neuen Feature wollte ich meine notify und watchdog ablösen aber irgendwo ist da noch ein
Fehler drin. Meine Maschine soll wenn sie fertig ist nach 300sec abgeschalten werden "HR.Waschmaschine_Sw off"
mit entsprechender akustischer Meldung.In einen dummy HR.WaschmaschineBetrieb wird
der zustand jeweils gespeichert.Nur bekomme ich wenn Fall 3 und 4 eintrifft ständig  gemeldet
das die Maschine fertig ist was ich so nicht möchte.Vieleicht kannst du mir ja etwas helfen
Internals:
   DEF        ([HR.Waschmaschine_Power:power]>=9) (set HR.WaschmaschineBetrieb on) DOELSEIF ([HR.Waschmaschine_Power:power]>=3 && [HR.Waschmaschine_Power:power]<6) (set HR.WaschmaschineBetrieb ready,set Tuer.GongMP3 playTone 091) DOELSEIF ([HR.Waschmaschine_Power:power]>0 and [HR.Waschmaschine_Power:power]<3) (set Tuer.GongMP3 playTone 012,set HR.WaschmaschineBetrieb standby,set Tuer.GongLED on,set Tuer.GongLED off,set HR.Waschmaschine_Sw off) DOELSEIF ([HR.Waschmaschine_Power:power]==0) (set HR.WaschmaschineBetrieb off,set Tuer.GongMP3 playTone 013; set Tuer.GongLED on,set Tuer.GongLED off)
   NAME       HRWaschmaschineBetriebAus
   NR         465
   NTFY_ORDER 50-HRWaschmaschineBetriebAus
   STATE      cmd_4
   TYPE       DOIF
   Readings:
     2015-08-02 20:45:24   Device          HR.Waschmaschine_Power
     2015-08-02 20:45:24   Event           boot: off current: 0 energyCalc: 24414.7 frequency: 49.97 voltage: 232.3 statEnergy_kwh: Hour: 0.0000 Day: 3.0340 Month: 3.0340 Year: 3.0340 (since:  ) statEnergyMonth: 3034.0 statEnergyCalc: Hour: 0.0 Day: 3034.0 Month: 3034.0 Year: 3034.0 (since:  )
     2015-08-02 17:51:03   cmd_count       2
     2015-08-02 17:51:03   cmd_event       HR.Waschmaschine_Power
     2015-08-02 17:51:03   cmd_nr          4
     2015-08-02 20:45:24   e_HR.Waschmaschine_Power_power 0
     2015-08-02 17:51:03   state           cmd_4
     2015-08-02 20:45:27   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('HR.Waschmaschine_Power','power','')>=9
     1          ReadingValDoIf('HR.Waschmaschine_Power','power','')>=3 && ReadingValDoIf('HR.Waschmaschine_Power','power','')<6
     2          ReadingValDoIf('HR.Waschmaschine_Power','power','')>0 and ReadingValDoIf('HR.Waschmaschine_Power','power','')<3
     3          ReadingValDoIf('HR.Waschmaschine_Power','power','')==0
   Devices:
     0           HR.Waschmaschine_Power
     1           HR.Waschmaschine_Power
     2           HR.Waschmaschine_Power
     3           HR.Waschmaschine_Power
     all         HR.Waschmaschine_Power
   Do:
     0:
       0          set HR.WaschmaschineBetrieb on
     1:
       0          set HR.WaschmaschineBetrieb ready,set Tuer.GongMP3 playTone 091
     2:
       0          set Tuer.GongMP3 playTone 012,set HR.WaschmaschineBetrieb standby,set Tuer.GongLED on,set Tuer.GongLED off,set HR.Waschmaschine_Sw off
     3:
       0          set HR.WaschmaschineBetrieb off,set Tuer.GongMP3 playTone 013; set Tuer.GongLED on,set Tuer.GongLED off
   Helper:
     globalinit 1
     last_timer 0
     sleepdevice HR.Waschmaschine_Power
     sleepsubtimer -1
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           HR.Waschmaschine_Power:power
     1           HR.Waschmaschine_Power:power
     2           HR.Waschmaschine_Power:power
     3           HR.Waschmaschine_Power:power
     all         HR.Waschmaschine_Power:power
   State:
   Timerfunc:
   Trigger:
Attributes:
   do         resetwait
   icon       scene_washing_machine
   repeatsame 1:2:1:2
   room       Doif,Keller
   wait       60:5,5:0,10,30,10,300:5,20,5,0


1. Ich sehe zweifaches Schalten im 4. Fall - wie gewünscht: repeatsame 1:2:1:2
2. Wenn du Pausen zwischen den Kommandos haben willst, musst du sie auch getrennt angeben (set HR.WaschmaschineBetrieb off)(set Tuer.GongMP3 playTone 013)(set Tuer.GongLED on)(set Tuer.GongLED off)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

inesa394

ok danke werde das heute abend mal testen mit den zusätzlichen Klammern.
Die Wiederholungen kamen nicht wie gewünscht 2 mal sondern vielfach mehr

Gruß Inesa

Flexstarr

ZitatDie Verzögerungen werden nur auf Events angewandt und nicht auf Zeitsteuerung.
Ist geplant, auch das einzubauen?

Könnte ich gut für meine SOMFY Rolladen gebrauchen, die ich aktuell nur einzeln verzögert steuern kann.
Das folgende funktioniert nämlich leider nicht mit sleep, alle werden gleichzeitig geschaltet und der CUL hängt sich auf:

([07:30|8] and [Wg.Rolladen.timer] eq "on") (set Sz.Rolladen open, sleep 1.5; set Az.Rolladen open, sleep 1.5; set Wz.Rolladen.Tuer open, sleep 1.5; set Wz.Rolladen.Fenster open, sleep 1.5;set Kc.Rolladen.Tuer open, sleep 1.5; set Kc.Rolladen.Fenster open)
FHEM 5.8 @RPi2
CUL433, CUL868, JeeLink, Hamony Hub, Hue Bridge, ELV EnergieAmpel, IT Steckdosen, mehrere Homematic Teile..

RoBra81

Guten Morgen,

Ich meine, Damian hat ein paar Posts später festgestellt, dass es doch schon drin ist...

Ronny

Damian

Zitat von: Flexstarr am 05 August 2015, 23:17:00
Ist geplant, auch das einzubauen?

Könnte ich gut für meine SOMFY Rolladen gebrauchen, die ich aktuell nur einzeln verzögert steuern kann.
Das folgende funktioniert nämlich leider nicht mit sleep, alle werden gleichzeitig geschaltet und der CUL hängt sich auf:

([07:30|8] and [Wg.Rolladen.timer] eq "on") (set Sz.Rolladen open, sleep 1.5; set Az.Rolladen open, sleep 1.5; set Wz.Rolladen.Tuer open, sleep 1.5; set Wz.Rolladen.Fenster open, sleep 1.5;set Kc.Rolladen.Tuer open, sleep 1.5; set Kc.Rolladen.Fenster open)


Ist bereits drin http://forum.fhem.de/index.php/topic,39070.msg316597.html#msg316597:

([07:30|8] and [Wg.Rolladen.timer] eq "on")
  (set Sz.Rolladen open)
  (set Az.Rolladen open)
  (set Wz.Rolladen.Tuer open)
  (set Wz.Rolladen.Fenster open)
  (set Kc.Rolladen.Tuer open)
  (set Kc.Rolladen.Fenster open)

attr <dein_doif_modul> do always
attr <dein_doif_modul> timerWithWait
attr <dein_doif_modul> wait 0,1.5,1.5,1.5,1.5,1.5


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Flexstarr

#85
.. dabei dachte ich, ich hätte den Thread komplett gelesen.
Besten Dank - werde ich später direkt testen!  8)

Gibt es ein Limit der Anzahl von "wait", die definiert werden dürfen?


([07:30|8] and [Wg.Rolladen.timer] eq "on")
#1 (set Sz.Rolladen open)
#2 (set Az.Rolladen open)
#3 (set Wz.Rolladen.Tuer open)
#4 (set Wz.Rolladen.Fenster open)
#5 (set Kc.Rolladen.Tuer open)
#6 (set Kc.Rolladen.Fenster open)
DOELSEIF ([8:30|7] and [Wg.Rolladen.timer] eq "on")
#7 (set Az.Rolladen open)
#8 (set Wz.Rolladen.Tuer open)
#9 (set Wz.Rolladen.Fenster open)
#10 (set Kc.Rolladen.Tuer open)
#11 (set Kc.Rolladen.Fenster open)
DOELSEIF ([11:15|7] and [Wg.Rolladen.timer] eq "on")
#12 (set Sz.Rolladen open)
DOELSEIF ([([Twilight.Koblenz:ss_weather]+1800)] and [Wg.Rolladen.timer] eq "on")
#13 (set Wz.Rolladen.Tuer pos 90)
#14 (set Wz.Rolladen.Fenster pos 80)
#14 (set Kc.Rolladen.Tuer pos 90)
#15 (set Kc.Rolladen.Fenster pos 80)
#16 (set Az.Rolladen pos 90)
#17 (set Sz.Rolladen pos 90)


wait #1-6 verzögern, wenn das erste DOIF zutrifft, wait #7-11 wenn das erste DOELSEIF eintrifft etc.
Die Verzögerungszeiten gelten dann immer ab dem DOIF / DOELSEIF ?
#1, #7, #12 und #13 müssen nicht verzögern, daher dort eine 0 ? Bei allen anderen dann 1.5 oder addiert sich irgendwo/wann die Zeit auf?
FHEM 5.8 @RPi2
CUL433, CUL868, JeeLink, Hamony Hub, Hue Bridge, ELV EnergieAmpel, IT Steckdosen, mehrere Homematic Teile..

Damian

Zitat von: Flexstarr am 06 August 2015, 14:07:40
.. dabei dachte ich, ich hätte den Thread komplett gelesen.
Besten Dank - werde ich später direkt testen!  8)

Gibt es ein Limit der Anzahl von "wait", die definiert werden dürfen?


([07:30|8] and [Wg.Rolladen.timer] eq "on")
#1 (set Sz.Rolladen open)
#2 (set Az.Rolladen open)
#3 (set Wz.Rolladen.Tuer open)
#4 (set Wz.Rolladen.Fenster open)
#5 (set Kc.Rolladen.Tuer open)
#6 (set Kc.Rolladen.Fenster open)
DOELSEIF ([8:30|7] and [Wg.Rolladen.timer] eq "on")
#7 (set Az.Rolladen open)
#8 (set Wz.Rolladen.Tuer open)
#9 (set Wz.Rolladen.Fenster open)
#10 (set Kc.Rolladen.Tuer open)
#11 (set Kc.Rolladen.Fenster open)
DOELSEIF ([11:15|7] and [Wg.Rolladen.timer] eq "on")
#12 (set Sz.Rolladen open)
DOELSEIF ([([Twilight.Koblenz:ss_weather]+1800)] and [Wg.Rolladen.timer] eq "on")
#13 (set Wz.Rolladen.Tuer pos 90)
#14 (set Wz.Rolladen.Fenster pos 80)
#14 (set Kc.Rolladen.Tuer pos 90)
#15 (set Kc.Rolladen.Fenster pos 80)
#16 (set Az.Rolladen pos 90)
#17 (set Sz.Rolladen pos 90)


wait #1-6 verzögern, wenn das erste DOIF zutrifft, wait #7-11 wenn das erste DOELSEIF eintrifft etc.
Die Verzögerungszeiten gelten dann immer ab dem DOIF / DOELSEIF ?
#1, #7, #12 und #13 müssen nicht verzögern, daher dort eine 0 ? Bei allen anderen dann 1.5 oder addiert sich irgendwo/wann die Zeit auf?

Es gibt kein Limit:

Die Syntax lautet:

wait <wait1>,<wait2>,<wait3>,<wait4>,<wait5>,<wait6>:<wait7>,<wait8>,<wait9>...

waits zwischen doif, doelsif usw. werden wie bisher mit Doppelpunkt getrennt. Innerhalb eines Falls dann mit Komma.

Die Waitangaben gelten wie beim Sleep immer bezogen auf den Vorgänger. Man muss also nichts addieren, wie bei mehreren at-Verzögerungen hintereinander.

Keine Verzögerungen werden mit 0 oder einfach durch auslassen definiert z. B. 3,,4,0,4:,4,1

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Flexstarr

Verstanden - Dankeschön!

Was genau bedeutet noch "4:" als Verzögerung in deinem Beispiel?
FHEM 5.8 @RPi2
CUL433, CUL868, JeeLink, Hamony Hub, Hue Bridge, ELV EnergieAmpel, IT Steckdosen, mehrere Homematic Teile..

Damian

Zitat von: Flexstarr am 06 August 2015, 23:05:52
Verstanden - Dankeschön!

Was genau bedeutet noch "4:" als Verzögerung in deinem Beispiel?

Ich glaube ich muss langsam die Doku fertigstellen.

Es war nur ein Beispiel und hatte nichts mit deinem Fall zu tun.

Wie bereits erklärt, ist Doppelpunkt, wie bisher der Trenner zwischen den Fällen. Also sind es 4 Sekunden Verzögerung des letzten Kommandos im ersten Fall.

Und noch ein Beispiel:

define di DOIF (Bedingung1)
(set ...) # soll nicht verzögert werden
(set ...) # soll um 1 Sekunde verzögert werden
DOELSE
(set ...) # soll um 2 Sekunden verzögert werden
(set ...) # soll um 3 Sekunden verzögert werden

attr di wait 0,1:2,3


Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

moonsorrox

Zitat von: Damian am 06 August 2015, 15:28:04
Keine Verzögerungen werden mit 0 oder einfach durch auslassen definiert z. B. 3,,4,0,4:,4,1
Frage dazu hier ist hinter dem Doppelpunkt ein Komma

bei deinem letzten Beitrag ist im Attribut dieses ohne Komma angegeben, ist das OK..?
Zitatattr di wait 0,1:2,3

Frage nur wegen dem Verstehen... ;)

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM