[gelöst] suche Hilfe für die Alternative Software HM-LC-Sw1PBU-FM

Begonnen von Bennemannc, 23 Februar 2018, 15:32:40

Vorheriges Thema - Nächstes Thema

Bennemannc

Hallo,

ich suche jemanden der mir die Alternative Software auf den HM-LC-Sw1PBU-FM flashen kann. Ich bekomme noch nicht einmal einen Kontakt mit avrdude hin. Alternativ, wer kann mir eine Schritt für Schritt Anleitung zeigen wie ich avrdude ans laufen bekomme. Nutzen wolte ich einen BananaPi - aber die Pins sind ja die gleichen wie beim Raspberry und auch die Software ist gleich.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

kroman

Hi,

ich habe damals 2 Wochen gebraucht, bis der Schalter endlich mit FHEM funktioniert hat  :D
Geht's dir etwa ähnlich?

Ich kann dir hier mal meine Mitschriften von damals zur Verfügung stellen.
Falls ich nichts vergessen habe aufzuschreiben, sollte das so funktionieren, denn mein Schalter tut nun ja schließlich.
Wobei es nach besagter Zeit schon etwas chaotisch wurde und ich für Vollständigkeit nicht mehr garantieren kann  ;D
Bzgl. dem Setzen der Register in FHEM bin ich nicht sicher, ob das der richtige Weg ist bzw. ob es nicht einen besseren gibt, denn wenn der Schalter stromlos wird, muss das erneut gemacht werden. Bin aber noch nicht dazugekommen, hier weiterzumachen. Aber das ist ja gar nicht deine Frage...

Gutes Gelingen!

Gruß
kroman

PS: wenn du selber weiterprobierst, solltest du den Beitrag ins richtige Forum verschieben, damit die richtigen Experten das mitbekommen.
PPS: um diesen Schalter für jemand anderen zu flashen fühle ich mich nicht qualifiziert genug (sollte die Frage aufkommen), außerdem habe ich keine 2 Wochen mehr Zeit  :)


# 99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm runterladen und nach ./FHEM kopieren und fhem restarten:
# (https://github.com/jabdoa2/Asksin_HM_LC_Sw1PBU_FM/blob/master/fhem/99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm)

sudo apt-get install libswitch-perl
fhem: reload 99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm

sudo passwd root
su - root
apt-get install arduino gcc-avr git-core
mkdir /root/hm_switch
mkdir /root/hm_switch/flash
cd /root/hm_switch

git clone https://github.com/jabdoa2/Asksin_OTA_Bootloader
git clone https://github.com/jabdoa2/Asksin_HM_LC_Sw1PBU_FM

# download "avrdude.conf.gz" and "avrdude_5.10-4_armhf.deb" from here: https://seafile.partec.org/d/b6590a5a45/
# and copy to /root/hm_switch

dpkg -i avrdude_5.10-4_armhf.deb
gunzip avrdude.conf.gz && cp avrdude.conf /etc/

mkdir /home/pi/build && chmod -R 777 /home/pi/build
chown pi:pi /home/pi/build/

cd /usr/share/arduino/hardware
git clone https://github.com/jabdoa2/jabduino

# die applikation "Arduino IDE" am raspi desktop starten und wieder schließen

exit # leave root

vi /home/pi/.arduino/preferences.txt

# make following changes/add entries:

build.path=/home/pi/build
export.delete_target_folder=false
preproc.save_build_files=

su - root
cp -R /root/hm_switch/Asksin_HM_LC_Sw1PBU_FM/ /home/pi/sketchbook/ && chmod -R 777 /home/pi/sketchbook/

# Arduino IDE:

# - Tools -> Board -> "Jabduino ATmega644A" auswählen
# - File -> Sketchbook -> "Asksin_HM_LC_Sw1PBU_FM" öffnen
# - In der Datei Asksin_HM_LC_Sw1PBU_FM den Wert in Zeile 64 eventuell "const unsigned long minImpulsLength = 5000;" ändern.
#   Der dort eingetragene Wert gilt als Schwellwert, wann der Schalter erkennen soll, dass ein angeschlossener Wechselschalter
#   gedrückt wurde und somit erkannt wird, dass Strom fließt.
# - In der Datei Register.h in Zeile 22 den Wert von HMID[3] ändern (52C28D)
#   Z.B.: "const uint8_t  HMID[3]     = { 0x52, 0xC2, 0x8D };     // 52C28D"
# - Zusätzlich kann die eigene Zentrale bereits als Default-Wert in den Schalter eingetragen werden.
#   Dadurch entfällt ein unter Umständen notwendiges Peering.
#   Dafür muss die Zeile 347 von '//#define firstLoad' in '#define firstLoad' geändert werden
#   In den Zeilen 354 bis 356 die Werte für die FHEM-Zentral-ID einfügen (Reading: D-HMIdOriginal   4F6D88)
#   reg.ch_0.pairCentral[0] = 0x4F;
#   reg.ch_0.pairCentral[1] = 0x6D;
#   reg.ch_0.pairCentral[2] = 0x88;
# - und noch Serial ID in Register.h Zeile 16 anpassen
#   <16>/* Serial ID       10 byte */  'N','E','Q','1','8','3','1','9','2','9', // serial ID, needed for pairing
# - alles speichern (<File>/<Save>)
# - <Sketch>/<Verifiy/Compile> alles kompilieren

vi /root/hm_switch/Asksin_OTA_Bootloader/devices/HM-LC-Sw1PBU-FM.h

# Datei /root/hm_switch/Asksin_OTA_Bootloader/devices/HM-LC-Sw1PBU-FM.h editieren und dabei Seriennummer, HMID und die Typ setzen.
# Seriennummer und HMID müssen in eurer Umgebung eindeutig sein, Typ ist: 0xF0A9

cd /root/hm_switch/Asksin_OTA_Bootloader/
make clean HM_LC_Sw1PBU_FM_8k

cp /home/pi/build/Asksin_HM_LC_Sw1PBU_FM.cpp.hex /root/hm_switch/flash/firmware.hex
cp /root/hm_switch/Asksin_OTA_Bootloader/Bootloader-AskSin-OTA-HM_LC_Sw1PBU_FM_8k.hex /root/hm_switch/flash/bootloader.hex
cd /root/hm_switch/flash/

avrdude -p m644p -P gpio -c gpio -U flash:w:bootloader.hex
avrdude -p m644p -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m -U lock:w:0x3F:m
avrdude -p m644p -P gpio -c gpio -U flash:w:firmware.hex

Btn_01: Taster oben, supportet short und long press
Btn_02: Taster unten, supportet short und long press
Sw_01: Relais, braucht man nicht direkt
Sw_02: Kanal 3 des Aktors, virtueller Kanal, ist aus wenn kein Strom fließt und an wenn Strom fließt,
damit wird geschalten, nämlich das Relais SW_02

Schalter aus: 2017-10-06 20:39:29 CUL_HM a_wechselschalter_vz_Sw_02 current: 0
Schalter ein: 2017-10-06 20:37:17 CUL_HM a_wechselschalter_vz_Sw_02 current: 890

# check all peers:

peerList                                    state
kroUART                         4F6D88
a_wechselschalter_vz            52C28D
a_wechselschalter_vz_Btn_01     52C28D01    20855703,21D62901,21D63B01,self03           Short 3_30 (to 208557)
a_wechselschalter_vz_Btn_02     52C28D02    20855703,21D62901,21D63B01,self03           Short 3_35 (to 208557)
a_wechselschalter_vz_Sw_01      52C28D03    12345601,20855701,20855702,self01,self02    off
a_wechselschalter_vz_Sw_02      52C28D04    ---                                         off

# delete all peers from Btn_01 and Btn_02:

set a_wechselschalter_vz_Btn_01 peerBulk 21D63B01 unset
set a_wechselschalter_vz_Btn_01 peerBulk 21D62901 unset
set a_wechselschalter_vz_Btn_01 peerBulk 20855703 unset
set a_wechselschalter_vz_Btn_01 peerBulk self03 unset

set a_wechselschalter_vz_Btn_02 peerBulk 21D63B01 unset
set a_wechselschalter_vz_Btn_02 peerBulk 21D62901 unset
set a_wechselschalter_vz_Btn_02 peerBulk 20855703 unset
set a_wechselschalter_vz_Btn_02 peerBulk self03 unset

# set peer Sw_01

set a_wechselschalter_vz_Btn_01 peerChan 0 a_wechselschalter_vz_Sw_01 single set both -> self03
set a_wechselschalter_vz_Btn_02 peerChan 0 a_wechselschalter_vz_Sw_01 single set both -> self03

# (or don't delete peer self03 and don't set it again)

# damit Taster oben und Taster unten toggeln:

set a_wechselschalter_vz_Sw_01 regSet shActionType  jmpToTarget self01;
set a_wechselschalter_vz_Sw_01 regSet shSwJtOn      dlyOff      self01;
set a_wechselschalter_vz_Sw_01 regSet shSwJtOff     dlyOn       self01;
set a_wechselschalter_vz_Sw_01 regSet shSwJtDlyOn   on          self01;
set a_wechselschalter_vz_Sw_01 regSet shSwJtDlyOff  off         self01;

set a_wechselschalter_vz_Sw_01 regSet shActionType  jmpToTarget self02;
set a_wechselschalter_vz_Sw_01 regSet shSwJtOn      dlyOff      self02;
set a_wechselschalter_vz_Sw_01 regSet shSwJtOff     dlyOn       self02;
set a_wechselschalter_vz_Sw_01 regSet shSwJtDlyOn   on          self02;
set a_wechselschalter_vz_Sw_01 regSet shSwJtDlyOff  off         self02;

Bennemannc

#2
Hallo,

so weit komme ich erst gar nicht. Avrdude meckert rum er findet keinen Avr. Angschlossen nach dem Wiki, avrdude selbst kompiliert weil es sonst schon über das -gpio meckert. Was muss denn in der avrdude.conf stehen? Hast Du da etwas verändert?

Gruß Christoph

So, den Bootloader habe ich jetzt hinbekommen. Gibt es irgendwo schon ein fertiges hex File?
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

kroman

Zitat
So, den Bootloader habe ich jetzt hinbekommen.

Aha, was war denn?

Zitat
Gibt es irgendwo schon ein fertiges hex File?

Mit meinem hex file würdest du wahrscheinlich keine Freude haben, denn es beinhaltet meine HMIDs und Serial ID.
Siehe Abschnitt "# Arduino IDE:" in meinem Guide.

Bennemannc

Was war - ich habe endlich eine Verbindung hinbekommen. Keine Ahnung was da vorher schiefgelaufen ist. Ich habe das gefühlte 10 mal gleich gemacht und plötzlich lief es. Vielleicht irgendwo ein schlechter Kontakt oder so.
Zitat
Mit meinem hex file würdest du wahrscheinlich keine Freude haben, denn es beinhaltet meine HMIDs und Serial ID.
Siehe Abschnitt "# Arduino IDE:" in meinem Guide.
Na so lange sich die Geräte nie begegnen ist das doch egal. Ich weiß, ich kann damit nur einen Schalter flashen, sonst hätte ich ja doppelt ID's im Netz, was nicht funktionieren würde.
Mit welcher IDE auf welchem System hast Du denn gearbeitet?

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

kroman

Zitat
Na so lange sich die Geräte nie begegnen ist das doch egal.

Das stimmt schon.
Wobei auch die HMID meiner Zentrale drin steckt, aber ich denke man sollte neu anlernen können.

Zitat
Mit welcher IDE auf welchem System hast Du denn gearbeitet?

Ich habe Arduino IDE auf raspi 3 verwendet, siehe oben.

Bennemannc

Also einen fertigen Bootloader habe ich im Thread auf Seite 20 gefunden. Den konnte ich fehlerfrei flashen. Eine fertige Firmware war auf Seite 13 - mit der Standart ID und der Standart Seriennummer. Aber die FW kann ich jetzt auch selber compilieren mit der 1.0.6 er IDE. Jetzt muss ich nur noch testen ob alles so läuft wie gedacht.
Danke für die Hilfe

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF