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

nephdrasil

Den SN und HM-ID des Bootloaders habe ich nicht verändert. Das einzige was ich geändert habe ist die diese zeile in der HM-LC-Sw1PBU-FM.h.

#define HM_TYPE 0xF0A9. Heist # nicht eigentlich auskommentier? Wie bekomme ich die HM-ID der Device eigentlich heraus?
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

frank

ZitatHeist # nicht eigentlich auskommentier?
nein. nicht bei c++.

ZitatWie bekomme ich die HM-ID der Device eigentlich heraus?
wenn du deine originale meinst, wird es nachträglich schwierig.  ;)
hast du den original-schalter mit fhem benutzt? dann sollten in logs oder fhem.cfg hinweise existieren.

womit flasht du ota? sender und schalter zum flashen von einander entfernen. 2meter.
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

nephdrasil

Hallo geflascht habe ich mit ota die Kabel sind ca. 1,50 lang.

Den Schalter habe ich leider noch nicht genutzt ist nur für test zwecke.

Kann ich die HM-ID an das Stromnetz anzuschließen auslesen.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

automatisierer

die originale hmid kann man mit einem handy und einem barcodescanner von der platine lesen. da sind drei QR Codes drauf einer beginnt mit einem "H"und die restlichen 6 ziffern dahinter sind die HMID ein anderer beinhaltet die seriennummer KEQ....

nephdrasil

Danke automatisierer. Guter Tipp. Jetzt muss ich nur noch rausbekommen wie ich diese in den Bootloader bekomme. Muss doch Hex-Format sein.

@ Frank hast du noch eine Idee warum das per OTA nicht geht? Ich werte mal die Kabel ablöten und durch längere ersetzen.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

frank

Zitat@ Frank hast du noch eine Idee warum das per OTA nicht geht?
schliesse nur 3v3 und gnd an den schalter.
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

nephdrasil

Hallo an alle,

nachdem ich die Kabel für 3,3 V und GND auf 4m Verlängert habe hat das flaschen nun geklappt. Danke @ Frank.
Das ist schonmal gut und ein Problem konnte ich somit lösen. Nun stellen sich für mich jedoch weitere Fragen:

Vorab ich bin auf raspberry pi wheezy unterwegs.

Den Schlater den ich flaschen möchte hat Bspw. die Seriennummer LEQ1234567. Die HM-ID lautet 2B0AA0.

1. bei der Kompilerung des Bootloaders soll man die Seriennummer und die HM-ID ändern und den Typ ändern .

   a) Den Typ habe ich wie folgt geändert: #define HM_TYPE 0xF0A9. Ist das so richtig oder muss ich 0xF0, 0xA9 schreiben.

   b) Die HM-ID habe ich so geändert: #define HM_ID 0x2B, 0x0A, 0xA0. Ist das so richtig oder muss ich die umwandeln. Wenn ja wie?

2. bei der Kompilierung der Firmware unter der arduino ide kann man diese ja auch in der Register.h ändern.
   
    a) Die HM-ID habe ich hier geändert const uint8_t HMID[3] = { 0x2B, 0x0A, 0xA0}. Ist das so richtig oder muss ich die umwandeln. Wenn ja
        wie?

3. Ich hatte probiert die arduino ide per Linux konsole mit Putty und Xming aufzurufen bekomme jedoch nur den Fehler. Google hat mir da nicht wirklich weitergeholfen. Vielleicht weiß ja einer von euch abhilfe.
PuTTY X11 proxy: wrong authorisation protocol attemptedException in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:62)
        at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:178)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:142)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
        at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:111)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at java.awt.Toolkit$2.run(Toolkit.java:847)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:839)
        at processing.core.PApplet.<clinit>(Unknown Source)
        at processing.app.Base.main(Base.java:113)


4. Ich komme bei der umwandlung der kompilierten firmware.hex Datei nicht weiter. Der Befehl sudo srec_cat firmware_HM-LC-Sw1PBU-FM.hex -intel -fill 0xFF 0x0000 0xDFFE -Cyclic_Redundancy_Check_16_Little_Endian 0xDFFE -o  payload.bin -binary

Bringt die folgende Fehlermedlung:

unknown "-Cyclic_Redundancy_Check_16_Little_Endian" option
Usage: srec_cat [ <option>... ] <filename>...
       srec_cat -Help
       srec_cat -VERSion
       srec_cat -LICense


Ich habe srecord per sudo apt-get install srecord installiert.

Ich hoffe Ihr könnt mir helfen. Sorry für die bestimmt schon mehrfach gestellten Fragen.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

frank

ZitatDen Schlater den ich flaschen möchte hat Bspw. die Seriennummer LEQ1234567. Die HM-ID lautet 2B0AA0.
dann musst du nur deine daten gegen die anderen austauschen. zeichen für zeichen. keine umwandlungen. wenn du von dirks github den bootloader benutzt, kann es ja nur "0xF0, 0xA9" heissen. nicht den ganzen code ändern.  ;)
das gleiche in der firmware.

zum erstellen der eq3 datei nimmst du am besten das hex2eq3.php script von dirk. im contrib ordner beim bootloader. dann musst du das script zb so aufrufen für 8k-version (windows):

H:\frank\eq3>h:\frank\programme\php\php hex2eq3.php --inFile Asksin_HM_LC_Sw1PBU_FM.cpp.hex --outFile HM_LC_Sw1PBU_FM_2014-10-24_1v4.eq3 --spmPageSize 256 --hexEndAddress 0xDFFE --outFormat eq3 --withCrcCheck --pathTo-srec_cat h:\frank\programme\srecord-1.64-win32\srec_cat.exe

Zitatunknown "-Cyclic_Redundancy_Check_16_Little_Endian" option
deine srec_cat version ist zu alt. ich habe version 1.64.

zu linux kann ich dir nichts sagen.

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

nephdrasil

Hallo Frank,

nachdem ich mir gestern die Zähne am Linux ausgebissen habe. Bekomme die srecord kompiliert aber nicht installiert. Liegt vermutlich an den Fehlenden Pfaden. Würde ich es gern unter Windows probieren. Dazu jedoch wahrscheinlich ein Paar doofe Fragen:

1. Wie hast du deine PHP.ini konfiguriert. Auf Seite 26 steht nur installieren und anpassen.
2. Wenn ich es richtig verstanden habe benötige ich keinen Apacheserver?
3. Der Installationsort deiner PHP Anwendung ist h:\frank\programme\php\ oder? (Eigentlich unnötig sieht man ja!)
4. Die hex2eq3.php hast du unter h:\frank\programme\php\ abgelegt?
5. Wo liegt die Asksin_HM_LC_Sw1PBU_FM.cpp.hex Datei.
6. Was bedeutet "H:\frank\eq3>" im Befehl"?. Landen dort die fertigen Datein?

Vielen Dank für deine Bemühungen und meine ziemlich einfachen Fragen. Blicke das ganze noch nicht wirklich.

Markus
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

frank

für php habe ich nur eine zip-datei runtergeladen und in einen ordner php entpackt (h:\frank\programme\php). hier liegt dann php.exe. fertig. nichts anpassen, keine pfade.
die hex datei und hex2eq3 liegen in h:\frank\eq3. daher zeigt mein prompt auf diesen ordner. dort halte ich mich sozusagen gerade auf. später ist dann auch hier die eq3-daqtei:

H:\frank\eq3>

dort rufe ich dann die php.exe mit argument hex2eq3.php auf (.exe habe ich eingespart  ;)):

H:\frank\eq3>h:\frank\programme\php\php hex2eq3.php

es folgen dann die optionen für hex2eq3.php. unter anderem auch der pfad für srec_cat.

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

nephdrasil

Danke da kann ich ja weitermachen.

Ich habe mal den ganz Thread durchgelesen. Wass mir gerade noch nicht so ganz klar ist wo ist den nun der aktueller Bootloader und die aktuelle Firmware. Bei der rasanten Entwicklung hier ist es nicht einfach durch zu steigen.

Habe gelesen das man die Serial und die HM-ID aus den Bootloader holen kann. Im universalsensor ist das laut dirk schon implementiert. Wie ich gesehen habe ist das in der register.h, gleich die ersten Zeilen.

Hat dass schon jemand mal probiert? Was ich nicht gefunden habe wo er dort genau die HM-ID holt?

Des weiteren ist mir nicht ganz klar ob man nun den 4k oder 8k Bootloader nehmen soll. Wie ist das zusammenspiel mit den 4k Bootloader ota und den Fuses für den 8k Bootloader? (Ich glaube das ist etwas unverständlich). Die Frage bekomme ich gerade nicht besser gestellt.

@ Dirk: Kannst du mir einen kleinen Schupps geben?

Ich werde wohl mal das bereits bestehende How do nehmen und ergänzen. Bin glaube über alles gestolbert was ging. Insbesondere bei den Raspberry sachen. Srecord klappt nur über ubuntu zu kompilieren nicht aber über Wheezy.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

Dirk

Zitat von: nephdrasil am 26 Oktober 2014, 16:46:47
Wass mir gerade noch nicht so ganz klar ist wo ist den nun der aktueller Bootloader und die aktuelle Firmware.
Der aktuelle Bootloader ist im Moment hier:
https://github.com/kc-GitHub/Asksin_OTA_Bootloader

Ich wollte noch ein paar Tage warten bevor ich das im ursprünglichen Branch wieder zurück merge.

ZitatWas ich nicht gefunden habe wo er dort genau die HM-ID holt?
So hab ich das im Universalsensor umgesetzt.
https://github.com/kc-GitHub/Wettersensor/blob/6d58642cb2ec2024ee1afebdb81822ce43c2498f/Firmware-Src/WetterSensor.ino

Zeile 37 und 38:
getDataFromAddressSection(devParam, 1,  ADDRESS_SECTION_START + 0, 12); // get device type (model-ID) and serial number from bootloader section at 0x7FF0 and 0x7FF2
getDataFromAddressSection(devParam, 17, ADDRESS_SECTION_START + 12, 3); // get device address stored in bootloader section at 0x7FFC

Dir Funktion ist dann bei Zeile 77 ff.

ZitatDes weiteren ist mir nicht ganz klar ob man nun den 4k oder 8k Bootloader nehmen soll.
Aktuell haben der 4k und der 8k Bootloader die selben Funktionen.
Wenn du genügend Platz im AVR hast, was beim Schalter der Fall sein sollte, kannst du ruhig den 8k Bootloader benutzen. So ist noch Platz für evtl. spätere Erweiterungen.

ZitatSrecord klappt nur über ubuntu zu kompilieren nicht aber über Wheezy.
Mal sehen, ich bin hier grade an einem Script. Wenn das so klappt wie ich es mir vorstelle braucht man in Zukunft kein sreg-cat mehr

Gruß
Dirk

frank

ZitatHabe gelesen das man die Serial und die HM-ID aus den Bootloader holen kann. Im universalsensor ist das laut dirk schon implementiert. Wie ich gesehen habe ist das in der register.h, gleich die ersten Zeilen.

Hat dass schon jemand mal probiert? Was ich nicht gefunden habe wo er dort genau die HM-ID holt?
die firmware vom schalter unterstützt das noch nicht. wenn der bootloader und der schalter sich mit den selben daten melden sollen, musst du derzeit bei beiden die daten in den code eingeben und damit dann kompilieren.

vorsicht. die befehle (hex2eq3/srec_cat) zum erstellen der eq3-datei sind je nach bootloaderversion (4k/8k) unterschiedlich. meine hinweise bezogen sich alle auf die 8k-version.
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

nephdrasil

Oh je ich glaube ich habe wirklich ein paar wirklich doofe Fragen gestellt sorry den wald vor lauter bäumen nicht mehr gesehen.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

nephdrasil

Ok ich glaube es läuft. Jetzt muss ich verstehen wie ich den schlater einrichte. stand auch irgendwo im Thread.


CUL_HM_ID_F0A9_2A0BB0 type: -
list:peer register         :value
   0:      pairCentral      :0x2xxxxB


Oder was sagt ihr. Danke für die hilfe.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN