Zigbee - Update ezsp driver to ember

Follow-up to the conversation regarding the migration required for Zigbee dongles linked to the ezsp driver.

:warning: I think an automatic migration is dangerous and I prefer that users switch themselves, notably because of the firmware that needs to be updated.

I was thinking of doing the following on Gladys’s ZIgbee2Mqtt configuration page

  • replace ITead Sonoff Zigbee 3.0 USB Dongle Plus V2 model \"ZBDongle-E\" with Sonoff Zigbee 3.0 USB Dongle Plus V2 model \"ZBDongle-E\" (driver ezsp deprecated)
  • add an entry Sonoff Zigbee 3.0 USB Dongle Plus V2 model \"ZBDongle-E\" (driver emberznet)
  • check the firmware version installed on the dongle (accessible in the topic zigbee2mqtt/bridge/info)
  • if the version is < 7.4.x, disable the emberznet option and display a message saying « You should update your Zigbee dongle’s firmware, here is the procedure to follow:  »
  • if the version is >= 7.4.x, display the message « You should update the driver used by z2m by selecting in the list above Sonoff Zigbee 3.0 USB Dongle Plus V2 model \"ZBDongle-E\" (driver emberznet) » with maybe a link to a Gladys doc that explains the why and impacts

Changing the model and saving by the user updates the configuration (without impact on the network/link with devices) => to be verified

:thinking: Problem, there are 6 dongles in this case.

:thinking: I don’t know how to handle the case for a new installation, as the firmware version information is not accessible

Thanks for investigating @cicoub13!

I agree! Stability is the most important thing.

You can put a yellow message that appears above if the user selects the driver « Ember »: « Warning, your dongle must have firmware version > XX, here is the procedure to check your firmware version: XXXXXX »

1 Like

@henrik_Jensen @Xenicle @Mastho @tellier Would that work for you?

Hi @cicoub13,

Yes, it’s pretty clear to me!

1 Like

Hello, that would be great!

1 Like

Hello,

Was this Evo ever delivered in the end?

I don’t know whether I should flash my ZBDONGLE-E; I’m afraid it might no longer be recognized in Gladys.
The dongle loses devices under zigbee2mqtt fairly regularly and it’s annoying to have to redo the pairing, especially with the ZBMINI-L2 modules that are in the flush-mounted box…
Otherwise there’s the option of buying the ZBDONGLE-P, but it can now only be found second-hand.

Hello. Indeed, I haven’t finished the development, because you need to take into account all cases so as not to update the driver while the firmware isn’t up to date.

But you can absolutely:

serial:
    adapter: ember
  • restart the Zigbee container docker restart gladys-z2m-zigbee2mqtt

Okay great, I wasn’t sure. I’ll try that then, thank you very much.

I bought a dongle-P fairly recently on Amazon (to test the migration to Zigbee2mqtt 2.x): SONOFF ZigBee 3.0 USB Dongle Plus, TI CC2652P Coordinator, Universelle USB ZigBee Hub, Passerelle ZigBee pour Home Assistant : Amazon.fr: Informatique

It still looks available :slight_smile:

Hello,

As many people seem affected by this delay, I finished developing the z2m ember driver and the Docker image is available for testing here: docker pull cicoub13/gladys:z2m-ember

Details:

  • to allow people who haven’t updated, I kept the (legacy) driver ezsp
  • :warning: Migration is automatic for people who have a dongle from the list (without firmware verification). I think the majority of people won’t have any issues, but this may break setups of people who do not have firmware > 7.4.x
    @pierre-gilles we can revisit this choice
  • new installations choose their dongle from the list and have the ember driver

I’ll test all scenarios today or tomorrow on my RPI4 :construction:

PR = feat(z2m): Migrate to ember driver by cicoub13 · Pull Request #2435 · GladysAssistant/Gladys · GitHub

To update the firmware => Sonoff Dongle Flasher - SONOFF Dongle

1 Like

Hi @cicoub13 :slight_smile:

Thank you very much for this PR!!

In my opinion, we should forget automatic migration, because it will break installations, and the stability of the project is a very important value for me :slight_smile:

If the update runs while a user is on holiday, it will break their home automation in their absence, which will create a feeling in the future that Gladys « are not safe », and will push users to disable automatic updates, or even to leave Gladys.

Also, there is little point in modifying installations that are working well! :wink:

I fully understand the approach.

So, I propose instead:

  • new users with an up-to-date dongle select the dongle and ember is installed
  • new users with an older dongle select the dongle (legacy) and ezsp is installed (to remain compatible with dongles that are not up to date)
  • existing users remain on the ezsp driver and can change in the dongle selector to install ember
3 Likes

That’s what I was seeing! It’s perfect! :slight_smile:

Should I add information to explain it here Gérez ses appareils Zigbee dans sa domotique avec une clé USB Zigbee et Zigbee2mqtt | Gladys Assistant ?

Yes, totally!

Proposal for the documentation docs(z2m): Add warning about ember dongles by cicoub13 · Pull Request #333 · GladysAssistant/v4-website · GitHub

The Docker image and the PR for the dev part are ready (without automatic migration)

Tested this morning on RPI4

  • from an original installation with a Sonoff Dongle-E on ezsp
  • installation of the new image that supports the ember driver and boots :white_check_mark:
  • migration of data into the database (to keep the legacy eszp driver) :white_check_mark:
  • in the UI, choosing the new ember driver => installation of the configuration and restart :white_check_mark:
4 Likes

Hi @cicoub13 :slight_smile:

Tested this morning on Beelink S13 + Sonoff ZBDongle-E!

It’s a good thing we didn’t enable automatic updates, because on my setup the move to Ember doesn’t work (firmware too old, even on a dongle bought in 2025!):

[2026-02-20 09:00:00] info: 	z2m: Starting zigbee-herdsman (7.0.4)
[2026-02-20 09:00:00] info: 	zh:ember: Using default stack config.
[2026-02-20 09:00:00] info: 	zh:ember: ======== Ember Adapter Starting ========
[2026-02-20 09:00:00] info: 	zh:ember:ezsp: ======== EZSP starting ========
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control.
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: Serial port opened
[2026-02-20 09:00:00] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-02-20 09:00:01] info: 	zh:ember:uart:ash: ======== ASH connected ========
[2026-02-20 09:00:01] info: 	zh:ember:uart:ash: ======== ASH started ========
[2026-02-20 09:00:01] info: 	zh:ember:ezsp: ======== EZSP started ========
[2026-02-20 09:00:01] error: 	z2m: Error while starting zigbee-herdsman
[2026-02-20 09:00:01] error: 	z2m: Failed to start zigbee-herdsman
[2026-02-20 09:00:01] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2026-02-20 09:00:01] error: 	z2m: Exiting...
[2026-02-20 09:00:01] error: 	z2m: Error: Adapter EZSP protocol version (12) is not supported by Host [13-18].
    at EmberAdapter.emberVersion (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1408:19)
    at EmberAdapter.initEzsp (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:670:9)
    at EmberAdapter.start (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1539:24)
    at Controller.start (/app/node_modules/.pnpm/zigbee-herdsman@7.0.4/node_modules/zigbee-herdsman/src/controller/controller.ts:143:29)
    at Zigbee.start (/app/lib/zigbee.ts:70:27)
    at Controller.start (/app/lib/controller.ts:101:13)
    at start (/app/index.js:149:5)
Using '/app/data' as data directory

Otherwise, the PR works as intended, the update wasn’t automatic, I had to trigger the update manually!

However, I wonder if the update experience could be improved, because as it stands there’s no way to test the update without access to the logs — it’s very obscure for the user.

I wonder if there would be a way to access this error to display it in the UI?

Error: Adapter EZSP protocol version (12) is not supported by Host [13-18].

The solution could be simply to monitor the Z2M logs at startup like we do for updates with Watchtower (Gladys/server/lib/system/system.installUpgrade.js at master · GladysAssistant/Gladys · GitHub), and parse the logs to display errors.

What do you think? :slight_smile:

Thanks again for the PR otherwise, it does the job perfectly :raising_hands:

1 Like

If I remember correctly, you can retrieve the firmware version in zigbee2mqtt/bridge/info

So we could check the version and display a warning message or even block the selection of the Ember driver.

I’m looking into the possible options.

2 Likes

I pushed a slightly larger commit to:

  • retrieve firmware information
  • return them to the frontend in the status
  • add a check in the frontend (driver = ember + firmware < 7.4.X)
  • display a warning message suggesting to update the firmware (I can change the message if needed)

Docker image is being built :hourglass_not_done:

3 Likes