Wakeup Licht mit Shelly Dimmer

Begonnen von psycho160, 27 Januar 2020, 09:49:25

Vorheriges Thema - Nächstes Thema

psycho160

Hi,
bin etwas von Homematic verwöhnt, da konnte man [Ziel-Helligkeit] [wie lange Ein] [Zeitdauer zum anfahren der Zielhelligkeit] mit einem set an den Aktor übergeben und somit ein langsames "hochdimmen" in der Früh als Wecker verwenden.

Da ich nun aber Homematic duch Shelly abgelöst habe (was übrigens top funtioniert), ist das der einzige Punkt woch ich nachbessern muss. Dazu bräuchte ich eure Ratschläge:

Der Shelly Dimmer kann nur einen Helligkeitswert entgegennehmen und fährt diesen direkt an. Jetzt dacht ich mir ich schicke einfach alle paar Sekunden einen neuen Wert an den Dimmer und erreiche somit auch ein ganz langsames hochdimmen.

Die Frage ist nun, wie das in FHEM am schönsten gelöst werden kann. Entweder über 20 oder 30 "at" Befehle alle 5 Sekunden, oder über eine Schleife (dan blockiert FHEM vermutlich aber...)
Oder macht ein "at" um z.B 06:00 in der Früh sinn, das ein weiters "at" mit +*00:00:05 anlegt was mir die Helligkeit erhöht?

Was meint ihr? Bitte um Tipps
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

#1
Zitat von: psycho160 am 27 Januar 2020, 09:49:25
Hi,
bin etwas von Homematic verwöhnt, da konnte man [Ziel-Helligkeit] [wie lange Ein] [Zeitdauer zum anfahren der Zielhelligkeit] mit einem set an den Aktor übergeben und somit ein langsames "hochdimmen" in der Früh als Wecker verwenden.

Da ich nun aber Homematic duch Shelly abgelöst habe (was übrigens top funtioniert), ist das der einzige Punkt woch ich nachbessern muss. Dazu bräuchte ich eure Ratschläge:

Der Shelly Dimmer kann nur einen Helligkeitswert entgegennehmen und fährt diesen direkt an. Jetzt dacht ich mir ich schicke einfach alle paar Sekunden einen neuen Wert an den Dimmer und erreiche somit auch ein ganz langsames hochdimmen.

Die Frage ist nun, wie das in FHEM am schönsten gelöst werden kann. Entweder über 20 oder 30 "at" Befehle alle 5 Sekunden, oder über eine Schleife (dan blockiert FHEM vermutlich aber...)
Oder macht ein "at" um z.B 06:00 in der Früh sinn, das ein weiters "at" mit +*00:00:05 anlegt was mir die Helligkeit erhöht?

Was meint ihr? Bitte um Tipps

wie wird die helligkeit gesetzt bei shelly ( habe ich nicht in benutzung ) ? mit set pct ... ?

gruss Byte09

edit: wenn es mit set pct XXX ansprechbar ist könntest du angehägtes MSwitch versuchen.

dort müsstest du nur das 'Auslösendes Gerät' auf den shelly ändern und mit 'trigger speichern' bestätigen. Danach sollte es bereits funtionieren und ist über alexa ansprechbar ( falls vorhanden ) .

wenn das attribut 'genericDeviceType' bei di nicht global vorhanden ist ( alexa ) müsstest du dieses aus der definition nehman, sonst wird es beim einspielen einen fehler geben.

Dieses solltenicht bei Homematic Komponenten eingesetzt werden ( Funklast - Beschränkung )

gruss Byte09

defmod Slowdimmer MSwitch HUEGroup0 # MSwitch_Self FreeCmd
attr Slowdimmer userattr setcmd
attr Slowdimmer MSwitch_Comments 0
attr Slowdimmer MSwitch_Debug 0
attr Slowdimmer MSwitch_DeleteCMDs automatic
attr Slowdimmer MSwitch_Delete_Delays 1
attr Slowdimmer MSwitch_Event_Id_Distributor MSwitch_Self:pct:.*=>cmd1 ID 1\
MSwitch_Self:stop.*=>cmd1 ID 3\
^pct:.*=>cmd1 ID 2\

attr Slowdimmer MSwitch_Eventhistory 10
attr Slowdimmer MSwitch_Expert 1
attr Slowdimmer MSwitch_Extensions 0
attr Slowdimmer MSwitch_Help 0
attr Slowdimmer MSwitch_Ignore_Types "TYPE=(.*):s=[ATTR:$SELF:setcmd]"
attr Slowdimmer MSwitch_Include_Devicecmds 1
attr Slowdimmer MSwitch_Include_MSwitchcmds 0
attr Slowdimmer MSwitch_Include_Webcmds 0
attr Slowdimmer MSwitch_Inforoom MSwitch
attr Slowdimmer MSwitch_Language DE
attr Slowdimmer MSwitch_Lock_Quickedit 1
attr Slowdimmer MSwitch_Mode Full
attr Slowdimmer MSwitch_Selftrigger_always 1
attr Slowdimmer MSwitch_Startdelay 10
attr Slowdimmer MSwitch_generate_Events 0
attr Slowdimmer alexaName Slowdimmer
attr Slowdimmer devStateIcon {     my $state    = ReadingsVal( $name, "akt_driving", "" );;     my $statepct = ReadingsVal( $name, "pct",         0 );; $statepct = 0 if  ReadingsVal( $name, "state",0 ) eq "off";;      return '<div><img src="/fhem/images/default/dimup.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-up" );;     return '<div><img src="/fhem/images/default/dimdown.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-down" );;     return '<div><img src="/fhem/images/default/on.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^100$)/ );;     return '<div><img src="/fhem/images/default/dim56%.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^[0-9]{3}|[0-9]{2}|[1-9]{1}$)/ );;     return '<div><img src="/fhem/images/default/off.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^00|0$)/ );; }
attr Slowdimmer eventMap /stop on:dimming-stop/
attr Slowdimmer genericDeviceType light
attr Slowdimmer readingList autostop pct target_is intervall_time intervall_percent targ_next target_ewrartet akt_driving stop
attr Slowdimmer room 01_Test->Slowdimmer,alexa
attr Slowdimmer setList on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop
attr Slowdimmer setcmd pct
attr Slowdimmer webCmd on:off:dimming-stop:pct:intervall_time:intervall_percent:autostop

setstate Slowdimmer on
setstate Slowdimmer 2019-10-26 18:06:17 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,FreeCmd-AbsCmd3,FreeCmd-AbsCmd4,MSwitch_Self-AbsCmd1,MSwitch_Self-AbsCmd2,MSwitch_Self-AbsCmd3
setstate Slowdimmer 2020-01-27 10:06:33 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]my#[sp]$driving#[sp]=#[sp]"[$SELF#[dp]akt_driving]"#[se]#[nl]my#[sp]$targis#[sp]=#[sp]ReadingsNum($device#[ko]"pct"#[ko]"0")#[se]#[sp]#[nl]my#[sp]$targsoll#[sp]=#[sp]"[$SELF#[dp]pct]"#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"state"#[ko]"on"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[sp]{$targsoll#[sp]=#[sp]"[$SELF#[dp]EVTPART3]"#[se]}#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[nl]{#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming_none"#[se]#[nl]}#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"$targis"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"targis#[sp]$targis"#[sp])#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"targsoll#[sp]$targsoll"#[sp])#[se]#[nl]#[nl]#[nl]my#[sp]$step#[sp]=#[sp]"[$SELF#[dp]intervall_percent]"#[se]#[nl]my#[sp]$targ_cmd#[sp]=#[sp]AttrVal(#[sp]"$SELF"#[ko]#[sp]'setcmd'#[ko]#[sp]'pct'#[sp])#[se]#[sp]#[nl]my#[sp]$targnext#[sp]=#[sp]$targsoll#[se]#[nl]my#[sp]$targerwartet#[sp]=#[sp]$targsoll#[se]#[nl]#[nl]if#[sp]($targis#[sp]<#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis+$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext+$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]>#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-up"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-up"#[se]#[nl]#[nl]#[nl]#[sp]}#[nl]elsif#[sp]($targis#[sp]>#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis-$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext-$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]<#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-down"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-down"#[se]#[nl]#[sp]}#[nl]#[nl]$targnext#[sp]=#[sp]100#[sp]if#[sp]$targnext#[sp]>#[sp]100#[se]#[nl]$targnext#[sp]=#[sp]0#[sp]if#[sp]$targnext#[sp]<#[sp]0#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"$targnext"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_ewrartet"#[ko]"$targerwartet#[sp]"#[ko]#[sp]1#[sp])#[se]#[nl]fhem("set#[sp]$device#[sp]$targ_cmd#[sp]$targnext")#[sp]#[se]#[nl]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"set#[sp]$device#[sp]$targ_cmd#[sp]$targnext"#[sp])#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"------------------"#[sp])#[se]#[nl]#[nl]#[nl]return#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]}#[nl]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_next]#[sp]ne#[sp][$SELF#[dp]EVTPART3]#[sp]AND#[sp][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]2#[NF]#[NF]0#[NF]0#[NF]4#[NF]1#[ND]FreeCmd-AbsCmd3#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[sp]#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]#readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]3#[NF]#[NF]0#[NF]0#[NF]5#[NF]1#[ND]FreeCmd-AbsCmd4#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]on")#[sp]#[se]#[nl]}#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]off")#[sp]#[se]#[nl]}#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]no_action#[NF]ID#[sp]1#[NF]#[NF]delay2#[NF]delay1#[NF][$SELF#[dp]intervall_time]#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_is]#[sp]ne#[sp][$SELF#[dp]pct]#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[ND]MSwitch_Self-AbsCmd2#[NF]wait#[NF]no_action#[NF][$SELF#[dp]intervall_time]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"off"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd3#[NF]wait#[NF]no_action#[NF]0.5#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1
setstate Slowdimmer 2020-01-27 10:08:19 .Device_Events MSwitch_Self:pct:0#[tr]MSwitch_Self:pct:93#[tr]MSwitch_Self:stop:on#[tr]MSwitch_Self:pct:100
setstate Slowdimmer 2019-10-11 15:22:02 .First_init done
setstate Slowdimmer 2019-10-26 17:56:07 .Trigger_cmd_off no_trigger
setstate Slowdimmer 2019-10-26 17:56:07 .Trigger_cmd_on .*
setstate Slowdimmer 2020-01-27 10:03:37 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(pct#[pt]*)|(stop#[pt]*)/
setstate Slowdimmer 2019-10-26 17:56:07 .Trigger_off no_trigger
setstate Slowdimmer 2019-10-26 17:56:07 .Trigger_on no_trigger
setstate Slowdimmer 2020-01-27 10:03:37 .Trigger_time
setstate Slowdimmer 2019-10-11 15:22:02 .V_Check V2.00
setstate Slowdimmer 2019-10-13 07:18:26 .sortby show
setstate Slowdimmer 2020-01-27 10:08:19 EVENT MSwitch_Self:stop:on
setstate Slowdimmer 2020-01-27 10:08:19 EVTFULL MSwitch_Self:stop:on
setstate Slowdimmer 2020-01-27 10:08:19 EVTPART1 MSwitch_Self
setstate Slowdimmer 2020-01-27 10:08:19 EVTPART2 stop
setstate Slowdimmer 2020-01-27 10:08:19 EVTPART3 on
setstate Slowdimmer 2020-01-27 10:03:37 Trigger_device HUEGroup0
setstate Slowdimmer 2019-10-26 17:56:07 Trigger_log on
setstate Slowdimmer 2020-01-27 10:08:19 akt_driving dimming_none
setstate Slowdimmer 2019-10-29 16:53:26 autostop on
setstate Slowdimmer 2019-11-03 13:34:38 intervall_percent 5
setstate Slowdimmer 2020-01-27 10:07:57 intervall_time 00:00:02
setstate Slowdimmer 2020-01-27 10:08:19 last_activation_by event
setstate Slowdimmer 2020-01-27 10:08:19 last_cmd 1
setstate Slowdimmer 2020-01-27 10:08:19 last_event MSwitch_Self:stop:on
setstate Slowdimmer 2020-01-27 10:08:19 last_exec_cmd   {fhem("set Slowdimmer del_delays") ;;readingsSingleUpdate( $hash, "pct","45", 1 );;readingsSingleUpd....
setstate Slowdimmer 2020-01-27 10:08:19 pct 45
setstate Slowdimmer 2020-01-27 10:08:18 state on
setstate Slowdimmer 2020-01-27 10:08:19 stop on
setstate Slowdimmer 2019-10-13 08:45:04 stop.*
setstate Slowdimmer 2020-01-27 10:08:18 target_ewrartet 50
setstate Slowdimmer 2020-01-27 10:08:19 target_is 45
setstate Slowdimmer 2020-01-27 10:08:18 target_next 45



psycho160

Zitatwie wird die helligkeit gesetzt bei shelly ( habe ich nicht in benutzung ) ? mit set pct ... ?

ja genau so ist es.

Danke für den Tipp, das muss ich mir mal genauer ansehen, Mswitch sagt mir jetzt gar nix  ::)
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 27 Januar 2020, 10:38:59
ja genau so ist es.

Danke für den Tipp, das muss ich mir mal genauer ansehen, Mswitch sagt mir jetzt gar nix  ::)

dann sollte er so wie er ist funktionieren. rawdefinition einspielen , device ändern , fertig .
hoffe ich  ;)

gruss Byte09

psycho160

Zitat von: Byte09 am 27 Januar 2020, 10:41:13
dann sollte er so wie er ist funktionieren. rawdefinition einspielen , device ändern , fertig .
hoffe ich  ;)

gruss Byte09

ok danke, probiere ich. eine frage noch dazu. wo genau in deinem code wird definiert welche zielhelligkeit, und in welchen schritten diese angefahren wird?
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 27 Januar 2020, 10:44:11
ok danke, probiere ich. eine frage noch dazu. wo genau in deinem code wird definiert welche zielhelligkeit, und in welchen schritten diese angefahren wird?

siehst du wenn du es eingespielt hast .

gruss Byte09

edit: bitte an der rawdefinition nichsts ändern. MSwitch ist für eine Konfiguration komplett über webinterface ausgelegt.

psycho160

hab ich eingespielt, tut sich aber noch nix. muss mich da mal spielen

EDIT:
Das schreibt er noch
ACHTUNG: Der Safemodus hat eine Endlosschleife erkannt, welche zum Fhemabsturz führen könnte.
Dieses Device wurde automatisch deaktiviert ( ATTR 'disable') !

Was mir noch aufgefallen ist, pct 0 geht bei shelly nicht, 1 ist das mindeste
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 27 Januar 2020, 11:01:52
hab ich eingespielt, tut sich aber noch nix. muss mich da mal spielen

EDIT:
Das schreibt er noch
ACHTUNG: Der Safemodus hat eine Endlosschleife erkannt, welche zum Fhemabsturz führen könnte.
Dieses Device wurde automatisch deaktiviert ( ATTR 'disable') !

Was mir noch aufgefallen ist, pct 0 geht bei shelly nicht, 1 ist das mindeste

ok , das device hat sich abgeschaltet - da es eine endlosschleife erkannt hat. zeig mir bitte mal einen screenshot des gesamten devices.

gruss byte09

psycho160


defmod Slowdimmer MSwitch LD_SZ # MSwitch_Self FreeCmd
attr Slowdimmer userattr setcmd
attr Slowdimmer MSwitch_Comments 0
attr Slowdimmer MSwitch_Debug 0
attr Slowdimmer MSwitch_DeleteCMDs automatic
attr Slowdimmer MSwitch_Delete_Delays 1
attr Slowdimmer MSwitch_Event_Id_Distributor MSwitch_Self:pct:.*=>cmd1 ID 1\
MSwitch_Self:stop.*=>cmd1 ID 3\
^pct:.*=>cmd1 ID 2\

attr Slowdimmer MSwitch_Eventhistory 10
attr Slowdimmer MSwitch_Expert 1
attr Slowdimmer MSwitch_Extensions 0
attr Slowdimmer MSwitch_Help 0
attr Slowdimmer MSwitch_Ignore_Types "TYPE=(.*):s=[ATTR:$SELF:setcmd]"
attr Slowdimmer MSwitch_Include_Devicecmds 1
attr Slowdimmer MSwitch_Include_MSwitchcmds 0
attr Slowdimmer MSwitch_Include_Webcmds 0
attr Slowdimmer MSwitch_Inforoom MSwitch
attr Slowdimmer MSwitch_Language DE
attr Slowdimmer MSwitch_Lock_Quickedit 1
attr Slowdimmer MSwitch_Mode Full
attr Slowdimmer MSwitch_Safemode 1
attr Slowdimmer MSwitch_Selftrigger_always 1
attr Slowdimmer MSwitch_Startdelay 10
attr Slowdimmer MSwitch_generate_Events 0
attr Slowdimmer alexaName Slowdimmer
attr Slowdimmer devStateIcon {     my $state    = ReadingsVal( $name, "akt_driving", "" );;     my $statepct = ReadingsVal( $name, "pct",         0 );; $statepct = 0 if  ReadingsVal( $name, "state",0 ) eq "off";;      return '<div><img src="/fhem/images/default/dimup.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-up" );;     return '<div><img src="/fhem/images/default/dimdown.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-down" );;     return '<div><img src="/fhem/images/default/on.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^100$)/ );;     return '<div><img src="/fhem/images/default/dim56%.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^[0-9]{3}|[0-9]{2}|[1-9]{1}$)/ );;     return '<div><img src="/fhem/images/default/off.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^00|0$)/ );; }
attr Slowdimmer disable 1
attr Slowdimmer eventMap /stop on:dimming-stop/
attr Slowdimmer genericDeviceType light
attr Slowdimmer readingList autostop pct target_is intervall_time intervall_percent targ_next target_ewrartet akt_driving stop
attr Slowdimmer room 01_Test->Slowdimmer,alexa
attr Slowdimmer setList on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop
attr Slowdimmer setcmd pct
attr Slowdimmer webCmd on:off:dimming-stop:pct:intervall_time:intervall_percent:autostop

setstate Slowdimmer on
setstate Slowdimmer 2020-01-27 10:47:24 .Device_Affected no_device
setstate Slowdimmer 2020-01-27 10:06:33 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]my#[sp]$driving#[sp]=#[sp]"[$SELF#[dp]akt_driving]"#[se]#[nl]my#[sp]$targis#[sp]=#[sp]ReadingsNum($device#[ko]"pct"#[ko]"0")#[se]#[sp]#[nl]my#[sp]$targsoll#[sp]=#[sp]"[$SELF#[dp]pct]"#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"state"#[ko]"on"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[sp]{$targsoll#[sp]=#[sp]"[$SELF#[dp]EVTPART3]"#[se]}#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[nl]{#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming_none"#[se]#[nl]}#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"$targis"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"targis#[sp]$targis"#[sp])#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"targsoll#[sp]$targsoll"#[sp])#[se]#[nl]#[nl]#[nl]my#[sp]$step#[sp]=#[sp]"[$SELF#[dp]intervall_percent]"#[se]#[nl]my#[sp]$targ_cmd#[sp]=#[sp]AttrVal(#[sp]"$SELF"#[ko]#[sp]'setcmd'#[ko]#[sp]'pct'#[sp])#[se]#[sp]#[nl]my#[sp]$targnext#[sp]=#[sp]$targsoll#[se]#[nl]my#[sp]$targerwartet#[sp]=#[sp]$targsoll#[se]#[nl]#[nl]if#[sp]($targis#[sp]<#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis+$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext+$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]>#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-up"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-up"#[se]#[nl]#[nl]#[nl]#[sp]}#[nl]elsif#[sp]($targis#[sp]>#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis-$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext-$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]<#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-down"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-down"#[se]#[nl]#[sp]}#[nl]#[nl]$targnext#[sp]=#[sp]100#[sp]if#[sp]$targnext#[sp]>#[sp]100#[se]#[nl]$targnext#[sp]=#[sp]0#[sp]if#[sp]$targnext#[sp]<#[sp]0#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"$targnext"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_ewrartet"#[ko]"$targerwartet#[sp]"#[ko]#[sp]1#[sp])#[se]#[nl]fhem("set#[sp]$device#[sp]$targ_cmd#[sp]$targnext")#[sp]#[se]#[nl]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"set#[sp]$device#[sp]$targ_cmd#[sp]$targnext"#[sp])#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"------------------"#[sp])#[se]#[nl]#[nl]#[nl]return#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]}#[nl]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_next]#[sp]ne#[sp][$SELF#[dp]EVTPART3]#[sp]AND#[sp][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]2#[NF]#[NF]0#[NF]0#[NF]4#[NF]1#[ND]FreeCmd-AbsCmd3#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[sp]#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]#readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]3#[NF]#[NF]0#[NF]0#[NF]5#[NF]1#[ND]FreeCmd-AbsCmd4#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]on")#[sp]#[se]#[nl]}#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]off")#[sp]#[se]#[nl]}#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]no_action#[NF]ID#[sp]1#[NF]#[NF]delay2#[NF]delay1#[NF][$SELF#[dp]intervall_time]#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_is]#[sp]ne#[sp][$SELF#[dp]pct]#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[ND]MSwitch_Self-AbsCmd2#[NF]wait#[NF]no_action#[NF][$SELF#[dp]intervall_time]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"off"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd3#[NF]wait#[NF]no_action#[NF]0.5#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1
setstate Slowdimmer 2020-01-27 10:47:24 .Device_Events no_trigger
setstate Slowdimmer 2020-01-27 10:47:24 .First_init done
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_cmd_off no_trigger
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_cmd_on no_trigger
setstate Slowdimmer 2020-01-27 10:03:37 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(pct#[pt]*)|(stop#[pt]*)/
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_off no_trigger
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_on no_trigger
setstate Slowdimmer 2020-01-27 10:03:37 .Trigger_time
setstate Slowdimmer 2020-01-27 10:47:24 .V_Check V2.00
setstate Slowdimmer 2019-10-13 07:18:26 .sortby show
setstate Slowdimmer 2020-01-27 10:57:03 EVENT pct:1
setstate Slowdimmer 2020-01-27 10:57:03 EVTFULL LD_SZ:pct:1
setstate Slowdimmer 2020-01-27 10:57:03 EVTPART1 LD_SZ
setstate Slowdimmer 2020-01-27 10:57:03 EVTPART2 pct
setstate Slowdimmer 2020-01-27 10:57:03 EVTPART3 1
setstate Slowdimmer 2020-01-27 10:57:10 Safemode on
setstate Slowdimmer 2020-01-27 10:47:24 Trigger_device LD_SZ
setstate Slowdimmer 2020-01-27 10:47:24 Trigger_log off
setstate Slowdimmer 2020-01-27 10:08:19 akt_driving dimming_none
setstate Slowdimmer 2020-01-27 10:53:24 autostop on
setstate Slowdimmer 2020-01-27 10:59:59 intervall_percent 50
setstate Slowdimmer 2020-01-27 10:57:45 intervall_time 00:01:00
setstate Slowdimmer 2020-01-27 10:57:10 last_activation_by event
setstate Slowdimmer 2020-01-27 10:08:19 last_cmd 1
setstate Slowdimmer 2020-01-27 10:57:03 last_event pct:1
setstate Slowdimmer 2020-01-27 10:08:19 last_exec_cmd {fhem("set Slowdimmer del_delays") ;;readingsSingleUpdate( $hash, "pct","45", 1 );;readingsSingleUpd....
setstate Slowdimmer 2020-01-27 10:58:56 pct 23
setstate Slowdimmer 2020-01-27 10:53:35 state on
setstate Slowdimmer 2020-01-27 10:08:19 stop on
setstate Slowdimmer 2019-10-13 08:45:04 stop.*
setstate Slowdimmer 2020-01-27 10:08:18 target_ewrartet 50
setstate Slowdimmer 2020-01-27 10:08:19 target_is 45
setstate Slowdimmer 2020-01-27 10:08:18 target_next 45
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 27 Januar 2020, 11:10:18

defmod Slowdimmer MSwitch LD_SZ # MSwitch_Self FreeCmd
attr Slowdimmer userattr setcmd
attr Slowdimmer MSwitch_Comments 0
attr Slowdimmer MSwitch_Debug 0
attr Slowdimmer MSwitch_DeleteCMDs automatic
attr Slowdimmer MSwitch_Delete_Delays 1
attr Slowdimmer MSwitch_Event_Id_Distributor MSwitch_Self:pct:.*=>cmd1 ID 1\
MSwitch_Self:stop.*=>cmd1 ID 3\
^pct:.*=>cmd1 ID 2\

attr Slowdimmer MSwitch_Eventhistory 10
attr Slowdimmer MSwitch_Expert 1
attr Slowdimmer MSwitch_Extensions 0
attr Slowdimmer MSwitch_Help 0
attr Slowdimmer MSwitch_Ignore_Types "TYPE=(.*):s=[ATTR:$SELF:setcmd]"
attr Slowdimmer MSwitch_Include_Devicecmds 1
attr Slowdimmer MSwitch_Include_MSwitchcmds 0
attr Slowdimmer MSwitch_Include_Webcmds 0
attr Slowdimmer MSwitch_Inforoom MSwitch
attr Slowdimmer MSwitch_Language DE
attr Slowdimmer MSwitch_Lock_Quickedit 1
attr Slowdimmer MSwitch_Mode Full
attr Slowdimmer MSwitch_Safemode 1
attr Slowdimmer MSwitch_Selftrigger_always 1
attr Slowdimmer MSwitch_Startdelay 10
attr Slowdimmer MSwitch_generate_Events 0
attr Slowdimmer alexaName Slowdimmer
attr Slowdimmer devStateIcon {     my $state    = ReadingsVal( $name, "akt_driving", "" );;     my $statepct = ReadingsVal( $name, "pct",         0 );; $statepct = 0 if  ReadingsVal( $name, "state",0 ) eq "off";;      return '<div><img src="/fhem/images/default/dimup.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-up" );;     return '<div><img src="/fhem/images/default/dimdown.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-down" );;     return '<div><img src="/fhem/images/default/on.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^100$)/ );;     return '<div><img src="/fhem/images/default/dim56%.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^[0-9]{3}|[0-9]{2}|[1-9]{1}$)/ );;     return '<div><img src="/fhem/images/default/off.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^00|0$)/ );; }
attr Slowdimmer disable 1
attr Slowdimmer eventMap /stop on:dimming-stop/
attr Slowdimmer genericDeviceType light
attr Slowdimmer readingList autostop pct target_is intervall_time intervall_percent targ_next target_ewrartet akt_driving stop
attr Slowdimmer room 01_Test->Slowdimmer,alexa
attr Slowdimmer setList on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop
attr Slowdimmer setcmd pct
attr Slowdimmer webCmd on:off:dimming-stop:pct:intervall_time:intervall_percent:autostop

setstate Slowdimmer on
setstate Slowdimmer 2020-01-27 10:47:24 .Device_Affected no_device
setstate Slowdimmer 2020-01-27 10:06:33 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]my#[sp]$driving#[sp]=#[sp]"[$SELF#[dp]akt_driving]"#[se]#[nl]my#[sp]$targis#[sp]=#[sp]ReadingsNum($device#[ko]"pct"#[ko]"0")#[se]#[sp]#[nl]my#[sp]$targsoll#[sp]=#[sp]"[$SELF#[dp]pct]"#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"state"#[ko]"on"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[sp]{$targsoll#[sp]=#[sp]"[$SELF#[dp]EVTPART3]"#[se]}#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[nl]{#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming_none"#[se]#[nl]}#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"$targis"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"targis#[sp]$targis"#[sp])#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"targsoll#[sp]$targsoll"#[sp])#[se]#[nl]#[nl]#[nl]my#[sp]$step#[sp]=#[sp]"[$SELF#[dp]intervall_percent]"#[se]#[nl]my#[sp]$targ_cmd#[sp]=#[sp]AttrVal(#[sp]"$SELF"#[ko]#[sp]'setcmd'#[ko]#[sp]'pct'#[sp])#[se]#[sp]#[nl]my#[sp]$targnext#[sp]=#[sp]$targsoll#[se]#[nl]my#[sp]$targerwartet#[sp]=#[sp]$targsoll#[se]#[nl]#[nl]if#[sp]($targis#[sp]<#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis+$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext+$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]>#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-up"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-up"#[se]#[nl]#[nl]#[nl]#[sp]}#[nl]elsif#[sp]($targis#[sp]>#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis-$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext-$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]<#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-down"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-down"#[se]#[nl]#[sp]}#[nl]#[nl]$targnext#[sp]=#[sp]100#[sp]if#[sp]$targnext#[sp]>#[sp]100#[se]#[nl]$targnext#[sp]=#[sp]0#[sp]if#[sp]$targnext#[sp]<#[sp]0#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"$targnext"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_ewrartet"#[ko]"$targerwartet#[sp]"#[ko]#[sp]1#[sp])#[se]#[nl]fhem("set#[sp]$device#[sp]$targ_cmd#[sp]$targnext")#[sp]#[se]#[nl]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"set#[sp]$device#[sp]$targ_cmd#[sp]$targnext"#[sp])#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"------------------"#[sp])#[se]#[nl]#[nl]#[nl]return#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]}#[nl]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_next]#[sp]ne#[sp][$SELF#[dp]EVTPART3]#[sp]AND#[sp][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]2#[NF]#[NF]0#[NF]0#[NF]4#[NF]1#[ND]FreeCmd-AbsCmd3#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[sp]#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]#readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]3#[NF]#[NF]0#[NF]0#[NF]5#[NF]1#[ND]FreeCmd-AbsCmd4#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]on")#[sp]#[se]#[nl]}#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]off")#[sp]#[se]#[nl]}#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]no_action#[NF]ID#[sp]1#[NF]#[NF]delay2#[NF]delay1#[NF][$SELF#[dp]intervall_time]#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_is]#[sp]ne#[sp][$SELF#[dp]pct]#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[ND]MSwitch_Self-AbsCmd2#[NF]wait#[NF]no_action#[NF][$SELF#[dp]intervall_time]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"off"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd3#[NF]wait#[NF]no_action#[NF]0.5#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1
setstate Slowdimmer 2020-01-27 10:47:24 .Device_Events no_trigger
setstate Slowdimmer 2020-01-27 10:47:24 .First_init done
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_cmd_off no_trigger
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_cmd_on no_trigger
setstate Slowdimmer 2020-01-27 10:03:37 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(pct#[pt]*)|(stop#[pt]*)/
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_off no_trigger
setstate Slowdimmer 2020-01-27 10:47:24 .Trigger_on no_trigger
setstate Slowdimmer 2020-01-27 10:03:37 .Trigger_time
setstate Slowdimmer 2020-01-27 10:47:24 .V_Check V2.00
setstate Slowdimmer 2019-10-13 07:18:26 .sortby show
setstate Slowdimmer 2020-01-27 10:57:03 EVENT pct:1
setstate Slowdimmer 2020-01-27 10:57:03 EVTFULL LD_SZ:pct:1
setstate Slowdimmer 2020-01-27 10:57:03 EVTPART1 LD_SZ
setstate Slowdimmer 2020-01-27 10:57:03 EVTPART2 pct
setstate Slowdimmer 2020-01-27 10:57:03 EVTPART3 1
setstate Slowdimmer 2020-01-27 10:57:10 Safemode on
setstate Slowdimmer 2020-01-27 10:47:24 Trigger_device LD_SZ
setstate Slowdimmer 2020-01-27 10:47:24 Trigger_log off
setstate Slowdimmer 2020-01-27 10:08:19 akt_driving dimming_none
setstate Slowdimmer 2020-01-27 10:53:24 autostop on
setstate Slowdimmer 2020-01-27 10:59:59 intervall_percent 50
setstate Slowdimmer 2020-01-27 10:57:45 intervall_time 00:01:00
setstate Slowdimmer 2020-01-27 10:57:10 last_activation_by event
setstate Slowdimmer 2020-01-27 10:08:19 last_cmd 1
setstate Slowdimmer 2020-01-27 10:57:03 last_event pct:1
setstate Slowdimmer 2020-01-27 10:08:19 last_exec_cmd {fhem("set Slowdimmer del_delays") ;;readingsSingleUpdate( $hash, "pct","45", 1 );;readingsSingleUpd....
setstate Slowdimmer 2020-01-27 10:58:56 pct 23
setstate Slowdimmer 2020-01-27 10:53:35 state on
setstate Slowdimmer 2020-01-27 10:08:19 stop on
setstate Slowdimmer 2019-10-13 08:45:04 stop.*
setstate Slowdimmer 2020-01-27 10:08:18 target_ewrartet 50
setstate Slowdimmer 2020-01-27 10:08:19 target_is 45
setstate Slowdimmer 2020-01-27 10:08:18 target_next 45



es ist nicht komplett eingespielt. Hast du zeit und lust kurz zu telefonieren  - ist einfacher.

gruss Byte09

gestein

Hallo,

darf ich mich da anhängen?
Das würde mich auch interessieren.

Einfach den Code für den MSwitch in fhem eingespielen?
Oder hat sich ein Fehler eingeschlichen?

Danke im Voraus
lg, Gerhard

Byte09

Zitat von: gestein am 27 Januar 2020, 15:00:38
Hallo,

darf ich mich da anhängen?
Das würde mich auch interessieren.

Einfach den Code für den MSwitch in fhem eingespielen?
Oder hat sich ein Fehler eingeschlichen?

Danke im Voraus
lg, Gerhard

versuch es bitte einfach mal , bei mir gibt es kein problem , bei psycho160 schein er ihn nicht richtig einzuspielen.
wäre cool wenn du kurz bescheid gibst , ob es geht.

bitte code aus dem 2ten beitrag nutzen.

gruss Byte09

Byte09

PS:

die komlette rawdefinition muss in einem Rutsch eingespielt werden !

gruss Byte09

gestein

Hallo,

scheint zu funktionieren.
Wurde auf einem Rutsch eingespielt (bis auf Alexa, das ich nicht habe).

In einem setstate ist mir ein Rechtschreibfehler aufgefallen:
setstate Slowdimmer 2020-01-27 10:08:18 target_ewrartet 50

Aber das ist wahrscheinlich egal.

Jetzt noch den Shelly-Dimmer anschliessen und ausprobieren.
Das mach ich die nächsten Tage.

Danke. lg, Gerhard

psycho160

#14
Zitat von: Byte09 am 27 Januar 2020, 15:23:04
PS:

die komlette rawdefinition muss in einem Rutsch eingespielt werden !

gruss Byte09

hi, konnte dich leider noch nicht anrufen (Kinder...)
was mir aber aufgefallen ist, der Raw Import funtioniert nicht, genau genommen das setstate von Device_Affected_Details. Da du dort Perl Code drinn hast, kann ich mir nur vorstellen, dass es da zu einem Problem beim Import kommt. die cmd Felder sind bei mir jedenfalls leer... kannst du den Abschnitt aus deiner cfg direkt posten?
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 28 Januar 2020, 01:46:18
hi, konnte dich leider noch nicht anrufen (Kinder...)
was mir aber aufgefallen ist, der Raw Import funtioniert nicht, genau genommen das setstate von Device_Affected_Details. Da du dort Perl Code drinn hast, kann ich mir nur vorstellen, dass es da zu einem Problem beim Import kommt. die cmd Felder sind bei mir jedenfalls leer... kannst du den Abschnitt aus deiner cfg direkt posten?

verstehe ich nicht, warum der Import nicht funktioniert. Ich habe es auf 3 Sytsemen getestet ( davon eben eins nagelneu aufgesetzt ) und es funktioniert.

in welcher Version liegt MSwict bei dir vor ? siehst du in den Internals des Devices - auch wenn es nicht funktioniert. Es sollte 2.93 sein.

Ich kann die die CFG-Teile leider nicht schicken da Mswitch - Definitionen nicht komplett über die cfg laufen.

gruss Byte09

psycho160

ja hab 2.93.

Hab mich gestern noch gespielt und die Freecmds importieren können, jedoch bekom ich dann immer den fehler

PERL WARNING: Argument "on" isn't numeric in numeric lt (<) at (eval 3803) line 1.

Vermute das mir da noch Code fehlt der nicht importiert wird. Zumindest "on" und "off" schalten ging dann über das Slowdimmer device.
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 28 Januar 2020, 08:08:16
ja hab 2.93.

Hab mich gestern noch gespielt und die Freecmds importieren können, jedoch bekom ich dann immer den fehler

PERL WARNING: Argument "on" isn't numeric in numeric lt (<) at (eval 3803) line 1.

Vermute das mir da noch Code fehlt der nicht importiert wird. Zumindest "on" und "off" schalten ging dann über das Slowdimmer device.

geh bitte mal im device auf get Slowdimmer config.

in dem fenster ersetze bitte den code gegen diesen und drücke auf 'save'
#V 3.02 alpha
#VS V2.00
#S .sortby -> show
#S .V_Check -> V2.00
#S .Device_Affected -> FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,FreeCmd-AbsCmd3,FreeCmd-AbsCmd4,MSwitch_Self-AbsCmd1,MSwitch_Self-AbsCmd2,MSwitch_Self-AbsCmd3
#S .Trigger_cmd_off -> no_trigger
#S EVTPART1 -> MSwitch_Self
#S autostop -> on
#S EVTPART2 -> stop
#S akt_driving -> dimming_none
#S .First_init -> done
#S state -> on
#S target_next -> 45
#S .Device_Events -> MSwitch_Self:pct:0 MSwitch_Self:pct:93 MSwitch_Self:stop:on MSwitch_Self:pct:100
#S stop.* ->
#S last_activation_by -> event
#S intervall_time -> 00:00:02
#S .Trigger_cmd_on -> .*
#S EVENT -> MSwitch_Self:stop:on
#S Trigger_log -> on
#S EVTPART3 -> on
#S target_ewrartet -> 50
#S .Trigger_time ->
#S Trigger_device -> HUEGroup0
#S stop -> on
#S EVTFULL -> MSwitch_Self:stop:on
#S target_is -> 45
#S pct -> 45
#S last_cmd -> 1
#S .Device_Affected_Details -> FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{;;my $device = "[$SELF:Trigger_device]";;;my $driving = "[$SELF:akt_driving]";;;my $targis = ReadingsNum($device,"pct","0"); ;;my $targsoll = "[$SELF:pct]";;;;;readingsSingleUpdate( $hash, "state","on", 1 );;;;;;;if ($targsoll eq $targis ) {$targsoll = "[$SELF:EVTPART3]";};;;;if ($targsoll eq $targis );;{;;readingsSingleUpdate( $hash, "akt_driving","dimming_none", 1 ) if $driving ne "dimming_none";;;};;;;readingsSingleUpdate( $hash, "target_is","$targis", 1 );;;;;Log3( "test", 5, "targis $targis" );;;Log3( "test", 5, "targsoll $targsoll" );;;;;;;my $step = "[$SELF:intervall_percent]";;;my $targ_cmd = AttrVal( "$SELF", 'setcmd', 'pct' ); ;;my $targnext = $targsoll;;;my $targerwartet = $targsoll;;;;;if ($targis < $targsoll);; {;;  $targnext = $targis+$step;;;  $targerwartet =$targnext+$step;;;  $targnext = $targsoll if $targnext > $targsoll;;;;;  readingsSingleUpdate( $hash, "akt_driving","dimming-up", 1 ) if $driving ne "dimming-up";;;;;;; };;elsif ($targis > $targsoll);; {;;  $targnext = $targis-$step;;;  $targerwartet =$targnext-$step;;;  $targnext = $targsoll if $targnext < $targsoll;;;;;  readingsSingleUpdate( $hash, "akt_driving","dimming-down", 1 ) if $driving ne "dimming-down";;; };;;;$targnext = 100 if $targnext > 100;;;$targnext = 0 if $targnext < 0;;;;;readingsSingleUpdate( $hash, "target_next","$targnext", 1 );;;readingsSingleUpdate( $hash, "target_ewrartet","$targerwartet ", 1 );;;fhem("set $device $targ_cmd $targnext") ;;;;;Log3( "test", 5, "set $device $targ_cmd $targnext" );;;Log3( "test", 5, "------------------" );;;;;;;return;;;}#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]undefined#[NF]cmd#[NF]{;;fhem("set $SELF del_delays");;;readingsSingleUpdate( $hash, "pct","[$SELF:EVTPART3]", 1 );;;readingsSingleUpdate( $hash, "target_next","[$SELF:EVTPART3]", 1 );;;readingsSingleUpdate( $hash, "target_is","[$SELF:EVTPART3]", 1 );;;};;#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][$SELF:target_next] ne [$SELF:EVTPART3] AND [$SELF:autostop] eq "on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]2#[NF]#[NF]0#[NF]0#[NF]4#[NF]1#[ND]FreeCmd-AbsCmd3#[NF]undefined#[NF]cmd#[NF]{;;fhem("set $SELF del_delays") ;;;readingsSingleUpdate( $hash, "pct","[$SELF:target_next]", 1 );;;#readingsSingleUpdate( $hash, "target_next","[$SELF:EVTPART3]", 1 );;;readingsSingleUpdate( $hash, "target_is","[$SELF:target_next]", 1 );;;readingsSingleUpdate( $hash, "akt_driving","dimming_none", 1 );;;}#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]3#[NF]#[NF]0#[NF]0#[NF]5#[NF]1#[ND]FreeCmd-AbsCmd4#[NF]undefined#[NF]cmd#[NF]{;;my $device = "[$SELF:Trigger_device]";;;fhem("set $device on") ;;;}#[NF]{;;my $device = "[$SELF:Trigger_device]";;;fhem("set $device off") ;;;}#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]no_action#[NF]ID 1#[NF]#[NF]delay2#[NF]delay1#[NF][$SELF:intervall_time]#[NF]00:00:00#[NF][$SELF:target_is] ne [$SELF:pct]#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[ND]MSwitch_Self-AbsCmd2#[NF]wait#[NF]no_action#[NF][$SELF:intervall_time]#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][$SELF:autostop] eq "off"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd3#[NF]wait#[NF]no_action#[NF]0.5#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][$SELF:autostop] eq "on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1
#S .Trigger_on -> no_trigger
#S .Trigger_condition -> "$EVENT"#[sp]=#[ti]#[sp]m/(pct#[pt]*)|(stop#[pt]*)/
#S intervall_percent -> 5
#S .Trigger_off -> no_trigger
#S last_event -> MSwitch_Self:stop:on
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Ignore_Types -> "TYPE=(.*):s=[ATTR:$SELF:setcmd]"
#A MSwitch_Selftrigger_always -> 1
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Comments -> 0
#A alexaName -> Slowdimmer
#A MSwitch_Event_Id_Distributor -> MSwitch_Self:pct:.*=>cmd1 ID 1#[nl]MSwitch_Self:stop.*=>cmd1 ID 3#[nl]^pct:.*=>cmd1 ID 2#[nl]
#A setList -> on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop
#A MSwitch_Help -> 0
#A MSwitch_Expert -> 1
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Eventhistory -> 10
#A userattr -> setcmd
#A readingList -> autostop pct target_is intervall_time intervall_percent targ_next target_ewrartet akt_driving stop
#A MSwitch_DeleteCMDs -> automatic
#A MSwitch_Language -> DE
#A eventMap -> /stop on:dimming-stop/
#A setcmd -> pct
#A MSwitch_Extensions -> 0
#A room -> 01_Test->Slowdimmer,alexa
#A MSwitch_Debug -> 0
#A MSwitch_Startdelay -> 10
#A devStateIcon -> {     my $state    = ReadingsVal( $name, "akt_driving", "" );     my $statepct = ReadingsVal( $name, "pct",         0 ); $statepct = 0 if  ReadingsVal( $name, "state",0 ) eq "off";      return '<div><img src="/fhem/images/default/dimup.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-up" );     return '<div><img src="/fhem/images/default/dimdown.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-down" );     return '<div><img src="/fhem/images/default/on.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^100$)/ );     return '<div><img src="/fhem/images/default/dim56%.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^[0-9]{3}|[0-9]{2}|[1-9]{1}$)/ );     return '<div><img src="/fhem/images/default/off.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^00|0$)/ ); }
#A webCmd -> on:off:dimming-stop:pct:intervall_time:intervall_percent:autostop
#A MSwitch_generate_Events -> 0


... schau dann bitte mal ob er alles hat.

gruss Byte09

psycho160

Hab ich gemacht. Der beriech mit den kommandos ist dann gar nicht mehr vorhanden. im log dann:

2020.01.28 08:35:28.383 3: bad reading name stop.* (contains not A-Za-z/\d_\.- or is too long)
2020.01.28 08:35:37.990 1: PERL WARNING: Use of uninitialized value $errors in pattern match (m//) at ./FHEM/98_MSwitch.pm line 4294.
2020.01.28 08:35:38.255 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 11315.
2020.01.28 08:39:33.541 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 11260.
2020.01.28 08:39:33.542 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/98_MSwitch.pm line 11265.
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

#19
Zitat von: psycho160 am 28 Januar 2020, 08:42:17
Hab ich gemacht. Der beriech mit den kommandos ist dann gar nicht mehr vorhanden. im log dann:

2020.01.28 08:35:28.383 3: bad reading name stop.* (contains not A-Za-z/\d_\.- or is too long)
2020.01.28 08:35:37.990 1: PERL WARNING: Use of uninitialized value $errors in pattern match (m//) at ./FHEM/98_MSwitch.pm line 4294.
2020.01.28 08:35:38.255 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 11315.
2020.01.28 08:39:33.541 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 11260.
2020.01.28 08:39:33.542 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/98_MSwitch.pm line 11265.


ok , ich sehe da gerade was und befürchte schlimmes.

kannst du bitte mal im device global das attribut 'featurelevel' auf '5.9' stellen und das ganze dann nochmal versuchen ?


und diese raw config benutzen:

#V 3.02 alpha
#VS V2.00
#S .sortby -> show
#S .V_Check -> V2.00
#S .Device_Affected -> FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,FreeCmd-AbsCmd3,FreeCmd-AbsCmd4,MSwitch_Self-AbsCmd1,MSwitch_Self-AbsCmd2,MSwitch_Self-AbsCmd3
#S .Trigger_cmd_off -> no_trigger
#S EVTPART1 -> MSwitch_Self
#S autostop -> on
#S EVTPART2 -> stop
#S akt_driving -> dimming_none
#S .First_init -> done
#S state -> on
#S target_next -> 45
#S .Device_Events -> MSwitch_Self:pct:0 MSwitch_Self:pct:93 MSwitch_Self:stop:on MSwitch_Self:pct:100
#S last_activation_by -> event
#S intervall_time -> 00:00:02
#S .Trigger_cmd_on -> .*
#S EVENT -> MSwitch_Self:stop:on
#S Trigger_log -> on
#S EVTPART3 -> on
#S target_ewrartet -> 50
#S .Trigger_time ->
#S Trigger_device -> HUEGroup0
#S stop -> on
#S EVTFULL -> MSwitch_Self:stop:on
#S target_is -> 45
#S pct -> 45
#S last_cmd -> 1
#S .Device_Affected_Details -> FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{;;my $device = "[$SELF:Trigger_device]";;;my $driving = "[$SELF:akt_driving]";;;my $targis = ReadingsNum($device,"pct","0"); ;;my $targsoll = "[$SELF:pct]";;;;;readingsSingleUpdate( $hash, "state","on", 1 );;;;;;;if ($targsoll eq $targis ) {$targsoll = "[$SELF:EVTPART3]";};;;;if ($targsoll eq $targis );;{;;readingsSingleUpdate( $hash, "akt_driving","dimming_none", 1 ) if $driving ne "dimming_none";;;};;;;readingsSingleUpdate( $hash, "target_is","$targis", 1 );;;;;Log3( "test", 5, "targis $targis" );;;Log3( "test", 5, "targsoll $targsoll" );;;;;;;my $step = "[$SELF:intervall_percent]";;;my $targ_cmd = AttrVal( "$SELF", 'setcmd', 'pct' ); ;;my $targnext = $targsoll;;;my $targerwartet = $targsoll;;;;;if ($targis < $targsoll);; {;;  $targnext = $targis+$step;;;  $targerwartet =$targnext+$step;;;  $targnext = $targsoll if $targnext > $targsoll;;;;;  readingsSingleUpdate( $hash, "akt_driving","dimming-up", 1 ) if $driving ne "dimming-up";;;;;;; };;elsif ($targis > $targsoll);; {;;  $targnext = $targis-$step;;;  $targerwartet =$targnext-$step;;;  $targnext = $targsoll if $targnext < $targsoll;;;;;  readingsSingleUpdate( $hash, "akt_driving","dimming-down", 1 ) if $driving ne "dimming-down";;; };;;;$targnext = 100 if $targnext > 100;;;$targnext = 0 if $targnext < 0;;;;;readingsSingleUpdate( $hash, "target_next","$targnext", 1 );;;readingsSingleUpdate( $hash, "target_ewrartet","$targerwartet ", 1 );;;fhem("set $device $targ_cmd $targnext") ;;;;;Log3( "test", 5, "set $device $targ_cmd $targnext" );;;Log3( "test", 5, "------------------" );;;;;;;return;;;}#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]undefined#[NF]cmd#[NF]{;;fhem("set $SELF del_delays");;;readingsSingleUpdate( $hash, "pct","[$SELF:EVTPART3]", 1 );;;readingsSingleUpdate( $hash, "target_next","[$SELF:EVTPART3]", 1 );;;readingsSingleUpdate( $hash, "target_is","[$SELF:EVTPART3]", 1 );;;};;#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][$SELF:target_next] ne [$SELF:EVTPART3] AND [$SELF:autostop] eq "on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]2#[NF]#[NF]0#[NF]0#[NF]4#[NF]1#[ND]FreeCmd-AbsCmd3#[NF]undefined#[NF]cmd#[NF]{;;fhem("set $SELF del_delays") ;;;readingsSingleUpdate( $hash, "pct","[$SELF:target_next]", 1 );;;#readingsSingleUpdate( $hash, "target_next","[$SELF:EVTPART3]", 1 );;;readingsSingleUpdate( $hash, "target_is","[$SELF:target_next]", 1 );;;readingsSingleUpdate( $hash, "akt_driving","dimming_none", 1 );;;}#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]3#[NF]#[NF]0#[NF]0#[NF]5#[NF]1#[ND]FreeCmd-AbsCmd4#[NF]undefined#[NF]cmd#[NF]{;;my $device = "[$SELF:Trigger_device]";;;fhem("set $device on") ;;;}#[NF]{;;my $device = "[$SELF:Trigger_device]";;;fhem("set $device off") ;;;}#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]no_action#[NF]ID 1#[NF]#[NF]delay2#[NF]delay1#[NF][$SELF:intervall_time]#[NF]00:00:00#[NF][$SELF:target_is] ne [$SELF:pct]#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[ND]MSwitch_Self-AbsCmd2#[NF]wait#[NF]no_action#[NF][$SELF:intervall_time]#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][$SELF:autostop] eq "off"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd3#[NF]wait#[NF]no_action#[NF]0.5#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][$SELF:autostop] eq "on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1
#S .Trigger_on -> no_trigger
#S .Trigger_condition -> "$EVENT"#[sp]=#[ti]#[sp]m/(pct#[pt]*)|(stop#[pt]*)/
#S intervall_percent -> 5
#S .Trigger_off -> no_trigger
#S last_event -> MSwitch_Self:stop:on
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Ignore_Types -> "TYPE=(.*):s=[ATTR:$SELF:setcmd]"
#A MSwitch_Selftrigger_always -> 1
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Comments -> 0
#A alexaName -> Slowdimmer
#A MSwitch_Event_Id_Distributor -> MSwitch_Self:pct:.*=>cmd1 ID 1#[nl]MSwitch_Self:stop.*=>cmd1 ID 3#[nl]^pct:.*=>cmd1 ID 2#[nl]
#A setList -> on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop
#A MSwitch_Help -> 0
#A MSwitch_Expert -> 1
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Eventhistory -> 10
#A userattr -> setcmd
#A readingList -> autostop pct target_is intervall_time intervall_percent targ_next target_ewrartet akt_driving stop
#A MSwitch_DeleteCMDs -> automatic
#A MSwitch_Language -> DE
#A eventMap -> /stop on:dimming-stop/
#A setcmd -> pct
#A MSwitch_Extensions -> 0
#A room -> 01_Test->Slowdimmer,alexa
#A MSwitch_Debug -> 0
#A MSwitch_Startdelay -> 10
#A devStateIcon -> {     my $state    = ReadingsVal( $name, "akt_driving", "" );     my $statepct = ReadingsVal( $name, "pct",         0 ); $statepct = 0 if  ReadingsVal( $name, "state",0 ) eq "off";      return '<div><img src="/fhem/images/default/dimup.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-up" );     return '<div><img src="/fhem/images/default/dimdown.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-down" );     return '<div><img src="/fhem/images/default/on.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^100$)/ );     return '<div><img src="/fhem/images/default/dim56%.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^[0-9]{3}|[0-9]{2}|[1-9]{1}$)/ );     return '<div><img src="/fhem/images/default/off.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^00|0$)/ ); }
#A webCmd -> on:off:dimming-stop:pct:intervall_time:intervall_percent:autostop
#A MSwitch_generate_Events -> 0



gruss Byte09

rudolfkoenig

Zitatkannst du bitte mal im device global das attribut 'featurelevel' auf '5.9' stellen und das ganze dann nochmal versuchen ?


Alternativ loescht man die Zeile:
setstate Slowdimmer 2019-10-13 08:45:04 stop.*


Byte09

Zitat von: rudolfkoenig am 28 Januar 2020, 10:00:56

Alternativ loescht man die Zeile:
setstate Slowdimmer 2019-10-13 08:45:04 stop.*


dank dir. ich hatte es eben auch gesehen und in der letzten raw rausgenommen - aber leider noch keine ahnung wie es sich dort hin verirrt hat.

Gruss Thomas


psycho160

Ne, will einfach nicht...
Mir kommt vor, generell "frisst" der raw bzw. dein config import nicht alles..
Wenn ich das Trigger Device im raw von HUEgroup0 auf meinen LD_SZ ändere, ist es nach erfolgreichem Import trotzdem noch auf HUEGroup0..


Folgendes bekomm ich trotzdem noch immer:
2020.01.28 11:49:53.498 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 1251.
2020.01.28 11:49:53.498 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 10254.
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

#23
Zitat von: psycho160 am 28 Januar 2020, 11:56:05
Ne, will einfach nicht...
Mir kommt vor, generell "frisst" der raw bzw. dein config import nicht alles..
Wenn ich das Trigger Device im raw von HUEgroup0 auf meinen LD_SZ ändere, ist es nach erfolgreichem Import trotzdem noch auf HUEGroup0..


Folgendes bekomm ich trotzdem noch immer:
2020.01.28 11:49:53.498 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 1251.
2020.01.28 11:49:53.498 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 10254.


du darfst die raw keinesfalls ändern !! .. änderungen erst nachdem das device eingespielt ist im webinterface.

gruss Byte09

psycho160

Zitat von: Byte09 am 28 Januar 2020, 11:59:18
du darfst die raw keinesfalls ändern !! .. änderungen erst nachdem das device eingespielt ist im webinterface.

gruss Byte09

ok ja das wars! Hatte es immer vorher angepasst  :o

Danke!!!
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

psycho160

Wie kann ich nun per set Slowdimmer [Helligkeit] [Intervall ] etc. den MSwitch aus einem "at" ansprechen?
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 28 Januar 2020, 14:27:06
Wie kann ich nun per set Slowdimmer [Helligkeit] [Intervall ] etc. den MSwitch aus einem "at" ansprechen?

z.b:

set Slowdimmer intervall_time 00:00:05;set Slowdimmer intervall_percent 10;set Slowdimmer pct 90

erhöht den wert alle 5 sekunden um 10 % bis auf einen wert von 90

die zeit und das intervall musst du nicht jedesmal neu setzen

ggf. ändere ich es noch ,so dass eine angabe wie

set dimmer 90 00:00:10 5 möglich ist

gruss Byte09

psycho160

Zitat
ggf. ändere ich es noch ,so dass eine angabe wie

set dimmer 90 00:00:10 5 möglich ist

das wäre super!!

EDIT: vielleicht die 00:00:00 angabe in sekunden

- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 28 Januar 2020, 14:46:47
das wäre super!!

EDIT: vielleicht die 00:00:00 angabe in sekunden

mache ich , weiss aber noch nicht ob ich es heute noch schaffe - zumal ich gerne morgen oder übermorge eine überarbeitet modulversion einchecken möchte und da noch einiges zu tun ist.

... mal schauen

gruss Byte09

psycho160

Zitat von: Byte09 am 28 Januar 2020, 14:55:32
mache ich , weiss aber noch nicht ob ich es heute noch schaffe - zumal ich gerne morgen oder übermorge eine überarbeitet modulversion einchecken möchte und da noch einiges zu tun ist.

... mal schauen

gruss Byte09

danke, kein stress :)
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

#30
Zitat von: psycho160 am 28 Januar 2020, 17:33:47
danke, kein stress :)

in dieser Version sollte es wie folgt ansprechbar sein:

set Slowdimmer dimm 100,10

Device wird vom aktuellen Zustand auf 100% gedimmt - innerhalb von 10 Sekunden .
dabei wird das bestmögliche Intervall/Zeitverhältniss selbständig berechnet.

Ich hoffe es funktionie so wie ich mir das vorstelle  ;)

gruss Byte09

edit: im device befindet sich oben rechts ein dropdownfeld (on/off) . Dieses bedeutet nicht das die Lampe on oder off ist , sonder schaltet die Überwachung einer externen Bedienung der Lampe an oder aus. wenn dieses auf on steht, der Dimmer läuft und die Lampe anderweitig geschaltet wird sollte der Slowdimmer den laufenden Dimmvorgang abbrechen ( zumondest ist so der Plan - Bei homematic-devices funktioniert dieses technisch bedingt nur dann , wenn das Zeitintervall über 5 sekunden beträgt - wobei ein Einsatz bei Homematic eh nicht sein sollte wegen der 1% regelung).

defmod Slowdimmer MSwitch HUEDevice2 # MSwitch_Self FreeCmd
attr Slowdimmer userattr setcmd
attr Slowdimmer MSwitch_Comments 0
attr Slowdimmer MSwitch_Debug 0
attr Slowdimmer MSwitch_DeleteCMDs automatic
attr Slowdimmer MSwitch_Delete_Delays 1
attr Slowdimmer MSwitch_Event_Id_Distributor MSwitch_Self:pct:.*=>cmd1 ID 1\
MSwitch_Self:stop.*=>cmd1 ID 3\
MSwitch_Self:dimm.*=>cmd1 ID 4\
^pct:.*=>cmd1 ID 2\

attr Slowdimmer MSwitch_Eventhistory 10
attr Slowdimmer MSwitch_Expert 1
attr Slowdimmer MSwitch_Extensions 0
attr Slowdimmer MSwitch_Help 0
attr Slowdimmer MSwitch_Ignore_Types "TYPE=(.*):s=[ATTR:$SELF:setcmd]"
attr Slowdimmer MSwitch_Include_Devicecmds 1
attr Slowdimmer MSwitch_Include_MSwitchcmds 0
attr Slowdimmer MSwitch_Include_Webcmds 0
attr Slowdimmer MSwitch_Inforoom MSwitch
attr Slowdimmer MSwitch_Language DE
attr Slowdimmer MSwitch_Lock_Quickedit 1
attr Slowdimmer MSwitch_Mode Notify
attr Slowdimmer MSwitch_Selftrigger_always 1
attr Slowdimmer MSwitch_Startdelay 10
attr Slowdimmer MSwitch_generate_Events 0
attr Slowdimmer alexaName Slowdimmer
attr Slowdimmer devStateIcon {     my $state    = ReadingsVal( $name, "akt_driving", "" );;     my $statepct = ReadingsVal( $name, "pct",         0 );; $statepct = 0 if  ReadingsVal( $name, "state",0 ) eq "off";;      return '<div><img src="/fhem/images/default/dimup.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-up" );;     return '<div><img src="/fhem/images/default/dimdown.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-down" );;     return '<div><img src="/fhem/images/default/on.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^100$)/ );;     return '<div><img src="/fhem/images/default/dim56%.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^[0-9]{3}|[0-9]{2}|[1-9]{1}$)/ );;     return '<div><img src="/fhem/images/default/off.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^00|0$)/ );; }
attr Slowdimmer eventMap /stop on:dimming-stop/
attr Slowdimmer readingList dimm autostop pct target_is intervall_time intervall_percent targ_next target_ewrartet akt_driving stop
attr Slowdimmer room 01_Test->Slowdimmer,alexa
attr Slowdimmer setList dimm on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop
attr Slowdimmer setcmd pct
attr Slowdimmer webCmd on:off:dimming-stop:pct:intervall_time:intervall_percent:autostop

setstate Slowdimmer on
setstate Slowdimmer 2020-01-28 15:08:08 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,FreeCmd-AbsCmd3,FreeCmd-AbsCmd4,FreeCmd-AbsCmd5,MSwitch_Self-AbsCmd1,MSwitch_Self-AbsCmd2,MSwitch_Self-AbsCmd3
setstate Slowdimmer 2020-01-29 04:15:15 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{#[nl]#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]my#[sp]$driving#[sp]=#[sp]"[$SELF#[dp]akt_driving]"#[se]#[nl]my#[sp]$targis#[sp]=#[sp]ReadingsNum($device#[ko]"pct"#[ko]"0")#[se]#[sp]#[nl]my#[sp]$targsoll#[sp]=#[sp]"[$SELF#[dp]pct]"#[se]#[nl]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"state"#[ko]"on"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[nl]{#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming_none"#[se]#[nl]}#[nl]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"$targis"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]#[nl]my#[sp]$step#[sp]=#[sp]"[$SELF#[dp]intervall_percent]"#[se]#[nl]my#[sp]$targ_cmd#[sp]=#[sp]AttrVal(#[sp]"$SELF"#[ko]#[sp]'setcmd'#[ko]#[sp]'pct'#[sp])#[se]#[sp]#[nl]my#[sp]$targnext#[sp]=#[sp]$targsoll#[se]#[nl]my#[sp]$targerwartet#[sp]=#[sp]$targsoll#[se]#[nl]#[nl]if#[sp]($targis#[sp]<#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis+$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext+$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]>#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-up"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-up"#[se]#[nl]#[nl]#[sp]}#[nl]elsif#[sp]($targis#[sp]>#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis-$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext-$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]<#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-down"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-down"#[se]#[nl]#[sp]}#[nl]$targnext#[sp]=#[sp]100#[sp]if#[sp]$targnext#[sp]>#[sp]100#[se]#[nl]$targnext#[sp]=#[sp]0#[sp]if#[sp]$targnext#[sp]<#[sp]0#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"$targnext"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_ewrartet"#[ko]"$targerwartet#[sp]"#[ko]#[sp]1#[sp])#[se]#[nl]fhem("set#[sp]$device#[sp]$targ_cmd#[sp]$targnext")#[sp]#[se]#[nl]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"set#[sp]$device#[sp]$targ_cmd#[sp]$targnext"#[sp])#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]5#[ko]#[sp]"------------------"#[sp])#[se]#[nl]#[nl]return#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]}#[nl]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_next]#[sp]ne#[sp][$SELF#[dp]EVTPART3]#[sp]AND#[sp][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]2#[NF]#[NF]0#[NF]0#[NF]4#[NF]1#[ND]FreeCmd-AbsCmd3#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[sp]#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]#readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]3#[NF]#[NF]0#[NF]0#[NF]5#[NF]1#[ND]FreeCmd-AbsCmd4#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]on")#[sp]#[se]#[nl]}#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]off")#[sp]#[se]#[nl]}#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd5#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]@argus#[se]#[nl]my#[sp]$device#[sp]=#[sp]ReadingsVal("$SELF"#[ko]"Trigger_device"#[ko]"0")#[se]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"$device"#[sp])#[se]#[nl]my#[sp]$targis#[sp]=#[sp]ReadingsNum($device#[ko]"pct"#[ko]"0")#[se]#[sp]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"targis#[dp]#[sp]$targis"#[sp])#[se]#[nl]my#[sp]$korrektur=0#[se]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"[$SELF#[dp]EVTPART3]"#[sp])#[se]#[nl]my#[sp]$argument#[sp]=#[sp]ReadingsVal("$SELF"#[ko]"EVTPART3"#[ko]"0")#[se]#[nl]@argus#[sp]=#[sp]split(/#[ko]/#[ko]$argument#[sp])#[se]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"$argus[0]"#[sp])#[se]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"$argus[1]"#[sp])#[se]#[nl]my#[sp]$ziel#[sp]=#[sp]$argus[0]#[se]#[nl]#[nl]fhem("setreading#[sp]$SELF#[sp]target_next#[sp]".$targis)#[se]#[nl]fhem("setreading#[sp]$SELF#[sp]target_ewrartet#[sp]".$targis)#[se]#[nl]fhem("setreading#[sp]$SELF#[sp]pct#[sp]".$targis)#[se]#[nl]fhem("setreading#[sp]$SELF#[sp]target_is#[sp]".$targis)#[se]#[nl]#[nl]if#[sp]($argus[0]#[sp]>#[sp]$targis)#[nl]{#[nl]$korrektur#[sp]=#[sp]$argus[0]-$targis#[se]#[nl]}#[nl]if#[sp]($argus[0]#[sp]<#[sp]$targis)#[nl]{#[nl]$korrektur#[sp]=#[sp]$targis-$argus[0]#[se]#[nl]}#[nl]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"korrektur#[sp]=#[sp]$korrektur"#[sp])#[se]#[nl]#[nl]my#[sp]$schrittime#[sp]=1#[se]#[nl]my#[sp]$schrittpersecond#[sp]=#[sp]$korrektur#[sp]/#[sp]$argus[1]#[se]#[nl]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"schritte#[sp]pro#[sp]sekunde#[sp]#[sp]=#[sp]$schrittpersecond"#[sp])#[se]#[nl]#[nl]my#[sp]$integer#[sp]=#[sp]int($schrittpersecond)#[se]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"integer#[sp]schritte#[sp]pro#[sp]sekunde#[sp]#[sp]=#[sp]$integer"#[sp])#[se]#[nl]#[nl]my#[sp]$i#[sp]=0#[se]#[nl]#[nl]my#[sp]$testschritte#[sp]=#[sp]$schrittpersecond#[se]#[nl]#[nl]while#[sp](#[sp]$integer#[sp]!=#[sp]$testschritte)#[nl]{#[nl]$testschritte=$testschritte*10#[se]#[nl]$schrittime#[sp]=$schrittime#[sp]*10#[se]#[nl]$integer#[sp]=#[sp]int($testschritte)#[se]#[nl]Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"i=$i#[dp]integer#[sp]schritte#[sp]pro#[sp]sekunde=$integer#[dp]schritte#[sp]pro#[sp]sekunde=$testschritte"#[sp])#[se]#[nl]$i++#[se]#[nl]last#[sp]if#[sp]$i>5000#[se]#[nl]}#[nl]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"ergebniss#[dp]#[sp]$testschritte#[sp]alle#[sp]$schrittime#[sp]sekunden#[sp]"#[sp])#[se]#[nl]#[nl]my#[sp]$timer#[sp]=#[sp]$schrittime/$testschritte#[se]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"änderung#[sp]1%#[sp]alle#[sp]$timer#[sp]sekunden#[sp]"#[sp])#[se]#[nl]##[sp]wenn#[sp]kleiner#[sp]1#[sp]pro#[sp]sekunde#[nl]#[nl]my#[sp]$percent#[sp]=#[sp]1#[se]#[nl]while#[sp](#[sp]$timer#[sp]<#[sp]1)#[nl]{#[sp]#[nl]$timer=$timer*2#[se]#[nl]$percent=$percent*2#[se]#[nl]}#[nl]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"änderung#[sp]$percent#[sp]%#[sp]alle#[sp]$timer#[sp]sekunden#[sp]"#[sp])#[se]#[nl]fhem("set#[sp]$SELF#[sp]intervall_time#[sp]".$timer)#[se]#[nl]fhem("set#[sp]$SELF#[sp]intervall_percent#[sp]".$percent)#[se]#[nl]#Log3(#[sp]"test"#[ko]#[sp]0#[ko]#[sp]"Ziel#[sp]$ziel"#[sp])#[se]#[nl]fhem("set#[sp]$SELF#[sp]pct#[sp]".$ziel)#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]4#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]no_action#[NF]ID#[sp]1#[NF]#[NF]delay2#[NF]delay1#[NF][$SELF#[dp]intervall_time]#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_is]#[sp]ne#[sp][$SELF#[dp]pct]#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[ND]MSwitch_Self-AbsCmd2#[NF]wait#[NF]no_action#[NF][$SELF#[dp]intervall_time]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"off"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd3#[NF]wait#[NF]no_action#[NF]0.5#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1
setstate Slowdimmer 2020-01-29 04:19:36 .Device_Events no_trigger#[tr].*
setstate Slowdimmer 2020-01-28 14:39:54 .First_init done
setstate Slowdimmer 2020-01-28 14:39:54 .Trigger_cmd_off no_trigger
setstate Slowdimmer 2020-01-28 14:39:54 .Trigger_cmd_on .*
setstate Slowdimmer 2020-01-28 15:16:43 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(dimm#[pt]*)|(pct#[pt]*)|(stop#[pt]*)/
setstate Slowdimmer 2020-01-28 14:39:54 .Trigger_off no_trigger
setstate Slowdimmer 2020-01-28 14:39:54 .Trigger_on no_trigger
setstate Slowdimmer 2020-01-28 15:16:43 .Trigger_time
setstate Slowdimmer 2020-01-28 14:39:54 .V_Check V2.00
setstate Slowdimmer 2020-01-28 14:39:54 .sortby show
setstate Slowdimmer 2020-01-29 04:19:36 EVENT pct:0
setstate Slowdimmer 2020-01-29 04:19:36 EVTFULL HUEDevice2:pct:0
setstate Slowdimmer 2020-01-29 04:19:36 EVTPART1 HUEDevice2
setstate Slowdimmer 2020-01-29 04:19:36 EVTPART2 pct
setstate Slowdimmer 2020-01-29 04:19:36 EVTPART3 0
setstate Slowdimmer 2020-01-28 15:16:43 Trigger_device HUEDevice2
setstate Slowdimmer 2020-01-28 14:39:54 Trigger_log off
setstate Slowdimmer 2020-01-29 04:19:37 akt_driving dimming_none
setstate Slowdimmer 2020-01-28 14:39:54 autostop off
setstate Slowdimmer 2020-01-29 04:13:28 dimm 50,10
setstate Slowdimmer 2020-01-29 04:19:20 intervall_percent 2
setstate Slowdimmer 2020-01-29 04:15:41 intervall_time 00:00:02
setstate Slowdimmer 2020-01-29 04:19:36 last_activation_by event
setstate Slowdimmer 2020-01-29 04:19:37 last_cmd 1
setstate Slowdimmer 2020-01-29 04:19:36 last_event pct:0
setstate Slowdimmer 2020-01-29 04:19:37 last_exec_cmd set Slowdimmer exec_cmd_1 ID 1
setstate Slowdimmer 2020-01-29 04:19:30 pct 0
setstate Slowdimmer 2020-01-29 04:19:37 state on
setstate Slowdimmer 2020-01-29 04:03:58 stop on
setstate Slowdimmer 2020-01-29 04:19:37 target_ewrartet 0
setstate Slowdimmer 2020-01-29 04:19:37 target_is 0
setstate Slowdimmer 2020-01-29 04:19:37 target_next 0
setstate Slowdimmer 2020-01-29 04:19:37 waiting 1580267977.20601


Byte09

Zitat von: gestein am 27 Januar 2020, 22:11:05
Hallo,

scheint zu funktionieren.
Wurde auf einem Rutsch eingespielt (bis auf Alexa, das ich nicht habe).

In einem setstate ist mir ein Rechtschreibfehler aufgefallen:
setstate Slowdimmer 2020-01-27 10:08:18 target_ewrartet 50

Aber das ist wahrscheinlich egal.

Jetzt noch den Shelly-Dimmer anschliessen und ausprobieren.
Das mach ich die nächsten Tage.

Danke. lg, Gerhard

In der kommenden Version des MSwitch-Moduls wird diese Device als auswählbares Preconfig-Device verfügbar sein , bis dahin korrigiere ich diesen    ... und die im Screenshot auch ;)

gruss Byte09

psycho160

#32
ZitatDevice wird vom aktuellen Zustand auf 100% gedimmt - innerhalb von 10 Sekunden .
dabei wird das bestmögliche Intervall/Zeitverhältniss selbständig berechnet.

Das blöde, oder bzw der unterschied zwischen Shelly und Homematic Dimmern ist, dass bei Shelly der pct Wert zwischen 1 und 100 sein kann, aber das Gerät aus oder ein sein kann.
z.B pct 65 aber Lampe aus.

Bei homematic (und vl bei anderen auch) ist aus gleichzeitig auch 0% pct...

Jetzt muss man vor dem dimmen immer das shelly auf pct 1 stellen und dann erst dimmen beginnen. sonst könnte es sein das er bei 100 beginnt und dann auf 60 hinunterdimmt, was in der Früh ganz schön stressig sein kann.

noch dazu bewirkt bei Shelly eine pct Änderung, das er instant auf diesen Wert hindimmt...
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

#33
Zitat von: psycho160 am 29 Januar 2020, 08:58:22
Das blöde, oder bzw der unterschied zwischen Shelly und Homematic Dimmern ist, dass bei Shelly der pct Wert zwischen 1 und 100 sein kann, aber das Gerät aus oder ein sein kann.
z.B pct 65 aber Lampe aus.

Bei homematic (und vl bei anderen auch) ist aus gleichzeitig auch 0% pct...

Jetzt muss man vor dem dimmen immer das shelly auf pct 1 stellen und dann erst dimmen beginnen. sonst könnte es sein das er bei 100 beginnt und dann auf 60 hinunterdimmt, was in der Früh ganz schön stressig sein kann.

noch dazu bewirkt bei Shelly eine pct Änderung, das er instant auf diesen Wert hindimmt...

ich könnte es entsprechend ergänzen:

set Dimmer dimm 0,100,10

damit würde dann von 0 - 100 gedimmt in 10 sekunden

würde dass helfen ?

gruss Byte09

edit: der erste wert wäre dann halt ein optionaler startpunkt


psycho160

#34
Zitat von: Byte09 am 29 Januar 2020, 09:08:42
ich könnte es entsprechend ergänzen:

set Dimmer dimm 0,100,10

damit würde dann von 0 - 100 gedimmt in 10 sekunden

würde dass helfen ?

gruss Byte09

ja das wäre cool.

aber  bei Shelly müsste man dann set Dimmer dimm 1,100,10 verwenden.


EDIT:
Vielleicht könnte dann jemand das Wiki noch diesbezüglich ergänzen: https://wiki.fhem.de/wiki/Wakeuplight
Ist sicher für einige interessant
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 29 Januar 2020, 09:11:39
ja das wäre cool.

aber  bei Shelly müsste man dann set Dimmer dimm 1,100,10 verwenden.


EDIT:
Vielleicht könnte dann jemand das Wiki noch diesbezüglich ergänzen: https://wiki.fhem.de/wiki/Wakeuplight
Ist sicher für einige interessant

ich ändere es im laufe des tages.

es nutzt kaum jemand MSwitch , von daher ist es glaube ich den Aufwand nicht wert einen diesbezüglichen Wikieintrag zu verfassen - leider ;-)

gruss Byte09

psycho160

Zitates nutzt kaum jemand MSwitch , von daher ist es glaube ich den Aufwand nicht wert einen diesbezüglichen Wikieintrag zu verfassen - leider ;-)

Naja aber es nutzen viele Shelly, und könnte mir gut vorstellen, dass dann einige den Code bzw. dann auch natürlich MSwitch nutzen.
Der Wikibeitrag umfasst ja jetzt schon unterschiedliche Systeme (FS20, HM)
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

#37
Zitat von: psycho160 am 29 Januar 2020, 09:23:23
Naja aber es nutzen viele Shelly, und könnte mir gut vorstellen, dass dann einige den Code bzw. dann auch natürlich MSwitch nutzen.
Der Wikibeitrag umfasst ja jetzt schon unterschiedliche Systeme (FS20, HM)


set Slowdimmer dimm 1,100,10
set Slowdimmer dimm <start,>ziel,ramptime

dimmt von 1 -100 % in 10 sekunden

wir der erste wert weggelassen dimmt er vom aktuellen stand bis 100 in 10 sekunden.

gruss Byte09

defmod Slowdimmer MSwitch HUEDevice2 # MSwitch_Self FreeCmd
attr Slowdimmer userattr setcmd
attr Slowdimmer MSwitch_Comments 0
attr Slowdimmer MSwitch_Debug 0
attr Slowdimmer MSwitch_DeleteCMDs automatic
attr Slowdimmer MSwitch_Delete_Delays 1
attr Slowdimmer MSwitch_Event_Id_Distributor MSwitch_Self:pct:.*=>cmd1 ID 1\
MSwitch_Self:stop.*=>cmd1 ID 3\
MSwitch_Self:dimm.*=>cmd1 ID 4\
^pct:.*=>cmd1 ID 2\

attr Slowdimmer MSwitch_Eventhistory 10
attr Slowdimmer MSwitch_Expert 1
attr Slowdimmer MSwitch_Extensions 0
attr Slowdimmer MSwitch_Help 0
attr Slowdimmer MSwitch_Ignore_Types "TYPE=(.*):s=[ATTR:$SELF:setcmd]"
attr Slowdimmer MSwitch_Include_Devicecmds 1
attr Slowdimmer MSwitch_Include_MSwitchcmds 0
attr Slowdimmer MSwitch_Include_Webcmds 0
attr Slowdimmer MSwitch_Inforoom MSwitch
attr Slowdimmer MSwitch_Language DE
attr Slowdimmer MSwitch_Lock_Quickedit 1
attr Slowdimmer MSwitch_Mode Full
attr Slowdimmer MSwitch_Safemode 0
attr Slowdimmer MSwitch_Selftrigger_always 1
attr Slowdimmer MSwitch_Startdelay 10
attr Slowdimmer MSwitch_generate_Events 0
attr Slowdimmer alexaName Slowdimmer
attr Slowdimmer devStateIcon {     my $state    = ReadingsVal( $name, "akt_driving", "" );;     my $statepct = ReadingsVal( $name, "pct",         0 );; $statepct = 0 if  ReadingsVal( $name, "state",0 ) eq "off";;      return '<div><img src="/fhem/images/default/dimup.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-up" );;     return '<div><img src="/fhem/images/default/dimdown.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $state eq "dimming-down" );;     return '<div><img src="/fhem/images/default/on.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^100$)/ );;     return '<div><img src="/fhem/images/default/dim56%.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^[0-9]{3}|[0-9]{2}|[1-9]{1}$)/ );;     return '<div><img src="/fhem/images/default/off.png">'       . sprintf( " %2.2d", ReadingsNum( $name, "target_next", 0 ) )       . '</div>'       if ( $statepct =~ m/(^00|0$)/ );; }
attr Slowdimmer eventMap /stop on:dimming-stop/
attr Slowdimmer readingList startpoint dimm autostop pct target_is intervall_time intervall_percent targ_next target_ewrartet akt_driving stop
attr Slowdimmer room 01_Test->Slowdimmer,alexa
attr Slowdimmer setList startpoint dimm on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop
attr Slowdimmer setcmd pct
attr Slowdimmer webCmd on:off:dimming-stop:pct:intervall_time:intervall_percent:autostop

setstate Slowdimmer on
setstate Slowdimmer 2020-01-29 09:21:01 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,FreeCmd-AbsCmd3,FreeCmd-AbsCmd4,FreeCmd-AbsCmd5,MSwitch_Self-AbsCmd1,MSwitch_Self-AbsCmd2,MSwitch_Self-AbsCmd3
setstate Slowdimmer 2020-01-29 11:05:30 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]my#[sp]$driving#[sp]=#[sp]"[$SELF#[dp]akt_driving]"#[se]#[nl]#[nl]my#[sp]$targis=#[sp]ReadingsNum("$SELF"#[ko]"startpoint"#[ko]"undefiniert")#[se]#[sp]#[nl]#[nl]if#[sp]($targis#[sp]eq#[sp]"undefiniert")#[nl]{#[nl]$targis#[sp]=#[sp]ReadingsNum($device#[ko]"pct"#[ko]"0")#[se]#[nl]#[nl]}#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"startpoint"#[ko]"undefiniert"#[ko]#[sp]1#[sp])#[se]#[sp]#[nl]#[nl]my#[sp]$targsoll#[sp]=#[sp]"[$SELF#[dp]pct]"#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"state"#[ko]"on"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]if#[sp]($targsoll#[sp]eq#[sp]$targis#[sp])#[nl]{#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming_none"#[se]#[nl]}#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"$targis"#[ko]#[sp]1#[sp])#[se]#[nl]#[nl]my#[sp]$step#[sp]=#[sp]"[$SELF#[dp]intervall_percent]"#[se]#[nl]my#[sp]$targ_cmd#[sp]=#[sp]AttrVal(#[sp]"$SELF"#[ko]#[sp]'setcmd'#[ko]#[sp]'pct'#[sp])#[se]#[sp]#[nl]my#[sp]$targnext#[sp]=#[sp]$targsoll#[se]#[nl]my#[sp]$targerwartet#[sp]=#[sp]$targsoll#[se]#[nl]#[nl]if#[sp]($targis#[sp]<#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis+$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext+$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]>#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-up"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-up"#[se]#[nl]#[nl]#[sp]}#[nl]elsif#[sp]($targis#[sp]>#[sp]$targsoll)#[nl]#[sp]{#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targis-$step#[se]#[nl]#[sp]#[sp]$targerwartet#[sp]=$targnext-$step#[se]#[nl]#[sp]#[sp]$targnext#[sp]=#[sp]$targsoll#[sp]if#[sp]$targnext#[sp]<#[sp]$targsoll#[se]#[nl]#[nl]#[sp]#[sp]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming-down"#[ko]#[sp]1#[sp])#[sp]if#[sp]$driving#[sp]ne#[sp]"dimming-down"#[se]#[nl]#[sp]}#[nl]$targnext#[sp]=#[sp]100#[sp]if#[sp]$targnext#[sp]>#[sp]100#[se]#[nl]$targnext#[sp]=#[sp]0#[sp]if#[sp]$targnext#[sp]<#[sp]0#[se]#[nl]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"$targnext"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_ewrartet"#[ko]"$targerwartet#[sp]"#[ko]#[sp]1#[sp])#[se]#[nl]fhem("set#[sp]$device#[sp]$targ_cmd#[sp]$targnext")#[sp]#[se]#[nl]#[nl]return#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]}#[nl]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_next]#[sp]ne#[sp][$SELF#[dp]EVTPART3]#[sp]AND#[sp][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]2#[NF]#[NF]0#[NF]0#[NF]4#[NF]1#[ND]FreeCmd-AbsCmd3#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("set#[sp]$SELF#[sp]del_delays")#[sp]#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"pct"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]#readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_next"#[ko]"[$SELF#[dp]EVTPART3]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"target_is"#[ko]"[$SELF#[dp]target_next]"#[ko]#[sp]1#[sp])#[se]#[nl]readingsSingleUpdate(#[sp]$hash#[ko]#[sp]"akt_driving"#[ko]"dimming_none"#[ko]#[sp]1#[sp])#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]3#[NF]#[NF]0#[NF]0#[NF]5#[NF]1#[ND]FreeCmd-AbsCmd4#[NF]undefined#[NF]cmd#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]on")#[sp]#[se]#[nl]}#[NF]{#[nl]my#[sp]$device#[sp]=#[sp]"[$SELF#[dp]Trigger_device]"#[se]#[nl]fhem("set#[sp]$device#[sp]off")#[sp]#[se]#[nl]}#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]FreeCmd-AbsCmd5#[NF]undefined#[NF]cmd#[NF]{#[nl]fhem("setreading#[sp]$SELF#[sp]startpoint#[sp]undefiniert")#[se]#[nl]my#[sp]$argument#[sp]=#[sp]ReadingsVal("$SELF"#[ko]"EVTPART3"#[ko]"0")#[se]#[nl]my#[sp]$startpoint=ReadingsNum($device#[ko]"pct"#[ko]"0")#[se]#[nl]my#[sp]$device#[sp]=#[sp]ReadingsVal("$SELF"#[ko]"Trigger_device"#[ko]"0")#[se]#[nl]my#[sp]$endpoint=0#[se]#[nl]my#[sp]$ramptime=0#[se]#[nl]my#[sp]$korrektur=0#[se]#[nl]#[nl]my#[sp]@argus#[sp]=#[sp]split(/#[ko]/#[ko]$argument#[sp])#[se]#[nl]#[nl]my#[sp]$arranz#[sp]=#[sp]@argus#[se]#[nl]#[nl]if#[sp](#[sp]$arranz#[sp]==#[sp]2)#[nl]{#[nl]#[nl]$endpoint#[sp]=#[sp]$argus[0]#[se]#[nl]$ramptime#[sp]=#[sp]$argus[1]#[se]#[nl]}#[nl]#[nl]if#[sp](#[sp]$arranz#[sp]==#[sp]3)#[nl]{#[nl]$endpoint#[sp]=#[sp]$argus[1]#[se]#[nl]$ramptime#[sp]=#[sp]$argus[2]#[se]#[nl]$startpoint#[sp]=#[sp]$argus[0]#[se]#[nl]#[nl]fhem("set#[sp]$device#[sp]pct#[sp]".$startpoint)#[se]#[nl]fhem("setreading#[sp]$SELF#[sp]startpoint#[sp]".$startpoint)#[se]#[nl]}#[nl]#[nl]my#[sp]$ziel#[sp]=#[sp]$endpoint#[se]#[nl]#[nl]fhem("setreading#[sp]$SELF#[sp]target_next#[sp]".$startpoint)#[se]#[nl]fhem("setreading#[sp]$SELF#[sp]target_ewrartet#[sp]".$startpoint)#[se]#[nl]fhem("setreading#[sp]$SELF#[sp]pct#[sp]".$startpoint)#[se]#[nl]fhem("setreading#[sp]$SELF#[sp]target_is#[sp]".$startpoint)#[se]#[nl]#[nl]if#[sp]($endpoint#[sp]>#[sp]$startpoint)#[nl]{#[nl]$korrektur#[sp]=#[sp]$endpoint-$startpoint#[se]#[nl]}#[nl]#[nl]if#[sp]($endpoint#[sp]<#[sp]$startpoint)#[nl]{#[nl]$korrektur#[sp]=#[sp]$startpoint-$endpoint#[se]#[nl]}#[nl]#[nl]my#[sp]$schrittime#[sp]=1#[se]#[nl]my#[sp]$schrittpersecond#[sp]=#[sp]$korrektur#[sp]/#[sp]$ramptime#[se]#[nl]my#[sp]$integer#[sp]=#[sp]int($schrittpersecond)#[se]#[nl]my#[sp]$i#[sp]=0#[se]#[nl]my#[sp]$testschritte#[sp]=#[sp]$schrittpersecond#[se]#[nl]#[nl]while#[sp](#[sp]$integer#[sp]!=#[sp]$testschritte)#[nl]{#[nl]$testschritte=$testschritte*10#[se]#[nl]$schrittime#[sp]=$schrittime#[sp]*10#[se]#[nl]$integer#[sp]=#[sp]int($testschritte)#[se]#[nl]$i++#[se]#[nl]last#[sp]if#[sp]$i>5000#[se]#[nl]}#[nl]#[nl]my#[sp]$timer#[sp]=#[sp]$schrittime/$testschritte#[se]#[nl]my#[sp]$percent#[sp]=#[sp]1#[se]#[nl]#[nl]while#[sp](#[sp]$timer#[sp]<#[sp]1)#[nl]{#[sp]#[nl]$timer=$timer*2#[se]#[nl]$percent=$percent*2#[se]#[nl]}#[nl]#[nl]fhem("set#[sp]$SELF#[sp]intervall_time#[sp]".$timer)#[se]#[nl]fhem("set#[sp]$SELF#[sp]intervall_percent#[sp]".$percent)#[se]#[nl]fhem("set#[sp]$SELF#[sp]pct#[sp]".$ziel)#[se]#[nl]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]4#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]no_action#[NF]ID#[sp]1#[NF]#[NF]delay2#[NF]delay1#[NF][$SELF#[dp]intervall_time]#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]target_is]#[sp]ne#[sp][$SELF#[dp]pct]#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[NF]#[NF]0#[NF]0#[NF]3#[NF]1#[ND]MSwitch_Self-AbsCmd2#[NF]wait#[NF]no_action#[NF][$SELF#[dp]intervall_time]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"off"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[ND]MSwitch_Self-AbsCmd3#[NF]wait#[NF]no_action#[NF]0.5#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]autostop]#[sp]eq#[sp]"on"#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[NF]1
setstate Slowdimmer 2020-01-29 11:04:54 .Device_Events .*#[tr]no_trigger
setstate Slowdimmer 2020-01-29 09:21:01 .First_init done
setstate Slowdimmer 2020-01-29 09:21:01 .Trigger_cmd_off no_trigger
setstate Slowdimmer 2020-01-29 09:21:01 .Trigger_cmd_on .*
setstate Slowdimmer 2020-01-29 09:22:07 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(dimm#[pt]*)|(pct#[pt]*)|(stop#[pt]*)/
setstate Slowdimmer 2020-01-29 09:21:01 .Trigger_off no_trigger
setstate Slowdimmer 2020-01-29 09:21:01 .Trigger_on no_trigger
setstate Slowdimmer 2020-01-29 09:22:07 .Trigger_time
setstate Slowdimmer 2020-01-29 09:21:01 .V_Check V2.00
setstate Slowdimmer 2020-01-29 09:21:01 .sortby show
setstate Slowdimmer 2020-01-29 11:04:54 EVENT pct:50
setstate Slowdimmer 2020-01-29 11:04:54 EVTFULL HUEDevice2:pct:50
setstate Slowdimmer 2020-01-29 11:04:54 EVTPART1 HUEDevice2
setstate Slowdimmer 2020-01-29 11:04:54 EVTPART2 pct
setstate Slowdimmer 2020-01-29 11:04:54 EVTPART3 50
setstate Slowdimmer 2020-01-29 09:22:07 Trigger_device HUEDevice2
setstate Slowdimmer 2020-01-29 09:21:01 Trigger_log off
setstate Slowdimmer 2020-01-29 11:04:54 akt_driving dimming_none
setstate Slowdimmer 2020-01-29 09:23:20 autostop off
setstate Slowdimmer 2020-01-29 11:04:44 dimm 10,50,5
setstate Slowdimmer 2020-01-29 11:05:41 intervall_percent 1
setstate Slowdimmer 2020-01-29 11:05:40 intervall_time 00:00:01
setstate Slowdimmer 2020-01-29 11:05:41 last_activation_by event
setstate Slowdimmer 2020-01-29 11:04:55 last_cmd 1
setstate Slowdimmer 2020-01-29 11:04:54 last_event pct:50
setstate Slowdimmer 2020-01-29 11:04:55 last_exec_cmd set test exec_cmd_1 ID 1
setstate Slowdimmer 2020-01-29 11:04:44 pct 50
setstate Slowdimmer 2020-01-29 11:04:54 startpoint undefiniert
setstate Slowdimmer 2020-01-29 11:04:54 state on
setstate Slowdimmer 2020-01-29 10:59:03 stop on
setstate Slowdimmer 2020-01-29 11:04:54 target_ewrartet 50
setstate Slowdimmer 2020-01-29 11:04:54 target_is 50
setstate Slowdimmer 2020-01-29 11:04:54 target_next 50


Byte09

PS: den slider kannst du über das attribut 'setlist' auf 1-100 statt 0-100 ändern.

den teil pct:slider,0,1,100 ändern in pct:slider,1,1,100

gruss Byte09

psycho160

- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 29 Januar 2020, 11:30:30
Danke!!!!!

... gerne.

Das Teil ist schon recht komplex. Wenn es Probleme gibt melde dich einfach.

gruss Byte09

psycho160

eine allgemeine frage nocht, geht das irgendwie, dass in der Freecmd Inputbox auch mittels codemirror dargesellt wird? bin schon so vom syntax highlighting verwöhnt :-P
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

Byte09

Zitat von: psycho160 am 29 Januar 2020, 12:01:34
eine allgemeine frage nocht, geht das irgendwie, dass in der Freecmd Inputbox auch mittels codemirror dargesellt wird? bin schon so vom syntax highlighting verwöhnt :-P

nein , ich habe mich damit noch nie beschäftigt. Muss ich mir mal anschauen ob das machbar wäre.

gruss Byte09

Byte09

ich habe mich jetzt mal ein wenig damit beschäftigt. Leider bin ich irgendwie nicht in der Lage das einzubinden. Sollte im Grunde kein Thema sein - da entsprechende 'bilbliotheken' ja bereits vorhanden sind.

....aber für mich scheinbar ein Problem. Wenn ich jemanden finde , der sich damit auskennt gehe ich das ggf. nochmal an.

Ich habe da auch nicht die nötige Geduld, wenn ich ewig auf der Stelle trete ohne auch nur ein Stück weiterzukommen  ;)

gruss Byte09

Byte09

#44
Mit morgigem Fhemupdate ist dieses Device in den vorkonfigurierten Devices vorhanden , ein Raw-import ist dann nicht mehr notwendig.
*edit: oder über heutiges Update mit:
update all https://raw.githubusercontent.com/Byte009/FHEM-MSwitch/master/controls_mswitch.txt

MSwitch muss mindestens  in der Version V3.0 vorliegen !

Zur Einrichtung:

- Mswitch anlegen : define NAME MSwitch
- In den Wizardmode gehen: set NAME wizard
- den Modus 'import PRECONF' wählen ( Button )
- device 'Slowdimmer' wählen ( Dropdownfeld )
- Button 'importiere dieses MSwitch' klicken
- bei 'auslösendes Gerät' die zu steuernde Lampe wählen - es werden nur Geräte angeboten die ptc unterstützen
- Button 'Trigger speichern' klicken
- Fertig !

falls du Lust hast kannst du es ja in das Wiki setzen  ;)

gruss Byte09



stratege-0815

Zitat von: Byte09 am 30 Januar 2020, 11:05:44
Mit morgigem Fhemupdate ist dieses Device in den vorkonfigurierten Devices vorhanden , ein Raw-import ist dann nicht mehr notwendig.
*edit: oder über heutiges Update mit:
update all https://raw.githubusercontent.com/Byte009/FHEM-MSwitch/master/controls_mswitch.txt

MSwitch muss mindestens  in der Version V3.0 vorliegen !

Zur Einrichtung:

- Mswitch anlegen : define NAME MSwitch
- In den Wizardmode gehen: set NAME wizard
- den Modus 'import PRECONF' wählen ( Button )
- device 'Slowdimmer' wählen ( Dropdownfeld )
- Button 'importiere dieses MSwitch' klicken
- bei 'auslösendes Gerät' die zu steuernde Lampe wählen - es werden nur Geräte angeboten die ptc unterstützen
- Button 'Trigger speichern' klicken
- Fertig !

falls du Lust hast kannst du es ja in das Wiki setzen  ;)

gruss Byte09

Hallo,
ich wollte diese Schritte jetzt einmal abarbeiten da ich auch einen shelly dimmer verwende. Die ersten beiden Punkte klappen bei mir, danach ist MSwitch im Konfigurationsmodus. Und nun? Klicke ich auf MSwitch erhalte ich die Fehlermeldung aus der angehängten Datei.

Mache ich etwas falsch, oder muss das für Anfänger einfach noch weiter step für step runtergebrochen werden?
Gruß
Jan



Byte09

hmm, ich bin auf der Arbeit und schaue mir das an, wenn ich zu Hause bin. Wann genau kommt die Fehlermeldung?... damit ich es ggf reproduzieren kann.

lässt sich Import Preconfig anklicken?

gruss Byte09

PS.  Die GitHub Version ist überholt, du nutzt dia aktuelle Version aus dem Fhemupdate?



Gesendet von meinem ELE-L29 mit Tapatalk


stratege-0815

Hi,
ja ich habe FHEM erst gerade aktualisiert, ich nutze nichts aus Git.

Ich gebe ein: "set MSwitch wizard" nachdem ich Eingabe gedrückt habe springt FHEM irgendwi in die Hauptdarstellung.
Klicke ich dann auf die MSwitch_Devices erscheint: MSwitch ist im Konfigurationsmodus. Klicke ich dann auf MSwitch folgt die Meldung.

Vielleicht ist das von der Reihenfolge ja auch alles total falsch was ich mache....

Gruß
Jan

Byte09

#48
Zitat von: stratege-0815 am 18 März 2020, 15:48:45
Hi,
ja ich habe FHEM erst gerade aktualisiert, ich nutze nichts aus Git.

Ich gebe ein: "set MSwitch wizard" nachdem ich Eingabe gedrückt habe springt FHEM irgendwi in die Hauptdarstellung.
Klicke ich dann auf die MSwitch_Devices erscheint: MSwitch ist im Konfigurationsmodus. Klicke ich dann auf MSwitch folgt die Meldung.

Vielleicht ist das von der Reihenfolge ja auch alles total falsch was ich mache....

Gruß
Jan

lösche das device bitte und legeein neues an , möglichst nicht mit dem namen MSwitch , ggf. resultiert das problem daher ( muss ich mir anschauen ).

define TEST MSwitch

danach gehst du über die dropdownsetlist auf wizard - schau bitte mal ob es dann geht.

gruss Byte09


edit : habe mir das kurz angeschaut. Der Mode ist fehlerfrei nur über die dropdownliste zu erreichen . eine eingabe über über die cmdline führt unter anderem zu diesem Fehler. ich werde das Problem die Tage beheben.

gruss Byte09

stratege-0815

Hi.
Zur Info, der Fehler kommt auch bei der von dir beschiebenen Vorgehensweise.
Sowohl bei Benennung des MSwitch als TEST wie auch wenn ich in der Oberfläche auf "set" klicke - "wizard" ist hier schon voreingestellt, da der einzige Eintrag.
Es macht auch keinen Unterschied ob ich nach dem define zuerst ein "save config" ausführe oder nicht.
Gruß
Jan

Byte09

Zitat von: stratege-0815 am 18 März 2020, 17:05:24
Hi.
Zur Info, der Fehler kommt auch bei der von dir beschiebenen Vorgehensweise.
Sowohl bei Benennung des MSwitch als TEST wie auch wenn ich in der Oberfläche auf "set" klicke - "wizard" ist hier schon voreingestellt, da der einzige Eintrag.
Es macht auch keinen Unterschied ob ich nach dem define zuerst ein "save config" ausführe oder nicht.
Gruß
Jan

hmm, ok ... dann habe ich gerade das problem , das ich den Fehler nicht reproduzieren kann. was für einen browser nutzt du ?

gruss Byte09

stratege-0815

Gestern habe ich Firefox verwendet. Ich kann es mir gleich mal in anderen Browsern ansehen.

stratege-0815

Der Effekt ist unabhängig vom verwendeten Browser.

sparkiie

Ich habe das selbe Problem, mit Firefox und Edge!

Byte09

Zitat von: sparkiie am 21 März 2020, 12:27:52
Ich habe das selbe Problem, mit Firefox und Edge!

Lider kann ich das Problem nachwievor nicht nachvollziehen . Ich kann es auf 3 verschiedenen Sytemen mit diversen Endgeräten nicht reproduzieren.

könnt ihr mir bitte noch mal schritt für schritt sagen was ihr tut ?

gruss Byte09

Byte09

#55
kann mir bitte mal jemand die betreffende Zeile aus dem Html-code ( am besten zeile 693 -700 ) schicken ?
... ohne diese habe ich keine Chance das Problem zu finden.


gruss Byte09

sparkiie

#56
Ich gehe wie folgt vor:

define Slowdimmer MSwitch > ok
set Slowdimmer wizard (über das Dropdown) > Fehlermeldung

Zeile 691 endet mit '];
Zeile 692 endet mit ;  > hier fehlt ein ' und ein ]



Byte09

danke , ich kann das Problem jetzt eingrenzen und werde das heute oder morgen beheben. wird von der import at/notify - funktion verursacht und da ich weder das eine noch das andere in meinem system nutze kommt es bei mir nicht zum tragen.


gruss Byte09

Byte09

ich habe die Funktionen importat und importnotify mit der heutigen updateversion vorerst deaktiviert, da ich glaube das der fehler daher kommt. ihr könnt ja mal versuchen ob der fehler jetzt weg ist. ( nach heutigem update )

gruss Byte09

sparkiie

Zitat von: Byte09 am 22 März 2020, 05:07:16
ich habe die Funktionen importat und importnotify mit der heutigen updateversion vorerst deaktiviert, da ich glaube das der fehler daher kommt. ihr könnt ja mal versuchen ob der fehler jetzt weg ist. ( nach heutigem update )

Funktioniert jetzt prima, vielen Dank!

gruss Byte09

stratege-0815

Ja, der Fehler ist weg.
Nun muss ich mich nur noch einarbeiten und verstehen wie ich in MSwitch die ganzen Knöpfe und Regler bediene um daraus meinen Tageslichtwecker zu bauen.

sparkiie

Die Einrichtung ist wirklich sehr einfach!

Doch eine Frage noch:
Könnte man die Dimming Schritte editierbar machen?
Ich würde gerne kleinere Sprünge machen, damit das Licht auch in kurzer Zeit sanfter gedimmt wird.

Byte09

Zitat von: sparkiie am 22 März 2020, 12:39:40
Die Einrichtung ist wirklich sehr einfach!

Doch eine Frage noch:
Könnte man die Dimming Schritte editierbar machen?
Ich würde gerne kleinere Sprünge machen, damit das Licht auch in kurzer Zeit sanfter gedimmt wird.

Hi ,

mit folgendem befehl in der cmdline bekommst du vollen zugriff auf alle Befehlsausführungen und kannst nach belieben Änderungen vornehmen:

deletereading DEVICENAME .lock

Im grunde kannst du ahand der dropdownfelder schon entsprechende einstellungen machen ( zeitintervall - allle angegebenen sekunden erfolgt eine änderung  und  prozent - alle x sekunden erfolgt eine änderung um y prozent )

dieses ist zwar noch kürzer machbar - aber die frage ist ob das system das dann mitmacht ( wird entsprechend system und ggf. sehr funklastig ) - musst du probieren.

gruss Byte09


Byte09

edit:

im grunde reicht es aber auch schon das attribut 'setlist' entsprechend anzupassen.

Zitatstartpoint dimm on off autostop:on,off pct:slider,0,1,100 target_is intervall_time:00:00:01,00:00:02,00:00:03,00:00:04,00:00:05,00:00:10,00:00:15,00:00:30,00:00:45,00:01:00 intervall_percent:1,2,3,4,5,6,7,8,9,10,20,30,40,50,100 tar_next target_ewrartet akt_driving stop:stop

intervall_time und intervall_percent sind hier masgeblich.

gruss Byte09

stratege-0815

Zitat von: sparkiie am 22 März 2020, 12:39:40
Die Einrichtung ist wirklich sehr einfach!

Was hast du denn konkret gemacht bzw. erreicht?

Gruß
Jan

sparkiie

Ich habe über einen Dummy einen Tradfri Trafo mit 3 Leuchten in 30 Sekunden augenschonend auf 100% fahren lassen.

stratege-0815

Irgendwie kapiere ich nicht wie ich den slowdimmer jetzt ansteuern kann.

Byte09

Zitat von: stratege-0815 am 23 März 2020, 09:57:19
Irgendwie kapiere ich nicht wie ich den slowdimmer jetzt ansteuern kann.
set Device pct 100 (0-100)

gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk

stratege-0815

Zitat von: Byte09 am 23 März 2020, 10:02:07
set Device pct 100 (0-100)

gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk

Ist "Device" bei dir jetzt der MSwitch ?

Wenn ich eingebe: "set myMSwitch pct 100" kommt nichts bei meinem Shelly Device "Dimmer_Schalfzimmer" an

Bei FHEM Neustart erscheinen noch folgende Fehler im log:

2020.03.23 10:56:26 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 1234.
2020.03.23 10:56:26 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 10760.
2020.03.23 12:28:13 1: PERL WARNING: Use of uninitialized value $errors in pattern match (m//) at ./FHEM/98_MSwitch.pm line 4628.


Eventuell habe ich das ganze noch nicht richtig eingerichtet?

2020.03.23 12:36:03 1: [Shelly_dim] has invalid JSON data
2020.03.23 12:36:11 1: [Shelly_dim] has invalid JSON data
2020.03.23 12:36:14 1: [Shelly_dim] has invalid JSON data
2020.03.23 12:36:16 1: [Shelly_dim] has invalid JSON data


Darüber bin ich auch gerade noch gestolpert

Byte09

Im MSwitch gibt es eine option 'get device supportinfo'.

Klick das in der dropdownliste mal an poste mir die Daten die du bekommst.

gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk


stratege-0815

#70
Meinst du "get ... config" ?

Ich habe einfach mal screenshots angehängt.

,,supportinfo" sehe ich hier nirgendwo

Byte09

#71
Zitat von: stratege-0815 am 23 März 2020, 13:52:11
Meinst du "get ... config" ?

Ich habe einfach mal screenshots angehängt.

,,supportinfo" sehe ich hier nirgendwo

ok, sorry die "supportinfo gibt es in diesem mode nicht.

dann anders.

setze den slider mal auf 0 , die einstellbare zeit auf 00:00:01 und die prozentangabe auf 50.

danach das attribut MSwitch_debug auf 3.
dann 'lösche log'
dann den slider auff 100 setzen
warten bis sich nichts mehr tut , und dann das log hier posten.

bitte in code-tags - ist vermutlich ein lägeres log

gruss Byte09

stratege-0815

#72
So, ich weiss nicht ob das alles richtig geklappt hat.
Ich hänge das log hier als Datei an, als embedded code klappte es nicht - vielleicht zuviel Text.

Vielleicht kam es durch den Debug Modus, mein FHEM war fast nicht mehr bedienbar. Firefox meldete die ganze Zeit die Webseite würde den Rechner verlangsamen und der Raspberry Pi3 zeigte 50%-80% CPU Auslastung für FHEM.

Ich habe auch kein Problem den MSwitch zu löschen und dann alles neu anzulegen. Aber wahrscheinlich lande ich dann in der selben Situation.

Byte09

#73
Zitat von: stratege-0815 am 23 März 2020, 20:11:43
So, ich weiss nicht ob das alles richtig geklappt hat.
Ich hänge das log hier als Datei an, als embedded code klappte es nicht - vielleicht zuviel Text.

Vielleicht kam es durch den Debug Modus, mein FHEM war fast nicht mehr bedienbar. Firefox meldete die ganze Zeit die Webseite würde den Rechner verlangsamen und der Raspberry Pi3 zeigte 50%-80% CPU Auslastung für FHEM.

Ich habe auch kein Problem den MSwitch zu löschen und dann alles neu anzulegen. Aber wahrscheinlich lande ich dann in der selben Situation.

sorry, ich habe jetzt erst gesehen , das du das Log geposted hast.  Ich schaue mir das heute abend oder morgen an.

gruss Byte09

edit:

ZitatVielleicht kam es durch den Debug Modus, mein FHEM war fast nicht mehr bedienbar. Firefox meldete die ganze Zeit die Webseite würde den Rechner verlangsamen und der Raspberry Pi3 zeigte 50%-80% CPU Auslastung für FHEM.

... das hängt damit zusammen , wie ich die Daten für die Liveansicht abgreife - in einer kommenden Version ist das geändert.

psycho160

#74
hi, ich melde mich nun noch mal mit einem ersten erfahrungsbericht. danke noochmal an byte09 für seine Bemühungen.

Ich habe das ganze aber nun mit einem 3 Zeiligem DOIF gelöst:


([06:19-06:30|8] and [Bewohner:state] eq "home" and [Dimmer:state] eq "pct") (
set Dimmer pct {([Dimmer:pct])+1}
)
DOELSEIF([Bewohner:state] ne "home" or [07:00|8])(set Dimmer off)


Wichtig: Das DOIF benötigt folggende Attribute:


attr di_SZ_wakeUp do always
attr di_SZ_wakeUp repeatcmd 30
attr di_SZ_wakeUp repeatsame 15:1


Alle 30 Sekunden wird pct um 1 erhöht, das ganze 15x (also es dimmt alle 30 Sekunden um 1 % höher)
MeinDOIF beginnt um 06:19, darum MUSS ich 1 min vorher den Shelly Dimmer in den "pct" state versetzen.
Das mache ich mit einem "at" um 06:18:


define Wecker at *06:18:00 set LD_SZ pct 3


(Das ganze halt an eure gewünschte Weckzeit anpassen...)

Das ganze weckt mich nun seit einigen Monaten sanft auf :)

lg
- 2013@FHEM - 2020 Setup: Pi 4 4GB Systeme: Shelly, Tasmota, Zigbee und mittlerweile nur noch wenig Homematic. Entwicker von: tado-FHEM Modul (perlcritic 3 ^^)(https://git.wolfmajer.at/Public/FHEM-Tado)

stratege-0815

Ich habe noch einmal alles gelöscht und neu angelegt, upgedated habe ich auch noch einmal

Im FHEM log erhalte ich beim start ich immer noch diese Einträge:

2020.05.01 19:26:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 1234.
2020.05.01 19:26:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 10760.


Ich habe mich wieder an diese Schritte gehalten:

Zur Einrichtung:

- Mswitch anlegen : define NAME MSwitch
- In den Wizardmode gehen: set NAME wizard
- den Modus 'import PRECONF' wählen ( Button )
- device 'Slowdimmer' wählen ( Dropdownfeld )
- Button 'importiere dieses MSwitch' klicken
- bei 'auslösendes Gerät' die zu steuernde Lampe wählen - es werden nur Geräte angeboten die ptc unterstützen
- Button 'Trigger speichern' klicken
- Fertig !

Irgendwas ist da ja immer noch uninitialisiert, so scheint mir.


stratege-0815

Zitat von: psycho160 am 01 April 2020, 05:32:29
hi, ich melde mich nun noch mal mit einem ersten erfahrungsbericht. danke noochmal an byte09 für seine Bemühungen.

Ich habe das ganze aber nun mit einem 3 Zeiligem DOIF gelöst:


([06:19-06:30|8] and [Bewohner:state] eq "home" and [Dimmer:state] eq "pct") (
set Dimmer pct {([Dimmer:pct])+1}
)
DOELSEIF([Bewohner:state] ne "home" or [07:00|8])(set Dimmer off)


Wichtig: Das DOIF benötigt folggende Attribute:


attr di_SZ_wakeUp do always
attr di_SZ_wakeUp repeatcmd 30
attr di_SZ_wakeUp repeatsame 15:1


Alle 30 Sekunden wird pct um 1 erhöht, das ganze 15x (also es dimmt alle 30 Sekunden um 1 % höher)
MeinDOIF beginnt um 06:19, darum MUSS ich 1 min vorher den Shelly Dimmer in den "pct" state versetzen.
Das mache ich mit einem "at" um 06:18:


define Wecker at *06:18:00 set LD_SZ pct 3


(Das ganze halt an eure gewünschte Weckzeit anpassen...)

Das ganze weckt mich nun seit einigen Monaten sanft auf :)

lg

Kannst du vielleicht mal einen vollständigen Screenshot von deinem MSwitch posten, ich glaube da ist bei meiner Umgebung noch irgendwas unvollständig.

stratege-0815

Zitat von: stratege-0815 am 01 Mai 2020, 21:58:57
Kannst du vielleicht mal einen vollständigen Screenshot von deinem MSwitch posten, ich glaube da ist bei meiner Umgebung noch irgendwas unvollständig.

Wer lesen kann ist klar im Vorteil. Du machst das ja ohne den MSwitch. Das läuft bei mir jetzt auch in einer rudimentären Konfiguration ohne MSwitch die ich nur noch an meine Bedürfnisse anpassen muss.

Trotzem Danke allen Beteiligten.