Hallo,
ich möchte gerne über einen Unterputzdimmer (HM-LC-Dim1TPBU-FM) auch eine Schaltsteckdose schalten.
Wenn ich den Dimmer jetzt kurz betätige, dann schaltet die Steckdose sehr verzögert (bis zu 20 Sekunden) später erst.
Mit dem Event-Monitor habe ich festgestellt, dass der Dimmer sehr verzögert seinen Status an FHEM zurück meldet.
In diversen Threads habe ich Informationen gefunden, dass man die Register statusInfoMinDly und statusInfoRandom ändern soll (auf 0 bzw. unused).
Das habe ich für das Device und den Kanal gemacht:
DG_Buero_Dimmer type:dimmer -
list:peer register :value
1: fuseDelay :1 s
1: logicCombination :or
1: ovrTempLvl :80 C
1: powerUpAction :off
1: redLvl :40 %
1: redTempLvl :75 C
1: statusInfoMinDly :unused
1: statusInfoRandom :0 s
1: transmitTryMax :6
DG_Buero_Dimmer_Sw1_V_01 type:dimmer -
list:peer register :value
1: fuseDelay :1 s
1: logicCombination :inactive
1: ovrTempLvl :80 C
1: powerUpAction :off
1: redLvl :40 %
1: redTempLvl :75 C
1: statusInfoMinDly :unused
1: statusInfoRandom :0 s
1: transmitTryMax :6
DG_Buero_Dimmer_Sw1_V_02 type:dimmer -
list:peer register :value
1: fuseDelay :1 s
1: logicCombination :inactive
1: ovrTempLvl :80 C
1: powerUpAction :off
1: redLvl :40 %
1: redTempLvl :75 C
1: statusInfoMinDly :unused
1: statusInfoRandom :0 s
1: transmitTryMax :6
Jetzt bin ich auf 5-10 Sekunden runter. Gibt es noch weiter "Tuning-Methoden", damit ich auf eine Verzögerung von unter 1 Sekunde komme?
statusInfoMinDly und statusInfoRandom hatte ich mehr mit den Statusmeldungen bei powerOn assoziiert stimmt nicht, gilt auch im normalen Betrieb. Dadurch werden u.a. Funkkollisionen beim Einstromen, etwa nach einem Stromausfall, vermieden. edit: s.u.
Bei meinen beiden Dimmer dieser Bauart stehen sie bei 2s und 1s.
Spontan fällt mir noch ein, dass die Dimmer gerade bei Rampen als erstes ACK auf eine Fernsteuerung den um 0.5 geänderten Ausgangswert als "phys" zurückliefern, erst nach dem Ende der Rampe erfolgt die "Vollzugsmeldung".
Auf was genau triggerst Du für das Einschalten der Steckdose?
Derzeit sieht das DOIF wie folgt aus:
defmod di_helper_DG_Buero DOIF ([DG_Buero_Dimmer] eq "on") (set Steckdose_691 on)\
\
DOELSEIF ([DG_Buero_Dimmer] eq "off") (set Steckdose_691 off)
attr di_helper_DG_Buero do always
attr di_helper_DG_Buero room doif
Aber das mit der Rückmeldung zu Beginn ist eine gute Idee, das habe ich schon in der GUI beobachtet, dass da zunächst ein anderer Status steht.
Update:
Das funktioniert leider nur, wenn man über die GUI schaltet. Wenn man den Dimmer betätigt nimmt er den Status nicht an :(.
Ich sehe ja auch im Event-Monior erst eine Rückmeldung nach der Zeit. Es ist also kein Problem des Triggers in FHEM, sondern dass der Dimmer sich gleich melden soll, wenn er gedrückt wurde.
Mit meinem einen HM-LC-Dim1TPBU-FM kann ich das gerade nicht nachstellen: Der liefert gar keinen Status zurück, wenn ich ihn auf "an" oder "aus" stelle (z.B. "chn:an phys:0)" - und das Licht brennt. Toll, was ist das denn jetzt für eine Sch...)
Aber folge ich einem anderen Gerät, wie etwa einem HM-LC-Dim1PWM-CV (12-24-LED Zwischendeckendimmer) oder einem HM-LC-Sw2PBU-FM mit einem DOIF Deiner Bauart, so erfolgt die Statusänderung meines Aktors ziemlich genau 3-4 Sekunden nach Erreichen des Endzustands. Das halte ich für völlig normal.
Hat wir jetzt neuerdings ein Problem mit dem HM-LC-Dim1TPBU-FM?
Zitat von: Pfriemler am 27 Januar 2017, 17:09:47
statusInfoMinDly und statusInfoRandom hatte ich mehr mit den Statusmeldungen bei powerOn assoziiert.
Die gelten auch für die Status-Meldungen während des Betriebs. Hab bei meinem HM-LC-Sw1PBU-FM statusInfoMinDly auf 0.5s (das Minimum, bei "unused" sendet der Schaltger gar keine Meldungen mehr) und statusInfoRandom auf 0 gesetzt, dann geht es recht flott.
Gruß Marcel
Was heißt recht flott?
Bei mir dauert das nach wie vor 5-10 Sekunden.
Muss man das dann bei allen 3 Channels setzen, oder recht Channel 1, der das Licht schaltet (ich habe es bei allen 3 gesetzt)?
sniffe mal, wie im wiki beschrieben, zb ein set on.
Ein "set on" würde ja aus FHEM aus aufgerufen. Da funktioniert das Ganze ja auch direkt (ohne Verzögerung).
Mir geht es um die Verzögerung von dem Moment an, wo ich den Wanddimmer betätige, bis der Dimmer eine Nachricht rausschickt, dass er betätigt wurde.
Insofern weiß ich nicht, was mir ein sniffen hier mehr bringt, als ich in dem Event-Monitor sehe.
Sobald die Zentrale die Nachricht des Dimmers empfängt, schaltet sie auch sofot die Steckdose ein.
Vielleicht noch mal zeitlich geschildert:
1. Drücken des Wanddimmers
2. 5-10 Sekunden warten
3. Wanddimmer sendet seinen neuen Status
4. FHEM schaltet die Steckdose
Der Punkt 2 stört mich, den möchte ich auf unter 1 Sekunde drücken, aber wie?
theoretisch müsste es ein register geben , wo die rampenzeit bei den Tasten self1 und self2 eingestellt wird.
das ändern
Die Rampenzeit bei Shorts ist default bei 0.5 s, das geht kaum kürzer. Beim manuellen Dimmen dauert das "Fahren" länger. Ich denke auch, dass der Dimmer erst nach Erreichen des neuen Zustands + minDelay + random den Status an FHEM meldet. Ich habe keine Ahnung, wie man das beschleunigt.
RampSstep 100%
Start Step Rampe. Steht so in der Registerliste ( einfach einmal nachsehen, welche Register "Rampe" beinhalten).
Es gibt auch noch die Rampenzeiten.
Dimstep 100% ist auch eine Idee.
Ja so geht es natürlich noch 0.5 Sekunden schneller, aber damit degradiert man das Ding ja quasi zum Schalter. Ich dachte eher an irgendeinen Trick. Jetzt habt ihr mich endgültig neugierig gemacht. Ich geh ma ehmd was probieren ...
via Tapatalk
Ich weiß ja nicht , mangels Info , wie er seinen Dimmer eingestellt hat :)
meiner geht bei short auf 50 % , mit long tue ich steppen auf 100 % ,
wenn größer 0% kurzer short, blinken 10 sek, danach runter auf 0%.
Dimmer hat Unmengen an Einstellungsmöglichkeiten.
Was machst du bei langem short? ;) :o
Ja, die Möglichkeiten sind extrem. Viele Dimmer haben die virtuellen Kanäle. Dann gibt es noch die "else" Register. Was die machen kann ich nicht sagen, aber irgend etwas können die auch
Hallo, zur Info noch die Register-Werte:
HM-LC-Dim1TPBU-FM, Firmware 2.7
DG_Buero_Dimmer type:dimmer -
list:peer register :value
self01 self02
lg sh lg sh
ActionTypeDim downDim jmpToTarget upDim jmpToTarget
CtDlyOff geLo geLo geLo geLo
CtDlyOn geLo geLo geLo geLo
CtOff geLo geLo geLo geLo
CtOn geLo geLo geLo geLo
CtRampOff geLo geLo geLo geLo
CtRampOn geLo geLo geLo geLo
CtValHi 100 100 100 100
CtValLo 50 50 50 50
DimElsActionType off off off off
DimElsJtDlyOff rampOff rampOff rampOff rampOff
DimElsJtDlyOn rampOn rampOn rampOn rampOn
DimElsJtOff dlyOn dlyOn dlyOn dlyOn
DimElsJtOn dlyOff dlyOff dlyOff dlyOff
DimElsJtRampOff off off off off
DimElsJtRampOn on on on on
DimElsOffTimeMd absolut absolut absolut absolut
DimElsOnTimeMd absolut absolut absolut absolut
DimJtDlyOff rampOff rampOff rampOn rampOn
DimJtDlyOn dlyOff dlyOff rampOn rampOn
DimJtOff dlyOff dlyOff dlyOn dlyOn
DimJtOn dlyOff dlyOff rampOn rampOn
DimJtRampOff off off rampOn rampOn
DimJtRampOn dlyOff dlyOff on on
DimMaxLvl [%] 100 100 100 100
DimMinLvl [%] 0 0 0 0
DimStep [%] 5 5 5 5
MultiExec on off on off
OffDly [s] 0 0 0 0
OffDlyBlink on on on on
OffDlyNewTime [s] 0.4 0.4 0.4 0.4
OffDlyOldTime [s] 0.4 0.4 0.4 0.4
OffDlyStep [%] 5 5 5 5
OffLevel [%] 0 0 0 0
OffTime unused unused unused unused
OffTimeMode absolut absolut absolut absolut
OnDly [s] 0 0 0 0
OnDlyMode setToOff setToOff setToOff setToOff
OnLevel [%] 100 100 100 100
OnLvlPrio high high high high
OnMinLevel [%] 10 10 10 10
OnTime [s] 1 unused unused unused
OnTimeMode minimal absolut absolut absolut
RampOffTime [s] 0.5 0.5 0.5 0.5
RampOnTime [s] 0.5 0.5 0.5 0.5
RampSstep [%] 5 5 5 5
Ich habe da bis auf die 2 Parameter statusInfoMinDly und statusInfoRandom nichts geändert zu den Standard-Werten.
Statusmeldung wäre das Register gewesen. Es steht nicht in deiner Liste.
Es ist eine minimal Erzieherinnen.
Generell ist ein aktor nicht als Sensor gedacht. Eq3 hat nicht beabsichtigt, den Button nutzbar zu machen ausserhalb des aktors. Daher funktioniert es nicht in dieser Form.
Eine neue Fw, falls einer die schreibt.
Zitat von: martinp876 am 30 Januar 2017, 21:54:00
Es ist eine minimal Erzieherinnen.
Also für gewöhnlich konnte ich noch erraten, was die Autokorrektur Deines Handys (?) da zusammenmurkst, aber das übersteigt meine Kräfte ... ::) ;D
und zu den Else-Registern:
ZitatWas die machen kann ich nicht sagen, aber irgend etwas können die auch
Ich wollte Dich schon länger fragen, aber dann kann ich das ja lassen.
Danke für den Mut zur Lücke!
Ich wollte doch noch was probieren ...
Zitat von: Topgun am 28 Januar 2017, 10:28:46
Was heißt recht flott?
Bei mir dauert das nach wie vor 5-10 Sekunden.
Muss man das dann bei allen 3 Channels setzen, oder recht Channel 1, der das Licht schaltet (ich habe es bei allen 3 gesetzt)?
Flott heißt <= 1 Sekunde. Ist aber ein normaler Schalter und kein Dimmer.
Hast Du minDly mal auf 0.5 statt 0 gesetzt? Wie ich schon geschrieben habe, 0 ist ganz ungut wenn man nen Status haben will.
Zitat von: Pfriemler am 30 Januar 2017, 23:38:18und zu den Else-Registern:Ich wollte Dich schon länger fragen, aber dann kann ich das ja lassen.
Danke für den Mut zur Lücke!
Ich wollte doch noch was probieren ...
Das ist jetzt geraten, aber ich würde fast meinen Hintern darauf verwetten dass das die Werte für den Fall sind, dass die Condition für das Ereignis nicht zutrifft, sprich die Sache mit den shCt* und lgCt Registern. Das wären z.B. die Helligkeit bei einem Bewegungsmelder. Dafür spricht auch folgender Satz aus dem ELV Journal:
"Ist die zu prüfende Bedingung nicht erfüllt, wird das Ereignis ignoriert. Nur bei wenigen Ausnahmen (den beiden neuen HomeMatic-Dimmern)
kann ein vereinfachtes Aktionsprofil für den Fall der Nichterfüllung definiert werden."
Gruß Marcel
Hört sich plausibel an. Die Dimmer sind damit die mit Abstand komplexesten Teile. Zusammen mit den virtuellen Kanälen und dem else kann man..... viel machen.
Bei den virtuellen Kanälen und den logischen Verknüpfungen habe ich noch eine Vorstellung was man damit machen kann. Allerdings keine Anwendung. Bei Else fehlt mit aktuell die Phantasie.
Wäre interessant zu erfahren was eq3 sich hier gedacht hat.
Leider wird es schwer zu vermitteln sein, selbst wenn man eine Anwendung hat.
Sorry, ich bin noch nicht ganz fit, was das Wording angeht ...
Dann müssten das die Register sein, oder (get <name> reg all # zeigt alle Register, die diese Entity hat und den aktuellen Wert)?
DG_Buero_Dimmer type:dimmer -
list:peer register :value
1: fuseDelay :1 s
1: logicCombination :or
1: ovrTempLvl :80 C
1: powerUpAction :off
1: redLvl :40 %
1: redTempLvl :75 C
1: statusInfoMinDly :0.5 s
1: statusInfoRandom :0 s
1: transmitTryMax :6
3:self01 lgActionTypeDim :downDim
3:self01 lgCtDlyOff :geLo
3:self01 lgCtDlyOn :geLo
3:self01 lgCtOff :geLo
3:self01 lgCtOn :geLo
3:self01 lgCtRampOff :geLo
3:self01 lgCtRampOn :geLo
3:self01 lgCtValHi :100
3:self01 lgCtValLo :50
3:self01 lgDimElsActionType :off
3:self01 lgDimElsJtDlyOff :rampOff
3:self01 lgDimElsJtDlyOn :rampOn
3:self01 lgDimElsJtOff :dlyOn
3:self01 lgDimElsJtOn :dlyOff
3:self01 lgDimElsJtRampOff :off
3:self01 lgDimElsJtRampOn :on
3:self01 lgDimElsOffTimeMd :absolut
3:self01 lgDimElsOnTimeMd :absolut
3:self01 lgDimJtDlyOff :rampOff
3:self01 lgDimJtDlyOn :dlyOff
3:self01 lgDimJtOff :dlyOff
3:self01 lgDimJtOn :dlyOff
3:self01 lgDimJtRampOff :off
3:self01 lgDimJtRampOn :dlyOff
3:self01 lgDimMaxLvl :100 %
3:self01 lgDimMinLvl :0 %
3:self01 lgDimStep :5 %
3:self01 lgMultiExec :on
3:self01 lgOffDly :0 s
3:self01 lgOffDlyBlink :on
3:self01 lgOffDlyNewTime :0.4 s
3:self01 lgOffDlyOldTime :0.4 s
3:self01 lgOffDlyStep :5 %
3:self01 lgOffLevel :0 %
3:self01 lgOffTime :unused
3:self01 lgOffTimeMode :absolut
3:self01 lgOnDly :0 s
3:self01 lgOnDlyMode :setToOff
3:self01 lgOnLevel :100 %
3:self01 lgOnLvlPrio :high
3:self01 lgOnMinLevel :10 %
3:self01 lgOnTime :1 s
3:self01 lgOnTimeMode :minimal
3:self01 lgRampOffTime :0.5 s
3:self01 lgRampOnTime :0.5 s
3:self01 lgRampSstep :5 %
3:self01 shActionTypeDim :jmpToTarget
3:self01 shCtDlyOff :geLo
3:self01 shCtDlyOn :geLo
3:self01 shCtOff :geLo
3:self01 shCtOn :geLo
3:self01 shCtRampOff :geLo
3:self01 shCtRampOn :geLo
3:self01 shCtValHi :100
3:self01 shCtValLo :50
3:self01 shDimElsActionType :off
3:self01 shDimElsJtDlyOff :rampOff
3:self01 shDimElsJtDlyOn :rampOn
3:self01 shDimElsJtOff :dlyOn
3:self01 shDimElsJtOn :dlyOff
3:self01 shDimElsJtRampOff :off
3:self01 shDimElsJtRampOn :on
3:self01 shDimElsOffTimeMd :absolut
3:self01 shDimElsOnTimeMd :absolut
3:self01 shDimJtDlyOff :rampOff
3:self01 shDimJtDlyOn :dlyOff
3:self01 shDimJtOff :dlyOff
3:self01 shDimJtOn :dlyOff
3:self01 shDimJtRampOff :off
3:self01 shDimJtRampOn :dlyOff
3:self01 shDimMaxLvl :100 %
3:self01 shDimMinLvl :0 %
3:self01 shDimStep :5 %
3:self01 shMultiExec :off
3:self01 shOffDly :0 s
3:self01 shOffDlyBlink :on
3:self01 shOffDlyNewTime :0.4 s
3:self01 shOffDlyOldTime :0.4 s
3:self01 shOffDlyStep :5 %
3:self01 shOffLevel :0 %
3:self01 shOffTime :unused
3:self01 shOffTimeMode :absolut
3:self01 shOnDly :0 s
3:self01 shOnDlyMode :setToOff
3:self01 shOnLevel :100 %
3:self01 shOnLvlPrio :high
3:self01 shOnMinLevel :10 %
3:self01 shOnTime :unused
3:self01 shOnTimeMode :absolut
3:self01 shRampOffTime :0.5 s
3:self01 shRampOnTime :0.5 s
3:self01 shRampSstep :5 %
3:self02 lgActionTypeDim :upDim
3:self02 lgCtDlyOff :geLo
3:self02 lgCtDlyOn :geLo
3:self02 lgCtOff :geLo
3:self02 lgCtOn :geLo
3:self02 lgCtRampOff :geLo
3:self02 lgCtRampOn :geLo
3:self02 lgCtValHi :100
3:self02 lgCtValLo :50
3:self02 lgDimElsActionType :off
3:self02 lgDimElsJtDlyOff :rampOff
3:self02 lgDimElsJtDlyOn :rampOn
3:self02 lgDimElsJtOff :dlyOn
3:self02 lgDimElsJtOn :dlyOff
3:self02 lgDimElsJtRampOff :off
3:self02 lgDimElsJtRampOn :on
3:self02 lgDimElsOffTimeMd :absolut
3:self02 lgDimElsOnTimeMd :absolut
3:self02 lgDimJtDlyOff :rampOn
3:self02 lgDimJtDlyOn :rampOn
3:self02 lgDimJtOff :dlyOn
3:self02 lgDimJtOn :rampOn
3:self02 lgDimJtRampOff :rampOn
3:self02 lgDimJtRampOn :on
3:self02 lgDimMaxLvl :100 %
3:self02 lgDimMinLvl :0 %
3:self02 lgDimStep :5 %
3:self02 lgMultiExec :on
3:self02 lgOffDly :0 s
3:self02 lgOffDlyBlink :on
3:self02 lgOffDlyNewTime :0.4 s
3:self02 lgOffDlyOldTime :0.4 s
3:self02 lgOffDlyStep :5 %
3:self02 lgOffLevel :0 %
3:self02 lgOffTime :unused
3:self02 lgOffTimeMode :absolut
3:self02 lgOnDly :0 s
3:self02 lgOnDlyMode :setToOff
3:self02 lgOnLevel :100 %
3:self02 lgOnLvlPrio :high
3:self02 lgOnMinLevel :10 %
3:self02 lgOnTime :unused
3:self02 lgOnTimeMode :absolut
3:self02 lgRampOffTime :0.5 s
3:self02 lgRampOnTime :0.5 s
3:self02 lgRampSstep :5 %
3:self02 shActionTypeDim :jmpToTarget
3:self02 shCtDlyOff :geLo
3:self02 shCtDlyOn :geLo
3:self02 shCtOff :geLo
3:self02 shCtOn :geLo
3:self02 shCtRampOff :geLo
3:self02 shCtRampOn :geLo
3:self02 shCtValHi :100
3:self02 shCtValLo :50
3:self02 shDimElsActionType :off
3:self02 shDimElsJtDlyOff :rampOff
3:self02 shDimElsJtDlyOn :rampOn
3:self02 shDimElsJtOff :dlyOn
3:self02 shDimElsJtOn :dlyOff
3:self02 shDimElsJtRampOff :off
3:self02 shDimElsJtRampOn :on
3:self02 shDimElsOffTimeMd :absolut
3:self02 shDimElsOnTimeMd :absolut
3:self02 shDimJtDlyOff :rampOn
3:self02 shDimJtDlyOn :rampOn
3:self02 shDimJtOff :dlyOn
3:self02 shDimJtOn :rampOn
3:self02 shDimJtRampOff :rampOn
3:self02 shDimJtRampOn :on
3:self02 shDimMaxLvl :100 %
3:self02 shDimMinLvl :0 %
3:self02 shDimStep :5 %
3:self02 shMultiExec :off
3:self02 shOffDly :0 s
3:self02 shOffDlyBlink :on
3:self02 shOffDlyNewTime :0.4 s
3:self02 shOffDlyOldTime :0.4 s
3:self02 shOffDlyStep :5 %
3:self02 shOffLevel :0 %
3:self02 shOffTime :unused
3:self02 shOffTimeMode :absolut
3:self02 shOnDly :0 s
3:self02 shOnDlyMode :setToOff
3:self02 shOnLevel :100 %
3:self02 shOnLvlPrio :high
3:self02 shOnMinLevel :10 %
3:self02 shOnTime :unused
3:self02 shOnTimeMode :absolut
3:self02 shRampOffTime :0.5 s
3:self02 shRampOnTime :0.5 s
3:self02 shRampSstep :5 %
OK
@MarcelK: Bei einem Schalter bekomme ich das auch flott hin, aber wollte deshalb jetzt nicht den Schalter durch den Dimmer ersetzen.
Korrekt, es werde alle aktuellen Register angezeigt.
Nun, es werden die Inhalte angezeigt welche fhem kennt. Mögliche Fehler sind: altes statefile, alte Werte aus hminfo,...
Aber wenn du dein System ordentlich aufsetzt hast stimmt alles.
Ich nutze lieber get regtable. Ist für mich angenehme formatiert.
Du hast die maximale Reaktionszeit eingestellt. Besser geht es hier nicht. Besser ist ein externer Button. Da klappte.
Ok, dann wird das mit einem Dimmer nicht funktionieren. Schade.