HM-RC-Key4-3 -> ACK von FHEM ohne Aktor?

Begonnen von skyifx, 15 Februar 2017, 20:26:30

Vorheriges Thema - Nächstes Thema

skyifx

Hallo... ich habe mich hier mal angemeldet, weil ich etwas nicht verstehe bzw. nicht auf die Reihe bekomme.

Vorwort:
FHEM fungiert bei mir ausschließlich als "Man-in-the-Middle". D.h., alle Informationen, die FHEM empfängt, werden an einen Webserver (läuft gleichfalls auf dem Raspi) weitergeleitet. Da ich all meine Sachen in PHP programmiere, werden dann dort die Entscheidungen getroffen und entspr. Schaltvorgänge eingeleitet (z.B. ein GPIO oder ein Befehl an einen Microcontroller, etc.).

Genauso verhält es sich mit dem Handsender "HM-RC-Key4-3"... jedes Event (drücken einer Taste) geht als Information an den Webserver.

Problem:
Da der Handsender jetzt nicht mit irgendeinem Aktor gekoppelt ist, bekommt er also kein ACK zurück (grüne LED), d.h., ich weiß nicht, ob die Information angekommen ist, da beim Tastendruck nur die gelbe LED leuchtet.

Frage:
Was muss ich anstellen, um ein ACK zu bekommen. Ich habe dazu schon einige Sachen im Netz gelesen (virtuelle Devices/Button, etc.), werde aber nicht schlau aus dem Ganzen und hat am Ende auch nie wirklich zum Ziel geführt.
Da ich alle Einstellungen immer und ausschließlich in den Config-Files vornehme, bin ich auch kein Freund von CMD Eingaben in FHEM, da diese schlussendlich eh in einer Config landen.
Also, wenn jemand ein paar Vorschläge hat, wie ich das Problem am besten und einfachsten lösen kann, dann bitte (wenn möglich) gleich die Informationen posten, die ins Config-File gehören.

Config zum Handsender:

define RMS CUL_HM 12345A
attr RMS IODev HMLAN1
attr RMS autoReadReg 4_reqStatus
attr RMS expert 2_raw
attr RMS firmware 1.1
attr RMS model HM-RC-Key4-3
attr RMS room CUL_HM
attr RMS serialNr LEQ1234567
attr RMS subType remote
attr RMS webCmd getConfig:clear msgEvents

define RMS_Notify notify RMS:battery:.* {\
my ($taste, $press) = split(' ', ReadingsVal('RMS', 'state', 'unk unk'));;\
if ($press eq 'Short' || $press eq 'LongRelease') {\
send_to_web('remote_sender', 'taste='.$taste.'&press='.$press);;\
}\
}

define RMS_unlock CUL_HM 12345A01
attr RMS_unlock model HM-RC-Key4-3
attr RMS_unlock peerIDs

define RMS_lock CUL_HM 12345A02
attr RMS_lock model HM-RC-Key4-3

define RMS_light CUL_HM 12345A03
attr RMS_light model HM-RC-Key4-3

define RMS_open CUL_HM 12345A04
attr RMS_open model HM-RC-Key4-3

..."send_to_web" ist in diesem Fall die Subroutine in Perl, die die Informationen per POST an den Webserver sendet.


...Gruß und vielen Dank im Voraus
Sky

Otto123

#1
Hi,

ist das Gerät gepairt? Hast Du Readings PairedTo und R-pairCentral und steht da Deine hmId drin? Defines zu posten sowie screenshots ist meist Wertlos, ein list vom Gerät liefert gute Infos.

Wenn er gepairt ist und du bekommst kein rot, dann ist m.M. das Ack von der Zentrale erfolgreich. Du bekommst ein gelb weil kein Peer definiert ist.

Wie du das mit dem virtuellen button machst steht im Wiki https://wiki.fhem.de/wiki/Virtueller_Controller_VCCU#Anlegen
Gepeert wird wie mit einem normalen Channel eines echten Device. Da ist kein Unterschied.
-> https://wiki.fhem.de/wiki/Peering_(HomeMatic)

Peeren geht nur in der Oberfläche, das geht nicht in der fhem.cfg  :-X Die Infos zum peering landen nicht in irgendeiner cfg sondern im Gerät.

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

skyifx

Hi und Danke für die Antwort und Infos...
("Die Infos landen nicht in irgendeiner cfg sondern im Gerät.")... wusste ich nicht, kenn mich damit nicht so aus.

Gepairt ist das Teil nicht... einfach nur in FHEM eingebunden.
Das "list" muss ich noch mal posten (bin aber grad auf Arbeit). ;-)

Otto123

Zitat von: skyifx am 15 Februar 2017, 21:09:08
Gepairt ist das Teil nicht... einfach nur in FHEM eingebunden.
Dann erst pairen, dann peeren.
Allerdings sendet der HMLAN das ack selbstständig, also genau genommen hast Du bei kein rot kein ack von FHEM sondern vom IO.
Also die Variante wie du kontrollieren kannst ob es wirklich ankam ist dann wirklich "grün" vom virtuellen Aktor.

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

skyifx

Verstehe ich das richtig... das ACK kommt eigentlich vom HMLAN und nicht von FHEM??
Wenn ich jetzt hier ein "list xxx" veröffentliche, kann ich das Teile dann weg hauen, weil ja brisante Informationen für alle (die böses wollen) dabei sind??
Wenn ich ein VCCU anlege... brauch ich dann für jede Taste auf dem Handsender einen virtuellen Kanal (also z.B. "set VCCU virtual 4")?? Oder reicht ein virtueller Kanal dafür??
Sorry, aber ich bräuchte hier wahrscheinlich mal ein Step by Step Todo... sind leider einfach zu viele Fragen offen. ;-)

Otto123

Hi,

Das ack fürs Protokoll kann der HMLAN alleine, hab ich letztens gelernt  ;)

zum list: Alles was Passwörter sind und eigener HMKey und so, das solltest Du auskreuzen.
Alles andere spielt nicht die Bohne, da gibt es zwar immer Leute die ihre hmId die Seriennummern und sogar die ID der Geräte auslöschen, das ist aber Quark.
Die Bösen für Homematic sitzen nicht im Internet, die müssten bei Dir vorm Haus sitzen. Und dort bekommen sie alle IDs und Serienummern innerhalb einer Viertelstunde (vielleicht übertreibe ich etwas)  ;D
Die Frage ist was könne sie damit tun? Das Licht im Wohnzimmer an machen? Oder die Tür auf? An der Stelle "Tür auf" musst Du AES aktivieren mit eigenem Schlüssel.

Zum Thema virtueller Kanal:
Hängt wieder davon ab was Du machen willst. Du brauchst in jedem Fall pro Taste ein Peer, damit es grün wird.
Willst Du nur grün, reicht ein Kanal mit dem Du alle vier Tasten peerst.
Willst Du damit vielleicht in FHEM noch was anstellen würde ich eventuell pro Taste einen Kanal nehmen.

Aber eigentlich kannst Du auch bei einem Kanal auswerten welche Taste gedrückt wurde, ist eventuell aber mit vier Kanälen besser strukturiert. Probier es aus.

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

skyifx

Hi Otto

Danke erst einmal für Deine Ausführungen.
Die Auswertung der Tasten funktioniert schon einwandfrei und wird auch sauber an den Webserver gemeldet.
Das einzige, was ich jetzt zu meinem Glück  ;) noch benötige, ist ein positives Feedback (grüne LED), da ich mit dem Handsender auch mal auf dem Grundstück stehe und dann nicht weiß, ob das Signal angekommen ist. Also reicht es mir so einfach wie möglich (1 Kanal). Ich habe zwei dieser Handsender, soll heißen, wenn sogar für alle beide ein einziger Kanal reicht, würde mir das auch völlig genügen.
Anbei das List eines Devices...

Internals:
   CFGFN      fhem_hm_handsender.cfg
   DEF        12345A
   IODev      HMLAN1
   NAME       RMF
   NOTIFYDEV  global
   NR         635
   NTFY_ORDER 50-RMS
   STATE      ???
   TYPE       CUL_HM
   channel_01 RMS_unlock
   channel_02 RMS_lock
   channel_03 RMS_light
   channel_04 RMS_open
   Readings:
     2017-02-16 15:26:27   D-firmware      1.1
     2017-02-16 15:26:27   D-serialNr      NEQ1663949
   Helper:
     HM_CMDNR   1
     mId        00F8
     rxType     20
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +12345A,00,00,00
       prefIO
       rxt        2
       vccu
       p:
         12345A
         00
         00
         00
     Mrssi:
       mNo
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf
       qReqStat
     Role:
       dev        1
Attributes:
   IODev      HMLAN1
   autoReadReg 0_off
   expert     2_raw
   firmware   1.1
   model      HM-RC-Key4-3
   room       CUL_HM
   serialNr   NEQ1663949
   subType    remote
   webCmd     getConfig:clear msgEvents

...sollte da irgendetwas drin stehen, was nach einem ersten Pairing nicht rein gehört, dann liegt das sicherlich an meinen erfolglosen Versuchen, das hier diskutierte irgendwie auf die Reihe zu bekommen. ;)

Otto123

Hi,,
zuviel ist da nicht eher zu wenig. Also nicht gepairt!
Da fehlen eine Menge Readings vor allem PairedTo und R-pairCentral

Also mach bitte eine Pairing -> https://wiki.fhem.de/wiki/HomeMatic_Devices_pairen

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

skyifx

Oh ja... kann sein, da ich heute FHEM komplett neu gestartet habe.
Ich habe jetzt noch mal ein "getConfig" ausgeführt, eine Taste gedrückt und dann im Anschluss noch mal "list XXX" ausgeführt. Folgendes kam dabei rum...

Internals:
   CFGFN      fhem_hm_handsender.cfg
   DEF        12345A
   HMLAN1_MSGCNT 21
   HMLAN1_RAWMSG R489868D8,0001,019EC50F,FF,FFC8,0DA01012345A1CBACD0100000000
   HMLAN1_RSSI -56
   HMLAN1_TIME 2017-02-16 21:23:52
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     21
   NAME       RMS
   NOTIFYDEV  global
   NR         635
   NTFY_ORDER 50-RMS
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 RMS_unlock
   channel_02 RMS_lock
   channel_03 RMS_light
   channel_04 RMS_open
   lastMsg    No:0D - t:10 s:12345A d:1CBACD 0100000000
   protLastRcv 2017-02-16 21:23:52
   protSnd    21 last_at:2017-02-16 21:23:52
   protState  CMDs_done
   rssi_at_HMLAN1 min:-63 max:-56 lst:-56 cnt:21 avg:-57.52
   Readings:
     2017-02-16 21:21:03   D-firmware      1.1
     2017-02-16 21:21:03   D-serialNr      NEQ1663949
     2017-02-16 21:23:48   PairedTo        0x1CBACD
     2017-02-16 21:23:48   R-pairCentral   0x1CBACD
     2017-02-16 21:23:48   RegL_00.          02:01 0A:1C 0B:BA 0C:CD 18:00 00:00
     2017-02-16 21:23:47   battery         ok
     2017-02-16 21:23:52   state           CMDs_done
   Helper:
     HM_CMDNR   13
     cSnd       011CBACD12345A04040000000001,011CBACD12345A0403
     mId        00D6
     rxType     20
     supp_Pair_Rep 0
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +12345A,00,00,00
       nextSend   1487276632.42898
       prefIO
       rxt        2
       vccu
       p:
         12345A
         00
         00
         00
     Mrssi:
       mNo        0D
       Io:
         HMLAN1     -54
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       dev        1
     Rpt:
       IO         HMLAN1
       flg        A
       ts         1487276632.34151
       ack:
         HASH(0x198cad8)
         0D80021CBACD12345A00
     Rssi:
       At_hmlan1:
         avg        -57.5238095238095
         cnt        21
         lst        -56
         max        -56
         min        -63
     Shadowreg:
Attributes:
   IODev      HMLAN1
   autoReadReg 0_off
   expert     2_raw
   firmware   1.1
   model      HM-RC-Key4-3
   room       CUL_HM
   serialNr   NEQ1663949
   subType    remote
   webCmd     getConfig:clear msgEvents

...ich hoffe, jetzt steht soweit alles drin, war erst mal rein gehört.

Otto123

Hi,,
Zitat von: skyifx am 16 Februar 2017, 21:30:17
Oh ja... kann sein, da ich heute FHEM komplett neu gestartet habe.
Ich habe es noch nie gehabt, das beim FHEM neu Start die Readings verschwinden  :o
Ich "liebe" das ->    CFGFN      fhem_hm_handsender.cfg  :-X

Egal. Jetzt richtest Du entweder eine VCCU oder einen virtuellen Aktor ein.
https://wiki.fhem.de/wiki/Virtueller_Controller_VCCU
https://wiki.fhem.de/wiki/CUL_HM#Virtuellen_Aktor_erstellen
Danach peerst Du einen Kanal der RC-Key4 mit diesem Aktor:
https://fhem.de/commandref_DE.html#CUL_HMpeerChan
https://wiki.fhem.de/wiki/Homematic_Peering_Beispiele
Und kontrollierst ob Du grünes Licht hast.
Wenn ja, weißt Du wie es geht und machst es für die anderen drei Tasten genau so.

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

skyifx

#10
Zitat...Readings veschwinden
... ist vlt. mein Fehler. Ich hatte mir mal ein Script für den FHEM Neustart geschrieben, welches die "fhem.save" mit ablöscht. Ich nehme mal an, das ist 'ne blöde Idee?? ;)

ZitatIch "liebe" das ->    CFGFN      fhem_hm_handsender.cfg
Ich habe mehrere Configs, die ich includiere, da mir das alles sonst zu unübersichtlich wird. :)

Alles Andere versuch ich morgen mal.

Otto123

Zitat von: skyifx am 16 Februar 2017, 21:48:42
... ist vlt. mein Fehler. Ich hatte mir mal ein Script für den FHEM Neustart geschrieben, welches die "fhem.save" mit ablöscht. Ich nehme mal an, das ist 'ne blöde Idee?? ;)
Ich habe mehrere Configs, die ich includiere, da mir das alles sonst zu unübersichtlich wird. :)

Alles Andere versuch ich morgen mal.
Das passt irgendwie alles zu Deiner Intro ...  :-X

Ich lösche gerne karamellisierte Erdbeeren mit Weißwein ab  8)

Gute Nacht 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

LuckyDay

wenn du das fhem.save nicht haben willst, lösche das
attr global statefile

ich habe auch ein fhem , wo das statefile , da immer alt, nicht gebrauchen kann.

skyifx

#13
Oha... jetzt bin ich doch etwas verwirrt... in Ottos Aussage schwingt ja ein klein wenig Sarkasmus mit  ;), der mich annehmen lässt, da ich das .save File lösche, wäre es kein Wunder, das ich diese Probleme habe. Jetzt schreibt "fhem-hm-knecht" das ich das File auch löschen kann!!?? Wie wichtig ist diese Datei für FHEM denn??

Habe mal nach Ottos Verlinkungen eine vCCU angelegt mit 4 Button und einen Handsender gepeert... im Anschluss hat der Handsender beim Tastendruck gefühlt 10x orange geblinkt, dann 1x grün. Später (zwischendurch hatte ich dann auch mal ein "rereadcfg" gemacht) ging dann wieder nix mehr (nur einmal orange) und ich dächte auch irgendwo ein "MISSING ACK" gelesen zu haben. (Save config habe ich im Vorfeld gedrückt und das fhem.save wird auch nicht mehr gelöscht)

Bin mir grad nicht sicher, ob ich das Thema wirklich weiter verfolge, da es für mich ja eigentlich keine zwingende Notwendigkeit darstellt. Ich dachte, ein paar Config-Einträge, dann den Anlern-Button drücken und der Drops wäre gelutscht... scheint aber doch komplexer zu sein, als erwartet.

Otto123

Moin,

wenn der Handsender gefühlt 10 x konstant Orange Blinkt hast Du den Anlernmodus gestartet, aber es hat keine Datenübertragung stattgefunden.
Datenübertragung sieht man anhand unregelmäßigem manchmal auch "buntem" blinken. Du müsstest im HauptDevice (nicht Channel) die CMDs ... sehen, das ist eigentlich selbsterklärend. Den Peer sieht man in den Internals und Attributen BEIDER Channels, hier ein Beispiel:
Internals:
   DEF        200DB803
   NAME       VCCU_Btn3
   NOTIFYDEV  global
   NR         301
   NTFY_ORDER 50-VCCU_Btn3
   STATE      set_press short
   TYPE       CUL_HM
   chanNo     03
   device     VCCU
   peerList   RC41_3,RC42_3,
   Readings:
     2017-02-03 10:39:06   peerList        RC41_3,RC42_3,
     2017-02-17 08:18:49   trigLast        RC41_3:short
     2017-02-17 08:18:49   trig_RC41_3     Short_2
   Helper:
     Expert:
       def        1
       det        1
       raw        0
       tpl        0
     Role:
       chn        1
       vrt        1
     Tmpl:
Attributes:
   expert     1_allReg
   model      CCU-FHEM
   peerIDs    1651C703,220D8C03,
   webCmd     press short:press long

Da ich nicht weiß welche Schritte Du gemacht hast, kann ich nichts weiter dazu sagen.
In diesem Artikel habe ich etwas ähnliches gemacht, also gleiche RC und echte und virtuelle Button gepeert. Vielleicht hilft Dir das.

BTW: strukturierte cfg, externe Manipulation der files von FHEM "von vorn herein" halte ich für so nützlich wie Hundehaufen in der Landschaft.  ;D

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