standardisierte ablage von firmware files ?

Begonnen von justme1968, 01 Juni 2014, 18:50:27

Vorheriges Thema - Nächstes Thema

PeMue

Hallo Rudolf,

momentan stehen die ganzen Sketche (und vielleicht auch die hex-files) im Ordner contrib/arduino. Wenn jetzt die hex-files per update verteilt werden, sollte dann derjenige, der die hex-files erstellt diese auch (nach einer ausreichenden Testphase) in FHEM/firmware stellen, damit sie per update verteilt werden?

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

rudolfkoenig

Entweder ist die Frage trivial, und die Antwort: ja, oder ich verstehe die Frage nicht.

HCS

Aus meiner Sicht wäre die Antwort auch "ja"

Die hex Files (LaCrosse, PCA301, ...) kommen nach firmware, dass sie ein "set flash" verwenden kann, der Quellcode, der ja auch irgendwo aufgehoben werden muss, bleibt in contrib/arduino. In den dortigen zips sollte dann kein .hex File mehr drin sein.

justme1968

ja. dir quelltexte bleiben in contrib/arduino. die hex files gehen nach firmware.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

PeMue

Ok, dann sollte nur sichergestellt werden, dass die Version der Quelltexte und die Version der hex-files übereinstimmt  ;)
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

HCS

Zitat von: PeMue am 04 September 2014, 05:01:26
Ok, dann sollte nur sichergestellt werden, dass die Version der Quelltexte und die Version der hex-files übereinstimmt  ;)
ich glaube, dass das nicht zwingend so sein muss. Es kann durchaus sein, dass der Quellcode schon weiterentwickelt wurde, man das aber noch nicht als "offizielle" Version zum flashen für "die Allgemeinheit" bereitstellen will.

Dann können Tester sich den quellcode aus contrib holen und erst wenn es OK ist, kommt das hex nach firmware.

Wenn alle erforderlichen Einstellungen von FHEM aus gesetzt werden können (Beispiel data rate, LED, ... beim LaCrosse) gibt es auch keinen Grund, warum ein Anwender sich eine Arduino IDE installieren müsste, nur um die Firmware auf den JeeLink zu bekommen.

Eigentlich sollte es so sein, dass ein Anwender (von irgend welchen Ausnahmen abgesehen) immer das hex aus firmware verwendet.
Und der Quellcode ist für Entwickler.

HCS

Und noch ein Vorschlag zur Diskussion:
Da die Versionsnummern aus den Namen der hexfiles entfallen sind, könnte man in das firmware Verzeichnis eine Datei versions.txt / xml legen, die der Entwickler, der ein neues hex reinlegt, dann aktualisiert.

Name und Format wären noch zu diskutieren. Vorschlag:

[JeeLink_LaCrosse.hex]
Version=10.0h
Title=JeeLink firmware for LaCrosse sensors

[JeeLink_PCA301.hex]
Version=5.1
Title=JeeLink firmware for the PSA301 power meter plug


oder

<firmwarelist>
  <firmware hexfile="JeeLink_LaCrosse.hex" Version="10.0h" Title="JeeLink firmware for LaCrosse sensors" />
  <firmware hexfile="JeeLink_PCA301.hex" Version="5.1" Title="JeeLink firmware for the PSA301 power meter plug" />
</firmwarelist>

justme1968

ich würde die versions nummer in den svn commit text schreiben dann kann man auch ohne langes auscheckdn und suchen in einem file geziehlt bestimmte versionen auschecken.

ich würde die version auch nur dort rein schreiben und nirgends sonst. wenn es zwei oder noch mehr stellen gibt kann es ganz schnell passieren das es nicht mehr eindeutig ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

HCS

Habe das 36_JeeLink.pm umgebaut. Anbei der Patch und das komplette file.

set myJeeLik flash [firrmwareName]

"set myJeeLik flash" ohne Parameter erkennt PCA301 und LaCrosse und macht den flash dann mit dieser Firmware.
Wenn auf dem JeeLink noch keine bekannte Firmware drauf ist, erfolgt ein Hinweis, dass man den firrmwareName Parameter verwenden soll.
"set myJeeLik flash xxx" verwendet ./FHEM/firmware/JeeLink_xxx.hex
Falls das errechnete .hex File nicht vorhanden ist, erfolgt eine entsprechende Meldung.

Ich habe mir dazu testweise eine JeeLink_PCA301.hex nach firmware dazugelegt, da die beim Update leider noch nicht mitkommt.

@justme1968: schau es bitte mal an und committe es oder beauftrage mich damit.

Ergebnis sieht dann so aus:
flashing JeeLink myJeeLink
detected Firmware: LaCrosse
hex file: ./FHEM/firmware/JeeLink_LaCrosse.hex
port: /dev/ttyUSB0
log file: ./log/JeeLinkFlash.log
myJeeLink closed
command: avrdude -p atmega328P -c arduino -P /dev/ttyUSB0 -D -U flash:w:./FHEM/firmware/JeeLink_LaCrosse.hex 2>./log/JeeLinkFlash.log

--- AVRDUDE ---------------------------------------------------------------------------------

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e950f
avrdude: reading input file "./FHEM/firmware/JeeLink_LaCrosse.hex"
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex auto detected as Intel Hex
avrdude: writing flash (16314 bytes):

Writing | ################################################## | 100% 2.44s

avrdude: 16314 bytes of flash written
avrdude: verifying flash memory against ./FHEM/firmware/JeeLink_LaCrosse.hex:
avrdude: load data flash data from input file ./FHEM/firmware/JeeLink_LaCrosse.hex:
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex auto detected as Intel Hex
avrdude: input file ./FHEM/firmware/JeeLink_LaCrosse.hex contains 16314 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.95s

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

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

--- AVRDUDE ---------------------------------------------------------------------------------

myJeeLink opened

HCS

Habe gerade einem Anwender geholfen, der LaCrosse mit dem JeeLink nicht ans Laufen bekommen hat.
Es waren die üblichen zwei Probleme:

  • Sketch compilieren
  • LaCrossePairForSec nicht bekannt gewesen

Punkt 1 erledigen wir ja gerade und im wiki sollte dann das als bevorzugte Variante genannt werden, mit dem Hinweis, dass man nur in Ausnahmefällen selbst compilieren muss.

Punkt 2: wenn die 36_JeeLink LaCrosse-firmware geflasht hat, könnte sie einen Hinweis geben, dass Devices nur angelegt werden, wenn man LaCrossePairForSec setzt.

Damit hätte der Anwender es vermutlich hinbekommen, ohne sich Hilfe im Forum holen zu müssen.

justme1968

zu 1.: ich hab die version von eben eben eingecheckt.

zu 2.: die frage ist wo die meldung her kommen soll. hard kodiert mag ich es eigentlich nicht ein einem anderen modul und eigentlich steht es ja in der commandref.

alternativ vorschlag: ich habe eben ins LaCrosse modul eingebaut das ein hinweis auf LaCrossePairForSec ins log geschrieben wird wenn eine LaCrosse nachricht empfangen wird und es noch kein LaCrosse device im system gibt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

HCS

#41
Zitat von: justme1968 am 07 September 2014, 12:44:25
zu 1.: ich hab die version von eben eben eingecheckt.
Habe es nochmal getestet, nachdem es mit dem Update kam.
Das ist jetzt wirklich einfach:
1. JeeLink draufstecken
2. set myJeeLink flash LaCrosse

und erledigt.

PCA301 fehlt aber leider noch.

Zitat von: justme1968 am 07 September 2014, 12:44:25zu 2.: ...
alternativ vorschlag: ich habe eben ins LaCrosse modul eingebaut das ein hinweis auf LaCrossePairForSec ins log geschrieben wird wenn eine LaCrosse nachricht empfangen wird und es noch kein LaCrosse device im system gibt.

Ja, das erfüllt den Zweck ebenfalls.

Nachtrag: gibt es jemanden, der das wiki anpasst? Falls erforderlich schreibe ich die Fakten zusammen, dass man es einarbeiten kann.
Und den doppelten Post habe ich auch gelöscht  :-[

justme1968

ich habe eben das hex file aus diesem post http://forum.fhem.de/index.php/topic,11648.msg194105.html#msg194105 als JeeLink_PCA301.hex eingecheckt

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968