Matter ota provider provided the wrong ota file when I wanted to upgrade my matter device

I wanted to upgrade my matter device with chip-ota-provider-app, I have finished other prepareations and run command `chip-ota-provider-app -o otaList.json` to start ota-provider.

//otaList.json
{ "foo": 1, // ignored by parser
  "deviceSoftwareVersionModel":
  [
      { "vendorId": 65521, "productId": 32773, "softwareVersion": 1, "softwareVersionString": "v1.0", "cDVersionNumber": 18, "softwareVersionValid": true, "minApplicableSoftwareVersion": 0, "maxApplicableSoftwareVersion": 100, "otaURL": "light_ota_v1.ota" },
      { "vendorId": 4619, "productId": 4192, "softwareVersion": 17, "softwareVersionString": "1.1", "cDVersionNumber": 18, "softwareVersionValid": true, "minApplicableSoftwareVersion": 0, "maxApplicableSoftwareVersion": 100, "otaURL": "ota_test_H1_EF4_V11.ota" }
  ]
}

And then I commissioned a matter device which I want to upgrade into this matter network. Everything was ok but the ota-provider gave the wrong ota file.The correct one shall be "light_v1.ota".

What is the problem? Is this a known issue about matter ota? project-chip.github.io/.../README.html

  • Hi,

    The OTA image with the most recent software version in the JSON file will be selected and sent to the device. In your JSON file, the sw version of ota_test_H1_EF4_V11.ota is 17 while it is 1 for light_ota_v1.ota, so ota_test_H1_EF4_V11.ota will be selected as it is the most recent version. Try removing the line with ota_test_H1_EF4_V11.ota and only having light_ota_v1.ota in the JSON file.

    I recommend checking out Matter - Performing Device Firmware Upgrade in the nRF Connect examples, as it is more geared towards nRF Connect SDK than the guide you link to.

    Best regards,
    Marte

  • So it does not check Product ID and Vendor ID? It just only check the software version whatever the product ID and vendor ID is? Because my device's product ID is 32773, and it does not match the ota file whose product ID is 4192 even its software version is higher.

    And the result was that it could not ota normally because of the wrong ota file. I think it should select the correct ota file based on product ID and vendor ID to upgrade instead of selecting the ota file only based on software version. So is it a known issue of matter ota? Or I did something incorrect?

    Assume that I have many matter devices whose vendor ID and product ID are different in a matter network, how could I make them upgrade to their own ota file correctly?

  • Hi,

    Llama12580 said:
    So it does not check Product ID and Vendor ID? It just only check the software version whatever the product ID and vendor ID is?

    Correct, this is stated in the "Current Limitations" in the guide you linked to:

    Llama12580 said:
    Assume that I have many matter devices whose vendor ID and product ID are different in a matter network, how could I make them upgrade to their own ota file correctly?

    In the guide in our documentation you specify the node ID and endpoint ID of the device that is to receive the OTA image. Please see Matter - Performing Device Firmware Upgrade in the nRF Connect examples,

    Best regards,
    Marte

  • Thanks for answering!

    The situation is, I have commissioned a matter light(PID:65521 VID:32773) and a sensor(PID:4619 VID:4192) into my matter network, and start ota-provider by running `chip-ota-provider-app -o otaList.json`.

    In the guide in our documentation you specify the node ID and endpoint ID of the device that is to receive the OTA image.

    Yes, I did specify the node ID of my matter light(PID:65521 VID:32773), but it could not ota successfully. Ota-provider provided it the wrong ota file(PID:4619 VID:4192) just because this ota file has higher software version, and regardless of whether the product ID and vendor ID is correct. So my light can not upgrade normally but sensor can.

    Ota-provider always provides the ota file of the highest software version but never check PID and VID. So in my case, how can I make my matter light upgrade to its own corresponding ota firmware?

  • Hi,

    Product ID and vendor ID are not the same as node ID. Node ID is the unique ID of the device, and each device in a Matter fabric will have different and unique IDs. If you are using CHIP Tool as Matter controller then the node ID is defined by you as part of the commissioning command, for example:

    ./chip-tool pairing ble-thread <node_id> hex:<operational_dataset> <pin_code> <discriminator>

    Please try using the guide in our documentation for the OTA Provider: Matter - Performing Device Firmware Upgrade in the nRF Connect examples.

    Best regards,
    Marte

Related