Elelabs / elelabs-zigbee-ezsp-utility

Elelabs Zigbee EZSP Utility to perform firmware update on a range of Elelabs EZSP products as well as other generic EZSP adapters.
Apache License 2.0
134 stars 27 forks source link

[REQUEST] EmberZNet 7.4.x.x Zigbee Coordinator NCP firmware images? #47

Open Hedda opened 5 months ago

Hedda commented 5 months ago

I like to suggest/recommend that Elelabs look at releasing an official Zigbee NCP firmware update image based on EmberZNet 7.4.2.0 version or later 7.4.x.x bug-fix version for your elx0x3 (ELU013and ELR023) adapters.

Community built firmware based on Zigbee EmberZNet 7.4.x.x has more or less already been proven to be relatively stable in DIY Zigbee Gateway solutions such as Home Assistant's ZHA integration, Zigbee2MQTT, OpenHAB Zigbee Binding, and Domoticz ZigBee Plugin. (Seen many users reported great results with unofficial elelabs-elx0x3 firmware builds from darkxst's silabs-firmware-builder repository).

More importantly, the popular Zigbee Gateway host application software Zigbee2MQTT to soon require EmberZNet 7.4.0.0 firmware or later as they marked their old radio Silicon Labs adapter code as deprecated. At least Zigbee2MQTT has now marked their old ezsp adapter code as deprecated in zigbee-herdsman -> https://github.com/Koenkk/zigbee-herdsman/pull/1039 and new code requires EmberZNet 7.4.x.x firmware.

Deprecated driver 'ezsp' currently in use, 'ember' will become the officially supported EmberZNet + driver in next release. If using Zigbee2MQTT see https://github.com/Koenkk/zigbee2mqtt/discussions/21462

So unless ITead provides an official EmberZNet 7.4.x.x firmware image then will no longer be able to claim Zigbee2MQTT compatibility.

I think this is also interesting to other Zigbee projects that also support Silicon Labs Zigbee Coordinator adapters because of the fact that Zigbee2MQTT's new ember adapter code will only be compatible with EZSP v13 (EmberZNet Serial Protocol) CLI/API which only came with EmberZNet 7.4.0.0 firmware and later. In addition, RCP Multi-PAN/Multi-protocol firmware will also not be officially supported by Zigbee2MQTT, instead only NCP firmware will be supported, at least for now.

zigbee-herdsman's new ember adapter code is meant to fully replace old ezsp adapter code but it does sacrifice backwards compatibility.

Zigbee2MQTT's developers on purpose choose to do a clean rewrite their new ember adapter code as "greenfield project" with focus on only supporting EZSP v13 (EmberZNet 7.4.0.0) firmware and later to avoid constraints and limitations imposed by old code or old firmware.

Anyway, deprecated in this case only means that their old ezsp adapter code will no longer maintained and that users will have an yet undefined grace period to migrate to the new emberadapter. Silicon Labs adapters are currently still "experimental" in Z2M -> https://www.zigbee2mqtt.io/guide/adapters/#experimental however their plan is that this will change in the future with their new ember adapter code becomes more stable.

By the way, I am not sure how well backup and restore is working today if using their old ezsp adapter in Zigbee2MQTT but at least until recently there was no ability to restore from backup in Z2M if using that ezsp adapter in Zigbee2MQTT, see -> https://github.com/Koenkk/zigbee-herdsman/issues/319 and the workaround to backup and restore before if using ezsp adapter in Zigbee2MQTT was to backup and restore using zigpy-cli, see https://github.com/Koenkk/zigbee2mqtt/discussions/16478 but I believe the new ember adapter in Zigbee2MQTT has full native support for backup and restore but I am not sure about native migrations from ezsp adapter to ember adapter inside Zigbee2MQTT.

PS: FYI, RCP Multi-PAN firmware is no longer recommended Home Assistant's Zigbee Home Automation integration either.

There is a third, experimental, firmware option that supports multiprotocol, which allows the Silicon Labs chip in these products to connect to both Zigbee and Thread networks with one radio. We announced our intent to release a firmware supporting multiprotocol when we launched Home Assistant Yellow and Home Assistant SkyConnect, and this firmware has been available since December 2022. It integrates the Silicon Labs SDK, which adds this support for multiprotocol. During the further development and testing of the multiprotocol firmware, we have concluded that while Silicon Labs’ multiprotocol works, it comes with technical limitations. These limitations mean users will not have the best experience compared to using dedicated Zigbee and Thread radios. That is why we do not recommend using this firmware, and it will remain an experimental feature of Home Assistant Yellow and Home Assistant SkyConnect. If you currently have the multiprotocol firmware installed but don’t actively use it to connect to Thread devices, we recommend that you disable multiprotocol.

Hedda commented 3 months ago

FYI, Zigbee2MQTT now lists EmberZNet with firmware 7.4.x as supported (using their new adapter: ember), and they also updated that page to list adapter: ezsp as deprecated (i.e. older firmware is lo longer recommended for Zigbee2MQTT):

Recommend read and ask any specific questions in Zigbee2MQTT’s own community discussions/forum on GitHub (or post issues there) instead of posting about it here in Home Assistant's community forum:

Anyway, as I understand, in summery:

You need to have upgraded to at least EmberZNet 7.4.x firmware version or later to use the new ”ember” driver/adapter in Zigbee2MQTT, but from what I read it is suggested that existing Zigbee2MQTT users first upgrade to EmberZNet 7.3.x firmware version while still using the old ”ezsp” driver/adapter as it sounds like a migration to the new ”ember” driver will go smoother if already have had the old ”ezsp” driver/adapter working EmberZNet 7.3.x firmware version while still using the old ”ezsp” driver/adapter in Zigbee2MQTT. If you do that first before upgrading to EmberZNet 7.4.x.x firmware then you should not need to re-pair any devices.

Hence the multi-step process you need to follow do depends on your specific setup and you need to ask in the Zigbee2MQTT community if you need step-by-step that applies to your setup. The process for actually updating firmware version will not be different.

Suggest start by reading and try following this article regarding migrating Zigbee2MQTT from the ezsp adapter to the new ember adapter:

Summery; ezsp adapter is now deprecated in Zigbee2MQTT’s zigbee-herdsman library, which means that the Zigbee2MQTT developers are by doing so strongly recommending users to upgrade and migrate to ember adapter, and that migration might require a multi-step process depending on what EmberZNet firmware version you are using today. Users that continues to use the ezsp adapter will for now simply get a warning in their logs that they are using a deprecated adapter, however it will not stop working.

Note! If you have a EFR32MG12/MGM12 series or EM35x/EM35xx or ETRX35x based adapter then you need to buy a newer adapter. You need at least EFR32MG13/MGM13 series to be able to upgrade to EmberZNet 7.4.x.x firmware. So you preferably want to migrate to newer Silicon Labs based Zigbee Coordinator then you should consider getting an EFR32MG2x based USB radio dongle (EFR32MG21 or EFR32MG24 today, or EFR32MG26 in the future), at least if you plan on continuing to use Silicon Labs based Zigbee adapters, though technically you can even upgrade EFR32MG13 with EmberZNet 7.4.x.x firmware (but probably not to EmberZNet 7.5.x.x firmware when that comes).

For reference see:

PS: Note that "Deprecated" does not mean that the ezsp adapter will be removed yet, instead it means you are discouraged from using it as it is being phased out and replaced by the newer ember adapter (which is not compatible with older firmware or all hardware).