Neue Firmware für HM_LC_Sw1PBU_FM an der Homematic CCU2 betreiben

Begonnen von PumpkinEater, 14 Oktober 2014, 13:18:37

Vorheriges Thema - Nächstes Thema

PumpkinEater

Hallo zusammen,
ich nehme den Vorschlag von jab mal auf und eröffne einen separaten Thread.

Wie bereits im Original-Thread beschrieben, möchte ich gern den HM_LC_Sw1PBU_FM (mit der alternativen Firmware) an der CCU2 betreiben. Dabei geht es mir in erster Linie nur darum, den Schalter und die Stromerkennung zu nutzen. Auf die Taster könnte ich verzichten. Ich habe Bootloader und Firmware bereits geflasht, und ich konnte den Schalter auch bei FHEM anmelden. Ein Anlernen an der CCU2 schlägt dagegen fehl (der Schalter wird überhaupt nicht erkannt).

In der Datei "Register.h" der Firmware steht momentan


const uint8_t devParam[] PROGMEM = {
/* Firmware version 1 byte */  0x15,
/* Model ID         2 byte */  0x00, 0xA9, //0x00, 0x6C
/* Serial ID              10 byte */  'L','E','Q','0','0','1','2','3','4','5',
/* Sub Type ID          1 byte */  0x10,
/* Device Info            3 byte */  0x41, 0x01, 0x00
};

Ich habe im Device-Info das mittlere Byte (Kanalanzahl?) auch testweise mal verändert - ohne Erfolg. Außerdem habe ich versucht, der CCU2 einen Zweifach-Unterputzschalter "vorzugaukeln" (andere Model ID), was aber auch keinen Erfolg brachte.

Ist es richtig, dass man tatsächlich zunächst ein neues XML-Device in der CCU2 anlegen muss, bevor die CCU2 überhaupt den Schalter erkennt? Oder sollte die CCU2 auch ohne neue XML-Datei bereits (irgendwie) zu erkennen geben, dass sie ein "Anlernpaket" von dem Schalter empfangen hat? In der /var/log/messages der CCU2 sehe ich zwar, dass sie in den Anlernmodus geht, es werden dort aber keine evt. empfangenen Messages des Schalters geloggt.

Gruß
Peter

martinp876

Hallo Peter,

die CCU2 sollte HM schalter bedienen können. Das ist aber kein FHEM Thema, das ist HM-HM kommunikation.
im eine ccu2 kann ich nicht hineinsehen. Eigentlich ist das eine Frage an homematic

kannst du den andere devices anlernen? ist die CCU2 im Anlernmode?

frank

um den schalter überhaupt einmal in der ccu zu sehen, könntest du versuchen, ihn als original auszugeben. wenn ich mir die eq3 xml files ansehe, habe ich 3 gefunden, in denen der sw1pbu zu finden ist. alle files mit diesem muster:

rf_s_1conf_644(...).xml

dort, sowie in martins hmconfig.pm, wird jeweils modelID=0x0069 genutzt.

desweiteren werden die 3 xml files je nach firmwareversion unterschieden. eins für v2.0/2.1, eins für v2.2/2.3 und eins für grösser und gleich v2.4. daher für version v2.4 => 0x24 einsetzen.

die originaldaten für subtypeID und deviceInfo konnte ich jetzt (noch) nicht finden. wahrscheinlich ist subtypeID=0x10 => "switch". also bei dir ok. vielleicht könnte martin diese daten mitteilen.

vielleicht schaffst du dadurch die erkennung als originalschalter.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

PumpkinEater

Hallo Frank,
danke für die Tipps. Ich habe nun mal verschiedene Versionsnummern ausprobiert, aber ohne merkbare Veränderung. Im Logfile /var/log/message  der CCU2 erscheinen während des Anlernversuchs manchmal folgende Messages:
Zitat
Entering install mode for 60 s
LEQ0012345's type is HM-LC-Sw1PBU-FM
(LEQ0987654) Response status: OK, Data   [LEQ0987654 ist die CCU2]
...
Device firmware version is 2.3
TX:  @680445946 0x11A31F -> 0x271EFF CONFIG_START [LEQ0987654]:   CNT=1,RPTEN=1,RPTED=0,BIDI=1,BURST=0,WAKEUP=0,WAKEMEUP=
(LEQ0987654) Response status: Telegram sent, received ACK.
Response accepted:  @680446422 RSSI=-41dB 0x271EFF -> 0x11A31F ACK [LEQ0987654]:   CNT=1,RPTEN=1,RPTED=0,BIDI=0,BURST=0,W
TX:  @680446423 0x11A31F -> 0x271EFF CONFIG_WRITE_INDEX [LEQ0987654]:   CNT=10,RPTEN=1,RPTED=0,BIDI=1,BURST=0,WAKEUP=0,WA
(LEQ0987654) Response status: Telegram sent, received ACK.
Response accepted:  @680446598 RSSI=-41dB 0x271EFF -> 0x11A31F ACK [LEQ0987654]:   CNT=10,RPTEN=1,RPTED=0,BIDI=0,BURST=0,
TX:  @680446600 0x11A31F -> 0x271EFF CONFIG_END [LEQ0987654]:   CNT=19,RPTEN=1,RPTED=0,BIDI=1,BURST=0,WAKEUP=0,WAKEMEUP=0
(LEQ0987654) Response status: Telegram sent, received ACK.
Response accepted:  @680446760 RSSI=-41dB 0x271EFF -> 0x11A31F ACK [LEQ0987654]:   CNT=19,RPTEN=1,RPTED=0,BIDI=0,BURST=0,
Trying to change key for device LEQ0012345 using key index 0
TX:  @680446761 0x11A31F -> 0x271EFF AES_CONTAINER_KEY [LEQ0987654]:   CNT=28,RPTEN=1,RPTED=0,BIDI=1,BURST=0,WAKEUP=0,WAK
(LEQ0987654) Response status: Send failed.
Event: LEQ0012345:0.UNREACH=true
Event: LEQ0012345:0.STICKY_UNREACH=true
SendFrame failed 1 times:  @680446762 0x11A31F -> 0x271EFF AES_CONTAINER_KEY [LEQ0987654]:   CNT=28,RPTEN=1,RPTED=0,BIDI=
Key exchange for device LEQ0012345 using key index 0 failed
Trying to change key for device LEQ0012345 using key index 1
HSSXmlRpcEventDispatcher::Handle send 2 events
HSSXmlRpcEventDispatcher::Handle send 2 events
HSSXmlRpcEventDispatcher::Handle send 2 events
ReGaHss: Error: IseXmlRpc::GetObjectByHSSAddress: no exists device object with address= LEQ0012345:0 [../Platform/DOM/iseXmlRp
ReGaHss: Error: IseXmlRpc::GetObjectByHSSAddress: no exists device object with address= LEQ0012345:0 [../Platform/DOM/iseXmlRp
HSSXmlRpcEventDispatcher::Handle send completed
Das geht dann noch einige Zeilen so weiter. Interessanterweise erscheint dann auf der CCU2-Seite im Browser ein Fenster mit der Meldung:
Zitat
"Geräte anlernen - Sicherheitsabfrage
Sie haben versucht, das Gerät durch Eingabe der Seriennummer anzulernen. Dieser Vorgang konnte nicht
durchgeführt werden. LEQ0012345
Sicherkeitsschlüssel: <Eingabefeld>
<Abbrechen> <Schlüssel setzen ud erneut versuchen>"
Ich habe allerdings keineswegs versucht, das Anlernen durch Eingabe der Seriennummer zu erreichen. sondern durch "Geräte anlernen" bzw. "BidCos-RF Anlernmodus".

Ich vermute, dass das Problem evt. durch die AES-Schlüsselung hervorgerufen wird. In den XML-Files steht ja "supports_aes=true".  Die alternative Firmware wird dies m.E. aber nicht können.

Da ein Eintrag in der /var/log/message nur sehr selten erscheint, bin ich mir nicht mehr so sicher, ob ich beim Anlernversuch richtig vorgehe (-> CCU2 in den Anlernmodus bringen und dann für 5 sec den Config-Taster drücken?)
Ich muss mir das im Quellcode mal anschauen ...

Gruß
Peter


frank

Zitat(-> CCU2 in den Anlernmodus bringen und dann für 5 sec den Config-Taster drücken?)
genau. wenn nach langem drücken des tasters nichts aufleuchtet, war es ok. da sendet der schalter dann zb seine seriennummer, modelid und sn.

ich würde mir jetzt für den schalter das neueste vorhandene (v2.4) xml kopieren, umbenennen und nach und nach auf den alternativen schalter umbauen. modelid=F0A9, seriennummernabfrage ausbauen, aes verschlüsselung ausbauen. usw. in anderen xml mal stöbern, wie das dort so aussieht, wenn kein aes vorhanden ist.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

PumpkinEater

Ich bin einen Schritt weiter. Ich habe in der XML-Datei rf_s_1conf_644.xml  "supports_aes" auf false gesetzt und weiter unten den Abschnitt <parameter id="AES_KEY" ... value_id="AES_KEY"/> gelöscht. Damit die Änderungen wirksam werden, muss man die CCU2 scheinbar neu booten. Ich kann dann den Schalter in der CCU2 anlernen.

Erwartet hätte ich dann eigentlich ein Gerät mit zwei Kanälen. Es taucht aber nur einer auf. Ich habe in der Datei Register.h der Firmware mit der Kanalzahl rumgespielt - keine Veränderung.

Auch kann ich den Kanal in der CCU2-Oberfläche nicht schalten (Gerätekommunikation gestört). Muss ich dafür evt. die Relaisplatine erst mit der Prozessorplatine verbinden? 

Gruß
Peter

frank

ZitatErwartet hätte ich dann eigentlich ein Gerät mit zwei Kanälen. Es taucht aber nur einer auf.
der originalschalter hat auch nur einen channel. wird vielleicht im xml-file festgelegt, oder in kombination mit

/* Device Info            3 byte */  0x41, 0x01, 0x00

gesteuert. bei eq3 im downloadbereich gibt es, glaube ich, docu zu xml/rpc.

ZitatAuch kann ich den Kanal in der CCU2-Oberfläche nicht schalten (Gerätekommunikation gestört). Muss ich dafür evt. die Relaisplatine erst mit der Prozessorplatine verbinden? 
was sagt denn das ccu-log? probieren geht über studieren.  ;)

edit:
was passiert denn, wenn du auf einstellungen klickst?

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

PumpkinEater

Ich habe nun die Device Info auf "0x04, 0x01, 0x00" gesetzt. Damit werden in der CCU jetzt 4 Kanäle (Empfänger) angezeigt. Kanal 3 (das Relais im Schalter) kann ich jetzt auch schalten. Beim Schalten von Kanal 4 springt erwartungsgemäß dann auch Kanal 3 mit um.  Das Konfigurieren funktioniert allerdings noch nicht (Kommunikationsstörung bei Kanal 0).

Damit bin ich jetzt an dem Punkt angekommen, an dem jab auch schon war, nämlich der Frage, wie man Taster und Aktoren in einem Device kombinieren kann. Das mittlere Byte in der devInfo definiert vermutlich, ob man einen Aktor (0x01) oder einen Taster (0x00) hat. Ich werde als nächstes mal mit diesem Byte rumspielen. Vielleicht gibt es neben den Werten 0x00 und 0x01 noch andere Werte, die einen Mix aus Taster und Aktoren repräsentieren.

Gruß
Peter

frank

ZitatVielleicht gibt es neben den Werten 0x00 und 0x01 noch andere Werte, die einen Mix aus Taster und Aktoren repräsentieren.
schau mal nach dem messaktor HM-ES-PMSw1-Pl, devinfo 0x3F0100, stc 51.
chn1 aktor, chn2 ? messwertkonfigurationkanal, chn3-chn6 4x sensorkanal komparatoren (u, i, f, p). chn3-chn6 lassen sich mit chn1 peeren.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

PumpkinEater

Momentan komme ich nicht mehr weiter, weil ich den Aufbau des xml-Files nicht genügend verstehe. Ich vermute, dass die Angaben in dem Abschnitt <frames> der xml-Datei mit den Registeradressen in der Datei Register.h verknüpft sind - aber wie ?  ::).

Gruß
Peter


silson

Ich habe ebenfalls Interesse den umgeflashten Aktor mit der CCU2 zu verwenden. Biete daher hier mal meine Hilfe an...

Soweit ist das verstanden hab muss man der CCU2 per XML Datei die Eigenschaften des Gerätes bekannt machen. Korrekt? Wo findet man die XML Datei denn genau? Ich vermute auf der CCU2? Oder in der entpackten Firmware-Datei für die CCU?

Gruß,
  Stefan

frank

ich finde sie bei mir unter den files der installierten eq3-konfig-software.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

silson

Okay, den USB-Adapter hab ich am Wochenende bestellt und er liegt jetzt im Paket Zuhause. Werde mir dann später die Software runterladen und mir das ganze dann mal ansehen.

PumpkinEater

Hallo Stefan,
Zitat von: silson am 03 Februar 2015, 13:18:40
Soweit ist das verstanden hab muss man der CCU2 per XML Datei die Eigenschaften des Gerätes bekannt machen. Korrekt? Wo findet man die XML Datei denn genau? Ich vermute auf der CCU2? Oder in der entpackten Firmware-Datei für die CCU?

Die XML-Files liegen auf der CCU2 unter /firmware/rftypes/    (per SSH auf der CCU2 einloggen)
Das Verzeichnis ist read-only. Wenn Du später was verändern willst, musst Du die Partition rw-remounten (dann sollte man aber wissen, was man tut ;-).
Gruß
Peter

silson

Hallo Peter,

Zitat von: PumpkinEater am 21 Oktober 2014, 22:31:28
Damit bin ich jetzt an dem Punkt angekommen, an dem jab auch schon war, nämlich der Frage, wie man Taster und Aktoren in einem Device kombinieren kann.

hast du schonmal mit <link_roles> gespielt? Interessant dürften auch die Frames sein. Da müsste ich mir aber noch den Quellcode von der neuen Firmware ansehen. Denke das muss man auch noch mit dem XML file in Einklang bringen.

Da ich selbst aber erstmal überhaupt die Firmware auf meinen Aktor bringen muss kann noch nicht testen/rumprobieren. Ist aber für die nächsten 1-2 Wochen geplant.