CMD: set <device> fwUpdate <filename> [<waittime>]

Begonnen von frank, 07 Mai 2014, 17:18:21

Vorheriges Thema - Nächstes Thema

frank

hallo martin,

ZitatWenn einer spielen will muss kann er die Zeile
    return "implementation pending";

auskommentieren.

ich möchte spielen und habe die zeile auskommentiert. nun ist der befehl wohl vom modell abhängig. was muss ich noch ändern/ergänzen, sodass ich mit dem

model      HM-LC-Sw1PBU-FM-CustomFW
spielen kann?

das file muss das *.eq3 - file sein? in welchem ordner wird es erwartet? fhem/FHEM?

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

martinp876

Du musst das Kommando für dein Device zulassen. Also entweder in HMConfig ändern oder nachtragen, wie bei anderen kommados auch (private FW)

$HMConfig::culHmChanSets{<model>00}{fwUpdate} ="<filename>"

das 00 heisst, dass es das  Device betrifft, aber keinen Kanal.
<model>durch model ersetzen




frank

besten dank.

durch einfügen des codes in zeile 18 der datei 99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm:
{$HMConfig::culHmChanSets{"HM-LC-Sw1PBU-FM-CustomFW00"}{fwUpdate} ="<filename>"};


steht nun der fwupdate befehl beim schalter device zur verfügung.

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

jab

Hi,

@frank: Danke! Habe ich ins git aufgenommen.

@martin: Schickt FHEM eine Message für den Reboot oder kann/muss man man das Gerät selber neustarten? Die Message müsste ich dann noch implementieren. Spielt die Seriennummer des Gerätes eine Rolle? Aktuell stimmt die nicht mit der HMID überein.


Gruß,
Jan

martinp876

FHEM schickt eine message zum Umschalten in den bootloader - damit wird auch die Datenrate verzehnfacht (muss das Device unterstützen, FHEM schaltet die CUL um)
Das ist notwendig um die maximale Sendelast nicht zu überschreiten.

Dann kommt der download - das Device macht nach diesem einen reboot - ich denke das ist timergesteuert. Wenn keinen Daten mehr kommen ist reboot angesagt.

Bei alter SW des RT funktioniert das Umschalten in den bootlader nicht per Kommando - daher funktioniert es eigentlich nicht. erst wenn die neue FW drauf ist kann man diese noch einmal einspielen - macht aber keinen sinn, klar.

Die Sereinnummern wird nicht downgeloaded (zum Glück), auch die HMId nicht. Die Seriennummer und die HMId stimmen nie überein.

jab

Hi,

Zitat von: martinp876 am 08 Mai 2014, 13:48:32
FHEM schickt eine message zum Umschalten in den bootloader - damit wird auch die Datenrate verzehnfacht (muss das Device unterstützen, FHEM schaltet die CUL um)
Das ist notwendig um die maximale Sendelast nicht zu überschreiten.
Wie sieht die Message denn aus? Und auf welche Message wartet FHEM dann?

Der Windowsupdater wartet bis sich das Gerät sich meldet mit folgender Message:

14 00 00 10 23 25 B7 00 00 00 00 4B 45 51 30 37 33 34 31 31

In dieser Message ist hinten die Seriennummer drin. Das Windowstool und hmland gucken nur auf diese Nummer. Danach nehmen sie die hmid der Nachricht und nutzen sie um mit dem Gerät zu reden.

Zitat von: martinp876 am 08 Mai 2014, 13:48:32
Dann kommt der download - das Device macht nach diesem einen reboot - ich denke das ist timergesteuert. Wenn keinen Daten mehr kommen ist reboot angesagt.
Ja das ist so. Mach ich auch so. Nach 10s ohne Daten rebootet er.

Zitat von: martinp876 am 08 Mai 2014, 13:48:32
Bei alter SW des RT funktioniert das Umschalten in den bootlader nicht per Kommando - daher funktioniert es eigentlich nicht. erst wenn die neue FW drauf ist kann man diese noch einmal einspielen - macht aber keinen sinn, klar.
Ok das kann meine Firmware bisher auch nicht. Wenn du mir sagst wie die Message aussieht dann implementiere ich das noch.

Zitat von: martinp876 am 08 Mai 2014, 13:48:32
Die Sereinnummern wird nicht downgeloaded (zum Glück), auch die HMId nicht. Die Seriennummer und die HMId stimmen nie überein.
Naja normal kann man aus der Seriennumer die HMID errechnen. Und er schickt sie wie gesagt in der Message oben.

EDIT:
Meinen Code findest du hier: https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L171 Ist nicht sonderlich viel.



Gruß,
Jan

martinp876

Hi,

unten der Beginn eines Downloads
send "AR" schaltet auf 10fache Geschwindigkeit.

ZitatWenn du mir sagst wie die Message aussieht dann implementiere ich das noch.
send:  As 1F 0B 20CB 1743BF 235EDB 105B11F815470B081A1C191D1BC71C001DB221B623EA
schaltet die Speed hoch. Faktisch werden wohl einige Register gesetzt - im Sender-chip

10:5B 11:F8 15:47 0B:08 1A:1C 19:1D 1B:C7 1C:00 1D:B2 21:B6 23:EA

ZitatNaja normal kann man aus der Seriennumer die HMID errechnen
ehlich? Hätte ich nicht gedacht. Ich denke das ist einfach, wenn er die seriennummer schickt steht die HMId vorne dabei  als absender.



10:40:18.824 send:  As 0A 0A 3011 1743BF 235EDB CA
10:40:19.337 Parse:  A 0A 0A 8002 235EDB 1743BF 00
10:40:19.974 Parse:  A 14 00 0010 235EDB 000000 004B455130353736363035
10:40:20.077 send:  As 1F 0B 20CB 1743BF 235EDB 105B11F815470B081A1C191D1BC71C001DB221B623EA
10:40:20.134 send:  AR
10:40:20.200 send:  As 27 0D 00CA 1743BF 235EDB 0122BDED0BDF9971E49F77E6C46F26D73B39221C152497C69F4417899350
10:40:20.317 send:  As 27 0E 00CA 1743BF 235EDB 5D08704EB8CE86973FBCD24D276C47B084514BB153DCFEFB40DFA466A14E
10:40:20.433 send:  As 27 0F 00CA 1743BF 235EDB CCD4AA80857F368D4FDDC635EEF0090F2BB7E920B9C95E4AD6510175F55F
10:40:20.549 send:  As 27 10 00CA 1743BF 235EDB 918D46BD79B8C88E002ED8B697C6D64FBF27FE8A7F6E2803537683278E37
10:40:20.665 send:  As 27 11 00CA 1743BF 235EDB 743088E07EF695786AE109551393865605DF4AB17D506062D841CE0F53CA
10:40:20.781 send:  As 27 12 00CA 1743BF 235EDB 3476A54FA1B1BD49D0157DA035AB3536C1C5597DD0F319A4A48D12B9F59F
10:40:20.898 send:  As 27 13 00CA 1743BF 235EDB 9CAEE5C549399A281C953285BA8A481C485A4D961A2611AC4D4EA21CCBDE
10:40:21.014 send:  As 27 14 00CA 1743BF 235EDB C276A28E83883CF1DDBF099FDF5CC6DCF2CD0A9C626CC1ACFAA3C7AA8345
10:40:21.131 send:  As 27 15 00CA 1743BF 235EDB D25D3A91DF4DE1AFF17E8D8307A1C9B8F4037300FBD8E18C70339712D7DD
10:40:21.249 send:  As 1F 16 20CA 1743BF 235EDB BFD5401DC9F72E76FC7B23D10370BD3DE2E6317912BF
10:40:21.418 Parse:  A 0A 16 0002 235EDB 1743BF 00
10:40:21.521 send:  As 27 17 00CA 1743BF 235EDB 0122D56AD97D1CA32EC5AA01F77F0E465468EE25A708DD903D9D3758BEBE
10:40:21.637 send:  As 27 18 00CA 1743BF 235EDB D31EA71507CDFF06F68E5045D9A5FCA8506D42B03F1EF3561BDC0A08EFE9
10:40:21.756 send:  As 27 19 00CA 1743BF 235EDB 8D48B75C86D379866E648850CC2FF596A5D3A7C0EF222F883971795BE4D1
10:40:21.875 send:  As 27 1A 00CA 1743BF 235EDB 90AE8895DA8D808024C34C2973B8D63DD5B21395FA27BDA6A787C9125230
10:40:21.994 send:  As 27 1B 00CA 1743BF 235EDB 0FA0262BA79BE52A98B7286BFE20819FB50ADE96646311F7A2453FB5F942
10:40:22.113 send:  As 27 1C 00CA 1743BF 235EDB C5A769AF1F7D6B71DC3AC03E9266A0C8CAB2305D80D220E7EA917548670E
10:40:22.232 send:  As 27 1D 00CA 1743BF 235EDB EBBAD9C811F7E832F60E7DB2C41665A12D44FD2FA9431F9ED3CDAFFE2F15
10:40:22.351 send:  As 27 1E 00CA 1743BF 235EDB EC36F0B1F0F3E1875CAC51A795A55B4D0824C81A1EAA1F0A368F92898320
10:40:22.470 send:  As 27 1F 00CA 1743BF 235EDB 1EC927EA44034509661A237C9951AB441BD495BF0C0C817DD73239BF471C
10:40:22.589 send:  As 1F 20 20CA 1743BF 235EDB D28D0E6BD8AB151C6CF3747906B6E9C6D9A50FC92E46
10:40:22.790 send:  As 0A 7E 3011 1743BF 235EDB CA
10:40:22.817 Parse:  A 0A 20 0002 235EDB 1743BF 00


frank

hallo martin,

hier mal ein paar ergebnisse. das beste endete mit "fail:Block2". hat also zumindestens schon mal gestartet.

2014.05.12 02:02:13.901 4: CUL_send:  cul868As 0A 0A 3011 123ABC ABCDEF CA
2014.05.12 02:02:13.919 4: SND L:0A N:0A F:30 CMD:11 SRC:ccu DST:SwitchPBU02 CA (EnterBootLoader) (,BURST,BIDI)
2014.05.12 02:02:17.619 4: CUL_send:  cul868As 0A 0A 3011 123ABC ABCDEF CA
2014.05.12 02:02:18.534 4: CUL_Parse: cul868 A 14 00 0010 ABCDEF 000000 004B45513031323334353614 -64
2014.05.12 02:02:18.637 4: CUL_send:  cul868As 1F 0B 20CB 123ABC ABCDEF 105B11F815470B081A1C191D1BC71C001DB221B623EA
2014.05.12 02:02:18.658 4: SND L:1F N:0B F:20 CMD:CB SRC:ccu DST:SwitchPBU02 105B11F815470B081A1C191D1BC71C001DB221B623EA (,BIDI)
2014.05.12 02:02:18.825 4: CUL_send:  cul868AR     
2014.05.12 02:02:18.895 4: CUL_send:  cul868As 27 0D 00CA 123ABC ABCDEF 01000C94AA000C94B8200C94E5200C9412210C940F1F0C945E040C943904
2014.05.12 02:02:18.909 4: SND L:27 N:0D F:00 CMD:CA SRC:ccu DST:SwitchPBU02 01000C94AA000C94B8200C94E5200C9412210C940F1F0C945E040C943904 ()
2014.05.12 02:02:19.115 4: CUL_send:  cul868As 27 0E 00CA 123ABC ABCDEF 0C9414040C94E6010C94D2000C94D2000C94D2000C94D2000C94D2000C94
2014.05.12 02:02:19.129 4: SND L:27 N:0E F:00 CMD:CA SRC:ccu DST:SwitchPBU02 0C9414040C94E6010C94D2000C94D2000C94D2000C94D2000C94D2000C94 ()
2014.05.12 02:02:19.334 4: CUL_send:  cul868As 27 0F 00CA 123ABC ABCDEF D2000C94D2000C94D2000C94D2000C943F210C94D2000C944C230C949A23
2014.05.12 02:02:19.348 4: SND L:27 N:0F F:00 CMD:CA SRC:ccu DST:SwitchPBU02 D2000C94D2000C94D2000C94D2000C943F210C94D2000C944C230C949A23 ()
2014.05.12 02:02:19.546 4: CUL_send:  cul868As 27 10 00CA 123ABC ABCDEF 0C94D2000C94D2000C94D2000C94D2000C94D2000C94D20016F0A94B4551
2014.05.12 02:02:19.560 4: SND L:27 N:10 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 0C94D2000C94D2000C94D2000C94D2000C94D2000C94D20016F0A94B4551 ()
2014.05.12 02:02:19.757 4: CUL_send:  cul868As 27 11 00CA 123ABC ABCDEF 3031323334353610410100002E012E0206030D04E905CA063D070C0B060D
2014.05.12 02:02:19.771 4: SND L:27 N:11 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 3031323334353610410100002E012E0206030D04E905CA063D070C0B060D ()
2014.05.12 02:02:19.965 4: CUL_send:  cul868As 27 12 00CA 123ABC ABCDEF 210E650F6A10C811931203153416011730181819161B432156250026112D
2014.05.12 02:02:19.979 4: SND L:27 N:12 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 210E650F6A10C811931203153416011730181819161B432156250026112D ()
2014.05.12 02:02:20.173 4: CUL_send:  cul868As 27 13 00CA 123ABC ABCDEF 353EC3010EE51D1102261E1104181E3E00E61D4000F11DFFFFE71D000000
2014.05.12 02:02:20.187 4: SND L:27 N:13 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 353EC3010EE51D1102261E1104181E3E00E61D4000F11DFFFFE71D000000 ()
2014.05.12 02:02:20.381 4: CUL_send:  cul868As 27 14 00CA 123ABC ABCDEF 0000002100240027002A0000002200250028002B00000020002300260029
2014.05.12 02:02:20.395 4: SND L:27 N:14 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 0000002100240027002A0000002200250028002B00000020002300260029 ()
2014.05.12 02:02:20.593 4: CUL_send:  cul868As 1B 15 20CA 123ABC ABCDEF 000202020202020202040404040404040403
2014.05.12 02:02:20.610 4: SND L:1B N:15 F:20 CMD:CA SRC:ccu DST:SwitchPBU02 000202020202020202040404040404040403 (,BIDI)
2014.05.12 02:02:20.906 4: CUL_send:  cul868As 27 16 00CA 123ABC ABCDEF 010003030303030303010101010101010101020408102040800102040810
2014.05.12 02:02:20.921 4: SND L:27 N:16 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 010003030303030303010101010101010101020408102040800102040810 ()
2014.05.12 02:02:21.113 4: CUL_send:  cul868As 27 17 00CA 123ABC ABCDEF 204080010204081020408080402010080402010000000102000000000000
2014.05.12 02:02:21.127 4: SND L:27 N:17 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 204080010204081020408080402010080402010000000102000000000000 ()
2014.05.12 02:02:21.322 4: CUL_send:  cul868As 27 18 00CA 123ABC ABCDEF 00040307060000000000000000000000000000000000E81DE52411241FBE
2014.05.12 02:02:21.336 4: SND L:27 N:18 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 00040307060000000000000000000000000000000000E81DE52411241FBE ()
2014.05.12 02:02:21.543 4: CUL_send:  cul868As 27 19 00CA 123ABC ABCDEF CFEFD0E1DEBFCDBF12E0A0E0B1E0EAEBFDE402C005900D92AA3CB107D9F7
2014.05.12 02:02:21.558 4: SND L:27 N:19 F:00 CMD:CA SRC:ccu DST:SwitchPBU02 CFEFD0E1DEBFCDBF12E0A0E0B1E0EAEBFDE402C005900D92AA3CB107D9F7 ()
2014.05.12 02:02:21.756 4: CUL_send:  cul868As 27 1A 00CA 123ABC ABCDEF 16E0AAECB2E001C01D92AA31B107E1F711E0C4E5D1E004C02297FE010E94
2014.05.12 02:02:21.770 4: SND L:27 N:1A F:00 CMD:CA SRC:ccu DST:SwitchPBU02 16E0AAECB2E001C01D92AA31B107E1F711E0C4E5D1E004C02297FE010E94 ()
2014.05.12 02:02:21.982 4: CUL_send:  cul868As 27 1B 00CA 123ABC ABCDEF A026C035D107C9F70E943B250C94DB260C940000A0E0B0E0EAEDF0E00C94
2014.05.12 02:02:21.996 4: SND L:27 N:1B F:00 CMD:CA SRC:ccu DST:SwitchPBU02 A026C035D107C9F70E943B250C94DB260C940000A0E0B0E0EAEDF0E00C94 ()
2014.05.12 02:02:22.193 4: CUL_send:  cul868As 27 1C 00CA 123ABC ABCDEF AC26EC01A880B980CA80DB80A114B104C104D10441F484E2A82E89EDB82E
2014.05.12 02:02:22.210 4: SND L:27 N:1C F:00 CMD:CA SRC:ccu DST:SwitchPBU02 AC26EC01A880B980CA80DB80A114B104C104D10441F484E2A82E89EDB82E ()
2014.05.12 02:02:22.406 4: CUL_send:  cul868As 27 1D 00CA 123ABC ABCDEF 8BE5C82E87E0D82EC601B5012DE133EF41E050E00E94832627EA31E440E0
2014.05.12 02:02:22.420 4: SND L:27 N:1D F:00 CMD:CA SRC:ccu DST:SwitchPBU02 8BE5C82E87E0D82EC601B5012DE133EF41E050E00E94832627EA31E440E0 ()
2014.05.12 02:02:22.578 4: CUL_send:  cul868As 1B 1E 20CA 123ABC ABCDEF 50E00E9442267B018C01C601B5012DE133EF
2014.05.12 02:02:22.595 4: SND L:1B N:1E F:20 CMD:CA SRC:ccu DST:SwitchPBU02 50E00E9442267B018C01C601B5012DE133EF (,BIDI)
2014.05.12 02:02:22.762 1: Perfmon: possible freeze starting at 02:02:19, delay is 3.761
2014.05.12 02:02:27.836 4: CUL_send:  cul868Ar


die meisten versuche sahen so aus und endeten mit "fail:notInBootLoader":

2014.05.12 01:35:11.804 4: CUL_send:  cul868As 0A 0A 3011 123ABC ABCDEF CA
2014.05.12 01:35:11.822 4: SND L:0A N:0A F:30 CMD:11 SRC:ccu DST:SwitchPBU02 CA (EnterBootLoader) (,BURST,BIDI)
2014.05.12 01:35:13.091 1: Perfmon: possible freeze starting at 01:35:12, delay is 1.09
2014.05.12 01:35:13.785 4: CUL_send:  cul868As 0A 0A 3011 123ABC ABCDEF CA
2014.05.12 01:35:16.811 4: CUL_send:  cul868Ar     
2014.05.12 01:35:17.658 4: CUL_Parse: cul868 A 14 00 0010 ABCDEF 000000 004B45513031323334353613 -64.5
2014.05.12 01:35:17.670 4: RCV L:14 N:00 F:00 CMD:10 SRC:SwitchPBU02 DST:broadcast 004B455130313233343536 (INFO_SERIAL SERIALNO:KEQ0123456) ()
2014.05.12 01:35:18.259 4: CUL_Parse: cul868 A 0B 96 A258 1BF81B D4D4D4 0000F5 -79.5
2014.05.12 01:35:18.274 4: RCV L:0B N:96 F:A2 CMD:58 SRC:Thermostat.WZ DST:TCControler.WZ 0000 (ClimateEvent CMD:0x00 ValvePos:0) (,WAKEMEUP,BIDI,RPTEN)
2014.05.12 01:35:18.575 4: CUL_send:  cul868As 0A 0A 3011 123ABC ABCDEF CA
2014.05.12 01:35:18.705 4: CUL_Parse: cul868 A 0E 96 8002 D4D4D4 1BF81B 01010000005E -27
2014.05.12 01:35:22.776 4: CUL_send:  cul868As 0A 0A 3011 123ABC ABCDEF CA


das verhalten ist wahrscheinlich so, wie du es beim rt mit dem 1. update beschrieben hast. die einzige möglichkeit das update überhaupt zu starten, besteht darin, den set fwupdate befehl als erstes zu starten und quasi sofort danach das device in den update-modus bekommen. ansonsten hat der cul bereits mit cul868Ar umgeschaltet, obwohl eigentlich noch keine antwort des bootloaders gekommen ist! müsste der cul mit der frequenzumschaltung nicht auf die antwort des device warten?
sonst machen die ca 15 sekunden updatemodus des cul ja gar keinen sinn. übigens wäre eine deutlich längere zeit sehr wünschenswert. meinen schalter musste ich zum testen mit cul extra aus der wand ausbauen, um überhaupt mit der zeit klar zu kommen. könnte man den befehl nicht so ähnlich gestalten wie bei "hmPairForSec". also zb "hmUpdateForSec 300".

mit dem windows-update-tool und dem hmusb funktioniert der bootloader von jan übrigens hervorragend. sozusagen müsste/sollte man das update mit cul eigentlich auch noch besser zum laufen bekommen können.

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

martinp876

kannst du den update mit windows-sw loggen?

jab

Moin Martin,

am besten du guckst in den Quellcode des Schalters. Das Verhalten ist genau wie beim Thermostat:
1. Gerät rebooten (manuell)
2. Gerät sendet Bereit Nachricht (noch im 1k Mode): https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L176
3. Gerät wartet auf 0xCB Nachricht (auch noch im 1k Mode): https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L213
4. Danach wechselt das Gerät in den 100k Mode (bzw setzt die Register aus der Nachricht): https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L225
5. Das Gerät wartet, dass der Flasher die 0xCB Nachricht im 100k Mode wiederholt: https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L250
6. Danach wartet das Gerät auf die Blöcke in weiteren 0xCA Nachrichten: https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L286
7. Gerät startet neu nach einem Timeout


Gruß,
Jan

jab

Moin,

so ich habe mal etwas gebastelt. Allerdings blind da ich gerade auf Dienstreise bin. Wenn das Gerät jetzt eine 0xCB Nachricht bekommt rebootet er und der Bootloader sollte das Update übernehmen. Dafür habe ich einen neuen branch im git erstellt: https://github.com/jabdoa2/Asksin_HM_LC_Sw1PBU_FM/tree/updateReboot (wenn ihr den Code geclont habt einfach git checkout updateReboot machen).

Vorgeben ist jetzt so (nur 1 geändert):
1. Gerät rebootet wenn es 0xCB Nachricht bekommt
2. Gerät sendet Bereit Nachricht (noch im 1k Mode): https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L176
3. Gerät wartet auf 0xCB Nachricht (auch noch im 1k Mode): https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L213
4. Danach wechselt das Gerät in den 100k Mode (bzw setzt die Register aus der Nachricht): https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L225
5. Das Gerät wartet, dass der Flasher die 0xCB Nachricht im 100k Mode wiederholt: https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L250
6. Danach wartet das Gerät auf die Blöcke in weiteren 0xCA Nachrichten: https://github.com/jabdoa2/Asksin_OTA_Bootloader/blob/master/bootloader.c#L286
7. Gerät startet neu nach einem Timeout

Muss ich in dem Fall 2 und 3 skippen oder ist das richtig so? Gibt es irgendwo einen Mitschnitt vom FHEM Update ohne vorherigen Reboot?


Gruß,
Jan

frank

#11
hallo martin,

anbei das log.

schalter ABCDEF/KEQ0123456
alle 3 io haben die hmid 123ABC und sind mit einer vccu 123ABC assigned.

schalter habe ich vorher unpaired von fhem, damit keiner dazwischen funkt.
hmlan logged den schalter auf 10k.
cul logged im modus raw AR auf 100k.
hmusb hängt am windows laptop und macht das update über das homematic-update-tool.

komischerweise funkt der hmusb über windows mit der in fhem vergebenen hmid. hätte ich nicht gedacht.

edit:
wenn das windows-tool scharf gemacht wird, habe ich "unendlich" viel zeit, den update modus am device zu starten. ab dann gibt es funkverkehr.

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

Samsi

Hallo,

ich wollte mich auch mal einklinken. Wenn ich das Richtig verstehe, könnten dann Fremde ein solche Message abschicken und dann eine fremde Firmware aufspielen. Ich weis nicht ob das so gut ist. Wenn das nur durch drücken auf den Config button neu gestartet werden kann fände ich das besser.
Wenn mich jemand ärgert indem er mein Licht ein oder Ausschaltet ist das eine Sache, wenn aber eine andere Firmware aufgespielt werden kann, ist das noch mal eine ganz andere Qualität Schabernack, die man dann machen kann und vermutlich auch schwer zu entdecken.

Grüße


FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

frank

@jan
ZitatWenn das Gerät jetzt eine 0xCB Nachricht bekommt rebootet er und der Bootloader sollte das Update übernehmen.
hört sich klasse an. werde ich mal mit einem schalter probieren.
ZitatGibt es irgendwo einen Mitschnitt vom FHEM Update ohne vorherigen Reboot?
verstehe ich nicht ganz. welches update und wer macht reboot.


@samsi
ZitatWenn ich das Richtig verstehe, könnten dann Fremde ein solche Message abschicken und dann eine fremde Firmware aufspielen.
das müsste natürlich vermieden werden. oder den bootloader-modus einstellbar machen (funkgesteuert/manuell)

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

martinp876

hi,

@samsi - sicherheit
wenn man das ding manuell in den bootloader versetzen muss ist man im Haus - also kein Problem.
HM kann dies auch per message machen - es liegt nicht unserer Hand, diesen mode zu verbieten. Beachte, dass du hier AES einschalten kannst - außerdem kannst du überwachen mit den sabotage-messages.
Mehr geht sytembedingt nicht - meine ich zumindest. An fhem scheitert es erst einmal nicht.

@jab
das mit CB "auto-umschalten" ist wohl auch bei dem RTs "neu" mit der letzten FW. Da die selbstgebauten Devices kein AES unterstützen kann man sich hier überlegen, ob man es zulässt (samsi's Befürchtung). FHEM sollte es können - da es HM unterstützen soll...

@Frank,
prima log. Ich werde gleich einmal experimentieren
Gruss Martin