itead / Sonoff_Zigbee_Dongle_Firmware

155 stars 18 forks source link

[REQUEST] EmberZNet 7.4.x.x Zigbee Coordinator NCP firmware image for Sonoff Zigbee 3.0 USB Dongle Plus V2 (model “ZBDongle-E”) by ITead? #28

Open Hedda opened 1 month ago

Hedda commented 1 month ago

@Daniel-zhan-itead @liangjia2019 @guozi7788 I like to suggest/recommend that ITead 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 “Sonoff Zigbee 3.0 USB Dongle Plus V2” (model “ZBDongle-E”, a.k.a. "Dongle-E”) as an optional firmware update (and required for Zigbee2MQTT).

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 zbdonglee 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.

Daniel-zhan-itead commented 2 weeks ago

@Hedda Our team @liangjia2019 has developed a new ZBDongle-E Silicon Labs EmberZNet NCP Zigbee Coordinator firmware with a standard EZSP (EmberZNet Serial Protocol) interface.

Please refer to the link below: https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/tree/master/Dongle-E/NCP_7.4.1

Feel free to contact us if any issues with this new firmware are found.

Hedda commented 2 weeks ago

@Daniel-zhan-itead @@liangjia2019 Nice! However wondering EmberZNet NCP 7.4.1.0 version and not newer 7.4.3.0 release?

FYI, will post a comment to Home Assistant's ZHA integration community to inform users there:

PS: @Daniel-zhan-itead @liangjia2019 If you have not heard of it yet then you should read and consider utilizing the new common "Silicon Labs firmware builder" automated build system from Home Assistant / Nabu Casa developers to create reproducible builds of Zigbee and Thread firmware images. See feature request:

Hedda commented 2 weeks ago

@Daniel-zhan-itead @@liangjia2019 I forgot, but you also need to release EmberZNet Zigbee NCP 7.3.x.0 version as well for smooth migration, at least for Zigbee2MQTT migration when already running EmberZNet Zigbee NCP versions older than 7.3.x.x

Please see -> https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/issues/31

Note! It should be EmberZNet Zigbee NCP 7.3.x.x (and EmberZNet Zigbee NCP 7.4.x.x) firmware with software flow control only.

Suggest check out darkxst's config -> https://github.com/darkxst/silabs-firmware-builder/blob/main/manifests/zbdonglee.json

As I understand, while you need to have upgraded to at least EmberZNet 7.4.x.x firmware version or later if you want to install Zigbee2MQTT from scratch today with their new ”ember” driver/adapter in Zigbee2MQTT, from what I read the recommendation is slighly different if already running Zigbee2MQTT with their old ”ezsp” driver/adapter in Zigbee2MQTT.

If want to upgrade when using Zigbee2MQTT then it is recommended to first upgrade to EmberZNet NCP 7.3.x.x firmware version while still using the old ”ezsp” driver/adapter as it sounds like migration to the new ”ember” driver will go smoother if already have had the old ”ezsp” driver/adapter working EmberZNet NCP 7.3.x firmware version while still using the old ”ezsp” driver/adapter in Zigbee2MQTT. Only after already upgraded to EmberZNet NCP 7.3.x.x firmware version and get it working with that should existing Zigbee2MQTT users upgrade to EmberZNet NCP 7.3.x firmware version.

Suggest read and ask more specific questions in Zigbee2MQTT’s own community forum on GitHub after you done more research. The multi-step process you need to 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 read and try following this article regarding migrating Zigbee2MQTT from the ezsp adapter to the new ember adapter:

If you require assistance with Zigbee2MQTT then report as issue or discuss directly on Zigbee2MQTT's repository on GitHub:

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.

For reference see:

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