Code Monkey home page Code Monkey logo

zigbee-ota's Introduction

zigbee-OTA

Lint Code Base status badge

A collection of Zigbee OTA files, see index.json for an overview of all available firmware files.

Adding new and updating existing OTA files

  1. Go to this directory
  2. Execute node scripts/add.js PATH_TO_OTA_FILE_OR_URL, e.g.:
    • node scripts/add.js ~/Downloads/WhiteLamp-Atmel-Target_0105_5.130.1.30000_0012.sbl-ota
    • node scripts/add.js http://fds.dc1.philips.com/firmware/ZGB_100B_010D/1107323831/Sensor-ATmega_6.1.1.27575_0012.sbl-ota
  3. Create a PR. Changes will be automatically validated by GitHub.

Updating all existing OTA entries (if add.js has been changed)

  1. Go to this directory
  2. Execute node scripts/updateall.js
  3. Create a PR. Changes will be automatically validated by GitHub.

zigbee-ota's People

Contributors

aadegtyarev avatar alexispolegato avatar alxbator avatar atus avatar bsheepdiy avatar codeforlove83 avatar davidjb avatar derdreschner avatar devbis avatar fabianmangold avatar kirovilya avatar koenkk avatar lcheng33775823 avatar liubotongs avatar mdeweerd avatar mkaay avatar nukusinji avatar octa22 avatar oriprior avatar otnow avatar pedrolamas avatar shinasys avatar silentt-fr avatar thejulianjes avatar thestigh avatar walthowd avatar weihuan1111 avatar whistlemaster avatar z-x-f avatar zvldz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zigbee-ota's Issues

OTA Update LED1624G9 won't start

Hi,

failed with this Message
2022-10-16 11:09:21Failed to check if update available for 'kizi_decke_lampe' (No image available for imageType '10241')

Any hints?

Mfg code 0x1037 is Jennic, not Eurotronic

Also, when performing:

wget https://github.com/fairecasoimeme/Zlinky_TIC/releases/download/v5.0/ZLinky_router_v5.0.ota
node scripts/add.js ZLinky_router_v5.0.ota

I get

Added new entry ({"fileVersion":5,"fileSize":240478,"manufacturerCode":4151,"imageType":1,
"sha512":"692417e8863827f120cda063850aee65b7b6eb58109d419ff58dced1d7c9251617312368bda0f848
8aa26aeb7a8e3642339c7648af24cbff66b870401c9113da","url":"https://github.com/Koenkk/zigbee-
OTA/raw/master/images/Eurotronic/ZLinky_router_v5.0.ota","path":"images/Eurotronic/ZLinky_
router_v5.0.ota"})

The image is put under "Eurotronic" while the manufacturercode is actually "Jennic", so the component manufacturer's id, not Eurotronic.

I checked this at https://www.wireshark.org/docs/wsar_html/packet-zbee_8h_source.html .

Problem with Legrand 067775/741811

I notice a "bug" concerning the update of Legrand devices 067775/741811.
Indeed, I have devices in version 0016 and the available update is in version 004a.

When I consult the database.db file, the swBuildId section gives some strange information:

"swBuildId":"016\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0002\u0000\u0001\u0000 \u0002\u0000\u0002\u0000!\u0012\u0000\u0000\u0000\u0000��\u0003\u0000\u0010\u0002\u0001\u0004\u0000\u0018\u0002\u0000��!"

So it is impossible to update and I get this error:
Firmware on '0x00047400000a79ae' is newer than latest firmware online.

Is it possible to correct this problem? See maybe a method to force the installation of the update?

_TZ3210_frm6149r - wrong ota firmware applied

I believe my problem might be due to the wrong data or file in this repo. Apologies if this is the wrong place to report this.

I (foolishly) sent an ota_notify command to the following LED strip controller using the zha toolkit inside Home Assistant. I think it flashed the wrong OTA firmware, downloaded from this repo. The device now appears as a power switch.

The device:
_TZ3210_frm6149r
https://zigbee.blakadder.com/MiBoxer_FUT035Z.html

Now appears as:
_TZ3210_jtifm80b

Some more info from Home Assistant

"data": {
"ieee": "REDACTED",
"nwk": 22515,
"manufacturer": "_TZ3210_jtifm80b",
"model": "TS011F",
"name": "_TZ3210_jtifm80b TS011F",
"quirk_applied": true,
"quirk_class": "zhaquirks.tuya.ts011f_plug.Plug",
"manufacturer_code": 4417,
"power_source": "Mains",
"lqi": 255,
"rssi": -67,
"last_seen": "2022-10-31T20:50:18",
"available": true,
"device_type": "Router",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x010a",
"in_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0x0702",
"0x0b04",
"0xe000",
"0xe001"
],
"out_clusters": [
"0x000a",
"0x0019"
]
}
}
},

Document how and where firmware updates are extracted or obtained

I had an opportunity to play around with mitmproxy's new wireguard mode and figured mitm'ing the update process for my Hue lights was a good test since they support updates via the app with Bluetooth.

So, I went through that and ended up with one of the URLs over at #212. I realized, from this repo it's not clear:

  1. What types of firmware files are basically public and have indexes or easily guessable URLs.
  2. What types of firmware can be obtained through an app, without using the vendor's hub (like Hue).
  3. What types of firmware require a vendor hub and Zigbee network (like Sengled devices).
  4. Links to any scripts that use existing APIs to find new firmware.
  • #20 mentions "a script" for Philips, but I can't find one anywhere. From what I can tell the firmware update API at https://firmware.meethue.com/v1/checkUpdate?version=16784902&deviceTypeId=100b-11f has no auth and only requires the device type ID. It seems like it'd be relatively straight forward to automate that.

I think it would be helpful if the README indicated what types of firmware users need to contribute and discover manually, especially if they require mitm'ing traffic.

different products treated as the same for OTA-update: Popp vs. Danfoss

  • I found "OTA available" for my Popp 701721 smart thermostat in the zigbee2mqtt OTA overview.

  • I performed the OTA.

  • Later I talked to the Popp support because the device has some issues (which may or may not be related to this firmware upgrade). When I told them I have firmware version "01.18.0008 01.18", they said "that is a Danfoss firmware we have never released for the Popp Thermostat", and then said they cannot comment on any issues I have when using this firmware.

So it might be necessary to more precisely distinguish the Danfoss derivative thermostats wrt. to OTA updates offered.

HUE 277

Seem to me the plugs and lamps share same firmware, 929002240401 (LOM001) is looking for firmware type 277 not recognized, the bulb 929001953301 (LTG002) is recognized, all having firmware 1.65.9_hB3217DF4, so maybe plugs just ignore the brightness/color commands and can easily be supported.

ERR_BUFFER_OUT_OF_BOUNDS

I've already applied this update and I wanted to add it to the list for others:

node scripts/add.js https://github.com/fairecasoimeme/Zlinky_TIC/releases/download/v5.0/ZLinky_router_v5.0.ota

However I get:

node:internal/errors:466
    ErrorCaptureStackTrace(err);
    ^

RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
    at new NodeError (node:internal/errors:377:5)
    at boundsError (node:internal/buffer:84:11)
    at Buffer.readUInt16LE (node:internal/buffer:243:5)
    at Object.parseImage (D:\mdeweerd\workspace\zigbee-OTA\lib\ota.js:17:34)
    at main (D:\mdeweerd\workspace\zigbee-OTA\scripts\add.js:65:24)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  code: 'ERR_BUFFER_OUT_OF_BOUNDS'
}

I tried node scripts/add.js http://fds.dc1.philips.com/firmware/ZGB_100B_010D/1107323831/Sensor-ATmega_6.1.1.27575_0012.sbl-ota which executed without any issue.

Hue OTA files

I spent the last few evenings reverse engineering the communication between the hue bridge and the Philips servers and now i can query the device portal endpoints.
You have to know the manufacturer id and image id to query the firmware update service.
Through some searching and experimenting I managed to get some valid combinations you can find here.
I'm thinking of setting up a site to make automation easier, so if you have any suggestions for the output format or missing image ids please share.

Image padding contains invalid bytes

Firmware updates aren't working for me for certain Hue devices after #212. The error message is Image padding contains invalid bytes

  • LTD011
  • LCA001
  • LCA008
  • LTG002
  • 1743530P7

Ledvance error checking for update: (No image available for imageType '117')

Hello. I want to check if there is update for this particular light bulb I have installed.

LEDVANCE AC23684 [Model: CLA60 TW Value]

When I click on the check for new update button, I get this error.

Zigbee2MQTT:error 2022-07-02 13:04:57: Failed to check if update available for 'w_2' (No image available for manufacturerCode '4489' imageType '117')

At Ledvance update site. I've found this image, which is the same image file in zigbee2mqtt OTA, but is is under Osram folder and not Ledvance.

ZLL_MK_0x01020509_CLA60_TW.ota

Furthermore, the error says imageType 117, but the image that is in zigbee2mqtt says imageType 8. Would this be the cause of why it was not able to search for a match??

{
    "fileVersion": 16909577,
    "fileSize": 133444,
    "manufacturerCode": 4364,
    "imageType": 8,
    "sha512": "1cba1e813a0264143e082c9288922309b098c2490548b74a6f63bd2703057afab2f80b16500805417b20ad2c02746cd64c17e3a91c0f338c5dac051a23e43c37",
    "url": "https://github.com/Koenkk/zigbee-OTA/raw/master/images/Osram/ZLL_MK_0x01020509_CLA60_TW.ota",
    "path": "images/Osram/ZLL_MK_0x01020509_CLA60_TW.ota"
},

Flash Hive TRV with Danfoss Ally firmware 1.18

Hi @Koenkk

I have hit a brick wall and I would appreciate your guidance if you have the time.

As you might have heard before, Hive TRV is just a Danfoss Ally hardware but with a Hive firmware on it (I think exactly the same for Popp TRV but i do not have experience with it).

And i hate it :D I hate Hive... but that is offtopic. My aim is to flash the device with the official Danfoss firmware, which should hopefully leave me with native danfoss devices with just a different logo on the plastic.

Here are the steps I have done, in the order I did them:

  1. as the device extends danfoss, it extends the ota functionality. But of course there is no firmware for it in z-ota repo. This gives me Failed to check if update available for 'Rob's Office TRV' (No image available for imageType '66'). So i understand that imageType 66 is what i need
  2. Forked z-ota (https://github.com/robertalexa/zigbee-OTA), copied the danfoss entry but used 66 as imageType. Also added force: true because Hive's version is higher than Danfoss
    {
        "fileVersion": 274,
        "fileSize": 379806,
        "manufacturerCode": 4678,
        "imageType": 66,
        "sha512": "873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85",
        "url": "https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota",
        "path": "images/Danfoss/1246-0100-01180118.0002_(F5BFD8B8).ota",
        "force": true
    },
  1. Commented out the following assertion: This of course is because the device and index are 66 but the file itself is Danfoss' and is 256 (node_modules/zigbee-herdsman-converters/lib/ota/common.js)
assert(image.header.imageType === current.imageType, 'Image type mismatch');
  1. Run OTA and it fails:
Zigbee2MQTT:debug 2022-04-02 21:22:51: Received MQTT message on 'zigbee2mqtt/bridge/request/device/ota_update/update' with data '{"id":"0x842e14fffe203c4c","transaction":"z5442-1"}'
Zigbee2MQTT:info  2022-04-02 21:22:51: Updating '0x842e14fffe203c4c' to latest firmware
Zigbee2MQTT:debug 2022-04-02 21:22:57: Received Zigbee message from '0x842e14fffe203c4c', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20200402","swBuildId":"02.33.0008 02.33"}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-02 21:22:57: Updating to latest '0x842e14fffe203c4c' (TRV001)
Zigbee2MQTT:debug 2022-04-02 21:22:57: Using endpoint '1'
Zigbee2MQTT:debug 2022-04-02 21:23:01: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-02 21:23:01: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-02 21:23:01: Got OTA request '{"fieldControl":0,"manufacturerCode":4678,"imageType":66,"fileVersion":545}'
Zigbee2MQTT:debug 2022-04-02 21:23:01: ZigbeeOTA: downloaded main index
Zigbee2MQTT:debug 2022-04-02 21:23:01: getNewImage for '0x842e14fffe203c4c', meta {"fileVersion":274,"fileSize":379806,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota","sha512":"873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85","force":true}
Zigbee2MQTT:debug 2022-04-02 21:23:01: ZigbeeOTA: downloading firmware image from https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota
Zigbee2MQTT:debug 2022-04-02 21:23:01: OTA update checksum validation succeeded for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-02 21:23:01: getNewImage for '0x842e14fffe203c4c', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4678,"imageType":256,"fileVersion":274,"zigbeeStackVersion":2,"otaHeaderString":"29-11-2021 V.0112.0112\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":379806}
Zigbee2MQTT:debug 2022-04-02 21:23:01: Got new image for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-02 21:23:01: Starting upgrade
Zigbee2MQTT:debug 2022-04-02 21:23:02: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-02 21:23:02: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-02 21:25:29: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2172}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-02 21:25:29: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"keypad_lockout":"unlock","linkquality":115,"load_estimate":5,"local_temperature":21.72,"mounted_mode_active":false,"system_mode":"heat","update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-02 21:25:31: Update of '0x842e14fffe203c4c' failed (Error: Timeout: device did not request any image blocks)
Zigbee2MQTT:info  2022-04-02 21:25:31: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"keypad_lockout":"unlock","linkquality":115,"load_estimate":5,"local_temperature":21.72,"mounted_mode_active":false,"system_mode":"heat","update":{"state":"available"}}'
Zigbee2MQTT:info  2022-04-02 21:25:31: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)","status":"error","transaction":"z5442-1"}'
Zigbee2MQTT:error 2022-04-02 21:25:31: Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)
Zigbee2MQTT:debug 2022-04-02 21:25:31: Error: Timeout: device did not request any image blocks
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:360:28
    at runNextTicks (node:internal/process/task_queues:59:5)
    at listOnTimeout (node:internal/timers:526:9)
    at processTimers (node:internal/timers:500:7)

Notes:

  • device still functions fine after this failed OTA
  • pressed the button during OTA, to make sure the device is awake. The device reports the check command but OTA still fails
  • i do not intend to do a PR for this even if I am successful, instead I plan on making a post, maybe even put it on z2m.io under the devices notes. This is because it would be irreversible, most likely the device will never be able to work with Hive again, and of course this could brick the device (like i might with this exercise)

I would appreciate your thoughts on this Koen, i love these TRVs, but I hate Hive and the fact I can't get the most recent features, which would only be software related. And i would rather not have to a) live with it or b) sell them just to buy the Danfoss ones.... i would basically lose money on the exact same device just a different firmware.

Thanks in advance

New Hue Firmwares

fds.dc1.philips.com/firmware/ZGB_100B_0103/1124096769/100B_0103_LivingColors-Hue-Target_0012_91.1.sbl-ota --> Must be for Bloom LLC011

fds.dc1.philips.com/firmware/ZGB_100B_0119/33565954/100B-0119-02002D02-Switch-EFR32MG22.zigbee --> Must be for New Dimmer RWL022

Unable to add Osram/Ledvance firmware

Zigbee2MQTT tells me some of my OSRAM smart plugs have no update (while on v1.05.10) while ones I updated with the Lightify bridge a couple of years ago are on version 1.05.11. Zigbee2MQTT also tells me the .11 is newer than available online.

There are a bunch of firmware files located at http://s3-eu-west-1.amazonaws.com/lightify-osram-firmware/, including the 1.05.11 firmware for the smart plug (http://s3-eu-west-1.amazonaws.com/lightify-osram-firmware/firmware/release/Cloud/DEV/ZLL_Plug01_OnOff_MK_0x01020511_encrypt.bin). There are more files here compared to the official Ledvance firmware website. So I tried to add the files to this repo, but keep getting this error message:

(node:18412) UnhandledPromiseRejectionWarning: AssertionError [ERR_ASSERTION]: Not an OTA file at Object.parseImage (/root/zigbee-OTA/lib/ota.js:42:5) at main (/root/zigbee-OTA/scripts/add.js:63:24) at <anonymous>

Is this because they are encrypted or because they are 'full' firmware files? I noticed the files in this repo also have 'encrypted' in the filename, so I'm assuming they can be added.

Trying OTA on TERNCY-SD01 , got error message.

I just bought TERNCY-SD01 last week , i seen new OTA update function for TERNCY-SD01 , but already try many times , got same error message , also changing new battery , i use web interface in home assistant.

INFO: Updating '0x000d6f001673d0c2' to latest firmware
INFO: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Updating '0x000d6f001673d0c2' to latest firmware","meta":{"device":"0x000d6f001673d0c2","status":"update_in_progress"},"type":"ota_update"}'
INFO: MQTT publish: topic 'zigbee2mqtt/0x000d6f001673d0c2', payload '{"battery":84,"direction":"clockwise","number":8,"update":{"state":"available"},"update_available":true}'
INFO: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Update of '0x000d6f001673d0c2' failed (Device didn't respond to OTA request)","meta":{"device":"0x000d6f001673d0c2","status":"update_failed"},"type":"ota_update"}'
INFO: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x000d6f001673d0c2"},"error":"Update of '0x000d6f001673d0c2' failed (Device didn't respond to OTA request)","status":"error","transaction":"xo6yc-2"}'
ERROR: Update of '0x000d6f001673d0c2' failed (Device didn't respond to OTA request)

image
image

Eurotronic Technology Spirit Zigbee OTA provider source

FYI, EUROTRONIC Technology GmbH recently started publishing official OTA firmware image releases on GitHub:

https://github.com/EUROTRONIC-Technology/Spirit-ZigBee/releases

Released firmware image is for their "Spirit ZigBee" (model "SPZB0001") product which is TVR (Thermostatic Radiator Valve) device:

https://www.zigbee2mqtt.io/devices/SPZB0001.html

https://eurotronic.org/produkte/zigbee-heizkoerperthermostat/spirit-zigbee/

They have also posted guide on how to OTA update using deCONZ software from Dresden Elektronik:

https://github.com/EUROTRONIC-Technology/Spirit-ZigBee/wiki/OTA-update-guide-via-deCONZ

https://github.com/EUROTRONIC-Technology/Spirit-ZigBee/blob/main/README.md

PS: Apparently upgrading is recommended because issues like these https://github.com/search?q=%22spirit+zigbee%22&state=open&type=Issues

lumi.plug not completing update

I've got a lumi.plug (not mmeu01, maeu01 or the likes, just "lumi.plug") which claims there is a firmware available and starts updating, however, upon finishing it responds with a status code "aborted" in the updateEndRequest call. Interestingly it also reports an imageType of "0" in the updateEndRequest which seems wrong, as for all previous calls the imageType is 257.

After testing a lot with it, my current understanding is, that it is the wrong firmware for this device and there must be more to it than comparing manufacturerCode, imageType and (in case of lumi) model type. It could also be that my device's fimware is too old and it can't do the big jump (like hue for instance has the minVersion and maxVersion properties for this) but would need some firmware version in between.

The version currently reported by the device is 0.0.0.22. The available version is 0.0.0.92. The selected update image file is https://github.com/Koenkk/zigbee-OTA/blob/master/images/Xiaomi/lumi.plug_20211224_v92.ota (manufacturer 4447, imageType 257, modelName lumi.plug).

All seems correct to me up until the epdateEndRequest coming from the device....

Here's my lumi's node/endpoint/cluster descriptor:

 D | Zigbee: --> ZigbeeNode(0x4677, 00:15:8D:00:02:93:0F:EF, LUMI (0x115f), lumi.plug, Router, RxOn:true)
 D | Zigbee:   ZigbeeNodeEndpoint(0x01, Zigbee::ZigbeeProfileHomeAutomation, Zigbee::HomeAutomationDeviceSmartPlug)
 D | Zigbee:   Manufacturer: "LUMI"
 D | Zigbee:   Model "lumi.plug"
 D | Zigbee:     Input clusters ( 9 )
 D | Zigbee:      - ZigbeeCluster(0x0000, Basic, Server)
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0001, ZigbeeDataType(Unsigned 8-bit integer, 0x01))
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0004, ZigbeeDataType(Character string, LUMI))
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0005, ZigbeeDataType(Character string, lumi.plug))
 D | Zigbee:        -  ZigbeeClusterAttribute(0xff01, ZigbeeDataType(Character string, d�))
 D | Zigbee:      - ZigbeeCluster(0x0001, PowerConfiguration, Server)
 D | Zigbee:      - ZigbeeCluster(0x0010, BinaryOutput, Server)
 D | Zigbee:      - ZigbeeCluster(0x0002, DeviceTemperature, Server)
 D | Zigbee:      - ZigbeeCluster(0x0003, Identify, Server)
 D | Zigbee:      - ZigbeeCluster(0x0004, Groups, Server)
 D | Zigbee:      - ZigbeeCluster(0x0005, Scenes, Server)
 D | Zigbee:      - ZigbeeCluster(0x0006, OnOff, Server)
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0000, ZigbeeDataType(Bool, 0x00))
 D | Zigbee:        -  ZigbeeClusterAttribute(0xf000, ZigbeeDataType(Unsigned 32-bit integer, 0x0e 0x00 0x00 0x07))
 D | Zigbee:      - ZigbeeCluster(0x000a, Time, Server)
 D | Zigbee:     Output clusters ( 3 )
 D | Zigbee:      - ZigbeeCluster(0x0000, Basic, Client)
 D | Zigbee:      - ZigbeeCluster(0x000a, Time, Client)
 D | Zigbee:      - ZigbeeCluster(0x0019, OtaUpgrade, Client)
 D | Zigbee:   ZigbeeNodeEndpoint(0x02, Zigbee::ZigbeeProfileHomeAutomation, Zigbee::HomeAutomationDeviceMainPowerOutlet)
 D | Zigbee:     Input clusters ( 3 )
 D | Zigbee:      - ZigbeeCluster(0x000c, AnalogInput, Server)
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0055, ZigbeeDataType(Single precision, 0x00 0x00 0x00 0x00))
 D | Zigbee:      - ZigbeeCluster(0x0001, PowerConfiguration, Server)
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0021, ZigbeeDataType(Unsigned 8-bit integer, 0x00))
 D | Zigbee:      - ZigbeeCluster(0x0400, IlluminanceMeasurement, Server)
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0000, ZigbeeDataType(Unsigned 16-bit integer, 0x47 0x4b))
 D | Zigbee:     Output clusters ( 2 )
 D | Zigbee:      - ZigbeeCluster(0x000c, AnalogInput, Client)
 D | Zigbee:      - ZigbeeCluster(0x0004, Groups, Client)
 D | Zigbee:   ZigbeeNodeEndpoint(0x03, Zigbee::ZigbeeProfileHomeAutomation, Zigbee::HomeAutomationDeviceMeterInterface)
 D | Zigbee:     Input clusters ( 1 )
 D | Zigbee:      - ZigbeeCluster(0x000c, AnalogInput, Server)
 D | Zigbee:        -  ZigbeeClusterAttribute(0x0055, ZigbeeDataType(Single precision, 0x5d 0x4e 0x43 0x3c))
 D | Zigbee:     Output clusters ( 1 )
 D | Zigbee:      - ZigbeeCluster(0x000c, AnalogInput, Client)
 D | Zigbee:   ZigbeeNodeEndpoint(0x64, Zigbee::ZigbeeProfileHomeAutomation, Zigbee::HomeAutomationDeviceOccupacySensor)
 D | Zigbee:     Input clusters ( 1 )
 D | Zigbee:      - ZigbeeCluster(0x000f, BinaryInput, Server)
 D | Zigbee:     Output clusters ( 2 )
 D | Zigbee:      - ZigbeeCluster(0x000f, BinaryInput, Client)
 D | Zigbee:      - ZigbeeCluster(0x0004, Groups, Client)

Device OTA

I have several ZNCZ04LM and one of them stopped working. It clicks the relay, gives voltage and temp but doesn't pass power to the connected device.

I suspect firmware might be borked as there were some power outages in series, is there a way to reset the plug or better yet, to force OTA update of the firmware? This plug supports OTA in zigbee2mqtt but the running firmware is the same you have on your repo

Thanks!

why no update file?

Release New firmware file GL-C-008P_V17A1
but didn't update
It is logs.

Info Updating '0xbc33acfffe8b7efd' to latest firmware
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Updating '0xbc33acfffe8b7efd' to latest firmware","meta":{"device":"0xbc33acfffe8b7efd","status":"update_in_progress"},"type":"ota_update"}'
Debug Received Zigbee message from '0xbc33acfffe8b7efd', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20201230","swBuildId":"V_1_4"}' from endpoint 11 with groupID 0
Debug Updating to latest '0xbc33acfffe8b7efd' (GL-C-008P)
Debug Using endpoint '11'
Debug Received Zigbee message from '0xbc33acfffe8b7efd', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":1,"fileVersion":4,"imageType":0,"manufacturerCode":4687}' from endpoint 11 with groupID 0
Debug Got OTA request '{"fieldControl":1,"manufacturerCode":4687,"imageType":0,"fileVersion":4}'
Debug getNewImage for '0xbc33acfffe8b7efd', meta {"fileVersion":4,"fileSize":291546,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Gledopto/GL-C-008P_V14_OTAV4_20210114_100%25.ota","sha512":"58d453955a427b1468b2e62f560f1b4b00dbb0e59a1d65e1793f2d0a960d7d2010d74900570ac1b9e0467ab5503a403aaf1ee9eed6c9db3cf34b973598a616ea"}
Info MQTT publish: topic 'zigbee2mqtt/0xbc33acfffe8b7efd', payload '{"linkquality":0,"state":"OFF","update":{"state":"available"},"update_available":true}'
Info MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Update of '0xbc33acfffe8b7efd' failed (No new image available)","meta":{"device":"0xbc33acfffe8b7efd","status":"update_failed"},"type":"ota_update"}'
Info MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0xbc33acfffe8b7efd"},"error":"Update of '0xbc33acfffe8b7efd' failed (No new image available)","status":"error","transaction":"mxltp-2"}'
Error Update of '0xbc33acfffe8b7efd' failed (No new image available)`

GLEDOPTO GL-C-008P

Hello, after z2m-edge update From:

Zigbee2MQTT version    1.18.3-dev commit: 3d00338
Coordinator type    zStack12
Coordinator revision    20201128
Frontend version    0.4.16

To:

Zigbee2MQTT version    1.25.2-dev commit: [820c20a](https://github.com/Koenkk/zigbee2mqtt/commit/820c20a)
Coordinator type    zStack12
Coordinator revision    20201128
Frontend version    0.6.101

start to receive notifications:
"warning 2022-06-17 12:08:33Firmware on '0x84fd27fffec35f33' is newer than latest firmware online."

Zigbee Model    GL-C-008P
Zigbee Manufacturer    GLEDOPTO
Description    Zigbee LED Controller RGB+CCT (pro)
Firmware build date    20210714
Firmware version    10976802

If I can provide it to you, please give me instructions how to.

Have a good day.

When the device OTA to the latest, check for the new updates, it still show i can update

I use zigbee2mqtt(version:1.28.4-1), and check for the new updates for a device, and successfully OTA from version v20 to version v21.

But when i click check for the new updates again, it still show i can update, i update again, it shows OTA success, but the version is still v21. And click check for the new updates again, it still show there is a update

I search modelid in https://github.com/Koenkk/zigbee-OTA/blob/master/index.json, it shows v21 is the latest firmware.

In log, when OTA complete, it shows : XXX was updated from 'null' to 'null'

So, why i have already OTA my device to the latest, click check for the new updates, it still show i can update?

Image for TuYa TV02 (2.0.4) not parseable

Today I intercepted a request upon updating a TuYa TRV TV02 via Tuya Smart Life. The linked binary however sems to not be parseable by add.js. Either I took a completely wrong turn somewhere or the binary is not compatible with the script.

PS D:\Workspaces\zigbee-OTA> node scripts/add.js https://images.tuyaeu.com/smart/firmware/upgrade/ay156144560900410bUk/164155152229641863dfc.bin
node:internal/errors:464
    ErrorCaptureStackTrace(err);
    ^

RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
    at new NodeError (node:internal/errors:371:5)
    at boundsError (node:internal/buffer:84:11)
    at Buffer.readUInt16LE (node:internal/buffer:243:5)
    at Object.parseImage (D:\Workspaces\zigbee-OTA\lib\ota.js:17:34)
    at main (D:\Workspaces\zigbee-OTA\scripts\add.js:65:24)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  code: 'ERR_BUFFER_OUT_OF_BOUNDS'
}

Intercepted request:

{
    "result": [
        {
            "controlType": 1,
            "currentVersion": "1.0.5",
            "devType": 0,
            "lastUpgradeTime": 0,
            "timeout": 60,
            "type": 3,
            "typeDesc": "ZigBee Module",
            "upgradeStatus": 0
        },
        {
            "canUpgrade": true,
            "controlType": 1,
            "currentVersion": "2.0.0",
            "desc": "In order to cooperate with the upgrade of the Tuya platform, \nthe upgrade will be carried out before the device is used.\nNotes:\n1. Please do not delete or unbind the device  in the APP when upgrading or
upgrade failed, otherwise, the device will be unusable.\n2. Ensure good network when upgrading.\n3. Please do not power off the device when upgrading.\n4. Upgrade failed, the device displays \"---\", please follow the app prompt t☼upgrade again.\n5. If there are multiple temperature control valves, pls upgrade in turn. The device will display \"UP\" when upgrading\n6. After the upgrade, the device will  restart and restore the connection.",
            "devType": 0,
            "diffOta": false,
            "fileSize": "49032",
            "firmwareDeployTime": 1645523068,
            "lastUpgradeTime": 0,
            "md5": "5a416bf477da3330aae8b9f56a8c90e1",
            "timeout": 60,
            "type": 9,
            "typeDesc": "MCU Module",
            "upgradeStatus": 1,
            "upgradeType": 0,
            "upgradingDesc": "Please keep the power of the device connected during the upgrade process, please be patient.",
            "url": "https://images.tuyaeu.com/smart/firmware/upgrade/ay156144560900410bUk/164155152229641863dfc.bin",
            "version": "2.0.4"
        }
    ],
    "status": "ok",
    "success": true,
    "t": 1648976003782
}

Where can i find the link between 'supported devices' and their firmware?

I have the following devices:

Every device is listed as 'ota updatable', however the OTA JSON does not give any hints to which file is related to which device code. Reason for asking is that i have a Deconz setup (and therefore can't use the OTA update functionality from Zigbee2MQTT can i?)

Help in finding firmware please

i have tuya kt series 1 and 2 gang switches.

https://pl.aliexpress.com/item/1005001470427730.html?spm=a2g0o.productlist.0.0.15e81634p8zkPw&algo_pvid=b0feda78-1db9-46af-b077-9eadf6993a13&algo_exp_id=b0feda78-1db9-46af-b077-9eadf6993a13-20&pdp_ext_f=%7B%22sku_id%22%3A%2212000016290125532%22%7D&pdp_npi=2%40dis%21PLN%21%21109.41%21%21%21%21%21%402100bdf116526178801687505e449d%2112000016290125532%21sea

where can i find firmware update for it? it reports as
'_TZ3000_gbshwgag TS0001': field_control=FieldControl.0, manufacture_id=4098, image_type=5634, current_file_version=71, hardware_version=None, model=TS0001

in index.json i found 2 images that have image_id and manufecturer id thesame as above. but ZHA wont update. Can any 1 help?

Error while trying to update Sonoff ZBMini-L (Value for field "payload_type" is requierd)

So i tried to update my ZBmini-L devices with the new firmware because of some issues with them, but eevery time i tried i get the same error message as statet in the title.

Also if i tried to send any other Cluster Command it states that there are other Values in diffrent fields missing.

image
image

i also included a picture of the error messages but its in german and from my Cluster Manage page wich i used to update these

i dont know if i have to write something in the "Hersteller-Code Überschreiben" field or not because the update side from sonoff dident state that.

https://sonoff.tech/product-review/local-configure-zigbee-ota-in-home-assistant-tutorial/

Zigbee2mqtt fails to configure Develco SMSZB-120

Coordinator: Conbee II

I have four of these models (Develco SMSZB-120) in the house. They each have had different firmwares, but have the same issue in Z2M.

Also, they pair and work just fine in ZHA and deconz. I've used both of those before discovering Z2M.

They pair ok, but only one of them gives readings on "temperature", "reliability" and "fault".
The one that seems to be ok, also gives this error though. It goes through 3 attempts without success.

Things I have tried:

  • Pairing close to the coordinator, with Z2M set to only allow pairing through coordinator.
  • Pairing through an assortement of routers.
  • Factory reset the smoke detector countless times (it can only be force removed btw.)

Are there any more detailed logs I can provide that would provide more insight?

2022-12-31 14:14:47Failed to configure '0x0015bc003100549e', attempt 1 (Error: Bind 0x0015bc003100549e/35 genBasic from '0x00212effff0676cd/1' failed (Error: status: 140) at DeconzAdapter.bind (/app/node_modules/zigbee-herdsman/src/adapter/deconz/adapter/deconzAdapter.ts:768:19) at Endpoint.bind (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:567:13) at Object.bind (/app/node_modules/zigbee-herdsman-converters/lib/reporting.js:40:9) at Object.configure (/app/node_modules/zigbee-herdsman-converters/devices/develco.js:436:13) at Configure.configure (/app/lib/extension/configure.ts:117:13))

What license do you expect for these firmware packages?

Related to that, would you accept URLs for firmware without hosting the files on github? It seems that the code has no requirement to use github for hosting, and leaving the files in their current locations would remove most of the licensing issues.

Question about Philips Hue

Hi
the script is not downloading the Philips images , because there is no path in the index.json
or do i something wrong?

br

Tuya Firmware - origin?

I contacted Tuya about adding a feature to their Firmware of TRV. Tuya service told me they are not responsible but the "device manufacturer". When asking who that is they said to ask the seller. Seems like they don't want to tell. Since this repo contains the firmware for that TRV: Where did you get it from? Do you know who to contact for feature requests in that firmware?

Eurotronic Technology Spirit Zigbee OTA Error

Hi Koenkk,

I am using a new Eurotronic SPZB0001 with firmware 20191014 and Zigbee2mqtt Current version: 1.18.1-2

EurotronicSpiritZigBee

and I get the following error:

Zigbee2MQTT:error 2021-03-15 15:09:54: Failed to check if update available for 'EurotronicSP-01' (No image available for imageType '65535')

Can you explain that ?

Thanks
HTro

Error: read ECONNRESET at TLSWrap.onStreamRead

Zigbee2MQTT:error 2022-09-05 16:35:44: Failed to check if update available for '0x54ef44100025279f' (read ECONNRESET)
Zigbee2MQTT:debug 2022-09-05 16:35:44: Error: read ECONNRESET
at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20)

Problem with OTA update when using compressed GBL image

Hi! I am trying to develop my own Zigbee device based on EFR32 chip. Due to memory size constraints, I have to use GBL file compression for update image. I am using own repository for OTA images, which was successfully tested with uncompressed images.
Problem arises when I'm trying to update with compressed OTA image - I'm getting error 'Image padding contains invalid bytes'. Is there any workaround or any hints where I should look into?

QBCZ11LM dead after OTA update

Hi. I've just bought a QBCZ11LM, Zigbee2Mqtt claim to support it. At first the device is found on Zigbee network. LQI is good, but I cannot issue On / Off command to it. It just won't toggle.
So, I see it has OTA support, I updated it. After it finish OTA upgrade, it won't run anymore, cannot even be found on the Zigbee network, basically, bricked.
What can I do with this? I'm a noob and don't have professional equipment. :(
Thanks.

Is there a way to add OTA firmware updates for own custom device?

Hi Koen & All,

I am developing my own device, and I would like to build an OTA Update feature for it. From the description I understand how to add the firmware to index.json. But the documentation does not describe how get this firmware to a working z2m instance (I am running z2m in a docker container)

Could you please shed some light on it?

Please add Osram FW

Hello,

the firmware for Osram devices can be found here:
https://update.ledvance.com/firmware-overview?submit=all
I'm afraid to upload them myself for copyright issues.
Can you just point the config to this website?

Specifically i'm after the fw for
OUTDOOR LANTERN W RGBW OSRAM | 14.03.2019 | 0x110c | 0x0068 | V0.20 Build 510

Is there an easy way to point zigbee2mqtt to an alternative host to look for updates?
I'm using the docker version.

Many thanks for your help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.