Hallo!
Ich habe einen HM-PB-2-WM55-2 Funk-Wandtaster 2-fach. Alles ganz frisch nachdem ich ein Autocreate Fauxpas beim Pairen hatte bin ich nun ein Stück weiter.
Da ich ihn zum eleganten Steuern (ohne die blöde Funksteckdosen-FB) einer bestimmten Funksteckdose verwenden will - die kein Rückkanal hat - habe ich lt. Anleitung einen Virtuellen Aktor angelegt, der mir dann entsprechend eine Rückmeldung gibt:
Internals:
DEF 56427801
NAME virtueller_Aktor_Btn1
NR 156
NTFY_ORDER 50-virtueller_Aktor_Btn1
STATE OFF
TYPE CUL_HM
chanNo 01
device virtueller_Aktor
peerList sz_HM_Taster_Btn_01,
Readings:
2016-03-08 00:21:18 peerList sz_HM_Taster_Btn_01,
2016-03-08 00:45:58 state OFF
2016-03-08 00:45:58 trigLast sz_HM_Taster_Btn_01:short
2016-03-08 00:45:58 trig_sz_HM_Taster_Btn_01 short
2016-03-08 00:45:58 virtActState OFF
2016-03-08 00:45:58 virtActTrigNo 86
2016-03-08 00:45:58 virtActTrigRpt 1
2016-03-08 00:45:58 virtActTrigType short_Release
2016-03-08 00:45:58 virtActTrigger sz_HM_Taster_Btn_01
Helper:
trgLgRpt 0
Expert:
def 1
det 0
raw 1
tpl 0
Role:
chn 1
vrt 1
Attributes:
model virtual_2
peerIDs 36471901,
room Homematic
webCmd press short:press long
Jetzt muss ich mal ganz blöd fragen: wenn ich das Ereignis Schalter eq "on" abfragen will... was muss ich da nehmen?
Da der Virtuelle Aktor ja auch andere Geräte (sind das die Peers, also die in der Peer List stehen?) schalten kann denke ich mal, dass man es irgendwie über
z.B.DOIF ( [virtueller_Aktor_Btn1.sz_HM_Taster_Btn_01] eq "on") (set Lampe_an)
machen muss, oder lieg ich da völlig falsch?
Sorry wenn ich so blöd nachfrage aber wenn die ganzen Links in der Google-Suche schon rosa sind, dann muss man wohl mal lieber nett fragen :)
Ich möchte einfach nur ein DOIF über den virtuellen Aktor ausführen.
Und wie frage ich die long_press - Sachen ab?
Vielen Dank und GN8! :)
der virtuelle aktor toggelt nur.
zum gezielten setzen über short/long würde ich die events des realen buttons nehmen. schau im eventmonitor, was alles kommt und dein vorhaben am besten umsetzen lässt.
Hallo Frank!
Danke für die Info! Heut Nacht um 1 Uhr war Maintenance-Time, da konnt ich nix mehr im Forum posten :)
Ich hab das erst einmal mit einem Notify gelöst, will das aber eigentlich per DOIF machen weil ichs eleganter finde, jetzt hab ich 4 Notifys für 2 Button mit short-long:
define sz_HM_Taster_BTN1_sz_Schrank_OFF notify sz_HM_Taster_Btn_01.Long.* set sz_LED_Schrank off
...und halt noch 3x
Na ich werde mal ein wenig probieren.
SO funktioniert das jetzt aber schonmal top. Nur wenn z.B. die Lampe manuell angeschaltet wird soll dann auch mein Standard-Lampen-An-Aus-Script irgendwie mitbekommen, dass die Lampe dann nicht einfach so mit ausgeschaltet wird - jetzt wirds für einen Anfänger in Sachen FHEM ganz schön komplex :)
Grüße
Stefan
So kurzer Zwischenstand...
Ich hab ja mit Notify entsprechend die Funktionen realisieren können.
define sz_HM_Taster_BTN2_fl_LED_ON notify sz_HM_Taster_Btn_02.Short.* set fl_LED on
attr sz_HM_Taster_BTN2_fl_LED_ON room Schlafzimmer
define sz_HM_Taster_BTN2_fl_LED_OFF notify sz_HM_Taster_Btn_02.Long.* set fl_LED off
attr sz_HM_Taster_BTN2_fl_LED_OFF room Schlafzimmer
define sz_HM_Taster_BTN1_sz_Schrank_ON notify sz_HM_Taster_Btn_01.Short.* set sz_LED_Schrank on
attr sz_HM_Taster_BTN1_sz_Schrank_ON room Schlafzimmer
define sz_HM_Taster_BTN1_sz_Schrank_OFF notify sz_HM_Taster_Btn_01.Long.* set sz_LED_Schrank off
attr sz_HM_Taster_BTN1_sz_Schrank_OFF room Schlafzimmer
Fand ich aber irgendwie nicht so schön, daher hab ich dann ein DOIF draus gemacht.
Mein Virtueller Aktor schaut ja so aus:
# Virtueller Aktor für Taster Schlafzimmer
define virtueller_Aktor CUL_HM 564278
attr virtueller_Aktor IODev hmusb
attr virtueller_Aktor expert 2_raw
attr virtueller_Aktor model virtual_2
attr virtueller_Aktor room Zentrale
attr virtueller_Aktor subType virtual
attr virtueller_Aktor webCmd virtual
define virtueller_Aktor_Btn1 CUL_HM 56427801
attr virtueller_Aktor_Btn1 model virtual_2
attr virtueller_Aktor_Btn1 peerIDs 36471901,
attr virtueller_Aktor_Btn1 room Zentrale
attr virtueller_Aktor_Btn1 webCmd press short:press long
define virtueller_Aktor_Btn2 CUL_HM 56427802
attr virtueller_Aktor_Btn2 model virtual_2
attr virtueller_Aktor_Btn2 peerIDs 36471902,
attr virtueller_Aktor_Btn2 room Zentrale
attr virtueller_Aktor_Btn2 webCmd press short:press long
ich sehe im Event-Monitor, dass der BTN1 bei einem Short-Klick
2016-03-09 01:19:36 CUL_HM sz_HM_Taster battery: ok
2016-03-09 01:19:36 CUL_HM sz_HM_Taster CMDs_done
2016-03-09 01:19:36 CUL_HM sz_HM_Taster sz_HM_Taster_Btn_01 Short
2016-03-09 01:19:36 CUL_HM sz_HM_Taster_Btn_01 Short (to virtueller_Aktor)
2016-03-09 01:19:36 CUL_HM sz_HM_Taster_Btn_01 trigger: Short_15
2016-03-09 01:19:36 CUL_HM sz_HM_Taster_Btn_01 trigger_cnt: 15
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 OFF
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 trigLast: sz_HM_Taster_Btn_01:short
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 trig_sz_HM_Taster_Btn_01: short
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 virtActState: OFF
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 virtActTrigNo: 15
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 virtActTrigRpt: 1
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 virtActTrigType: short_Release
2016-03-09 01:19:36 CUL_HM virtueller_Aktor_Btn1 virtActTrigger: sz_HM_Taster_Btn_01
OK, der virtuelle Aktor triggert nur. Ist ja ne Frage, was ich machen will.
Eben noch dachte ich, der Taster hat folgende Funktionen:
Button1: kurz: lampe1 an lang lampe 1 aus
Button2: kurz: lampe2 an lang lampe 2 aus
Ich glaube das ist so auch am sinnvollsten, denn das ganze so umzustellen ist sinnlos:
Button1: kurz: lampe1 an kurz wieder drücken lampe 1 aus, lang drücken lampe2 an lang wieder drücken lampe2 aus und das auch für btn2...
Also bleiben wir mal bei der Usability und sagen Button 1 für lampe 1 an kurz und lang aus und ebenso für button 2 mit lampe 2.
Meine DOIFs sahen jetzt so aus, ohne den Virtuellen Aktor zu benutzen:
# DOIF für Taster Schlafzimmer
define sz_fl_Lava DOIF ([sz_HM_Taster_Btn_01:"Short"]) (set fl_Lava on) DOELSE (set fl_Lava off)
attr sz_fl_Lava cmdState on|off
attr sz_fl_Lava room Schlafzimmer
define sz_fl_LED DOIF ([sz_HM_Taster_Btn_02:"Short"]) (set fl_LED on) DOELSE (set fl_LED off)
attr sz_fl_LED cmdState on|off
attr sz_fl_LED room Schlafzimmer
Ich hab erst einmal andere Lampen genommen bevor meine bessere Hälfte rebelliert gegen meine nächtlichen FHEM-Aktivitäten :)
Das funktioniert so wunderbar. Gibt es Verbesserungspotential?
Nochmal blöd gefragt: der Virtuelle Aktor ist jetzt nur dafür da, um dem Taster eine Rückmeldung zu liefern, damit er grün leuchtet, richtig??? Ach so: wenn ich richtig verstanden habe greif ich das Event vom Taster direkt ab, aber wenn ich den Virtuellen Aktor nehme den Status?
Danke und GN8!
ZitatNochmal blöd gefragt: der Virtuelle Aktor ist jetzt nur dafür da, um dem Taster eine Rückmeldung zu liefern, damit er grün leuchtet, richtig???
im prinzip schon. durch das peering sendet der taster eventuell zusätzliche events => longRelease?
Zitatwenn ich richtig verstanden habe greif ich das Event vom Taster direkt ab, aber wenn ich den Virtuellen Aktor nehme den Status?
letztendlich ist es egal, welche events du benutzt.
das reading state würde ich, zumindestens bei homematic, grundsätzlich vermeiden, da hier meistens zusätzlich diverse andere infos "gesendet" werden, die dann ggf erstmal das triggernde notify/doif/filelog unnötigerweise aufrufen.
aber bekanntlich ist rom gut erreichbar. :)
Zitatdenn das ganze so umzustellen ist sinnlos:
Button1: kurz: lampe1 an kurz wieder drücken lampe 1 aus, lang drücken lampe2 an lang wieder drücken lampe2 aus und das auch für btn2...
wieso sinnlos? dadurch könntest du einen button (btn2) für 2 weitere funktionen (short/long) gewinnen.
Ja der sendet noch mehr, klar! Wenn man es braucht. Ich hab ja gelernt, dass auch vieles Schnuppe ist von wo man sich das holt :)
Ja beim Reading state wird z.B. Short und LongRelease oder ähnlich gesendet... da kann man dann schon mal in einen Fehler laufen bzw. in ein "Versehen".
Sinnlos nicht, okay - aber wenn ich den Button mit zuviel Funktionen ausstatte drehen die anderen Personen im Haushalt ab.
Die schauen mich seit 2 Wochen nur noch mit Fragezeichen an, was ich schon wieder für einen Quatsch veranstalte - aber dass das Licht zur Dämmerung angeht ist ja sooo praktisch ;)