Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for IKEA Home Smart OTA firmware updates #8131

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

IceHamster
Copy link

  • Introduced homesmartOta() for managing IKEA Home Smart firmware updates from a new endpoint.
  • Updated INSPELNING smart plug configuration to use homesmartOta() for OTA.
  • Added checksum support for SHA-3 256 in OTA logic.
  • Created a new module for handling IKEA Home Smart OTA logic (homesmart.ts), including certificate handling and secure download.
  • Updated documentation with IKEA Home Smart OTA URL and release notes location.

- Introduced `homesmartOta()` for managing IKEA Home Smart firmware updates from a new endpoint.
- Updated INSPELNING smart plug configuration to use `homesmartOta()` for OTA.
- Added checksum support for SHA-3 256 in OTA logic.
- Created a new module for handling IKEA Home Smart OTA logic (`homesmart.ts`), including certificate handling and secure download.
- Updated documentation with IKEA Home Smart OTA URL and release notes location.
@Koenkk
Copy link
Owner

Koenkk commented Oct 14, 2024

Thanks for the PR! I was thinking to combine all IKEA firmwares into the zigbee-OTA repo as suggested here, this has some benefits over a custom OTA provider:

  • We can use ota.zigbeeOTA for all IKEA devices (no need to figure out for every device where the OTA is)
  • No separate OTA provider needed (less code, no certificate handling which might break in the future)
  • In case IKEA pushes a bad OTA (which happened in the past), we can quickly remove it

The way I see this is that zigbee-OTA has a GitHub action which runs e.g. daily, combines OTAs from both the old an new feed and automatically creates a PR with new OTAs. What do you think?

@IceHamster
Copy link
Author

IceHamster commented Oct 14, 2024

Thanks for the PR! I was thinking to combine all IKEA firmwares into the zigbee-OTA repo as suggested here, this has some benefits over a custom OTA provider:

* We can use `ota.zigbeeOTA` for all IKEA devices (no need to figure out for every device where the OTA is)

* No separate OTA provider needed (less code, no certificate handling which might break in the future)

* In case IKEA pushes a bad OTA (which happened in the past), we can quickly remove it

The way I see this is that zigbee-OTA has a GitHub action which runs e.g. daily, combines OTAs from both the old an new feed and automatically creates a PR with new OTAs. What do you think?

That sounds like a great idea! We could either

  • Create a list of IKEA devices for which we want to fetch the firmware, and then run a scheduled action.
  • Fetch all OTA firmware on the IKEA feeds, and the replace newer ones

It seems that some OTA firmwares are published on both the old and new feeds, sometimes with different names, so we might need to check the headers of the OTA images before replacing any existing firmware.

The only potential issue I see is the legal aspect: are we allowed to host third-party firmware on GitHub?

Regarding the certificates, we should also add the Root CA and Intermediate CA to zigbee-OTA, so we can verify the identity of the server.

@Koenkk
Copy link
Owner

Koenkk commented Oct 14, 2024

The only potential issue I see is the legal aspect: are we allowed to host third-party firmware on GitHub?

Zigbee-OTA already hosts firmwares for various vendors for quite some years, I don't expect any problems.

@Nerivec
Copy link
Contributor

Nerivec commented Nov 11, 2024

Implemented in Koenkk/zigbee-OTA#581 + #8273 for Z2M 2.0.0 😉

@IceHamster @jamesonuk I don't have any Ikea device... Can you confirm https://static.homesmart.ikea.com/releaseNotes/ has the release notes for the new URL as opposed to https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html for the old one? That new one seemed to be mostly focused on the Hub updates (can't see any device notes since mid-2023)?
I'll change the URL for release notes in the zigbee-OTA repo accordingly.

@IceHamster
Copy link
Author

Implemented in Koenkk/zigbee-OTA#581 + #8273 for Z2M 2.0.0 😉

@IceHamster @jamesonuk I don't have any Ikea device... Can you confirm https://static.homesmart.ikea.com/releaseNotes/ has the release notes for the new URL as opposed to https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html for the old one? That new one seemed to be mostly focused on the Hub updates (can't see any device notes since mid-2023)? I'll change the URL for release notes in the zigbee-OTA repo accordingly.

@Nerivec I am not completly sure. I have seen the same thing, that IKEA has not updated the new URL. I do not find the new IKEA sockets devices in the new or the old release notes pages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants