Make firmware updates available via Matter

Product name

Nuki SmartLock Pro (5th gen)

Summary

Making firmware updates available via Matter

Features

Allow download and installation of new firmware updates via Matter (e.g. via Home Assistant)

Reason

The recent app changes require device attestation for the android device, making firmware updates impossible unless either allowing full internet access for the smartlock or using an extra mobile phone just for firmware updates.
Having firmware updates available via Matter also simplifies updates and allows you to update them together with other matter devices while keeping the device completely offline.

Examples

Step 1. Open Home Assistant dashboard
Step 2. Update Nuki firmware

According to google, making firmware updates available via Matter should be relatively straightforward:

  1. Generate and Sign the OTA Binary
  2. Host the Firmware File (no need for API, just the file download with a cheap CDN should be fine)
  3. Register Software Version on the CSA DCL

As you probably already are doing (1), the only steps would be to (2) host the files at some location (pure file downloads, no API, should not really cost any noticeable amount) and (3) update the CSA DSL (which you could maybe automate in your build pipeline)

This would make firmware updates possible independent from the app and allow for updates via Home Assistant or other Matter controllers.

Just my 2 cents:

  • The firmware is huge and it would take forever to transfer it over Thread.

  • Staged rollouts are difficult to realize that way.

It doesn’t need to be the only way nor does it need to be immediately upon release.

New firmware could first just be deployed as usual via the app but once everyone has it, also distribute that version via Matter/Thread. That way, you can first do staged rollouts as usual and then most people would already have updated once you finally also make it available via Matter.

At this point, only people that don’t update via the app will get the option to update there and the time it takes for a would not matter (hehehe…) as it just works in the background.

Think of it as a kind of “fallback” option.