HM-RC-4 peeren?

Begonnen von michael35, 08 April 2013, 14:38:27

Vorheriges Thema - Nächstes Thema

michael35

Hallo Zusammen,
ich habe eine 4 Tasten Fernbedienung mit der ich 8 Aktionen ausführen will. Das ganze funktiert soweit auch (Code s.u.).
Ein direktes peeren geht nicht. Die Aktionen werden noch aufwändiger. Aktuell habe ich die FB bzw Kanäle nicht gepeert. Sollte ich dies tun? Bringt mir das nur die Rückmeldung und das Bestätigungslicht? Vergrößere ich damit den Funkverkehr? Oder verringere ich Ihn evtl sogar?
Wenn ich die Fernbedienung mit dem HMLAN kopple, muss ich das, wenn ich es richtig verstanden habe, im RAW-Modus erledigen. Eine Anleitung habe ich für MH-RC 12 im Wiki gefunden. Ist es das gleiche Format?
Danke im voraus.

define FB_1_Taste_1 notify FB_1_Btn_01 {if ( "%" =~ "Short" ) {\
 fhem("set s1 an")} else {\
 fhem("set s1b an")}}
attr FB_1_Taste_1 room test
define FB_1_Taste_2 notify FB_1_Btn_02 {if ( "%" =~ "Short" ) {\
 fhem("set s2 an")} else {\
 fhem("set s2b an")}}
attr FB_1_Taste_2 room test
define FB_1_Taste_3 notify FB_1_Btn_03 {if ( "%" =~ "Short" ) {\
 fhem("set s3 an")} else {\
 fhem("set s3b an")}}
attr FB_1_Taste_3 room test
define FB_1_Taste_4 notify FB_1_Btn_04 {if ( "%" =~ "Short" ) {\
 fhem("set s4 an")} else {\
 fhem("set s4b an")}}
attr FB_1_Taste_4 room test

Martin Thomas Schrott

Hi,

pairen ist immer eine gute Idee!
Du kannst das einfach mit

set HMLAN hmPairForSec 120
und bei der remote Anlernen drücken bzw. den Anlernen Modus starten.

Du erhältst damit einerseits die richtige Rückmeldung (Lampen) und der Befehl wird nochmal gesendet, falls keine Rückmeldung kommt also die Nachricht verloren gegangen ist.



michael35

Danke für die schnelle Rückmeldung.
Habe es mal ausprobiert, hat aber nicht wirklich was geändert.
Rückmeldung geht weiter an (to ActionDetector).
Ich dachte auch pair != peer

Martin Thomas Schrott

ähm, ja ups. Naja zweite Hälfte vergessen ;-)
Du hast ja gemeint du willst / kannst nicht direkt peeren, daher der Ansatz über das pairen!
Jetzt müsstest du noch einen virtuellen actor/button anlegen und diesen dann mit deiner remote peeren!

Dann hast du das korrekte Ergebnis.

Sorry in der Eile die zweite Hälfte vergessen.:-)

Ich hab das für unsere Türglocke mit einem Taster / Schnittstelle und diversen notifies gemacht. Durch das peeren mit dem VA erhältst du eine rückmeldung, ein erneutes Senden bei Fehler und kannst die Aufgaben ziemlich sicher erledigen.

lG
Martin

michael35

OK, da habe ich mich wohl auch etwas mißverständlich ausgedrückt. Ich meinte, dass ich die Fernbedienung nicht mit dem Aktor peeren kann, mit fhem/HMLAN schon :)
Ich dachte halt ohne VA wäre einfacher, aber OK, wenns sein muss :)
Danke

martinp876

Hi Michael,

also pairen wuerde ich immer. Dann mit getConfig pruefen, dass die Zentrale eingetragen ist.
Ein weiterer Vorteil ist, dass FHEM die Attribute, die intern benoetigt werden, korrekt setzt.  

raw messages sollten nicht notwendig sein. Warum du nicht direkt peeren kannst verstehe ich nicht.
Du hast eine 4-Tasten FB. Jede Taste kann "long" und "Short" trigger generieren. Das gibt erst einmal 8 Moeglichkeiten zu unterscheiden. Quasi jeder Aktor kann dies unterscheiden, virtuell oder Real.
HM arbeitet mit Rueckmeldungen, was ich fuer einen der wichtigen Vorteile halte. Wenn du den Button nicht peerst gibt es natuerlich auch keine Rueckmeldungen und somit auch keine Wiederholungen, wie Martin schon erwaehnt hat.

bei deinen notify wird doppelt getriggert. Es kommen je Kanal 2 Trigger, "state" und "trigger". Ich wuerde nur einen nehmen:

define FB_1_Taste_1 notify FB_1_Btn_01:trigger.* {if ( "%" =~ "Short" ) {\
 fhem("set s1 an")} else {\
 fhem("set s1b an")}}

oder lieber (mei
define FB_1_Taste_1a notify FB_1_Btn_01:trigger:Short.* set s1 an
define FB_1_Taste_1b notify FB_1_Btn_01:trigger:Long.* set s1b an

hoehere schaltgeschwindigkeiten, weniger Messages und ein sichereres Arbeiten erhaeltst du immer mit direktem Peeren. Haengt aber davon ab, was du eigentlich willst.

Gruss
Martin

michael35

Danke für die -und alle folgenden- Antworten.

Ich habe jetzt so einen VA angelegt:
define vFB_1 CUL_HM 112201
set vFB_1 virtual 4
set FB_1_Btn_01 peerChan 0 vFB_1_Btn1 single set

Damit funktioniert nun die LED (natürlich erstmal nur für Taste 1).
Ich habe jetzt einen Schalter der ON und OFF sein kann. Brauch ich jedoch nicht. Ich hätte gerne einen Taster, der keinen Wert annimmt, sondern nur ein Ereignis auslöst, bzw. 2 (short und long). Einfach ON und OFf ignorieren, weiter den Wert der echten Fernbedienung auswerten, oder gibt es da schönere Lösungen?
Hätte ich "actor" an den letzten Befehl anhängen sollen?

Sonniges Wochenende :)

martinp876

Hi Michael,

hm, hab ich den Faden verloren?
Du hast eine Remote, die trigger sendet.
Jetzt hast du einen peer, den VA der sich mit den Remote unterhält.

jetzt willst du logischer weise noch eine Aktion ergreifen, wenn ein Trigger kommen. Wo ist das Problem? On/off bekommst du konstenlos, kannst es auch ignorieren.
Du hast sicher schon im Commandref gesehen, dass Aktionen von FHEM aus über "notify" ausgelöst werden

define nf1 notify va_btn1:state.* set licht toggle
define nf2 notify va_btn1:virtActTrigType:long* set licht toggle
define nf3 notify va_btn1:virtActTrigType:short* set licht toggle
define nf4 notify remote_btn1:virtActTrigType:long* set licht toggle
define nf5 notify remote_btn1:virtActTrigType:short* set licht toggle

besser erklärt im Commandref und in codeschnippsel
Hast du noch eine Frage zu HM?

Gruss
Martin