SkyConnect & Zigbee2Mqtt

Do you experience any ZigBee event drops in this configuration? I tried the default baud rate and found that sometimes it misses some events sent by my devices.

Mine is still set to 460800 and runs Z2MQTT just fine as far as I can tell…

May I ask for your YAML @CommanderROR from the zigbee2mqtt addon?

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: {}
serial:
  port: tcp://core-silabs-multiprotocol:9999
  adapter: ezsp

That’s mine and I’m not able to start it :frowning:
I tried to change the baudrate as well. But no change. Do I have to somehow disable ZHA? Zigbee is working fine there in multi-pan setup…

That’s the error code within the zigbee2mqtt log:

[12:40:58] INFO: Preparing to start...
[12:40:58] INFO: Socat not enabled
[12:40:59] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:info  2023-12-28 12:41:05: Logging to console and directory: '/config/zigbee2mqtt/log/2023-12-28.12-41-05' filename: log.txt
Zigbee2MQTT:info  2023-12-28 12:41:05: Starting Zigbee2MQTT version 1.34.0 (commit #unknown)
Zigbee2MQTT:info  2023-12-28 12:41:05: Starting zigbee-herdsman (0.25.0)
Zigbee2MQTT:error 2023-12-28 12:41:25: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2023-12-28 12:41:25: Failed to start zigbee
Zigbee2MQTT:error 2023-12-28 12:41:25: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2023-12-28 12:41:25: Exiting...
Zigbee2MQTT:error 2023-12-28 12:41:26: Error: Connection not initialized
    at Ezsp.execCommand (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/ezsp.ts:551:19)
    at Ezsp.version (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/ezsp.ts:349:35)
    at Driver.startup (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/driver.ts:140:25)
    at EZSPAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/adapter/ezspAdapter.ts:172:16)
    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:101:27)
    at start (/app/index.js:107:5)

Yes. Both cannot run concurrently using the same adapter.

You do indeed have to disable or delete Zigbee via ZHA of course. They can’t run in parallel. Setting everything up again is quite annoying, but Zigbee2mqtt has been rock solid for me after initial setup.

Okay. Disabled the ZHA integration. But still no change.
Can you please still share your zigbee2mqtt yaml. thanks

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: {}
serial:
  port: tcp://core-silabs-multiprotocol:9999
  adapter: ezsp

Maybe your Sky connect has a wrong Firmware or something? I remember having some trouble getting it to run when I initially set it up. I have the multiprotocol add-on installed and running

Hey folks, new HA user here.

I invested in a “Home Assistant Green” unit with SkyConnect, and was struggling with the same error as OP.

After some troubleshooting/reading, I finally got it working (as per some suggestions in responses to this thread too).

Another helpful answer that pointed me in the right direction is here

Anyways, to cut to the chase I did 2 things.
Firstly I used the device-id path as suggested at the very top of this page.
That didn’t solve it though.
Then I added adapter: ezsp to the serial config, and that did the job :+1:t2:
I’m now in business, the Zigbee2MQTT add-on has successfully started after that.

3 Likes

Hi, having trouble getting SkyConnect to work with Z2M. My goal is to have the SkyConnect replace the Sonoff-P and run multiprotocol: zigbee and thread.

If I can’t get SkyConnect to work in multiprotocol I’d also be ok with using the Sonoff-P for Zigbee and the SkyConnect for Thread. But ideally since the SkyConnect can do both I’d prefer it do both.

I had Z2M working with a Sonoff-P. It is still plugged in if that matters at /dev/ttyUSB0.

I renamed configuration.yaml to .bak in the config/zigbee2mqtt directory, also renamed coordinator_backup.json to .bak.

SkyConnect is flashed to latest multiprotocol firmware.

Z2M config updated to:

serial:
port: tcp://core-silabs-multiprotocol:9999
adapter: ezsp

and I am able to ping core-silabs-multiprotocol:9999 from the HomeAssistant console.

I have tried rebooting PC that HomeAssistant is running on multiple times.

When I try to start Z2M I get the following error:

[07:09:13] INFO: Preparing to start...
[07:09:14] INFO: Socat not enabled
[07:09:14] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:info  2024-01-15 07:09:18: Logging to console and directory: '/config/zigbee2mqtt/log/2024-01-15.07-09-18' filename: log.txt
Zigbee2MQTT:info  2024-01-15 07:09:18: Starting Zigbee2MQTT version 1.35.1 (commit #unknown)
Zigbee2MQTT:info  2024-01-15 07:09:18: Starting zigbee-herdsman (0.30.0)
Zigbee2MQTT:error 2024-01-15 07:09:38: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2024-01-15 07:09:38: Failed to start zigbee
Zigbee2MQTT:error 2024-01-15 07:09:38: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2024-01-15 07:09:38: Exiting...
Zigbee2MQTT:error 2024-01-15 07:09:38: Error: Failure to connect
    at Ezsp.connect (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/ezsp.ts:277:19)
    at Driver.startup (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/driver.ts:139:9)
    at EZSPAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/adapter/ezspAdapter.ts:172:16)
    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:98:27)
    at start (/app/index.js:107:5)

And in the Silicon Labs Multiprotocol Add-On I am seeing this:

[07:14:12] INFO: Starting zigbeed...
WARNING in function 'is_endpoint_opened_reply_v5' in file /usr/src/cpc-daemon/server_core/core/protocol_v5.c at line #132 : Property-get::PROP_ENDPOINT_STATE aborted
WARNING in function 'is_endpoint_opened_reply_v5' in file /usr/src/cpc-daemon/server_core/core/protocol_v5.c at line #152 : Could not read endpoint state on the secondary
WARNING in function 'system_send_open_endpoint_ack' in file /usr/src/cpc-daemon/server_core/server/server.c at line #1044 : Failed to acknowledge the open request for endpoint #12. Bad file descriptor
otbr-agent[100690]: 49d.18:07:22.299 [C] Platform------: CPC endpoint open failed
otbr-agent[100690]: 49d.18:07:22.299 [C] Platform------: mCpcBusSpeed = 115200
otbr-agent[100690]: 49d.18:07:22.299 [C] Platform------: Init() at radio_spinel.cpp:125: Failure
close cpc endpoint: Resource temporarily unavailable
[07:14:13] INFO: otbr-agent ended with exit code 1 (signal 0)...

I’ve done my best to implement all the guidance I’ve been able to find and still not working.

Can anyone give me advice on what to try to fix this?

silabs-multiprotocol v2.4.3 may be the issue:

2.4.3 was the first version I installed so I don’t have a backup to go to. I tried looking for the Docker container to do a manual Add-On install.

I believe this is the correct Docker location: Docker

I don’t know yet how to do a manual Add-On install so if/when I do figure it out I will reply if it fixes the issue.

I hope you find a ‘solution’ that works for you. That said, are you sure you have
‘done my best to implement all the guidance I’ve been able to find’
See below.

Experimental
The adapters below are experimental, don't use these if you want a stable setup.

Based on Silicon Labs EFR32MG2x/MGM21x and EFR32MG1x/MGM1x series

I flashed the SkyConnect back to Zigbee only using the Silicon Labs Flasher, and it is working properly with Z2M.

LQI signal strength numbers are higher than with the Sonoff -P dongle, but both worked fine.

So now the trick is to figure out how to “downgrade” to Silicon Labs Multiprotocol 2.4.2 or wait until it is fixed in a future update.

Can anyone here help me with downgrading to an earlier Add-On or point me to instructions? I have looked and not able to find them.

Thank you,

Yes, I read that, but I appreciate the reminder.

It seemed like a number of people had it working with no problems so I took that as encouraging.

I would like to have both Zigbee and Thread/Matter and I have a Sonoff -P dongle and the SkyConnect dongle.

What would you recommend if I would like to to run both protocols as stable as possible?

I’ve not messed around with the transmitter power setting for the coordinator. I’m not sure I think that increasing the power on only one side of the ‘conversation’ makes sense (aka, there is not way to increase transmit power on most routers and end devices).

That said, I think I noted that the default transmit power level is higher by default on the -E dongle vs. the -P dongle. Might be a cause of why you see different LQI values between the two. Why, they are set to different defaults??? Mystery to me.

I’m not a big fan of using Home Assistant’s ‘OS supervisor’ to run it’s kinda-docker containers within Home Assistant. Never made sense to me that your zigbee or other stuff in containers should ‘go down’ if your Home Assistant crashes, or during upgrades.

So I run docker on linux, then run each of my ‘systems’ in parallel under ‘real’ Docker. Minimum three docker containers in parallel are:
Mosquitto MQTT Broker
Home Assistant
Zigbee2MQTT

I run a number of other systems in containers as well, the communicate with Home Assistant via API or MQTT, very solid.

I run a 2nd Zigbee2MQTT docker container with it’s own Sonoff-P dongle, this where I test new devices and firmware upgrades before the ‘real test’ of putting it on the production Zigbee2MQTT where the ‘significant other’ will ‘explain to me’ whether it is working or not :wink:

While I have not explored the Home Assistant Matter ‘server’ code, I believe you can find a couple people running it in isolated Docker containers in parallel with Home Assistant. Again, this seem the most stable way, especially with very new/raw code such as in the SkyConnect and Matter code.

Good hunting!

I increased transmit power in the Z2M config.yaml as shown here: Adapter settings | Zigbee2MQTT

advanced:
  # Optional: Transmit power setting in dBm (default: 5).
  # This will set the transmit power for devices that bring an inbuilt amplifier.
  # It can't go over the maximum of the respective hardware and might be limited
  # by firmware (for example to migrate heat, or by using an unsupported firmware).
  # For the CC2652R(B) this is 5 dBm, CC2652P/CC1352P-2 20 dBm.
  transmit_power: 5

I set it to 20, the setting was not present before and since the Sonoff -P is based on the CC2625P I would assume it was already using the default setting of 20.

After restarting the LQI numbers did change, some up, some down, but not significantly so I’m guessing it was already at 20.

Thanks for the tip, good thing to check out.

Sonoff -P dongle is now back to handling Zigbee via Z2M. I can confirm this is working as it was before changing anything.

SkyConnect is now only handling Thread/Matter using the Open Thread Border Router Add-On to flash Thread/Matter only firmware onto the SkyConnect.

I am able to see the Thread/Matter network in HA, and I can log onto the OTBR web interface. I can also see the Matter network on the nanoleaf iOS app, but it will not allow me to add the bulb to the Matter network. This may be a nanoleaf issue as other users have reported that if they use an Android phone then it will add.

Therefore, based on what I can tell, Z2M is working on the Sonoff -P and Thread/Matter is working on the SkyConnect.

1 Like

That setting for the coordinator device reminds of two old (and probably no longer PC) comedy skits :wink: :

Spinal Tap … turn it up to 11.

Garrett Morris … news for the hearing impaired.

Hi all, since I want to use a TRV602 with Zigbee (not supported by SkyConnect v1.0) I want to switch to Zigbee2MQTT using my SkyConnect stick. Is that easily possible?

This worked for my SkyConnect too, thank you so much!