'n Ahmdsen,
als Freund langsamer automatischer Dimmaktionen bin ich mit shRampOnTime und shRampOffTime jetzt endgültig per du ... 8)
Während ich also der 15-Sekunden-Dimmrampe zusehe, denke ich, es wäre doch auch cool, diesen automatischen Dimmvorgang zu stoppen, z.B. mit der Fernbedienung ... aber mit einem erneuten kurzen Druck springt man ja auf die Endposition, das macht ja auch Sinn. Nur: Dafür gibt es doch sicher auch ein Register, aber ich finde nur ein lgMultiExec ... oder woran muss ich pfriemeln, damit da was geht? Was geht überhaupt?
was hast du den eingestellt?
kurzer Druck - dimmen mit Rampe 15 sec
jetzt willst du kurzer Druck während des dimmens=> stop
Da musst du die jumptable maninulieren
Ein langer druck zum stop geht natürlich genauso - ist nur "unnatürlich" für mich
'tschulljung, ich komm nicht jeden Tag dazu ...
Ja richtig, ich möchte den per Kurzdruck ausgelösten Dimmvorgang durch einen weiteren Tastendruck stoppen, anstatt 100% (beim Aufdimmen) oder 0% (beim Abdimmen).
ZitatDa musst du die jumptable maninulieren
Ein weises Wort gelassen ausgesprochen... Gibt es irgendwo eine Beschreibung der Register (ist ja nicht FHEM-spezifisch) zum Download/Nachlesen?
hast du schon das Einsteigerdoc Anhang HM gelesen? Melde dich, wenn das nicht reicht
Im prinzip brauchst du die statemachine - also die "Jt" register.
Zitat von: martinp876 am 14 Mai 2014, 09:29:45
hast du schon das Einsteigerdoc Anhang HM gelesen?
Im Prinzip ja, aber vermutlich hatte ich irgendwann einen Hirnknoten. Ich stelle überdies überrascht fest, dass man die Einsteiger-Doc bei steigendem persönlichem Level immer wieder durcharbeiten sollte, man entdeckt immer noch neues ...
In den Registern entdecke ich für den Dimmer keine shJt..., sondern nur shDimJt... ich denke, das sind aber die richtigen?
Ok. Soweit ich verstehe:
- Wenn ich meinen ausgeschalteten Dimmer mit dem Einschaltbutton triggere, komme ich dank shDimJtOff (denn eben ist er aus) = dlyOn auf den entsprechenden verzögerten Start ...
- da das Delay=0 ist, wegen shDimJtDlyOn=rampOn unmittelbar auf den Beginn der Hochdimm-Rampe.
Wenn ich jetzt nachtriggere, greift nach meinem Verständnis shDimJtRampOn=on -> Lampe ist schlagartig an.
Soweit so gut. In der Doc schreibst Du zur Erklärung der Jumptable, dass der Kanal nach no,dlyOn,on,dlyOff,off gehen kann (später ist zusätzlich von rampOn und rampOff die Rede). Später heißt es, dass die States On/Off in der State-Tabelle nicht die Helligkeit des Dimmers darstellen, sondern den Zustand der Steuerung ... :-\
OK. Ich denke, würde ich jetzt shDimJtRampOn auf "no" setzen, würde ein "Nachklicken" nichts mehr bewirken. "off" würde ich als "Aus" interpretieren und nicht als Einfrieren des Dimmers, denn in Analogie komme ich beim Ausschalten via shDimJtOn > shDimJtDlyOff > shDimJtRampOff > Off auf den Auszustand.
Ich kann aber nirgends eine Aktion erkennen, wie ich den laufenden rampOn-Vorgang stoppen kann - "stop" gibt es nicht ...? :-[
ZitatIn den Registern entdecke ich für den Dimmer keine shJt..., sondern nur shDimJt... ich denke, das sind aber die richtigen?
die richtigen sind mit
get <dimmer> regList
zu sehen.
ZitatWenn ich jetzt nachtriggere, greift nach meinem Verständnis shDimJtRampOn=on -> Lampe ist schlagartig an.
ah - hm
verstehe - das ist ein Problem - muss einmal nachdenken.
regList liefert nur welche mit dim...
Geht nich gips nich
hallo pfriemler,
ich hätte noch eine idee.
du eleminierst die zustände on und off. also timerOn/Off=0.
dafür nutzt du die zustände onDly und offDly. also timerOn/OffDly=unendlich. das sind dann sozusagen deine quasistationären zustände.
springen musst du dann
onDly=>rampOn=>offDly=>rampOff=>onDly
sicherhaltshalber noch on=>offDly und on=>onDly.
viel spass. :)
gruss frank
Klingt nicht übel. Probier ich mal aus, bin bis Mo auslands. Wäre dann also ein Toggler ... Klick während einer Rampe hält an, nächster Klick startet Rampe herunter. on bzw. off wird am Ende der Rampe automatisch erreicht. Der nächste Klick sollte dann aber direkt auf die Rampe gehen, d.h. onDly bzw offDly überspringen. Außerdem muss noch irgendwas geändert werden - derzeit arbeitet die Rampenzeit absolut, d.h. eine Rampe von einem Dimmzustand läuft dann gefühlt langsamer...
Geht nich gips nich
Zitatd.h. onDly bzw offDly überspringen.
nein.
onDly ist "quasi" der zustand off (wait down) und offDly ist "quasi" der zustand on (wait up). je nachdem wie lange die rampe durchlaufen wurde können die pegel natürlich auch 0 oder 100% sein. völlig egal.
on und off gibt es eigentlich nicht, da die zeiten jeweils 0 sein sollen. nur in den dly-zuständen wird verharrt (stationär). ausserdem werden sie nicht angesprungen. die expliziten zustände on und off sind ja durch feste pegel (einstellbar) definiert. du willst aber einen variablen zustand. das erreicht man hoffentlich durch den sprung von der rampe zu nächsten dly-zustand.
edit:
gerade mit einem dim1tpbu ausprobiert. mit 1 taste auf short. klappt prima.
gruss frank
Ja ne. Hast recht, ich hatte noch einen Denkfehler. Die Jumptable wird also so oder so durchlaufen, ein Trigger beendet nur einen getimten Zustand. Zudem, wenn's funzt, funzt es eben. Ich freue mich dann schon mal auf zu Hause.
Geht nich gips nich