[PATCH] [PANSTAMP] Support for over-the-air flash von panstamp NRG

Begonnen von Matthias Gehre, 18 Dezember 2014, 00:54:00

Vorheriges Thema - Nächstes Thema

Tobias

Hi,
ich bekomme in den nächsten Tagen mehrere neue NRG2. Ist da der Wireless Bootloader schon drauf? D.h. ich muss auch immer in der Arduino IDE die Wireless Bootloader Option aktivieren sonst läuft der Sketch nicht? Auch wenn ich das erste Mal per Kabel RX/TX flashe?

Im Panstamp Wiki steht, das der Wireless Bootloader nur in den Upgrademodus geht, wenn eine bestimmte Adresse auf 0 gesetzt wird. Muss ich also etwas in meinem Sketch berücksichtigen damit ein FW-Upgrade funktioniert?
Falls nicht, könnte dann also theoretisch jeder der Zugriff auf FHEM hätte und alles kennt ein FW-Upgrade starten?
Meine bevorzugte Methode wäre, das ein FW-Upgrade ggf. nur direkt nach einem Panstamp-Reset möglich wäre. Kann man das ev. im Sketch steuern? (FW-Upgrade nur innerhalb Setup-Methode: ja/nein)
Ich habe Fensterkontakte und Feuchtesensoren, erstere sollten nur nach einem Reset, letztere auch ohne Reset möglich sein.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

Hi,
kann das sein das dieser Patch noch nicht im FHEM Repo liegt?
Mein FHEM ist up-to-date und in der Set Auswahlliste sehe ich kein Command "flash"
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

justme1968

in der auswahl liste wollte ich es erst rein tun wenn man automatisch erkennen kann ob der betreffende panstamp das ota update unterstützt.

du kannst es von hand eingeben.

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

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

Tobias

Zitat von: justme1968 am 01 Juni 2016, 09:34:53
in der auswahl liste wollte ich es erst rein tun wenn man automatisch erkennen kann ob der betreffende panstamp das ota update unterstützt.
gruss
  andre

Kann man das nicht an der übermittelten Hardwareversion erkennen? Ansonsten geht flash erst ab einer übermittelten Version > 0x14 (> version 2.0)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

justme1968

nein. leider nicht. es gibt kein register das für eine unterscheidung geeignet wäre und am am protokoll kann man auch nicht erkennen welche hardware tatsächlich verbaut ist.

das protokoll an sich funktioniert auch 'umgekehrt'. d.h. der panstamp fragt aktiv bei der zentrale die firmware an nach dem er in den update mode versetzt worden ist. ohne den update modus zu aktivieren und zu warten das die anfragen beginnen kann man nicht festlegen ob der betreffende panstamp das auch kann.

ich habe auch noch nicht probiert wie die alte und neue lib reagiert wenn man versucht zu flashen und es nicht unterstütz wird.

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

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

Tobias

nur um das zu verstehen... folgendes steht doch in den internals:
SWAP_00-ProductCode   0000004C00000003
SWAP_00.1-ManufacturerID 0000004C
SWAP_00.2-ProductID 00000003
SWAP_01-HardwareVersion  00000200
SWAP_02-FirmwareVersion  00000101


Die Hardwareversion kann der Entwickler doch selbst setzen, im Sketch nach AVR und NRG kann unterschieden werden und dementsprechend die Hardwareversion gesetzt werden.

Was anderes: ich habe ein set-flash abgesetzt, keine Fehlermeldung und im Log erscheint öfters:
panStamp TRANSMIT LIMIT EXCEEDED

Woran sehe ich nun das der sketch erfolgreich übertragen wurde? Reicht das verbose Log hochzusetzen? Vom spezifischen Device oder vom physischen device?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

justme1968

ja. die kann er selber setzen. es gibt aber keine sketch übergreifende vereinbarung wie man ganz allgemein erkennen könnte ob es ein avr oder nrg ist. ein entwickler könnte bit 1 verwenden und ein anderer bit 15. und du kannst den gleichen quelltext ja auch verwenden um einen sketch für einen avr und einen nrg zu erzeugen. für 'einfache' dinge sind die beiden ja kompatibel.

man müsste sich also auf ein bit einigen und am besten im quelltext einbauen das zur kompilierzeit das bit automatisch passend gesetz wird. da können wir fhem intern machen. noch besser wäre es aber das daniel berenguer vorzuschlagen damit es allgemein gilt.

aber bin ich mir auch nicht so ganz sicher ob man das flash kommando wirklich so einfach in einem menü haben möchte. ein 'set ...' einzugeben ist nicht wirklich aufwändig und hat den vorteil das man nicht mal aus versehen klickt.


die meldung kommt von der 1%regel. es ist aber tatsächlich nur eine meldung. das fhem modul sendet trotzdem weiter.

so viel ich weiss wird auch (anders wie bei hm) die übertragungsrare nicht hoch gesetzt beim flashen. d.h. es ist vermutlich sogar unmöglich einen sketch komplett zu übertragen und die 1%regel einzuhalten. das problem müsste man mal bei daniel berenguer ansprechen.


fhem selber weiss erst mal nichts davon wie weit der flash vorgang ist. der panstamp fragt an der zentrale nach und nach zeilen aus dem hex file an.

während des flashens hat das internal SWAP_03-SystemState der wert 05. ich vermute nach dem flashen bootet der panstamp neu und SystemState geht wieder auf 01.

wenn das so ist kann ich ins modul einbauen das ein event und eine log message erzeugt wird wenn der wert von 05 wieder auf etwas anderes zurück wechselt. ob das flashen erfolgreich war oder es probleme gab kann man damit aber nicht erkennen. ich weiss auch nicht ob man das auf eine andere art kann.

gruss
  andre


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

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

Tobias

Hi Andre,
ich habe Probleme mit dem flashen...
ich setze das kommando ab und im Log steht auch, das die neue firmware geflashed werden soll:
2016.11.02 14:25:26 1: Flashing ./FHEM/firmware/SWAP_WindowStatusSensor.hex to WW_EG_Kueche
2016.11.02 14:25:26 5: MyPanstamp sending 000002250305
2016.11.02 14:25:26 5: SW: 2501000002250305

Dann passiert aber nix mehr. Die Firmware ist 27kb gross. Auch nach 10minuten sehe ich nix mehr im Log. Der Panstamp meldet sich nicht mehr, ein "statusrequest" läuft ins leere. Erst wenn ich den Panstamp hat resette, wird neu bebootet und die alte Firmware ist wieder aktiv.

Den WirelesBootloader habe ich natürlich drauf, beim ersten falschen per IDE habe ich Wireless auch auf ON gestellt.

Was mache ich falsch?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

justme1968

ich habe immer noch keine nrg am laufen und auch noch nicht probiert.

wenn dem panstamp das flash kommando gesendet wird fängt er an nach und nach die daten anzufordern. das anfordern müsste man im log sehen und man müsste sehen das der panstamp und der panstick blinken. wenn das nicht passiert wird nichts angefordert. eventuell passt im sketch etwas nicht.

vielleicht hat mathias eine idee?

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

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

Tobias

naja, ich seh eben im Log nix und der NRG hat (IMHO) keine LED onboard. Am Stick selbst habe ich nicht geschaut.

Das flashen des Sketches per seriell über die IDE funktioniert problemlos...
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

klausw

funktioniert das flashen denn über swapdmt-cmd?
Ich hatte mit dem flashen über Funk Probleme, wenn ich nicht als letztes nochmal den Wireless Bootloader per Panstick geflashed habe.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280