HM-RC-12 Funkfernbedienung 12 Tasten: Unterschied zwischen den Versionen
K (schwarze und weiße Version, Links zu Produkten) |
|||
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
HomeMatic Fernbedienung mit 12 Tasten, | HomeMatic Fernbedienung mit 12 Tasten, in weiß als [https://www.elv.de/homematic-funk-fernbedienung-12-tasten-weiss-1.html HM-RC-12-W], in schwarz als [https://www.elv.de/funk-fernbedienung-12-tasten-schwarz.html HM-RC-12-B]. | ||
Fernbedienung mit 5 Tastenpaaren mit beleuchteten Beschriftungsfeldern. Das sechste Tastenpaar liegt etwas versteckt rechts neben dem 4. und 5. Tastenpaar. | Fernbedienung mit 5 Tastenpaaren mit beleuchteten Beschriftungsfeldern. Das sechste Tastenpaar liegt etwas versteckt rechts neben dem 4. und 5. Tastenpaar. | ||
Zeile 5: | Zeile 5: | ||
Die Fernbedienung verfügt außerdem über eine Status-LED, die in den Farben Grün, Rot und Orange leuchten bzw. blinken kann. | Die Fernbedienung verfügt außerdem über eine Status-LED, die in den Farben Grün, Rot und Orange leuchten bzw. blinken kann. | ||
== Bedeutung der LED-Farben und -Sequenzen / Fehlercodes == | == Bedeutung der LED-Farben und -Sequenzen / Fehlercodes == | ||
Siehe [ | Siehe [https://www.homematic-inside.de/faq/fehlercodes?highlight=fehlercodes FAQ-Seite bei Homematic Inside] | ||
== Anbindung der Fernbedienung an | == Anbindung der Fernbedienung an FHEM == | ||
Wie alle HomeMatic-Komponenten wird die Fernbedienung durch das Modul CUL_HM angebunden. Die Funkverbindung ist mittels einer HomeMatic-CCU, eines [[HMLAN Konfigurator]] oder eines CUL/CUNx/COC etc. im HM-Mode möglich. | Wie alle HomeMatic-Komponenten wird die Fernbedienung durch das Modul CUL_HM angebunden. Die Funkverbindung ist mittels einer HomeMatic-CCU, eines [[HMLAN Konfigurator]] oder eines CUL/CUNx/COC etc. im HM-Mode möglich. | ||
Im Weiteren wird 'HMLAN Konfigurator' synonym für alle diese Devices verwendet. | Im Weiteren wird 'HMLAN Konfigurator' synonym für alle diese Devices verwendet. | ||
== Anlernen der Fernbedienung an | == Anlernen der Fernbedienung an FHEM == | ||
# Sicherstellen, dass autocreate aktiv ist. | # Sicherstellen, dass autocreate aktiv ist. | ||
# HMLAN Konfigurator in den [[Pairing (HomeMatic)|Pairing]]-Modus bringen durch hmPairForSec oder hmPairSerial . | # HMLAN Konfigurator in den [[Pairing (HomeMatic)|Pairing]]-Modus bringen durch hmPairForSec oder hmPairSerial . | ||
# Den Anlerntaster an der Rückseite der Fernbedienung drücken (bei Verwendung von hmPairForSec innerhalb der angegebenen Zeitspanne). In | # Den Anlerntaster an der Rückseite der Fernbedienung drücken (bei Verwendung von hmPairForSec innerhalb der angegebenen Zeitspanne). In FHEM wird nun die Fernbedienung als device angelegt. Bevor die Tasten angelernt werden, sollte man zunächst | ||
# das | # das FHEM-device umbenennen durch Verwendung des Befehls <code>rename</code>, im Beispiel ist der neue Name <code>HMremote</code>. | ||
# In Betracht ziehen, das autocreate von ''Filelogs'' (nicht gesamt) zu deaktivieren. Es werden sonst im nächsten Schritt 12 FileLogs (eines je Taste) angelegt, deren Definition bei JEDEM | # In Betracht ziehen, das autocreate von ''Filelogs'' (nicht gesamt) zu deaktivieren. Es werden sonst im nächsten Schritt 12 FileLogs (eines je Taste) angelegt, deren Definition bei JEDEM FHEM-event geprüft wird - was nicht ohne Auswirkung auf die Performance bleiben kann. Alternativ kann man die FileLogs auch nach Anlage löschen. | ||
# Erst nach dem Umbenennen den Anlerntaster an der Fernbedienung ein weiteres | # Erst nach dem Umbenennen den Anlerntaster an der Fernbedienung ein weiteres Mal drücken. Daraufhin werden die 12 Tasten-Kanäle als weitere (Sub)devices in FHEM angelegt. Diese werden mit dem Namen des bei Schritt 3 erzeugten bzw. in Schritt 4 umbenannten devices gefolgt vom Zusatz Btn_x angelegt. | ||
Die 12 Kanäle | Die 12 Kanäle heißen in FHEM also <NameDesDevice>Btn_1 .. <NameDesDevice>Btn_12. | ||
Im device sind diese 12 Subdevices/Kanäle verlinkt über die Attribute channel01 .. channel0C (0C hex = 0x0C = 12dez) | Im device sind diese 12 Subdevices/Kanäle verlinkt über die Attribute channel01 .. channel0C (0C hex = 0x0C = 12dez) | ||
Zeile 51: | Zeile 51: | ||
attr HMremoteBtn_12 chanNo 0C | attr HMremoteBtn_12 chanNo 0C | ||
attr HMremoteBtn_12 device HMremote</nowiki> | attr HMremoteBtn_12 device HMremote</nowiki> | ||
Besonders zu beachten ist die HMid (im | Besonders zu beachten ist die HMid (im Beispiel 11477B). Beim primären Device ist diese 6stellig hexadezimal. Bei den Tasten/Kanälen wird der HMid der zweistellige hexadezimale Kanal angehängt (im Beispiel 11477B'''01'''). Diese HMid bzw HMid+ChannelNo sind in allen ein- und ausgehenden Funktelegrammen zu sehen bzw. bei allen raw-Messages zu verwenden. | ||
== Pairing == | == Pairing == | ||
Das | Das Pairing der Remote an FHEM kann auf unterschiedlichen Ebenen vorgenommen werden. Folgend eine Übersicht der Alternativen: | ||
=== Tasten/Kanäle nicht gepaired === | === Tasten/Kanäle nicht gepaired === | ||
Wenn die einzelnen Tasten, also die Kanäle, noch nicht gepaired sind, sind Tastendrücke bereits in | Wenn die einzelnen Tasten, also die Kanäle, noch nicht gepaired sind, sind Tastendrücke bereits in FHEM sichtbar, als Empfänger erscheint dann (to broadcast): | ||
<nowiki>2012-10-29 21:57:18.580 CUL_HM HMremoteBtn_7 Short (to broadcast)</nowiki> | <nowiki>2012-10-29 21:57:18.580 CUL_HM HMremoteBtn_7 Short (to broadcast)</nowiki> | ||
Nach einem Tastendruck leuchtet die LED an der | Nach einem Tastendruck leuchtet die LED an der Fernbedienung kurz orange, um das Senden einer Nachricht zu signalisieren. | ||
Wie bei allen HM-Geräten kann jeder Kanal mit 1..n Kanälen an anderen devices | Wie bei allen HM-Geräten kann jeder Kanal mit 1..n Kanälen an anderen devices gepaired werden. | ||
=== Pairing an physischen HM-Aktor === | === Pairing an physischen HM-Aktor === | ||
Eine RC12 hat zwölf Tasten. Diese sind aus Sicht der Fernbedienung IMMER einzelne Kanäle und kennen sich gegenseitig nicht. Es gibt aber einen Modus in dem die Tasten paarweise verwendet werden - also Taste1 = on, Taste2 = off. Die Fernbedienung | Eine RC12 hat zwölf Tasten. Diese sind aus Sicht der Fernbedienung IMMER einzelne Kanäle und kennen sich gegenseitig nicht. Es gibt aber einen Modus in dem die Tasten paarweise verwendet werden - also Taste1 = on, Taste2 = off. Die Fernbedienung weiß davon nichts, sondern nur der Aktor. Der hat dann zwei [[Peering (HomeMatic)|Peers]] auf einem Kanal. Wenn er einen Trigger vom ersten Peer bekommt (Taste 1) wird Aktion 1 ergriffen (also z.B. on). Wenn er einen Trigger von Taste 2 bekommt macht er etwas anderes (also z.B. off) | ||
Einfacher Lichtschalter: | Einfacher Lichtschalter: | ||
<li>Aktion: devicepair single | <li>Aktion: devicepair single | ||
- FHEM richtet den | - FHEM richtet den Aktorchannel auf den RC Kanal als Peer ein | ||
- FHEM richtet den RC channel auf dem Aktorchannel ein - und zwar nur einen | - FHEM richtet den RC channel auf dem Aktorchannel ein - und zwar nur einen | ||
=> Aktion im device: Beim | => Aktion im device: Beim Pairkommando kam ein Kanal => es wird "toggle" Verhalten programmiert | ||
- Resultat: deine Taste toggelt den | - Resultat: deine Taste toggelt den Aktorchannel | ||
<li>Aktion: devicepair dual | <li>Aktion: devicepair dual | ||
- FHEM richtet den | - FHEM richtet den Aktorchannel auf RC Kanal1 als Peer ein | ||
- FHEM richtet den | - FHEM richtet den Aktorchannel auf RC Kanal2 als Peer ein (getrennte Aktion) | ||
- FHEM richtet beide RC channel auf dem Aktorchannel ein - (eine Aktion!) | - FHEM richtet beide RC channel auf dem Aktorchannel ein - (eine Aktion!) | ||
=> Aktion im Device: Beim | => Aktion im Device: Beim Pairkommando kamen 2 Kanäle => einer wird 'on' Verhalten, der andere 'off' Verhalten bekommen | ||
- Resultat: eine Taste schaltet 'on' , die 2. 'off' | - Resultat: eine Taste schaltet 'on' , die 2. 'off' | ||
Zeile 84: | Zeile 84: | ||
=== Pairing an HMLAN Konfigurator === | === Pairing an HMLAN Konfigurator === | ||
Durch das Pairing der Fernbedienung an einen HMLAN Konfigurator wird erreicht, dass der erfolgreiche Empfang der Nachricht durch den HMLAN Konfigurator mit einem ACK an die Fernbedienung bestätigt wird. Die LED an der Fernbedienung leuchtet nach einem Tastendruck erst orange (Senden des Funktelegramms), dann grün (ACK erhalten) oder rot (NACK bzw. missing ACK). | Durch das Pairing der Fernbedienung an einen HMLAN Konfigurator wird erreicht, dass der erfolgreiche Empfang der Nachricht durch den HMLAN Konfigurator mit einem ACK an die Fernbedienung bestätigt wird. Die LED an der Fernbedienung leuchtet nach einem Tastendruck erst orange (Senden des Funktelegramms), dann grün (ACK erhalten) oder rot (NACK bzw. missing ACK). | ||
Da die Fernbedienung in | Da die Fernbedienung in FHEM als 'CUL_HM' läuft, der HMLAN Konfigurator aber als 'HMLAN', ist ein Pairing der beiden Devices in FHEM nicht über einen set-Befehl möglich, da es sich um unterschiedliche Device-Typen handelt. | ||
Das pairing muss daher per raw-Befehl vorgenommen werden. | Das pairing muss daher per raw-Befehl vorgenommen werden. | ||
Zeile 90: | Zeile 90: | ||
Der Aufbau der raw-message im Einzelnen: (Erklärung unter Vorbehalt und noch unvollständig) | Der Aufbau der raw-message im Einzelnen: (Erklärung unter Vorbehalt und noch unvollständig) | ||
'''++A001<fhemId><RCId><BtnNo>01<fhemId><Chn>00''' | '''++A001<fhemId><RCId><BtnNo>01<fhemId><Chn>00''' | ||
fhemId= HMId Zentrale (HMLAN Konfigurator/CUL) z.B.123456 | fhemId= HMId Zentrale (HMLAN Konfigurator/CUL) z.B. 123456 | ||
Chn = Channel der Zentrale 01 oder 02... 0A | Chn = Channel der Zentrale 01 oder 02... 0A | ||
RCId = HMID remote control | RCId = HMID remote control | ||
BtnNo = Rc channel (sprich | BtnNo = Rc channel (sprich Button) in hex: 01 02 03 oder 0A - bei RC12 max 0C | ||
++A0013333334444440C013333330100 # Button 12 erhaelt | ++A0013333334444440C013333330100 # Button 12 erhaelt Peer HMLAN (333333) channel 01 | ||
überprüfen mit | |||
<nowiki>set <rcButtonName> getdevicepair</nowiki> | <nowiki>set <rcButtonName> getdevicepair</nowiki> | ||
Zeile 103: | Zeile 103: | ||
=== Pairing an FHEM-dummy === | === Pairing an FHEM-dummy === | ||
Ziel ist, die | Ziel ist, die Fernbedienung nicht an einen HMLAN Konfigurator vom Typ HMLAN, sondern an ein virtuelles Device (dummy) in FHEM anzulernen. Dadurch kommen die Nachrichten von der Fernbedienung direkt auf diesem Device an, außerdem kann gesteuert werden, ob mit ACK oder NACK geantwortet wird, wodurch wiederum die Farbe der LED-Bestätigung gesteuert werden kann. | ||
Der Schaltvorgang auf den virtuellen FHEM Device kann per notify abgehorcht und für indirekte Schaltvorgänge o.Ä. verwendet werden. | Der Schaltvorgang auf den virtuellen FHEM Device kann per notify abgehorcht und für indirekte Schaltvorgänge o.Ä. verwendet werden. | ||
==== Anlegen des virtuellen Device ==== | ==== Anlegen des virtuellen Device ==== | ||
Zunächst muss das virtuelle (Dummy)-Device in | Zunächst muss das virtuelle (Dummy)-Device in FHEM erzeugt werden: | ||
<nowiki>define HMvirtual CUL_HM ABC123 | <nowiki>define HMvirtual CUL_HM ABC123 | ||
attr HMvirtual hmClass receiver | attr HMvirtual hmClass receiver | ||
attr HMvirtual subType switch</nowiki> | attr HMvirtual subType switch</nowiki> | ||
Bei der Vergabe der | Bei der Vergabe der HMID ist zu beachten, dass der code 6stellig hexadezimal ist. Werden Buchstaben als Bestandteil der HMID gewählt, müssen diese als Großbuchstaben angegeben werden. | ||
==== Pairing des Remote-Buttons ==== | ==== Pairing des Remote-Buttons ==== | ||
Zeile 148: | Zeile 148: | ||
- Das timing der Funkkommunikation ist sehr fragil. Teilweise akzeptiert die remote das gesendete ACK (angezeigt durch grünes LED-Signal) nur, wenn HMLAN hmProtocolEvents <3 hat, zeitweise nur dann, wenn hmProtocolEvents auf 3 steht. Dies ist noch näher zu untersuchen. | - Das timing der Funkkommunikation ist sehr fragil. Teilweise akzeptiert die remote das gesendete ACK (angezeigt durch grünes LED-Signal) nur, wenn HMLAN hmProtocolEvents <3 hat, zeitweise nur dann, wenn hmProtocolEvents auf 3 steht. Dies ist noch näher zu untersuchen. | ||
- HMvirtual bekommt seinerseits ein missing ACK, das man einfach ignorieren muss | - HMvirtual bekommt seinerseits ein missing ACK, das man einfach ignorieren muss | ||
- Vmtl. auf Grund desselben | - Vmtl. auf Grund desselben Timing-Problems funktioniert das Quittieren nicht, wenn der nächste Button-press bereits erfolgt, bevor das missing ACK von HMvirtual abgewartet wurde. | ||
[[Kategorie:HomeMatic Components]] | [[Kategorie:HomeMatic Components]] | ||
[[Kategorie:Schalter (Sender)]] | [[Kategorie:Schalter (Sender)]] |
Aktuelle Version vom 5. März 2019, 11:35 Uhr
HomeMatic Fernbedienung mit 12 Tasten, in weiß als HM-RC-12-W, in schwarz als HM-RC-12-B.
Fernbedienung mit 5 Tastenpaaren mit beleuchteten Beschriftungsfeldern. Das sechste Tastenpaar liegt etwas versteckt rechts neben dem 4. und 5. Tastenpaar.
Die Fernbedienung verfügt außerdem über eine Status-LED, die in den Farben Grün, Rot und Orange leuchten bzw. blinken kann.
Bedeutung der LED-Farben und -Sequenzen / Fehlercodes
Siehe FAQ-Seite bei Homematic Inside
Anbindung der Fernbedienung an FHEM
Wie alle HomeMatic-Komponenten wird die Fernbedienung durch das Modul CUL_HM angebunden. Die Funkverbindung ist mittels einer HomeMatic-CCU, eines HMLAN Konfigurator oder eines CUL/CUNx/COC etc. im HM-Mode möglich. Im Weiteren wird 'HMLAN Konfigurator' synonym für alle diese Devices verwendet.
Anlernen der Fernbedienung an FHEM
- Sicherstellen, dass autocreate aktiv ist.
- HMLAN Konfigurator in den Pairing-Modus bringen durch hmPairForSec oder hmPairSerial .
- Den Anlerntaster an der Rückseite der Fernbedienung drücken (bei Verwendung von hmPairForSec innerhalb der angegebenen Zeitspanne). In FHEM wird nun die Fernbedienung als device angelegt. Bevor die Tasten angelernt werden, sollte man zunächst
- das FHEM-device umbenennen durch Verwendung des Befehls
rename
, im Beispiel ist der neue NameHMremote
. - In Betracht ziehen, das autocreate von Filelogs (nicht gesamt) zu deaktivieren. Es werden sonst im nächsten Schritt 12 FileLogs (eines je Taste) angelegt, deren Definition bei JEDEM FHEM-event geprüft wird - was nicht ohne Auswirkung auf die Performance bleiben kann. Alternativ kann man die FileLogs auch nach Anlage löschen.
- Erst nach dem Umbenennen den Anlerntaster an der Fernbedienung ein weiteres Mal drücken. Daraufhin werden die 12 Tasten-Kanäle als weitere (Sub)devices in FHEM angelegt. Diese werden mit dem Namen des bei Schritt 3 erzeugten bzw. in Schritt 4 umbenannten devices gefolgt vom Zusatz Btn_x angelegt.
Die 12 Kanäle heißen in FHEM also <NameDesDevice>Btn_1 .. <NameDesDevice>Btn_12.
Im device sind diese 12 Subdevices/Kanäle verlinkt über die Attribute channel01 .. channel0C (0C hex = 0x0C = 12dez) In fhem.cfg sieht das folgendermassen aus:
define HMremote CUL_HM 11477B attr HMremote devInfo 0C0000 attr HMremote firmware 1.1 attr HMremote hmClass sender attr HMremote subType remote attr HMremote loglevel 5 attr HMremote model HM-RC-12-B attr HMremote serialNr xxxxxxxxxx attr HMremote channel_01 HMremoteBtn_1 attr HMremote channel_02 HMremoteBtn_2 attr HMremote channel_03 HMremoteBtn_3 attr HMremote channel_04 HMremoteBtn_4 attr HMremote channel_05 HMremoteBtn_5 attr HMremote channel_06 HMremoteBtn_6 attr HMremote channel_07 HMremoteBtn_7 attr HMremote channel_08 HMremoteBtn_8 attr HMremote channel_09 HMremoteBtn_9 attr HMremote channel_0A HMremoteBtn_10 attr HMremote channel_0B HMremoteBtn_11 attr HMremote channel_0C HMremoteBtn_12 define HMremoteBtn_1 CUL_HM 11477B01 attr HMremoteBtn_1 chanNo 01 attr HMremoteBtn_1 device HMremote .... define HMremoteBtn_12 CUL_HM 11477B0C attr HMremoteBtn_12 chanNo 0C attr HMremoteBtn_12 device HMremote
Besonders zu beachten ist die HMid (im Beispiel 11477B). Beim primären Device ist diese 6stellig hexadezimal. Bei den Tasten/Kanälen wird der HMid der zweistellige hexadezimale Kanal angehängt (im Beispiel 11477B01). Diese HMid bzw HMid+ChannelNo sind in allen ein- und ausgehenden Funktelegrammen zu sehen bzw. bei allen raw-Messages zu verwenden.
Pairing
Das Pairing der Remote an FHEM kann auf unterschiedlichen Ebenen vorgenommen werden. Folgend eine Übersicht der Alternativen:
Tasten/Kanäle nicht gepaired
Wenn die einzelnen Tasten, also die Kanäle, noch nicht gepaired sind, sind Tastendrücke bereits in FHEM sichtbar, als Empfänger erscheint dann (to broadcast):
2012-10-29 21:57:18.580 CUL_HM HMremoteBtn_7 Short (to broadcast)
Nach einem Tastendruck leuchtet die LED an der Fernbedienung kurz orange, um das Senden einer Nachricht zu signalisieren. Wie bei allen HM-Geräten kann jeder Kanal mit 1..n Kanälen an anderen devices gepaired werden.
Pairing an physischen HM-Aktor
Eine RC12 hat zwölf Tasten. Diese sind aus Sicht der Fernbedienung IMMER einzelne Kanäle und kennen sich gegenseitig nicht. Es gibt aber einen Modus in dem die Tasten paarweise verwendet werden - also Taste1 = on, Taste2 = off. Die Fernbedienung weiß davon nichts, sondern nur der Aktor. Der hat dann zwei Peers auf einem Kanal. Wenn er einen Trigger vom ersten Peer bekommt (Taste 1) wird Aktion 1 ergriffen (also z.B. on). Wenn er einen Trigger von Taste 2 bekommt macht er etwas anderes (also z.B. off)
Einfacher Lichtschalter:
Pairing an HMLAN Konfigurator
Durch das Pairing der Fernbedienung an einen HMLAN Konfigurator wird erreicht, dass der erfolgreiche Empfang der Nachricht durch den HMLAN Konfigurator mit einem ACK an die Fernbedienung bestätigt wird. Die LED an der Fernbedienung leuchtet nach einem Tastendruck erst orange (Senden des Funktelegramms), dann grün (ACK erhalten) oder rot (NACK bzw. missing ACK). Da die Fernbedienung in FHEM als 'CUL_HM' läuft, der HMLAN Konfigurator aber als 'HMLAN', ist ein Pairing der beiden Devices in FHEM nicht über einen set-Befehl möglich, da es sich um unterschiedliche Device-Typen handelt. Das pairing muss daher per raw-Befehl vorgenommen werden.
set HMremote raw ++A0017853C311477B01017853C30100
Der Aufbau der raw-message im Einzelnen: (Erklärung unter Vorbehalt und noch unvollständig) ++A001<fhemId><RCId><BtnNo>01<fhemId><Chn>00 fhemId= HMId Zentrale (HMLAN Konfigurator/CUL) z.B. 123456 Chn = Channel der Zentrale 01 oder 02... 0A RCId = HMID remote control BtnNo = Rc channel (sprich Button) in hex: 01 02 03 oder 0A - bei RC12 max 0C
++A0013333334444440C013333330100 # Button 12 erhaelt Peer HMLAN (333333) channel 01
überprüfen mit
set <rcButtonName> getdevicepair
Pairing an FHEM-dummy
Ziel ist, die Fernbedienung nicht an einen HMLAN Konfigurator vom Typ HMLAN, sondern an ein virtuelles Device (dummy) in FHEM anzulernen. Dadurch kommen die Nachrichten von der Fernbedienung direkt auf diesem Device an, außerdem kann gesteuert werden, ob mit ACK oder NACK geantwortet wird, wodurch wiederum die Farbe der LED-Bestätigung gesteuert werden kann. Der Schaltvorgang auf den virtuellen FHEM Device kann per notify abgehorcht und für indirekte Schaltvorgänge o.Ä. verwendet werden.
Anlegen des virtuellen Device
Zunächst muss das virtuelle (Dummy)-Device in FHEM erzeugt werden:
define HMvirtual CUL_HM ABC123 attr HMvirtual hmClass receiver attr HMvirtual subType switch
Bei der Vergabe der HMID ist zu beachten, dass der code 6stellig hexadezimal ist. Werden Buchstaben als Bestandteil der HMID gewählt, müssen diese als Großbuchstaben angegeben werden.
Pairing des Remote-Buttons
Im Beispiel wird Button2 an das virtuelle Device HMvirtual gekoppelt:
set HMremoteBtn_2 devicepair 0 HMvirtual single set remote
Erzeugen der ACK-Nachricht (work in progress)
Zum Versenden des ACK wird ein notify definiert:
define HManswer notify HMremote.* { HManswer("%") }
das folgende Routine zB in 99_myUtils.pm aufruft (das geht auch viel kürzer - ist bewusst als lange Version dargestellt, um den Zusammenhang zwischen eintreffender Nachricht und Struktur des zu sendenden raw-ACK zu verdeutlichen):
## HM Anrufbeantworter für Button2 sub HManswer($) { my ($cmdval) = @_; if ($cmdval =~ m,Btn_2,) { my $raw = $defs{HMremote}{HMLAN_RAWMSG}; my $msgnr = substr($raw,30,2); # Nummer der eingehenden Nachricht my $flag = substr($raw,32,2); # flag der eingehenden Nachricht my $mtyp = substr($raw,34,2); # type der eingehenden Nachricht my $src = substr($raw,36,6); # Sender der eingehenden Nachricht my $dst = substr($raw,42,6); # Adressat der eingehenden Nachricht my $chnl = substr($raw,48,2); # Kanal der eingehenden Nachricht my $stat = substr($raw,50,2); # Status der eingehenden Nachricht my $rsp = $msgnr."80"."02".$dst.$src."00".$chnl."000000"; # ACK-message zusammenbauen Log 1, "in : ".substr($raw,30,22); # Log nur zum Testem Log 1, "rsp : $rsp"; # Log nur zum Testem fhem "set HMvirtual raw $rsp"; # Senden der response (ACK) } }
Einschränkungen: - Das timing der Funkkommunikation ist sehr fragil. Teilweise akzeptiert die remote das gesendete ACK (angezeigt durch grünes LED-Signal) nur, wenn HMLAN hmProtocolEvents <3 hat, zeitweise nur dann, wenn hmProtocolEvents auf 3 steht. Dies ist noch näher zu untersuchen. - HMvirtual bekommt seinerseits ein missing ACK, das man einfach ignorieren muss - Vmtl. auf Grund desselben Timing-Problems funktioniert das Quittieren nicht, wenn der nächste Button-press bereits erfolgt, bevor das missing ACK von HMvirtual abgewartet wurde.