grobasoz / zigbee-firmware

ZigBee Development Firmware
GNU General Public License v3.0
104 stars 22 forks source link

[REQUEST] Silicon Labs Zigbee EmberZNet NCP 7.1.x.x firmware images (for developers to test EZSP v9) #25

Closed Hedda closed 1 year ago

Hedda commented 2 years ago

Silicon Labs Gecko SDK (GSDK) 4.1.0 released with Zigbee EmberZNet SDK 7.1.0.0 so like to request Zigbee NCP firmware images.

Believe that currently is only wanted by developers for testing EZSP v9 (EmberZNet Serial Protocol version 9), so not for end-users.

https://github.com/SiliconLabs/gecko_sdk/releases

https://www.silabs.com/documents/public/release-notes/emberznet-release-notes-7.1.0.0.pdf

grobasoz commented 2 years ago

Hi @Hedda - good to hear from you again... I'm busy installing the new frameworks and will have a look at the code when time permits, Gary.

Hedda commented 2 years ago

FYI, depending on Zigbee application implementation the end-user use it will be important for end-users to know EmberZNet SDK 7.1.0 firmware added an update to EZSP v9 (EmberZNet Serial Protocol version 9) which might break some Zigbee application implementation if a user upgrades to so Silabs Zigbee EmberZNet SDK 7.1.0.0 NCP firmware before the Zigbee application developers have added support for EZSP v9.

In general, the EZSP v9 protocol version largely remains the same as that of EZSP v8 protocol version, but I understand that there is a breaking change in some responses so that needs implementation to keep compatibility, (like adding sl_Status enum based on sl_Status.h from Silicon Labs Gecko SDK v4.1.0).

So for now would recommend that end-users do not flash the very latest EmberZNet 7.1.x firmware and instead use no higher than 7.0.x firmware unless they know that the developers of the Zigbee application implementation they use already added support for EZSP v9 protocol version. Again, that is only until EZSP adapter implementation is updated to support additions to EZSP v9.

Developers of Zigbee application implementation need to look at EZSP Reverence guide Rev 4.4 and 4.3 + EZSP Reference Guide for 7.0.0 with the changes from 6.10.x highlighted is here:

https://web.archive.org/web/20220401230237/https://www.silabs.com/documents/public/user-guides/ug100-ezsp-reference-guide.pdf

and for 7.1.0 with the changes from 7.0.0 > 7.1.0 hightlighted is here (until the next version):

https://www.silabs.com/documents/public/user-guides/ug100-ezsp-reference-guide.pdf

PS: From the related pull request for the bellows radio library in zigpy I gather that key new feature is adding sl_Status enum based on sl_Status.h from Gecko SDK v4.1.0 so developers of zigpy based Zigbee applications should see https://github.com/zigpy/bellows/pull/462

MattWestb commented 2 years ago

If the host system is well implanted EZSP as Bellows have it shall not being any problem then the procedure is first resetting the NCP by software command and asking for EZSP version with one very old EZSP version command. Then the host system can configure the highest possible protocol that both side is supporting. Example one old EM357 with EZSP 4 bellows is using EZSP 4 and if the same device is using one current firmware its using EZSP 8. If the NCP / RCP+zbeed is having higher version the host shall using the highest is supporting (V8) and all shall being well.

Hedda commented 2 years ago

If the host system is well implanted EZSP as Bellows have it shall not being any problem then the procedure is first resetting the NCP by software command and asking for EZSP version with one very old EZSP version command. Then the host system can configure the highest possible protocol that both side is supporting. Example one old EM357 with EZSP 4 bellows is using EZSP 4 and if the same device is using one current firmware its using EZSP 8. If the NCP / RCP+zbeed is having higher version the host shall using the highest is supporting (V8) and all shall being well.

Wondering if zigbee-herdsman (Zigbee2MQTT/IoBroker) and com.zsmartsystems.zigbee (openHAB ZigBee Binding) does so too?

https://github.com/Koenkk/zigbee-herdsman/issues/319

https://github.com/zsmartsystems/com.zsmartsystems.zigbee/issues/1332

MattWestb commented 2 years ago

Was cooking one RCP for Billy with GSDK 4.1 and unpatched ZHA its complaining but looks working OK:

Logger: bellows.ezsp
Source: /usr/local/lib/python3.9/site-packages/bellows/ezsp/__init__.py:111
First occurred: 18:11:56 (1 occurrences)
Last logged: 18:11:56

Protocol version 9 is not supported, using version 8 instead

And in the log:

2022-06-30 18:11:57 INFO (MainThread) [bellows.zigbee.application] EmberZNet version: 7.1.0.0 build 0

The patched bellows with V9 support is coming in the next HA release.

Hedda commented 2 years ago

@grobasoz Would be great if you have the possibility to also provide EmberZNet Zigbee NCP 7.1.0.0 images to @kirovilya who is developing the EZSP adapter implementation for zigbee-herdsman which is used by Zigbee2MQTT and IoBroker applications, noting that the Zigbee NCP 7.1.0.0 images are currently still only wanted for development to ensure compatibility with EZSP 9 (EmberZNet Serial Protocol version 9). See:

https://github.com/Koenkk/zigbee-herdsman/issues/319

FYI, kirovilya has previously mentioned that he owns Elelabs ELU013 stick and Elelabs ELR023 shield (both based on EFR32MG13P), an Defaro Sprut Stick 2 Pro (based on EFR32MG21), the ZB-GW04 USB dongle (a.k.a. easyiot stick) which uses EFR32MG21 based "SM-011 v1.0" Zigbee module from CoolKit-Technologies, plus he is as well waiting for the arrival of the new Sonoff-branded “ZBDongle-E” from ITead (also based on EFR32MG21).

grobasoz commented 2 years ago

@Hedda - Sure - will work on them over the weekend... Bearing in mind I'm not too convinced 7.1.0 is fully working. I haven't had time to test on a "live" system... Will try do so over the weekend...

MattWestb commented 2 years ago

I hope Silabs have fixing MG13 support then MG1B is not working (comport settings looks being broken but the NCP is allocating NVR is its living) but MG1P and MG21 looks working but not all versions like Silabs MG21 Light module IKEA is using.

Hedda commented 2 years ago

FYI; Silicon Labs has now released Gecko SDK (GSDK) 4.1.1.0 with Zigbee EmberZNet SDK 7.1.1.0 (7.1.1) bug-fix release *

https://www.silabs.com/documents/public/release-notes/emberznet-release-notes-7.1.1.0.pdf

https://github.com/SiliconLabs/gecko_sdk/releases

*I say that it is a bug-fix release but there was one new feature:

AN1323: Configuring Antenna Diversity for Zigbee EmberZNet 7.0 and Higher

https://www.silabs.com/documents/public/application-notes/an1323-configuring-antenna-diversity-zigbee7.pdf

kirovilya commented 2 years ago

I have now updated the firmware in ZB-GW04 USB dongle (a.k.a. easyiot stick) to 7.1.1-17 EZSP v9 from here. after some manipulations in code, I managed to run Z2M on this firmware and it works. devices connect, manage and send data. By the way, the Touchlink also works. image image image

small code changes will be posted a little later

Loic691 commented 2 years ago

Confirmed that it's working with Zigbee2Mqtt 1.28.0 or upper with 7.1.1 firmware. Touchlink also works Binding also works

Loic691 commented 1 year ago

Hi all Where can we find the new ezsp 7.2 firmware ?

MattWestb commented 1 year ago

https://github.com/SiliconLabs/gecko_sdk is the Silabs GIT for GSDK and EZSP only install Simplicity studio 5 and installing the GSDK and you can build firmware for your device if you is having enough knowledge. Or you is making one friendly request from the devs cooking one for you device.

Hedda commented 1 year ago

FYI, Silicon Labs Gecko SDK (GSDK) Version 4.1.4.0 is a bug-fix release that contains Zigbee EmberZNet SDK 7.1.4.0

https://github.com/SiliconLabs/gecko_sdk/releases/tag/v4.1.4

https://www.silabs.com/documents/public/release-notes/emberznet-release-notes-7.1.4.0.pdf

Silicon Labs has now also released Gecko SDK 4.2.0 with Zigbee EmberZNet SDK 7.2.0.0

https://github.com/SiliconLabs/gecko_sdk/releases/tag/v4.2.0

Any chance you could release some builds for zigpy and zigbee-herdsman developers to test?

It looks to use EZSP v9 (EmberZNet Serial Protocol version 9) same as Zigbee EmberZNet 7.1

https://www.silabs.com/documents/public/release-notes/emberznet-release-notes-7.2.0.0.pdf

New features are mostly related to Dynamic Multiprotocol and multi-PAN 802.15.4 in RCP mode:

They also added simultaneous Dual-Band and Dual-PHY for Zigbee Smart Energy on MG24/MG12:

Deprecated in release 7.2.0.0:

Loic691 commented 1 year ago

HI all, hi @kirovilya I have now updated the firmware in SONOFF USB Dongle E to 7.1.4 EZSP v9. With last Z2M all is working as in 7.1.1. I keep nevertheless (same with 7.1.1) strange behaviour with some devices which leave network randomly and disapear from Z2M GUI. Here's some description :

I never understand if these problems are Z2M, Firmware or Dongle source....

kirovilya commented 1 year ago

@Loic691 Hi. do you really have the latest z2m 1.30.2? I checked my legrand battery remote - it works fine, does not left network.

Failed to configure 'Sonde Test', attempt 3 indicates that it cannot configure reporting - this is usually done during pairing, the sensor may have time to fall asleep and therefore does not receive a command. try to wake it up by briefly pressing the pairing button until the configuration is completed.

Loic691 commented 1 year ago

@Loic691 Hi. do you really have the latest z2m 1.30.2? I checked my legrand battery remote - it works fine, does not left network.

Failed to configure 'Sonde Test', attempt 3 indicates that it cannot configure reporting - this is usually done during pairing, the sensor may have time to fall asleep and therefore does not receive a command. try to wake it up by briefly pressing the pairing button until the configuration is completed.

no 1.30.1

kirovilya commented 1 year ago

@Loic691 check with new please

Loic691 commented 1 year ago

I don't saw the last one ! Update to 1.30.2 is done Waiting so !

Loic691 commented 1 year ago

@kirovilya with 1.30.2 I can't publish state on Legrand or Hue device at least... Publish 'set' 'state' to 'Eclairage Piscine' failed: 'Error: Command 0x0004740000a1a14c/1 genOnOff.on({}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (sendZclFrameToEndpointInternal error)'

kirovilya commented 1 year ago

@Loic691 hmmm, try rejoin it. or record herdsman log

Loic691 commented 1 year ago

Humm I restart Z2M and it's now OK... Strange

Hedda commented 1 year ago

@Loic691 this is the wrong repository to post about issues with Zigbee2MQTT. Please post in zigbee-herdsman repo issue instead -> https://github.com/Koenkk/zigbee-herdsman/issues/319