HM-LC-Sw1PBU-FM Long- oder Doppelklick möglich

Begonnen von Muschelpuster, 15 September 2016, 10:58:42

Vorheriges Thema - Nächstes Thema

Muschelpuster

Hallo zusammen,

Kann man dem Aktor eine 2. Schaltaktion als reinen Sender beibringen? Hintergrund:
Ich habe 2 Fernbedienungen, die 4 Aktoren und den HM-LC-Sw1PBU-FM schalteten. Nun stehe ich an der Zimmertür und möchte eben nur den Aktor oder ggf. auch alle 5 Aktoren ausschalten können.
Zudem wüsste ich gerne, ob die Statusänderung, auf die ich mit einem Notify reagiere vom eigenen Taster des Aktors kommt, oder von der Fernbedienung, denn diese ist ja direkt mit allen Aktoren gepeert und ich brauche keinen weiteren Schaltbefehl bzw. zerstöre mir dadurch die Tastenfunktionen auf der FB.

bequeme Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Otto123

Hallo Niels,

der zweite angepinnte Beitrag im Homematic Unterforum behandelt das Thema. Es geht meines Wissen mit der originalen Firmware nicht. 
Du willst ja auf ein Long des HM-LC-Sw1PBU-FM reagieren - richtig?

Zur zweiten Frage: das Reading trigLast hilft Dir nicht?

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

Muschelpuster

Danke Otto,

Zitat von: Otto123 am 15 September 2016, 13:11:21der zweite angepinnte Beitrag im Homematic Unterforum behandelt das Thema. Es geht meines Wissen mit der originalen Firmware nicht. 
Wer lesen kann ist mal wieder klar im Vorteil  :-[
Zitat von: Otto123 am 15 September 2016, 13:11:21Du willst ja auf ein Long des HM-LC-Sw1PBU-FM reagieren - richtig?
Jo
Zitat von: Otto123 am 15 September 2016, 13:11:21Zur zweiten Frage: das Reading trigLast hilft Dir nicht?
Das hoffte ich auch, aber das Reading verändert sich nicht, wenn man direkt am Aktor schaltet sondern bleibt auf dem Wert der letzten FB-Aktion stehen.
Ich habe die Idee, dass evtl. mit einem Dummy zu lösen. Den Dummy immer auf den Wert vom Aktor-Status setzen (vielleicht ist ein kleines Delay erforderlich) und dann mit DOIF auf ein weiteres OFF-Event reagieren. Das wäre dann der Doppelklick. Das hätte was, denn der ausgemusterte Z-Wave-Aktor machte auch Doppelklick für die Aktion. Mal sehen, ob ich da die Meldungen von den FB's raus filtern kann.

blinde Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Muschelpuster

Ich habe mal einen Doppelklick mit einer Fernbedienung gebaut:define du_Doppelklick1 DOIF
([HM_FB_K1B:state] eq "HM_FB_K1B_Bt1 Short" and [?du_Doppelklick1:state:d]>(int(time)-4))
(mache was)
   DOELSE
    (set du_Doppelklick1 {(int(time))})
attr du_Doppelklick1 do always
define du_Doppelklick1 dummy
set du_Doppelklick1 1
Es wird ein Zeitstempel in den Dummy geschrieben, wenn die Taste zum 1. Mal gedrückt wird. Wird sie nun unter 4 Sekunden nochmal gedrückt, dann wird die Aktion ausgelöst, kommt der nächste Tastendruck später, wird der Zeitstempel erneuert.
Ein schneller Doppelklick wird wohl von der FB verschluckt, aber mit etwas Pause geht das prima. Wenn ich das jetzt auf den Aktor umbiege, wird das wohl eine ganz gute Lösung.

voranschreitende Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Damian

Zitat von: Muschelpuster am 16 September 2016, 18:27:27
Ich habe mal einen Doppelklick mit einer Fernbedienung gebaut:define du_Doppelklick1 DOIF
([HM_FB_K1B:state] eq "HM_FB_K1B_Bt1 Short" and [?du_Doppelklick1:state:d]>(int(time)-4))
(mache was)
   DOELSE
    (set du_Doppelklick1 {(int(time))})
attr du_Doppelklick1 do always
define du_Doppelklick1 dummy
set du_Doppelklick1 1
Es wird ein Zeitstempel in den Dummy geschrieben, wenn die Taste zum 1. Mal gedrückt wird. Wird sie nun unter 4 Sekunden nochmal gedrückt, dann wird die Aktion ausgelöst, kommt der nächste Tastendruck später, wird der Zeitstempel erneuert.
Ein schneller Doppelklick wird wohl von der FB verschluckt, aber mit etwas Pause geht das prima. Wenn ich das jetzt auf den Aktor umbiege, wird das wohl eine ganz gute Lösung.

voranschreitende Grüße
Niels

Für ein Doppelklick gibt es das waitsame-Attribut siehe: http://fhem.de/commandref_DE.html#DOIF_waitsame

hier dann einfach:

define du_Doppelklick1 DOIF
([HM_FB_K1B:state] eq "HM_FB_K1B_Bt1 Short")
(mache was)

attr  du_Doppelklick1 waitsame 4


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Muschelpuster

#5
Zitat von: Damian am 16 September 2016, 20:15:25
Für ein Doppelklick gibt es das waitsame-Attribut siehe: http://fhem.de/commandref_DE.html#DOIF_waitsame
Oh Damian, Dein DOIF ist mir ein unerschöpflicher Quell der Freude ähm Möglichkeiten. Kein Wunder, dass das manche hier für Teufelszeug halten  8)
Leider habe ich Deine Info etwas zu spät gelesen, nun muss ich doch ein Dummy wieder löschen  ;)
Es war etwas Gefrickel, das Timing auszuloten, aber jetzt finde ich das cool, wie es funktioniert.
Also jetzt mal ungetestet meine Lösung mit Damian's Ergänzungen (Test erfolgt erst Morgen - für heute ist Schluss):define du_K1_DoppelklickFB dummy
   attr du_K1_DoppelklickFB Zeitstempel Doppelklicksperre Fernbedienung
define not_Doppelklicksperre notify HM_FB_K1.*trigger.* set du_K1_DoppelklickFB {(int(time))}
   attr du_K1_DoppelklickFB alias Doppelklicksperre bei Event von Fernbedienung
define di_Doppelklick1 ([HM_Akt_Licht_K1:state] eq "off" and [?du_K1_DoppelklickFB:state:d]<(int(time)-4)) (set HM_Akt4_K1_A. off)
   attr di_Doppelklick1 waitsame 7
attr di_Doppelklick1 do always
Es ist so kein echter Doppelklick, wie schon bei der Fernbedienung wird ein schneller Doppelklick vom Aktor scheinbar ausgeblendet. Aber von der Funktion ist es für mich absolut zufriedenstellend. Man schaltet den Aktor aus und dann ohne Hektik noch einmal und so die restlichen Kreise aus.

ungetestete Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Muschelpuster

So, irgenwie ist das wie immer. Ich erarbeite mir Lösungen und am Ende ist alles ganz einfach. Um die Bedienung am UP-Aktor und den Fernbedienungen zu vereinheitlichen macht es ja überhaupt keinen Sinn, die Aktionen von den Fernbedienungen zu blocken. Also alles weg und übrig bleibt ein:define di_Doppelklick1 ([HM_Akt_Licht_K1:state] eq "off") (set HM_Akt4_K1_A. off)
   attr di_Doppelklick1 waitsame 7
attr di_Doppelklick1 do always
Fertig ist die Laube!

vereinfachte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF