Dimmen mit Taster realisieren: nur wie?

Begonnen von Gunther, 21 November 2019, 19:58:29

Vorheriges Thema - Nächstes Thema

Gunther

Leider bin ich bei meiner Recherche nicht fündig geworden.

Ich möchte Dimmen über einen langen Tastendruck realisieren.

Ich nutze die Fernbedienung von Tradfri (Ikey/Zigbee) über meinen DECONZ-Stick. Möchte z. B. ein Homematic-Device dimmen.


Folgendes liefern die Tasten der Ikea-Fernbedieung:
Code: [Auswählen]
# 1002 - Power
#
# 2002 - hochdimmen kurz
# 2001 - hochdimmen lang
# 2003 - hochdimmen loslassen
#
# 3002 - runterdimmen kurz
# 3001 - runterdimmen lang
# 3003 - runterdimmen loslassen
#
# 4002 - links kurz
# 4001 - links lang
# 4003 - links loslassen
#
# 5002 - rechts kurz
# 5001 - rechts lang
# 5003 - rechts loslassen

Gibt es da eine geschickte Lösung?

Meine bisherige Idee:

Da eine Taste bei längerem Drücken nur einen Wert zurückgibt (z. B. 2001), könnte man ja so lange z. B. ein
set hm_dimm_device up
zum hochdimmen ausführen, bis der Wert des Loslassens kommt (z. B. 2003).

Jetzt ist die Frage: Wie macht man es, dass die Dimm-Funktion wie beim internen Taster solange gedrückt gehalten wird?
Kann man da irgendwie mit
set hm_dimm_device pressL
arbeiten (lange Arbeitszeit vorgeben) und den Befehl durch einen weiteren Trigger (2003) abbrechen?
(*wahrscheinlich ist damit aber Dimmen nicht möglich... :-| )

Freue mich über Anregungen. Dimmen muss doch irgendwie mögliich sein, ohne x Mal eine Taste zu drücken...
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

amenomade

#1
Sowas hat eine grosse Chance, blockierend zu werden, wenn man nicht aufpasst.

Kannst Du bitte einen Auszug aus dem Eventmonitor bei langem (z.B. 3 Sek lang) Drucken?
Was für HM Device ist es?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Ich frage, weil deine Beschreibung nicht genau genug ist: wann kommt das Event 2001? Am Ende des Druckens ? Oder nach x ms am Anfang?

Wenn es am Anfang des langen Druckens kommt, und erst dann am Ende ein 2003 geschickt wird, kann man mit DOIF und repeadcmd arbeiten

DOIF ("2001") (dim up) DOELSEIF ("2003") ()
repeatcmd 0.1:0
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gunther

So sehen 2 lange Tastendrücke aus:

2019-11-21 20:44:36 HUEDevice eg_ki_zigbee_fernbedienung 4001
2019-11-21 20:44:38 HUEDevice eg_ki_zigbee_fernbedienung 4003
2019-11-21 20:44:46 HUEDevice eg_ki_zigbee_fernbedienung 4001
2019-11-21 20:44:52 HUEDevice eg_ki_zigbee_fernbedienung 4003


Wie kann ich denn weitere DOELSEIF einbinden.

Testweise sieht mein DOIF bisher so aus.
([eg_ki_zigbee_fernbedienung:"^1002$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") (set eg_ki_ledspots toggle)
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^1002$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_leuchtrahmen_hauptschalter") (set eg_ki_leuchtrahmen_hauptschalter toggle)
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^1002$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_LEDStreifen") (set eg_ki_LEDStreifen toggle)
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^2001$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") (set eg_ki_ledspots up)
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^3001$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") (set eg_ki_ledspots up)


Oder muss ich dann mehrere DOIF machen?

Es ist ein HM-LC-DIM1T-FM.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

amenomade

#4
Du brauchst nur noch ein zusätzliches DOELSEIF, das nichts macht, um ein Statuswechsel zu provozieren, wenn Ende des langen Tastendrucks. Un das attr repeatcmd setzen

DOELSEIF ([eg_ki_zigbee_fernbedienung:"^(2003|3003$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") ()
attr <name> repeatcmd 0:0:0:0.1:0.1:0


EDIT: bei 3001 würde ich eher set eg_ki_ledspots down machen, oder? ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Gunther

#5
Das hat geklappt! Super! Danke!

Für die Nachwelt:

defmod doif_eg_ki_zigbee_fernbedienung_licht DOIF ([eg_ki_zigbee_fernbedienung:"^1002$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") (set eg_ki_ledspots toggle) \
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^1002$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_leuchtrahmen_hauptschalter") (set eg_ki_leuchtrahmen_hauptschalter toggle) \
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^1002$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_LEDStreifen") (set eg_ki_LEDStreifen toggle)\
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^2001$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") (set eg_ki_ledspots up)\
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^3001$"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") (set eg_ki_ledspots down)\
DOELSEIF ([eg_ki_zigbee_fernbedienung:"^(2003|3003$)"] and [eg_ki_dummy_fernbedienung] eq "eg_ki_ledspots") ()

attr doif_eg_ki_zigbee_fernbedienung_licht do always
attr doif_eg_ki_zigbee_fernbedienung_licht group Fernbedienung
attr doif_eg_ki_zigbee_fernbedienung_licht repeatcmd 0:0:0:0.1:0.1:0
attr doif_eg_ki_zigbee_fernbedienung_licht room Logik_Licht

FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Spartacus

Hallo Gunther,
ich versuche Deinen Dimmer mit dem DOIF für meine Zwecke nachzubauen. Allerdings verstehe ich es nicht ganz. Welchen Zweck haben die Dummy-Fernbedienungen?

Ich habe das mal zu Testzwecken mit meinem HUEDevice3 aufgesetzt, aber das Dimmen läuft sauschnell und  man kann es kaum kontrollieren.

defmod diZigbeeSwitch DOIF ([IKEA_Schalter:"^1002$"]) (set HUEDevice3 toggle) \
DOELSEIF ([IKEA_Schalter:"^2001$"]) (set HUEDevice3 up)\
DOELSEIF ([IKEA_Schalter:"^3001$"]) (set HUEDevice3 down)\
DOELSEIF ([IKEA_Schalter:"^(2003|3003$)"]) ()
attr diZigbeeSwitch do always
attr diZigbeeSwitch group Fernbedienung
attr diZigbeeSwitch repeatcmd 0:0.1:0.1:0
attr diZigbeeSwitch room ZigBee

setstate diZigbeeSwitch disabled
setstate diZigbeeSwitch 2019-12-25 19:56:35 Device IKEA_Schalter
setstate diZigbeeSwitch 2019-12-25 19:57:00 cmd 3
setstate diZigbeeSwitch 2019-12-25 19:57:00 cmd_event IKEA_Schalter
setstate diZigbeeSwitch 2019-12-25 19:57:00 cmd_nr 3
setstate diZigbeeSwitch 2019-12-25 19:56:35 e_IKEA_Schalter_events 3001
setstate diZigbeeSwitch 2019-12-25 19:57:00 last_cmd cmd_3
setstate diZigbeeSwitch 2019-12-25 19:57:00 mode disabled
setstate diZigbeeSwitch 2019-12-25 19:57:00 state disabled
setstate diZigbeeSwitch 2019-12-25 19:57:00 wait_timer no timer



Was mache ich hier falsch?

Danke und Gruß,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

amenomade

Dann einfach das Timing in repeadcmd anpassen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Spartacus

Hi,
ich glaube der Fehler lag hier! Es fehlt das $ hinter der 2003, oder ist das Absicht gewesen?
DOELSEIF ([IKEA_Schalter:"^(2003|3003$)"]) ()
habe es in
DOELSEIF ([IKEA_Schalter:"^(2003$|3003$)"]) ()
geändert und es scheint nun zu gehen.
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Gunther

Der Dummy dient dazu mehrere Lampen zu steuern.
Die Lampen sollen kurz Signal geben (aufleuchten oder kurz ausgehen) sobald die entscheidende Lampe gewählt ist.
Dann schaltet das andere DOIF die jeweilige Lampe.
Hilft Dir das?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Spartacus

Hu Gunther,
danke Dir, habe das Dimmen hingekriegt...Jetzt fehlt noch die Möglichkeit vordefinierte RGB-Farben quasi durchzublättern :-)

Schöne Weihnachten,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Gunther

Steuerst Du eine oder mehrere Lampen?
Sonst ist es ja nicht so schwer.
Wenn mehrere Lampen könntest Du pro Lampe 2 Dummy-Signalisierungen machen:
1. einmal blinken —> Dimmen
2. zweimal blinken —> durchschalten der vordefinierten Farbszenarien (Modul Lightscene)

alternativ: nur Szenarien und kein Dimmen - könnte sonst etwas sperrig werden von der Bedienung
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Spartacus

Hallo Gunther,
das war eine geniale Idee mit dem Modul "Lichszene" da wäre ich nicht drauf gekommen. Die gewünschten Farben einfach mir 100% Helligkeit abspeichern und mit nem Mini-DOIF durchblättern!
([IKEA_Schalter:state]eq "5002" )
(set  scene.Zigbee nextScene)
DOELSE


Hast Du noch mehr so gute Ideen?

Gruß,
Christian.
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Dracolein

Zitat von: Gunther am 21 November 2019, 19:58:29
# 4001 - links lang
# 4003 - links loslassen


# 5001 - rechts lang
# 5003 - rechts loslassen



Hallo zusammen,

ich habe meine Tradfri Fernbedienung heute abend erfolgreich eingebunden und wollte nun die LongPress Geschichten hinzufügen.
Für die obere und untere Taste funktioniert dies auch wie im 1. Posting angegeben. Jedoch für die linke und rechte Taste erhalte ich im Event Monitor gar keine Meldungen bei Long Press.

Habe ich eine veraltete und/oder modernisierte Version der FFB bekommen? Woran könnte das liegen?
Die Fernbedienung habe ich über ConBee II und deCONZ in FHEM eingebunden.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Der_Tom

Zitat von: Dracolein am 02 Oktober 2020, 22:50:38
Hallo zusammen,

ich habe meine Tradfri Fernbedienung heute abend erfolgreich eingebunden und wollte nun die LongPress Geschichten hinzufügen.
Für die obere und untere Taste funktioniert dies auch wie im 1. Posting angegeben. Jedoch für die linke und rechte Taste erhalte ich im Event Monitor gar keine Meldungen bei Long Press.

Habe ich eine veraltete und/oder modernisierte Version der FFB bekommen? Woran könnte das liegen?
Die Fernbedienung habe ich über ConBee II und deCONZ in FHEM eingebunden.

bei interesse habe ich hier mal was gebaut für diese Fernbedienung :
https://forum.fhem.de/index.php/topic,86199.msg1098484.html#msg1098484

gruss thomas