HM-LC-Sw1PBU-FM Funk-Schaltaktor Taster außer Funktion setzen mit Registern

Begonnen von fhemfrederik, 14 Januar 2018, 12:49:29

Vorheriges Thema - Nächstes Thema

fhemfrederik

Hallo zusammen,

ich habe "hinter" einem HM-LC-Sw1PBU-FM Funk-Schaltaktor (historisch bedingt) MiLight Lampen im Einsatz.
Jetzt möchte ich, dass der Schaltaktor beim Drücken NICHT mehr das interne Relais auslöst. Der Druck soll durch ein notify abgefangen werden und FHEM schaltet MiLight an. Der letzte Teil läuft schon. An die Register habe ich mich noch nicht rangetraut.
set XXX regSet intKeyVisib visib 
attr XXX expert 1
ist bereit erfolgt. 
Welches Register muss jetzt welchen Wert bekommen?
(Alternativ könnte man auch den Schalter komplett ausbauen und durch einen einfachen Funk-Wandtaster 2-fach, Aufputzmontage ersetzen. Allerdings finde ich es schön, wenn man die MiLight Lampen im Urlaub auch komplett ausschalten kann.)

Danke + Grüße
Frederik


frank

das abkoppeln der taster vom aktor ist kein problem, => actType=off.
allerdings senden die taster nie etwas.
also brauchst du einen echten hm taster.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html


fhemfrederik

Zitat von: frank am 14 Januar 2018, 13:46:40
das abkoppeln der taster vom aktor ist kein problem, => actType=off.
allerdings senden die taster nie etwas.
also brauchst du einen echten hm taster.

actType off funktioniert nicht
shActionType off liefert Peer not specified


frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

fhemfrederik

Zitat von: frank am 14 Januar 2018, 16:18:23
dann mach es doch.  :)
self01/self02 ans ende des befehls.
Guter Tipp  :)
Leider hast Du recht und der Schlater funktioniert gar nicht mehr  :(

fhemfrederik

Und da ist nix dabei was mir helfen würde?


R-self01-shActionType
R-self01-shCtDlyOff
R-self01-shCtDlyOn
R-self01-shCtOff
R-self01-shCtOn
R-self01-shCtValHi
R-self01-shCtValLo
R-self01-shMultiExec
R-self01-shOffDly
R-self01-shOffTime
R-self01-shOffTimeMode
R-self01-shOnDly
R-self01-shOnTime
R-self01-shOnTimeMode
R-self01-shSwJtDlyOff
R-self01-shSwJtDlyOn
R-self01-shSwJtOff
R-self01-shSwJtOn

Pfriemler

Nein, diese Register bewirken allesamt nichts für Deinen Wunsch.

Es ist wie frank sagt - keine Chance einer externen Auswertung der Tasten. Nur auf den ggf. geänderten Schaltzustand kann man reagieren.
Werden sie wie beschrieben mit shActionType off entkoppelt, sind sie bei kurzen Tastendrücken funktionslos (für die langen gibt es noch lgActionType) und damit quasi "stillgelegt". Das Schalten über FHEM oder externe Peers muss aber weiterhin funktionieren.

Wir hatten hier mal eine andere Schaltidee diskutiert. Das lief darauf hinaus, dass man zusätzlich zum Relais (nicht aber alternativ) externe Aktoren schalten könnte. Prinzipiell wurde das so gelöst, dass hier ein langer Tastendruck den Aktor mit einer maximalen Zeitbegrenzung von 30 Stunden (was in Privathaushalten bei Licht in der Regel wie Dauerbetrieb betrachtet werden kann) einschaltet, worauf man mit FHEM per notify reagieren und damit den zusätzlichen Aktor einschalten konnte.
- kurz oben: Schalter schaltet ein, Zusatzaktor schaltet aus
- lang oben: Schalter und Zusatzaktor schalten ein (letzterer mit Verzögerung)
- kurz unten: beide Aktoren schalten aus.

Vielleicht könnte Dir das irgendwie helfen. In diesem Fall würde man z.B. mit langem Tastendruck oben die MiLight ein- und mit einem kurzen ausschalten können, ließe sich auch umdrehen. Man könnte den Aktor auch so programmieren, dass er beim kurzen Tastendruck oben auf zeitbegrenzten Betrieb schaltet (und über Notify die MiLight an) sowie bei kurzem Tastendruck nach unten in den Dauer-Ein-Zustand wechselt (!), was wiederum ein Notify als Ausschaltbefehl weiterreichen kann. Mit einem langen Tastendruck unten würde man die MiLights dann stromlos machen.

Jm2c.
"Ä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 ..."

fhemfrederik

Zitat von: Pfriemler am 14 Januar 2018, 23:23:27
Man könnte den Aktor auch so programmieren, dass er beim kurzen Tastendruck oben auf zeitbegrenzten Betrieb schaltet (und über Notify die MiLight an) sowie bei kurzem Tastendruck nach unten in den Dauer-Ein-Zustand wechselt (!), was wiederum ein Notify als Ausschaltbefehl weiterreichen kann. Mit einem langen Tastendruck unten würde man die MiLights dann stromlos machen.
Das ist doch genau was ich suche! Auf den langen Tastendruck kann ich auch verzichten. D.h. komplett stromlos würde ich über FHEM machen.
Ideal wäre
kurz oben: on-for-timer
kurz unten: on
Das notify bekomme ich hin. Kannst Du mir sagen wie ich die Register setzen muss?

Pfriemler

Hm, so auf die Schnelle:

Das Notify muss das Reading "timedOn" auswerten. Es wird "on", wenn der Aktor zeitbegrenzt eingeschaltet ist.


- shOnTime für self02 auf 111599 (s)  oder so setzen
- shOnTime für self01 auf 111600 setzen (oder "unused") - müsste aber schon sein
- shSwJtOn für self01 von dlyOff auf on ändern -> Schalter schaltet unten nicht mehr aus
- shSwJtOff für self01 auf on ändern -> Schalter schaltet bei kurzem Tastendruck sogar ein

Wenn Du für lange Tastenbetätigungen immer das gleiche Verhalten haben willst, setze alle lg... entsprechend

longPress wird anscheinend nicht von diesen Aktoren unterstützt (gibt es wohl nur bei Sensoren), damit hätte man die Unterscheidung kurz/lang noch anpassen können.
"Ä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 ..."

fhemfrederik

Danke! Genial! Funktioniert! :)

Zur Info: "timedOn" steht auf "running" nicht auf "on".
Ich schicke noch ein "setreading XXX timedOn off" hinterher. Habe ich damit den Zeitschalter deaktiviert?

Ich habe noch eine Verzögerung von ca. 2 Sekunden die ich auf dem 6-fach Taster (der die gleiche Funktion aufruft) nicht habe. Vermutlich kann man nicht alles haben :(

Als notify verwende ich XXX:?timedOn:.* und frage dann $EVTPART1 ab. Eigentlich wollte ich zwei notifys die auf "running" bzw. "on" reagieren. Da brauche ich aber wohl doch noch etwas Nachhilfe! Wie müsste der RegExp aussehen?

Mir ist gerade aufgefallen, dass ich den Aktor jetzt nicht mehr ausschalten kann. "set XXX off" schaltet sofort wieder ein. Kann ich hier was mit lg basteln?

Gibt es eigentlich eine gute Dokumentation der Register?

Pfriemler

running, ja sorry,  klar. get ... regTable liefert eine Kurzbeschreibung, an einer Beschreibung bastele ich gerade.

Das mit dem sofortigen Wiedereinschalten wundert mich gerade, sollte nicht sein. Da ist nicht noch was anderes im Hintergrund akriv?

Die Verzögerung ist nicht zu ändern ... FHEM kann nur auf die Statusmeldung des Aktors reagieren, die kommt etwa si später als ein Trigger eines externen Tasters.
"Ä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 ..."

fhemfrederik

Zitat von: Pfriemler am 15 Januar 2018, 14:26:50
Das mit dem sofortigen Wiedereinschalten wundert mich gerade, sollte nicht sein. Da ist nicht noch was anderes im Hintergrund akriv?
Mein Fehler. Da war noch alter Code aktiv!