Multiprotocol (Thread) support with SkyConnect with Z2M

Hi all,

I am using SkyConnect and Z2M at the moment and all is well. I’d like to use Thread at the same time as Z2M on the same SkyConnect.

When I’ve enabled multiprotocol support in HASS (I’m using HA Green) I can get Thread/Matter working fine but Z2M fails to start.

Is this a supported config? Everything I’ve read has pointed to using SkyConnect with multiprotocol configured for ZHA (rather than Z2M) and Thread.

Thanks - Steve

Hello same problem for me. It seems not working.
In the logs of Sylab addon I see:

[09:02:41] INFO: The otbr-web is disabled.
s6-rc: info: service mdns: starting
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service mdns successfully started
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/check-cpcd-shm.sh
[09:02:41] INFO: Starting mDNS Responder...
Default: mDNSResponder (Engineering Build) (Jan 24 2024 17:58:11) starting
cont-init: info: /etc/cont-init.d/check-cpcd-shm.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service banner: starting

-----------------------------------------------------------
 Add-on: Silicon Labs Multiprotocol
 Zigbee and OpenThread multiprotocol add-on
-----------------------------------------------------------
 Add-on version: 2.4.4
 You are running the latest version of this add-on.
 System: Home Assistant OS 12.0  (aarch64 / raspberrypi4-64)
 Home Assistant Core: 2024.2.5
 Home Assistant Supervisor: 2024.02.1
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service universal-silabs-flasher: starting
[09:02:43] INFO: Flashing firmware is disabled
s6-rc: info: service universal-silabs-flasher successfully started
s6-rc: info: service cpcd-config: starting
[09:02:45] INFO: Generating cpcd configuration.
s6-rc: info: service cpcd-config successfully started
s6-rc: info: service cpcd: starting
[09:02:45] INFO: Starting cpcd...
WARNING in function 'main' in file /usr/src/cpc-daemon/main.c at line #186 : Running CPCd as 'root' is not recommended. Proceed at your own risk.
[09:02:45:554778] Info : [CPCd v4.3.1.0] [Library API v3] [RCP Protocol v4]
[09:02:45:554945] Info : Git commit: 133b29678b3d0bc7578e098d2f46b4d5bcd2ebb4 / branch: 
[09:02:45:554949] Info : Sources hash: ff8300587e7e4ab1def7a89a272c0baef32f9eb3bff9b0ba06b94e655d652367
[09:02:45:554966] WARNING : In function 'main' in file /usr/src/cpc-daemon/main.c at line #186 : Running CPCd as 'root' is not recommended. Proceed at your own risk.
[09:02:45:554999] Info : Reading cli arguments
[09:02:45:555009] Info : /usr/local/bin/cpcd 
[09:02:45:562837] Info : Reading configuration
[09:02:45:562857] Info :   file_path = /usr/local/etc/cpcd.conf
[09:02:45:562860] Info :   instance_name = cpcd_0
[09:02:45:562863] Info :   socket_folder = /dev/shm
[09:02:45:562866] Info :   operation_mode = MODE_NORMAL
[09:02:45:562868] Info :   use_encryption = false
[09:02:45:562871] Info :   binding_key_file = /etc/binding-key.key
[09:02:45:562873] Info :   stdout_tracing = false
[09:02:45:562875] Info :   file_tracing = false
[09:02:45:562878] Info :   lttng_tracing = false
[09:02:45:562880] Info :   enable_frame_trace = false
[09:02:45:562882] Info :   traces_folder = /dev/shm/cpcd-traces
[09:02:45:562884] Info :   bus = UART
[09:02:45:562887] Info :   uart_baudrate = 460800
[09:02:45:562890] Info :   uart_hardflow = false
[09:02:45:562892] Info :   uart_file = /dev/ttyUSB0
[09:02:45:562894] Info :   fu_recovery_pins_enabled = false
[09:02:45:562897] Info :   fu_connect_to_bootloader = false
[09:02:45:562899] Info :   fu_enter_bootloader = false
[09:02:45:562901] Info :   restart_cpcd = false
[09:02:45:562904] Info :   application_version_validation = false
[09:02:45:562906] Info :   print_secondary_versions_and_exit = false
[09:02:45:562908] Info :   use_noop_keep_alive = false
[09:02:45:562911] Info :   reset_sequence = true
[09:02:45:562913] Info :   stats_interval = 0
[09:02:45:562915] Info :   rlimit_nofile = 2000
[09:02:45:562918] Info : ENCRYPTION IS DISABLED 
[09:02:45:562920] Info : Starting daemon in normal mode
[09:02:45:580582] Info : Connecting to Secondary...
[09:02:47:581071] Info : Failed to connect, secondary seems unresponsive
[09:02:47:581103] Info : Connecting to Secondary...
[09:02:49:581382] Info : Failed to connect, secondary seems unresponsive
[09:02:49:581422] Info : Connecting to Secondary...
[09:02:51:581651] Info : Failed to connect, secondary seems unresponsive
[09:02:51:581684] Info : Connecting to Secondary...
[09:02:53:581851] Info : Failed to connect, secondary seems unresponsive
[09:02:53:581884] Info : Connecting to Secondary...
[09:02:55:582141] Info : Failed to connect, secondary seems unresponsive
[09:02:55:582189] Info : Connecting to Secondary...
[09:02:57:582402] Info : Failed to connect, secondary seems unresponsive
[09:02:57:582435] Info : Connecting to Secondary...

My configuration:

device: >-
  /dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_5085f9eb1e7ded1194bfbd6c4fc49859-if00-port0
baudrate: "460800"
flow_control: false
autoflash_firmware: false
cpcd_trace: false
otbr_enable: true
otbr_log_level: notice
otbr_firewall: true

Then Z2M refuse to start:

Zigbee2MQTT:error 2024-02-27 22:07:52: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2024-02-27 22:07:52: Exiting...
Zigbee2MQTT:error 2024-02-27 22:07:53: Error: Failure to connect
    at Ezsp.connect (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/ezsp.ts:364:19)
    at Driver.startup (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/driver.ts:158:13)
    at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:132:29)
    at Zigbee.start (/app/lib/zigbee.ts:60:27)
    at Controller.start (/app/lib/controller.ts:109:27)
    at start (/app/index.js:107:5)

I tried with port tcp://core-silabs-multiprotocol:9999 and Z2M restart always wihtout message.

Port 9999 is not open on my HA box:

$ nmap -Pn 192.168.1.64
Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-02 09:06 CET
Nmap scan report for ha-server-pi-eth.home (192.168.1.64)
Host is up (0.012s latency).
Not shown: 993 closed tcp ports (conn-refused)
PORT     STATE SERVICE
53/tcp   open  domain
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
5050/tcp open  mmcc
8086/tcp open  d-s-n

Nmap done: 1 IP address (1 host up) scanned in 0.98 seconds

My z2M configuration:

data_path: /config/zigbee2mqtt
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: "-d -d"
  log: false
mqtt:
  server: mqtt://192.168.1.64:1883
  base_topic: zigbee2mqttHA
  user: mqtt
  password: xxxxxxx
serial:
  adapter: ezsp (try with or without)
  port: tcp://core-silabs-multiprotocol:9999
  baudrate: 460800 (try with 115200)
 rtscts: true (try with or without)
advanced:
  channel: 20
  log_level: debug

Any help would be greatly appreciated

You must open the port in the Silicon Labs Multiprotocol add-on

Oooh ? is that not the default value ?

Will try that.

It does exactly the same errors:

[09:35:43] INFO: Preparing to start...
[09:35:43] INFO: Socat not enabled
[09:35:45] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:error 2024-03-02 09:36:22: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2024-03-02 09:36:22: Failed to start zigbee
Zigbee2MQTT:error 2024-03-02 09:36:22: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2024-03-02 09:36:22: Exiting...
Zigbee2MQTT:error 2024-03-02 09:36:22: Error: Failure to connect
    at Ezsp.connect (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/ezsp.ts:373:19)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at Driver.startup (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/driver.ts:163:13)
    at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:132:29)
    at Zigbee.start (/app/lib/zigbee.ts:62:27)
    at Controller.start (/app/lib/controller.ts:109:27)
    at start (/app/index.js:107:5)

@francisp, if you have a working configuration (skyconnect + z2M + Sylab multiprotocol), can you please post you Sylab add config and your z2M config, so that I will be able to compare.

Thank you in advance.

Just tried to start it (it is on my test system), does not work any more. Restored multiprotocol 2.3.1, starting again. So it seems a problem with the latest multiprotocol add-on.

1 Like

Thank you for your answer.

Another question: do I need to flash the Skyconnect before trying to install the multiprotocol ?

This add-on allows you to use Zigbee and OpenThread protocol simultaneous on a single Silicon Labs based radio. The radio needs the RCP Multi-PAN firmware installed to support multiple IEEE 802.15.4 Personal Area Networks (PAN)

This message says it is necessary to install the Multi-PAN firmware.
It comes from official github page here: addons/silabs-multiprotocol at master · home-assistant/addons · GitHub

I did, but I’m not using a skyconnect but a ZB-GW04 v1.2

In a general way I understand that firmware in the Skyconnect should be aligned with the Silicon Labs Multiprotocol release.

Click on the release note:
Capture d’écran 2024-03-02 à 10.29.57

And you will see:

2.4.4
Revert back to Silicon Labs Gecko SDK 4.3.1 while 4.4.0 instability is investigated.
Backport firmware modifications for improved stability.
Bump universal SiLabs flasher to 0.0.17
2.4.3
⚠️ Zigbee2MQTT does not yet support this version of the Gecko SDK. Do not update if you are using Z2M! ⚠️.
This is a re-release of 2.4.0 that is compatible only with Home Assistant Core 2024.1.0 and above.
2.4.2
Bump universal SiLabs flasher to 0.0.16 so that firmware is successfully installed on startup.

that means (it is really not obvious) that you USB stick should flashed to 4.3.1 PAN firmware which is available here: GitHub - NabuCasa/silabs-firmware: Silicon Labs firmware for Yellow and SkyConnect