Neue Firmware für HM_LC_Sw1PBU_FM mit getrenntem Aktor, Taster + Wechselschalter

Begonnen von jab, 29 Dezember 2013, 22:04:10

Vorheriges Thema - Nächstes Thema

schalkan56

mein schalter reagiert noch als wäre er nie mit einem neuen bootloader geflasht worden.sprich 5 sek Taste drücken
bringt den normalen Pairng modus zum vorscheinen....Es soll wohl nicht sein... :'( Bietet den jmd. fertig geflaschte Schalter
zum Kauf an?

jab

Moin,

Das bekommen wir schon hin. Kannst du den Output vom flashen des Bootloaders posten? Vielleicht gab es da schon einen Fehler.

Wenn wir das haben kannst du mal hmsniff aufrufen und gucken ob sich der Bootloader meldet (oder was der Schalter sendet). Aber erstmal das flashen.

Gruß
Jan

frank

jetzt mal langsam und von vorne. was genau hast du alles gemacht?

den bootloader musst du mit avrdude über einen angelöteten isp-programmer flashen. den solltest du von dirks github downloaden. da gibt es die neueste version. wenn der geflasht ist, sollte der sich automatisch ca alle 15 sec melden. 1x lang und 2x kurz. wenn du die dateien mit deinen devicedaten geändert und dir dann mit make die hexdatei gebaut hast, meldet sich der bootloader natürlich auch mit dieser seriennummer und deviceID.
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

schalkan56

Also ich bin nach dieser Anleitung vorgegangen (Howto):

https://owncloud.isengard.at/public.php?service=files&t=8992affb68e8c1dcbe532152628ad9a5

Habe einen komplett neuen PI benutzt....die GPIO's nach der Layout-Datei an die Lötpunkte des Aktors angelötet.
Dann geflasht....Logs reiche ich später nach....

schalkan56

So hier die logs...zuerst die fuses:
pi@raspberrypi ~ $ sudo avrdude -p m644 -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9609
avrdude: reading input file "0xFD"
avrdude: writing lfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.09s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFD:
avrdude: load data lfuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xfd != 0xff
avrdude: verification error; content mismatch

avrdude: safemode: lfuse changed! Was fd, and is now ff
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK

avrdude done.  Thank you.



Dann den Bootloader:

pi@raspberrypi ~ $ sudo avrdude -p m644 -P gpio -c gpio -U flash:w:bootloader_HM-LC-Sw1PBU-FM.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9609
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "bootloader_HM-LC-Sw1PBU-FM.hex"
avrdude: input file bootloader_HM-LC-Sw1PBU-FM.hex auto detected as Intel Hex
avrdude: writing flash (61372 bytes):

Writing | ################################################## | 100% 27.40s

avrdude: 61372 bytes of flash written
avrdude: verifying flash memory against bootloader_HM-LC-Sw1PBU-FM.hex:
avrdude: load data flash data from input file bootloader_HM-LC-Sw1PBU-FM.hex:
avrdude: input file bootloader_HM-LC-Sw1PBU-FM.hex auto detected as Intel Hex
avrdude: input file bootloader_HM-LC-Sw1PBU-FM.hex contains 61372 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 25.66s

avrdude: verifying ...
avrdude: 61372 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.




Dann die Firmware:

Cpi@raspberrypi ~/hmcfgusb-HEAD-18e63b2 $ sudo ./flash-ota -f firmware_HM-LC-SwBU-FM.eq3 -s LEQ0234333
HomeMatic OTA flasher version 0.097-git

Reading firmware from firmware_HM-LC-Sw1PBU-FM.eq3...
Firmware with 77 blocks successfully read.

Rebooting HM-CFG-USB to avoid running out of credits

HM-CFG-USB not in bootloader mode, entering bootloader.
Waiting for device to reappear...
Can't find/open hmcfgusb!
Can't find/open hmcfgusb!
Can't find/open hmcfgusb!
HM-CFG-USB in bootloader mode, rebooting
Can't find/open hmcfgusb!
Can't find/open hmcfgusb!


HM-CFG-USB opened

HM-CFG-USB firmware version: 967
Entering 10k-mode
Waiting for device with serial LEQ0234333


Wenn die Zeile mit waiting for serial...kommt dann trenne ich den Pin 17 (=3,3V) und schliesse ihn erneut an....Aber er wird nicht erkannt.
Die LAmpe am Schalter ist dauernd am blinken..... :(

frank

avrdude: safemode: lfuse changed! Was fd, and is now ff
lfuse ist nicht ok. muss 0xfd sein, nicht 0xff.

da du dieses hexfile benutzt, ohne zusatz "_8k", möchtest du den 4k bootloader nutzen. richtig?
bootloader_HM-LC-Sw1PBU-FM.hex

zum 4k-bootloader muss hfuse so aussehen:
hfuse:w:0xDA:m

pi@raspberrypi ~ $ sudo avrdude -p m644 -P gpio -c gpio -U flash:w:bootloader_HM-LC-Sw1PBU-FM.hex
da fehlt die option -V

avrdude: writing flash (61372 bytes):
bei mir sind es 65535 bytes.

also erst deine fuses in ordnung bringen und dann den bootloader flashen.

LEQ0234333
hast du die sn in den code geschrieben?
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

schalkan56

Vielen Dank für die Geduld:

Also habe die Fuses neu gesetzt:
pi@raspberrypi ~/hmcfgusb-HEAD-18e63b2 $ sudo avrdude -p m644 -P gpio -c gpio -U                                                                                                                      lfuse:w:0xfd:m -U hfuse:w:0xDA:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9609
avrdude: reading input file "0xfd"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xfd:
avrdude: load data lfuse data from input file 0xfd:
avrdude: input file 0xfd contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xDA"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.


Anschliessend den Bootloader neu geflasht:
pi@raspberrypi ~ $ sudo avrdude -p m644 -P gpio -c gpio -U flash:w:bootloader_HM                                                                                                                     -LC-Sw1PBU-FM.hex -V

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9609
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "bootloader_HM-LC-Sw1PBU-FM.hex"
avrdude: input file bootloader_HM-LC-Sw1PBU-FM.hex auto detected as Intel Hex
avrdude: writing flash (61372 bytes):

Writing | ################################################## | 100% 27.58s

avrdude: 61372 bytes of flash written
avrdude: verifying flash memory against bootloader_HM-LC-Sw1PBU-FM.hex:
avrdude: load data flash data from input file bootloader_HM-LC-Sw1PBU-FM.hex:
avrdude: input file bootloader_HM-LC-Sw1PBU-FM.hex auto detected as Intel Hex
avrdude: input file bootloader_HM-LC-Sw1PBU-FM.hex contains 61372 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 25.95s

avrdude: verifying ...
avrdude: 61372 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.


Doch das Ergebniss bleibt leider das gleiche...

Die sn habe ich beim Befehl mitgegeben (und nicht in einen Code geschrieben):
sudo ./flash-ota -f firmware_HM-LC-Sw1P                                                                                                                     BU-FM.eq3 -s LEQ0234333


Muss ich evtl. komplett andere files nehmen?

frank

ZitatMuss ich evtl. komplett andere files nehmen?
du sagst ja nicht was du nimmst, wie soll man da beurteilen, ob das richtig ist.
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

schalkan56

Achso...habe mir die Files aus dieser Cloud genommen:
https://owncloud.isengard.at/public.php?service=files&t=8992affb68e8c1dcbe532152628ad9a5

frank

da musst du dich wohl an die enthaltene anleitung halten und auf mr.p warten, von dem wohl die cloud ist.
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

Mr. P

Und da ist er auch schon. :-)

Du musst dich WIRKLICH an die Anleitung halten, wenn du alle Files von meiner Cloud nimmst. ;-)

flash-ota -f firmware_HM-LC-Sw1PBU-FM.eq3 -s KEQ0123456

Und das gilt auch für die Seriennummer, die dort steht. Denn die Seriennummer ist im Bootloader hardgecodet und du müsstest das Flashfile selbst neu bauen und die von deinem Schalter im Source eintragen. Solange du nur einen Schalter verwendest, ist es nicht notwendig und du kannst alles 1:1 aus meiner Cloud übernehmen (steht aber auch gleich als allererster Punkt von meinem How To).

Sollte es damit immer noch nicht klappen, dann bitte wie jab schon gesagt hat, hmsniff aufrufen, den Schalter neu starten und schauen, was für Daten du rein bekommst.
Greetz,
   Mr. P

schalkan56

Hallo Mr.P,

bon jetzt nochmal genau nach dem Howto vorgegangen und habe die Serial KEQ0123456 verwendet.
Leider noch ohne Ergebnis. Ein hmsniff erigt folgendes:

2014-11-03 19:20:00.142036: 0FE9861021DBF50000000A60B60F005A
Packet information:
        Length: 15
        Message ID: 233
        Sender: 21dbf5
        Receiver: 000000
        Control Byte: 0x86
                Flags: WAKEMEUP CFG RPTEN
        Message type: Information (0x10)
        Mesage: 0A60B60F005A

2014-11-03 19:20:00.174030: 0FCC8610269D580000000A60BB0F0058
Packet information:
        Length: 15
        Message ID: 204
        Sender: 269d58
        Receiver: 000000
        Control Byte: 0x86
                Flags: WAKEMEUP CFG RPTEN
        Message type: Information (0x10)
        Mesage: 0A60BB0F0058

2014-11-03 19:20:00.526061: 0F788610269D690000000A60AD100058
Packet information:
        Length: 15
        Message ID: 120
        Sender: 269d69
        Receiver: 000000
        Control Byte: 0x86
                Flags: WAKEMEUP CFG RPTEN
        Message type: Information (0x10)
        Mesage: 0A60AD100058

2014-11-03 19:20:04.782499: 0F668610269C7D0000000A60B90F0058
Packet information:
        Length: 15
        Message ID: 102
        Sender: 269c7d
        Receiver: 000000
        Control Byte: 0x86
                Flags: WAKEMEUP CFG RPTEN
        Message type: Information (0x10)
        Mesage: 0A60B90F0058

2014-11-03 19:20:16.559640: 0FD58610269D6D0000000A60AC0F0058
Packet information:
        Length: 15
        Message ID: 213
        Sender: 269d6d
        Receiver: 000000
        Control Byte: 0x86
                Flags: WAKEMEUP CFG RPTEN
        Message type: Information (0x10)
        Mesage: 0A60AC0F0058

2014-11-03 19:20:26.864638: 14000010ABCDEF000000004B455130313233343536
Packet information:
        Length: 20
        Message ID: 0
        Sender: abcdef
        Receiver: 000000
        Control Byte: 0x00
                Flags:
        Message type: Information (0x10)
        Mesage: 004B455130313233343536

2014-11-03 19:20:36.369611: 14000010ABCDEF000000004B455130313233343536
Packet information:
        Length: 20
        Message ID: 0
        Sender: abcdef
        Receiver: 000000
        Control Byte: 0x00
                Flags:
        Message type: Information (0x10)
        Mesage: 004B455130313233343536

2014-11-03 19:20:52.435196: 0FA88610269CC00000000A60B40F0062
Packet information:
        Length: 15
        Message ID: 168
        Sender: 269cc0
        Receiver: 000000
        Control Byte: 0x86
                Flags: WAKEMEUP CFG RPTEN
        Message type: Information (0x10)
        Mesage: 0A60B40F0062


Kann man da was erkennen?

schalkan56

habe mittlerweile den schalter mit der firmware.hex geflasht (also kein ota-update möglich)..
das sieht aber gut aus ....fhem hat folgendes gefunden [siehe Anhang]....Gibt es denn iwo einen Schaltplan,
wie ich die Anschlussklemmen belegen muss um einen Wechselschalter realisieren kann?

Dirk

Hallo zusammen,

da die Version 0.7.0 vom Bootloader bisher bei allen zu funktionieren scheint, habe ich ein Tag und ein Release dafür erstellt: v0.7.0
Ich habe jetzt auch meinen Stand in das ursprüngliche Repository wieder zurück gemerged:
https://github.com/jabdoa2/Asksin_OTA_Bootloader

Jetzt sind beide Stände also wieder identisch.

Die Releases liegen dann hier:
https://github.com/jabdoa2/Asksin_OTA_Bootloader/releases
https://github.com/kc-GitHub/Asksin_OTA_Bootloader/releases

Viele Grüße
Dirk

christian.schilke.9

Der Anschluss in einer Kreuzschaltung muss wie im Anhang dargestellt realisiert werden?(http://tapatalk.imageshack.com/v2/14/11/04/84fa760d01ba90b484c2f644f821d384.jpg)