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

Klinki

Hallo Forum,

Ich verfolge seit ein paar Tagen dieses Thema und habe gestern am Arbeitsplatz erfolgreich einen Schalter geflasht. Mit angepasstem Bootloader und Firmware (HMID, Seriennummer...). Das Ding ließ sich anschließend anlernen und schalten. Auch in Wechslerschaltung. Wunderbar!

Zu Hause habe ich den Schalter dann eingebaut und wollte ihn erneut anlernen (gleiche HMID der Zentrale wie am Arbeitsplatz). Funktionierte nur teilweise: Das Device wurde irgendwann angelegt, aber mit einem Fragezeichen hinter der Bezeichnung. Fhem-Update durchgeführt, mehrfach neu gestartet. Nix.

Dann heute morgen den Schalter wieder in der Firma angeschlossen. Ließ sich schalten, genau wie gestern.
Ich habe dann Bootloader und FW noch mal neu geflasht um den Anlernprozess noch mal durchzuführen. Der Schalter sendet jetzt gar keine HM-Messages mehr (über´s Sniffing). OTA-Flash funktioniert auch nicht mehr.
Über die Kabel-Verbindung lässt sich der ATMega aber nach wie vor ansprechen. Es kommen keine Fehlermeldungen, weder bei den Fuses, noch  beim Bootloader, noch bei der Firmware.
Die LED am Schalter leuchtet auch nicht mehr. Zu keinem Zeitpunkt. Auch nicht, wenn ich die Taster betätige (Lernen und Steuer-Taster).

Anschließend hab ich die Firmware von Mr. P's Cloud genommen. Der gleiche Effekt.
Das Beste: Das gleiche Verhalten zeigt sich bei 2 Schaltern.

Hatte zwischendurch auch mal versucht den ATMega zu löschen:
avrdude -p m644p -P gpio -c gpio -e

Habe ich jetzt für 100€ Schrott produziert?

Bin etwas ratlos. Vielleicht hat jemand von euch einen Hinweis!

gruß
klinki

frank

ZitatIch habe dann Bootloader und FW noch mal neu geflasht um den Anlernprozess noch mal durchzuführen.
das hat nichts mit anlernen zu tun. anlernen ist das schreiben einer hmid ins eeprom. und die war ja von anfang an die richtige, sowohl auf arbeit, als auch zu hause.

nach dem flashen des bootloaders ging also noch einmal ota?

ZitatHatte zwischendurch auch mal versucht den ATMega zu löschen:
ich kenne den befehl jetzt nicht. aber kannst du die fuses denn noch auslesen?

ZitatHabe ich jetzt für 100€ Schrott produziert?
ich hoffe mal nicht.
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

Klinki

Zitat
das hat nichts mit anlernen zu tun. anlernen ist das schreiben einer hmid ins eeprom. und die war ja von anfang an die richtige, sowohl auf arbeit, als auch zu hause.
..war blöd ausgedrückt. Ich wollte nur sagen, dass ich den gesamten Prozess noch einmal durchführen wollte.

Zitat
nach dem flashen des bootloaders ging also noch einmal ota?
das habe ich gestern nicht mehr ausprobiert, da ich Kabel noch verbunden hatte und Bootloader und FW dann darüber geflasht habe. OTA ging heute morgen nicht. Auch nicht, als habe ich den vorgefertigten Bootloader von Mr.P geflasht hatte.

Zitat
ich kenne den befehl jetzt nicht. aber kannst du die fuses denn noch auslesen?
ja, hier:

root@raspberrypi:~# avrdude -p m644p -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 = 0x1e960a
avrdude: reading input file "0xFD"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
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 "0xD8"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xD8:
avrdude: load data hfuse data from input file 0xD8:
avrdude: input file 0xD8 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.


EDIT: Vielleicht passen die Fuses auch nicht mehr zur Hardware. Immerhin ist der ATMega ja kein 644 mehr. Leider kenne ich mich mit diesem Thema nicht gut genug aus  :-\

Klinki

Ich hab jetzt alle Kabel erneuert; sämtliche Schritte noch mal von vorne. Nun hat es geklappt! Wo der Fehler genau war, kann ich leider nicht sagen  :-\
Kann eigentlich nur ein WaKo in einem Draht gewesen sein. Die Schritte beim Flashen hab ich bestimmt ein Dutzend Mal durchgeführt.
Flashen hat halt immer funktioniert - daher habe ich keinen Gedanken an ein Problem mit der Verdrahtung verschwendet.

Falls sich jemand Gedanken über mein Problem gemacht hat: Sorry & Danke!

frank

ZitatNun hat es geklappt!
prima. dann schnell die kabel weg, damit du nicht mehr in versuchung kommst. bis auf einen kleinen teil des bootloaders kann nun alles ota updated werden.
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

Klinki

Aye! Entkabelt, zu Hause eingebaut, angelernt, logisch mit einem Bewegungsmelder verknüpft. Jetzt geht, wenn es dunkel ist, das Licht für 4 Minuten an wenn man den Raum betritt, über den HM-Schalter oder den zweiten (herkömmlichen) Wechselschalter kann man das Licht auch frühzeitig wieder ausschalten.

Herrlich!

Ich hatte vorgestern den Wiki-Beitrag dazu schon etwas erweitert.
virido hat aber so ganz unrecht nicht:

Zitat von: virido am 09 November 2016, 09:29:23
Die einzig gute Lösung scheint für mich diese Firmware zu sein.
Jedoch finde ich den Wiki-Eintrag etwas verwirrend.
Gibt es irgendwo eine Schritt-für-Schritt Anleitung um diese Firmware auf meine Schalter zu bekommen?

Ich meine, der Beitrag enthält wirklich alles Nötige - und darüber hinaus. Aber wie das bei gewachsenen Beiträgen häufig so ist: die Struktur und Durchgängigkeit hat schon etwas gelitten.
Falls Interesse besteht, könnte ich meine Durchführung mit dem Raspberry Pi einmal vollständig als step-by-step beschreiben.

@virido: So ganz ohne Grundkenntnisse in Raspberry Pi, Linux, µC-Programmierung und natürlich Homematic, kommt man aber bei diesem Projekt nicht bis in´s Ziel. Auch wenn der Nutzen wirklich groß ist - vielleicht solltest Du kleiner anfangen. Wenn man im Wiki oder Forum stöbert, findet man immer tolle Ideen und Projekte. Schade, dass der Tag nur 24 Stunden hat  ;)

virido

Hallo,

Versuche gerade zu flashen und bekomme bei dem Befehl
avrdude -p m644 -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m

folgendes:
avrdude: Device signature = 0x1e960a
avrdude: Expected signature for ATMEGA644 is 1E 96 09
         Double check chip, or use -F to override this check.

somit bestätigt mir das Gerät auch nicht per LED die funktion.
Was läuft hier falsch?

Klinki

Vermutlich hast Du einen ATMega644p. Deshalb wirft der Programmer eine Fehlermeldung aus. Versuch´s mit:

avrdude -p m644p -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m -U lock:w:0x3F:m

virido

Die Meldung ist schon mal weg mit deiner Hilfe.
Jedoch meldet sich die LED trotzdem nicht. Wie müsste dann der Befehl für das Flashen aussehen?

Klinki

eigentlich genau wie im http://www.fhemwiki.de/wiki/HM-LC-Sw1PBU-FM_Alternative_Firmware beschrieben, nur eben kein m644, sondern m644p.

Demnach also:

Fuses(mit Lock)
avrdude -p m644p -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m -U lock:w:0x3F:m

Bootloader:
avrdude -p m644p -P gpio -c gpio -U flash:w:bootloader_HM-LC-Sw1PBU-FM_8k.hex

Firmware:
avrdude -p m644p -P gpio -c gpio -U flash:w:Asksin_HM_LC_Sw1PBU_FM.cpp.hex

Bei mir blinkt die LED aber auch nicht, wenn ich die fuses setze

hast Du denn schon alle Dateien zusammen?


knueppler

Hi,

Der findet sich doch im Wiki unter dem Punkt Bootloader bauen.

Ciao Christian

Klinki

richtig, Christian!

@all: Ich habe den Flash-Vorgang am Raspberry Pi für das betriebs-eigene Wiki dokumentiert.
Diese Dokumentation will ich euch nicht vorenthalten und habe die Schritte auch in´s fhem-wiki übertragen:  http://www.fhemwiki.de/wiki/HM-LC-Sw1PBU-FM_Alternative_Firmware_am_Raspi_bauen_u._flashen

@virido: Diese Anleitung sollte jetzt wirklich Schritt für Schritt sein. Vielleicht hilft sie Dir. Über ein Feedback würde ich mich freuen!

virido

Bin die Anleitung durch gegangen und habe auch keine Fehler erhalten.
Denke also mein Schalter ist nun geflashed.
Im anderen Wiki-Eintrag stand ich soll den schalter nun testen.
Muss ihn dafür wieder ans Hausnetz klemmen oder reicht die Versorgung des Pi?
Dafür noch eine Anleitung und ich bin überglücklich :)

Klinki

steht eigentlich im Haupt-Artikel  ::)

Hast Du das .pm-Modul schon in dein FHEM integriert??
Dann:
- Reset des Schalters (kurz stromlos machen)
- fhem in den Anlernmodus versetzen / autocreate aktivieren
- Taster des HM-Schalters >4s gedrückt halten und loslassen

Schalter sollte dann in fhem auftauchen.
das kannst du alles mit der Spannungsversorgung am Raspi machen. Die Relaisplatine, bzw. 230V sind nicht nötig.
Die 230V erst anklemmen, wenn die Kabel vom Raspi gelöst sind. Sonst funkt´s  ;D