Bewegungsmelder hm-sen-mdir-wm55 Tastenbelegung

Begonnen von bastih., 11 Januar 2018, 19:34:20

Vorheriges Thema - Nächstes Thema

bastih.

Hallo liebe FHEM Gemeinde,

bräuchte bitte eure Hilfe bezüglich folgender Problemstellung:
Im Einsatz habe ich einen Präsenzmelder hm-sen-mdir-wm55. Wie ihr wisst, hat dieser Präsenzmelder links und rechts einen Taster. Dieser Taster hat eine short und eine long Funktion.
So nun zu meinem Problem:
Ich habe an den Schalter meinen Pioneer AV Receiver konfiguriert:
DEF: HM_57D7A8_Btn_01:trigger:.* set PIONEERAVRZONE_zone2 on
Alles funktioniert, der Receiver schaltet bei Druck der Taste ein.
Nun möchte ich bei langem Druck des Tasters (Long Funktion) (unter Readings trigger Long) die Lautstärke des Receivers verändern. Dies müsste mit dem Befehl set PIONEERAVRZONE VolumeUp funktionieren.
Leider weiß ich aber nicht, wie ich den Long Schaltbefehl in der DEF Zeile auslöse.

Besten Dank für eure Hilfe

bastih.

bastih.


Otto123

Hi,

Dein HM_57D7A8_Btn_01:trigger:.* triggert auf alles.

Du musst Dir im Eventmonitor einfach anschauen wie long aussieht https://wiki.fhem.de/wiki/Event_monitor

Dort kannst Du auch das entsprechende notify direkt erzeugen lassen. Zumindest ansatzweise.

Es wird auf so etwas wie HM_57D7A8_Btn_01:trigger:Long.* hinauslaufen. Sicher musst Du den anderen auf HM_57D7A8_Btn_01:trigger:Short.* umbauen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Udomatic

Hallo Otto,

ich würde gerne auf diesen Beitrag zurück kommen, da ich nichts anderes gefunden haben.

Ausgangssituation: Mein HM-Sen-MDIR-WM55 ist mit einem Funk Schaltaktor LC-Sw1PBU-FM gepeert. Bei kurzem Tastendruck des HM-Sen-MDIR-WM55, egal ob oben oder unten, wird das Licht des Aktors LC-Sw1PBU-FM an oder ausgeschaltet.

Jetzt wollte ich bei Druck auf Long des HM-Sen-MDIR-WM55 zwei Lampen in einem anderen Raum schalten. Das habe ich per Notify hin bekommen


define OfficeBW_Lichter_On notify Office_BW_Oben:Long.* set Stehlampe on ; set Schreibi on
define OfficeBW_Lichter_Off notify Office_BW_Unten:Long.* set Stehlampe off ; set Schreibi off


Allerdings wird in beiden Fällen auch das Licht des gepeerten Aktors geschaltet!

Eine Lösung im Sinne

Zitat von: Otto123 am 30 Januar 2018, 13:15:35
Es wird auf so etwas wie HM_57D7A8_Btn_01:trigger:Long.* hinauslaufen. Sicher musst Du den anderen auf HM_57D7A8_Btn_01:trigger:Short.* umbauen.

habe ich bis jetzt nicht geschafft.

Im Eventmonitor sehe ich auch, dass bei Druck auf Long, das gepeerte Licht ebenfalls geschaltet wird


2019-10-14 21:33:54 CUL_HM Kellerlicht trigLast: Office_BW_Unten:long
2019-10-14 21:33:54 CUL_HM Kellerlicht trig_Office_BW_Unten: Long_87
[b]2019-10-14 21:33:54 CUL_HM Office_BW_Unten LongRelease 4_87 (to Kellerlicht)[/b]
2019-10-14 21:33:54 CUL_HM Office_BW_Unten trigger: Long_87
2019-10-14 21:33:54 CUL_HM Office_BW_Unten triggerTo_Kellerlicht: Long_87


Mir fehlt gerade wirklich eine Idee, wie ich das am Besten lösen kann bzw. wie die Tasten des HM-Sen-MDIR-WM55 bei Druck auf Short oder Long unterschiedliche Befehle ausführen.

Kannst du mir dabei helfen bzw. kennt jemand die Lösung?

Gruß
Udo

2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

Otto123

Hallo Udo,

Du müsstest im  gepeerten Aktor die Register für lg (long) "ausknipsen" damit der nicht mehr auf den long Tastendruck reagiert. Ich habe sowas noch nicht gemacht, vielleicht gibt es dafür vielleicht sogar templates .

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Udomatic

Hi,

ich habe letztendlich den zweiten Button jetzt ungepeert, um diesen rein per FHEM programmieren zu können. Damit klappt es erstmal, wie ich es möchte.

Danke!
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

Thoffi1978

Hej,

ich habe den Tastendruck als Notify gut einbauen können. Gibt es die Möglichkeit die Länge des Tastendrucks auszuwerten?

Zum Beispiel als DOIF?
Da habe ich aber irgendwo ein Denkfehler:
([Bwm_hinten_Btn_01:Long] > 5) (set Schalter7 on)
DOELSEIF
([Bwm_hinten_Btn_02:Long] > 15) (set Schalter7 off)


Das Notify reagiert gar nicht. Weder On noch Off
Auch mit einem
[Bwm_hinten_Btn_02:Long.*]
erfolgt keine Reaktion

Hoffi

Otto123

#7
Hi,

schau Dir die Events im Monitor an, Beispiel:
2020-10-21 11:31:09 CUL_HM Taster4_01 Taster_Klingel Long
2020-10-21 11:31:09 CUL_HM Taster_Klingel Long 1_55 (to VCCU)
2020-10-21 11:31:09 CUL_HM Taster_Klingel trigger: Long_55
2020-10-21 11:31:09 CUL_HM Taster_Klingel trigger_cnt: 55
2020-10-21 11:31:09 CUL_HM VCCU_Btn1 trigLast: Taster_Klingel:long
2020-10-21 11:31:09 CUL_HM VCCU_Btn1 trig_Taster_Klingel: Long_55
2020-10-21 11:31:09 CUL_HM Taster_Klingel Long 2_55 (to VCCU)
2020-10-21 11:31:09 CUL_HM Taster_Klingel trigger: Long_55
2020-10-21 11:31:09 CUL_HM Taster_Klingel trigger_cnt: 55
2020-10-21 11:31:09 CUL_HM VCCU_Btn1 trigLast: Taster_Klingel:long
2020-10-21 11:31:09 CUL_HM VCCU_Btn1 trig_Taster_Klingel: Long_55
2020-10-21 11:31:09 CUL_HM Taster_Klingel Long 3_55 (to VCCU)
2020-10-21 11:31:09 CUL_HM Taster_Klingel trigger: Long_55
2020-10-21 11:31:09 CUL_HM Taster_Klingel trigger_cnt: 55
2020-10-21 11:31:09 CUL_HM VCCU_Btn1 trigLast: Taster_Klingel:long
2020-10-21 11:31:09 CUL_HM VCCU_Btn1 trig_Taster_Klingel: Long_55
2020-10-21 11:31:10 CUL_HM Taster_Klingel Long 4_55 (to VCCU)
2020-10-21 11:31:10 CUL_HM Taster_Klingel trigger: Long_55
2020-10-21 11:31:10 CUL_HM Taster_Klingel trigger_cnt: 55
2020-10-21 11:31:10 CUL_HM VCCU_Btn1 trigLast: Taster_Klingel:long
2020-10-21 11:31:10 CUL_HM VCCU_Btn1 trig_Taster_Klingel: Long_55
2020-10-21 11:31:10 CUL_HM Taster_Klingel Long 5_55 (to VCCU)
2020-10-21 11:31:10 CUL_HM Taster_Klingel trigger: Long_55
2020-10-21 11:31:10 CUL_HM Taster_Klingel trigger_cnt: 55
2020-10-21 11:31:10 CUL_HM VCCU_Btn1 trigLast: Taster_Klingel:long
2020-10-21 11:31:10 CUL_HM VCCU_Btn1 trig_Taster_Klingel: Long_55
2020-10-21 11:31:10 CUL_HM Taster4_01 Taster_Klingel LongRelease
2020-10-21 11:31:10 CUL_HM Taster_Klingel LongRelease 5_55 (to VCCU)
2020-10-21 11:31:10 CUL_HM Taster_Klingel trigger: Long_55
2020-10-21 11:31:10 CUL_HM Taster_Klingel trigger_cnt: 55
2020-10-21 11:31:10 CUL_HM VCCU_Btn1 trigLast: Taster_Klingel:long
2020-10-21 11:31:10 CUL_HM VCCU_Btn1 trig_Taster_Klingel: Long_55

Du siehst: verwendbar wäre dieser Event -> Taster_Klingel Long 3_55 (to VCCU) er enthält die Nummer des Events und die Nummer der Wiederholung.
Man müsste jetzt sowohl exakt diesen Event filtern und dann die Wiederholung herausfiltern.
Beispiel:Taster_Klingel.Long.(\d*)_.*
Den Groupmatch könntest Du dann abtesten. Beispiel:
{my $string='Taster_Klingel Long 2_55 (to VCCU)';;$string=~/Taster_Klingel.Long.(\d*)_.*/;;my $number=$1}

Quick&Dirty Beispiel:
defmod n_TasterklingelLong notify Taster_Klingel:Long.(\d*)_.* {my $string=$EVENT;;$string=~/Long.(\d*)_.*/;;my $number=$1;; if ($number > 3){Log 1,"So Lange gedrueckt: $number"}}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

([Bwm_hinten_Btn_01:"Long"]) (set Schalter7 on)
DOELSEIF
([Bwm_hinten_Btn_02:"Long"]) (set Schalter7 off)


sollte schon funktionieren, Wiederholung wird ohne do always unterbunden
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

er will ja aber nicht einfach bei Long, sondern bei mehr als 5 mal Long oder mehr als 15 mal Long reagieren  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

Zitat von: Thoffi1978 am 21 Oktober 2020, 11:14:17
Gibt es die Möglichkeit die Länge des Tastendrucks auszuwerten?

Die Zeitspanne zwischen dem event "Long d_dd" und dem event "LongRelease" eines Tasters sollte sich doch problemlos auswerten lassen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Damian

#11
Zitat von: Otto123 am 21 Oktober 2020, 12:20:56
er will ja aber nicht einfach bei Long, sondern bei mehr als 5 mal Long oder mehr als 15 mal Long reagieren  ;)

Kann man alles machen. Ich halte eine Taste als "Toggle"-Taste sinnvoller, solange man länger drauf hält (ich will ja einschalten, wenn es aus ist und umgekehrt). Die Unterscheidung zwischen short und long ist für den Benutzer schon schwierig genug.

Die Taste sollte dann ungepeert sein, die Zeitdauer für Long (als Unterscheidung zur short) lässt sich in HM einstellen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

Dein Beispiel ist aber definiert on(01) und off(02) - kein toggle.
Die Unterscheidung zwischen short und long ist mMn für die meisten "untrainierten" Benutzer nicht realisierbar :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

ich würde LongRelease auswerten, da es nur einmal auftritt.
Zitat2020-10-21 11:31:10 CUL_HM Taster_Klingel LongRelease 5_55 (to VCCU)

1. die nummer gibt sofort die länge an.
2. notify wird nur einmal getriggert.
3. mehrere aktionen sind unterscheidbar.
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

Damian

Zitat von: Otto123 am 21 Oktober 2020, 12:54:11
Dein Beispiel ist aber definiert on(01) und off(02) - kein toggle.
ja, das stimmt - es müsste die gleiche Taste sein.

ZitatDie Unterscheidung zwischen short und long ist mMn für die meisten "untrainierten" Benutzer nicht realisierbar :)

naja, wer kann dann noch zwischen 14-mal Long und 15-mal Long unterscheiden ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF