HM-LC-Dim1T-DR - sofortiges Schalten per Stromstoß

Begonnen von kossmann, 23 Oktober 2017, 19:12:55

Vorheriges Thema - Nächstes Thema

kossmann

Hallo zusammen,

ich dachte, es sei eine schlaue Idee, statt eines HM-LC-Sw1-DR einen HM-LC-Dim1T-DR als Eltako-Ersatz für die Hutschiene zu kaufen, um im Flur LED-Spots zu schalten. Die Spots selbst sind nicht dimmbar, so dass ich nur die Ein/Aus-Funktion nutzen möchte (dimmen vielleicht irgendwann mal, wenn dimmbare Leuchten verbaut werden).

Per FHEM funktioniert dies auch wunderbar - on und off wird sofort umgesetzt. Wenn ich allerdings die Unterputz-Taster nutze und somit per Tastereingang schalte, scheint der Dimmaktor nicht sofort von 0 auf 100 (bzw. umgekehrt) zu gehen, sondern zum Zielwert zu dimmen. Die LEDs flackern in dieser Zeit leider.

Gibt es in der langen Liste der Register eventuell zwei, die die "Fahrzeit" von 0 auf 100 und zurück per Stromstoß definieren, den man auf 0 ("sofort") setzen kann?

get Flur_Licht_Dim regList
list:         register | range              | peer     | description
   1: fuseDelay        |   0 to 2.55s       |          | fuse delay
   1: logicCombination |     literal        |          |  options:invMinus,andinv,or,plusinv,invPlus,minusinv,minus,xor,nand,nor,plus,invMul,and,mulinv,orinv,inactive,mul
   1: ovrTempLvl       |  30 to 100C        |          | overtemperatur level
   1: powerUpAction    |     literal        |          | behavior on power up options:off,on
   1: redLvl           |   0 to 100%        |          | reduced power level
   1: redTempLvl       |  30 to 100C        |          | reduced temperatur recover
   1: sign             |     literal        |          | signature (AES) options:off,on
   1: statusInfoMinDly |   0 to 15.5s       |          | status message min delay special:unused
   1: statusInfoRandom |   0 to 7s          |          | status message random delay
   1: transmitTryMax   |   1 to 10          |          | max message re-transmit
   3: lgActionTypeDim  |     literal        | required |  options:toggelDim,toggleToCntInv,toggelDimToCnt,jmpToTarget,upDim,toggleToCnt,downDim,off,toggelDimToCntInv
   3: lgCtDlyOff       |     literal        | required | Jmp on condition from delayOff options:outside,ltLo,between,ltHi,geLo,geHi
   3: lgCtDlyOn        |     literal        | required | Jmp on condition from delayOn options:between,ltLo,outside,ltHi,geHi,geLo
   3: lgCtOff          |     literal        | required | Jmp on condition from off options:geLo,geHi,outside,between,ltLo,ltHi
   3: lgCtOn           |     literal        | required | Jmp on condition from on options:outside,ltLo,between,ltHi,geLo,geHi
   3: lgCtRampOff      |     literal        | required | Jmp on condition from rampOff options:outside,ltLo,between,ltHi,geLo,geHi
   3: lgCtRampOn       |     literal        | required | Jmp on condition from rampOn options:geHi,geLo,ltHi,ltLo,between,outside
   3: lgCtValHi        |   0 to 255         | required | Condition value high for CT table
   3: lgCtValLo        |   0 to 255         | required | Condition value low for CT table
   3: lgDimJtDlyOff    |     literal        | required | Jump from delayOff options:rampOff,dlyOn,rampOn,on,off,no,dlyOff
   3: lgDimJtDlyOn     |     literal        | required | Jump from delayOn options:dlyOn,rampOff,rampOn,on,off,no,dlyOff
   3: lgDimJtOff       |     literal        | required | Jump from off options:dlyOn,rampOff,rampOn,on,off,dlyOff,no
   3: lgDimJtOn        |     literal        | required | Jump from on options:dlyOff,no,on,rampOff,dlyOn,rampOn,off
   3: lgDimJtRampOff   |     literal        | required | Jump from rampOff options:off,rampOn,rampOff,dlyOn,on,dlyOff,no
   3: lgDimJtRampOn    |     literal        | required | Jump from rampOn options:dlyOff,no,off,rampOff,dlyOn,rampOn,on
   3: lgDimMaxLvl      |   0 to 100%        | required | dimMaxLevel
   3: lgDimMinLvl      |   0 to 100%        | required | dimMinLevel
   3: lgDimStep        |   0 to 100%        | required | dimStep
   3: lgMultiExec      |     literal        | required | execution per repeat message options:on,off
   3: lgOffDly         |   0 to 111600s     | required | off delay
   3: lgOffDlyBlink    |     literal        | required | blink when in off delay options:on,off
   3: lgOffDlyNewTime  | 0.1 to 25.6s       | required | off delay blink time for low
   3: lgOffDlyOldTime  | 0.1 to 25.6s       | required | off delay blink time for high
   3: lgOffDlyStep     | 0.1 to 25.6%       | required | off delay step if blink is active
   3: lgOffLevel       |   0 to 100%        | required | PowerLevel off
   3: lgOffTime        |   0 to 111600s     | required | off time special:unused
   3: lgOffTimeMode    |     literal        | required | off time meant absolut or at least options:minimal,absolut
   3: lgOnDly          |   0 to 111600s     | required | on delay
   3: lgOnDlyMode      |     literal        | required |  options:setToOff,NoChange
   3: lgOnLevel        |   0 to 100.5%      | required | PowerLevel on special:oldLevel
   3: lgOnLvlPrio      |     literal        | required |  options:low,high
   3: lgOnMinLevel     |   0 to 100%        | required | minimum PowerLevel
   3: lgOnTime         |   0 to 111600s     | required | on time special:unused
   3: lgOnTimeMode     |     literal        | required | on time meant absolut or at least options:minimal,absolut
   3: lgRampOffTime    |   0 to 111600s     | required | rampOffTime
   3: lgRampOnTime     |   0 to 111600s     | required | rampOnTime
   3: lgRampSstep      |   0 to 100%        | required | rampStartStep
   3: shActionTypeDim  |     literal        | required |  options:toggelDim,toggleToCntInv,toggelDimToCnt,jmpToTarget,upDim,toggleToCnt,downDim,off,toggelDimToCntInv
   3: shCtDlyOff       |     literal        | required | Jmp on condition from delayOff options:outside,ltLo,between,ltHi,geLo,geHi
   3: shCtDlyOn        |     literal        | required | Jmp on condition from delayOn options:between,ltLo,outside,ltHi,geHi,geLo
   3: shCtOff          |     literal        | required | Jmp on condition from off options:geLo,geHi,outside,between,ltLo,ltHi
   3: shCtOn           |     literal        | required | Jmp on condition from on options:outside,ltLo,between,ltHi,geLo,geHi
   3: shCtRampOff      |     literal        | required | Jmp on condition from rampOff options:outside,ltLo,between,ltHi,geLo,geHi
   3: shCtRampOn       |     literal        | required | Jmp on condition from rampOn options:geHi,geLo,ltHi,ltLo,between,outside
   3: shCtValHi        |   0 to 255         | required | Condition value high for CT table
   3: shCtValLo        |   0 to 255         | required | Condition value low for CT table
   3: shDimJtDlyOff    |     literal        | required | Jump from delayOff options:rampOff,dlyOn,rampOn,on,off,no,dlyOff
   3: shDimJtDlyOn     |     literal        | required | Jump from delayOn options:dlyOn,rampOff,rampOn,on,off,no,dlyOff
   3: shDimJtOff       |     literal        | required | Jump from off options:dlyOn,rampOff,rampOn,on,off,dlyOff,no
   3: shDimJtOn        |     literal        | required | Jump from on options:dlyOff,no,on,rampOff,dlyOn,rampOn,off
   3: shDimJtRampOff   |     literal        | required | Jump from rampOff options:off,rampOn,rampOff,dlyOn,on,dlyOff,no
   3: shDimJtRampOn    |     literal        | required | Jump from rampOn options:dlyOff,no,off,rampOff,dlyOn,rampOn,on
   3: shDimMaxLvl      |   0 to 100%        | required | dimMaxLevel
   3: shDimMinLvl      |   0 to 100%        | required | dimMinLevel
   3: shDimStep        |   0 to 100%        | required | dimStep
   3: shMultiExec      |     literal        | required | reg unused, placeholder only options:on,off
   3: shOffDly         |   0 to 111600s     | required | off delay
   3: shOffDlyBlink    |     literal        | required | blink when in off delay options:on,off
   3: shOffDlyNewTime  | 0.1 to 25.6s       | required | off delay blink time for low
   3: shOffDlyOldTime  | 0.1 to 25.6s       | required | off delay blink time for high
   3: shOffDlyStep     | 0.1 to 25.6%       | required | off delay step if blink is active
   3: shOffLevel       |   0 to 100%        | required | PowerLevel off
   3: shOffTime        |   0 to 111600s     | required | off time special:unused
   3: shOffTimeMode    |     literal        | required | off time meant absolut or at least options:minimal,absolut
   3: shOnDly          |   0 to 111600s     | required | on delay
   3: shOnDlyMode      |     literal        | required |  options:setToOff,NoChange
   3: shOnLevel        |   0 to 100.5%      | required | PowerLevel on special:oldLevel
   3: shOnLvlPrio      |     literal        | required |  options:low,high
   3: shOnMinLevel     |   0 to 100%        | required | minimum PowerLevel
   3: shOnTime         |   0 to 111600s     | required | on time special:unused
   3: shOnTimeMode     |     literal        | required | on time meant absolut or at least options:minimal,absolut
   3: shRampOffTime    |   0 to 111600s     | required | rampOffTime
   3: shRampOnTime     |   0 to 111600s     | required | rampOnTime
   3: shRampSstep      |   0 to 100%        | required | rampStartStep

rvideobaer

Hallo,

mit regTable hätte man die gesetzten werte sehen können, aber es sieh so aus das für die Taster eine Rampe eingestellt ist. Diese wird z.b. für jeden Taster oder Peer separat festgelegt. Einfach mal vergleichen.

Gruß Rolf
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

Pfriemler

#2
Die Dimmzeit kann sicher ohne weiteres verkürzt und bei späterem Bedarf wieder angepasst werden. Alternativ ist ein Überspringen des Dimmers durch Manipulation der jump table denkbar, aber dazu fehlen mir Erfahrungen.
Korrigiere folgende Register für den internen Peer "self01", der zuvor sichtbar gemacht werden muss mit mit set Flur_Licht_Dim regSet intKeyVisib visib:


   3: shRampOffTime    |   0 to 111600s     | required | rampOffTime
   3: shRampOnTime     |   0 to 111600s     | required | rampOnTime


Werte von bsp. 0.1 s sollten praktisch nicht auffallen, gestatten aber dennoch ein etwas stromspitzendämpfendes "Anfahren" der Lampen.

Bsp:
set Flur_Licht_Dim regSet shRampOnTime 0.1 self01
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

kossmann

#3
@rvideobaer: Die Taster sind keine HM-Taster, sondern ganz normale Unterputz-Schalter, so wie sie vorher den Eltako gesteuert haben - also kein Peering mit Tastern... aber "Rampe" ist wohl das Stichwort und wie Pfriemler ergänzt hat, self01.

@Pfriemler: Danke, Danke, Danke!!! Ich habe (nach deiner Anleitung) die shRampOnTime und shRampOffTime auf jeweils 0.1 gesetzt - jetzt läuft es sauber :-)

Danke euch!

Pfriemler

Auch wenn Deine vorhandenen Taster keine Ähnlichkeit zu HM-Tastern haben - jetzt sind sie ein (gemeinsamer) HM-Gerätetaster (eben self01) und damit eben genauso programmierbar.
Als Dimmer reagiert der -DR jetzt aber noch auf lange Tastendrücke, oder? Das müsste man ggf. auch noch wegkonfigurieren, oder? Bei nicht dimmbaren Lampen gibt es da aber kaum sinnvolle Alternativen.
lgOnRampTime ist insofern nicht wirklich förderlich, weil gar nicht relevant im Dimmerbetrieb, mein Fehler.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

rvideobaer

Hallo,

da war ich etwas zu langsam, wollte gerade bezüglich self01 das selbe schreiben.

Gruß Rolf
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

kossmann

Okay, hatte ich wohl falsch verstanden.

Lange Tastendrücke sind bei mir (momentan) nicht relevant. Es würde zwar gedimmt werden und somit flackern, aber das kommt in der Praxis nicht vor, daher lasse ich die entsprechenden Register erst mal in Ruhe.