SkyConnect & Zigbee2Mqtt

I did a quick check, and I’m seeing CPU Utilization ~0.5% according to the AddOn’s “Info” page.
As an FYI, the AddOn’s zigbee stack is actually arm based, and for x86 system, qemu is being used to run it, so if you have a lot of zigbee stuff going on, then maybe a little more load???

Ticking the box
‘Co-Processor Communication tracing’ fixed my CPU issues, saves me +/- 15w power consumption :slight_smile:

Interesting :thinking:. I would think turning on tracing would, if anything, increase CPU load?

Nevermind last message, it was good all night until HA 2023.03.3, then I had again high power consumption, now I switched off 'Co-Processor Communication tracing’ and the power consumption went down…

Confusing, needs more investigation

this seems to have worked for me - although cumbersome integration of Z2M and Skyconnect

Hi all,
I know that the SkyConnect Stick is still in beta but is there a timeline up to when it might be ‘fully supported’?

BR

1 Like

For those using zigbee2mqtt over SiLab’s multiprotocol (both Thread and Zigbee), be aware that both zigbee2mqtt and Thread need to be using the same RF Channel. One can configure zigbee2mqtt for the channel it is to use, but what about the Thread stack?..

Maybe there are other ways to do it, but what I did was to create a pending dataset with the new channel number and submitted it to the Thread code. Using a Pending dataset is the recommended way to change a parameter(s) in a Thread network. In the example below, I changed the channel number from 15 to 25.

First of all, I don’t (yet) have any Thread devices, so the following was done without any Thread devices being used by the Multiprotocol Thread stack.

  • Shell into the Multiprotocol Add-On container. from HAOS shell #docker exec -it addon_core_silabs_multiprotocol /bin/bash
  • fire up the otbr command line interface shell: ot-ctl (hit return a couple of times to get the > prompt)
  • Verify the state as leader: > state
    leader
  • Get the current active dataset: > active. This should show a list of parameters including the channel number. Note also the Active timestamp
> dataset active
Active Timestamp: 1
Channel: 15
Channel Mask: 0x07fff800
....

Note: the channel mask shown here allows for channels 11 thru 26 to be used.

  • Check to see if there is a pending dataset (in my case there is not one):
    > dataset pending
    Error 23: NotFound
  • Next we’ll create a “pending” dataset from a “working copy” of the “active” dataset:
    > dataset init active
  • Next, change the channel number
    > dataset channel 25
  • Set the delay timer to 30 seconds (this is the minimum)
    > dataset delay 30000
  • Change the timestamps to be higher than the one currently used in the Active dataset. In this case the number 2 will suffice:
    > dataset pendingtimestamp 2
    > dataset activetimestamp 2
  • Now commit the pending dataset:
    > dataset commit pending

After 30 seconds or so the “pending” dataset should now become the “active” dataset so check the active dataset again:
> dataset active
Active Timestamp: 2
Channel: 25
Channel Mask: 0x07fff800
....

At this point you can exit out of the ot-ctl (exit) and the Add-On container.

HA Thread Integration should eventually pick up this new dataset (it may take a restart of the integration). The way to tell, is by going to the Thread Integration, click on CONFIGURE and at the “home-assistant” border router click on the (i) symbol looking at the Active Dataset TLV. This is a long string of hex digits that is a concatenation of several TLVs. Look for the portion 0003XXXXXX (Type = x00, Length =x03, Channel number = XXXXXX). This is the individual TLV showing the channel number XXXXXX. If the new channel is 25, which is hex 19, then this TLV portion should look like 0003000019. If the old channel was channel 15, which is hex 0f, and the TLV shows 000300000f then the Thread Integration has not yet picked up the new channel assignment.

Best Regards.

2 Likes

Zigbee2MQTT depends on the zigbee-herdsman library and I believe restore from backup is one of the last showstopper features that is still missing, you can follow and help development progress here → [WIP]: EFR32 EZSP adapter implementation and test · Issue #319 · Koenkk/zigbee-herdsman · GitHub

Zigbee2MQTT itself will probably never support Thread if that is what you are asking. You can however use two different applications with a multiprotocol firmware on the adapter, meaning that you can use Zigbee2MQTT for Zigbee at the same time you are using Home Assistant’s Thread integration, but as you noted you need to manually set same channel in both applications, (so for Thread you need to set the channel in the application/integration that you use for Thread). As such there might be a bridge software for Z2M in the future.

Zigbee2MQTT and zigbee2mqtt also does not yet include native support or GUI for for Silicon Labs multiprotocol stack when using Silabs Multi-PAN RPC (Radio Co-Processor) firmware, which is not a showstopper but makes using Zigbee RPC via an adapter with Multi-PAN RPC firmware for multiprotocol support much less user-friendly, see → [REQUERST] Support for Silicon Labs multiprotocol stack when using Silabs Multi-PAN RPC (Radio Co-Processor) firmware · Issue #682 · Koenkk/zigbee-herdsman · GitHub

1 Like

Yeah I also don’t expect that to occur. To clarify, I’m currently playing around with Zigbee2MQTT using the HA Multiprotocol Add-On’s Zigbee stack , and will be using Matter for Thread devices using Multiprotocol Add-On’s Thread stack.

Guys, does anybody know how to reset Skyconnect dongle to its factory settings? I’m forced to reinstall Z2M add-on on my HA machine but before that I must be sure
that the old Skyconnect configuration has been completely removed from my HA instance.

What do you mean by:

reset Skyconnect dongle to its factory settings

Do you mean firmware reset or resetting your HA environment?

Hi all any updates, i cannot get zigbee2MQTT with skyconnect to start.

With Serial set to
port: >-
/dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_c47147d76943ed1195bf47ab2a61ed69-if00-port0
adapter: ezsp

[10:51:57] INFO: Preparing to start…
[10:51:58] INFO: Socat not enabled
[10:52:00] INFO: Starting Zigbee2MQTT…
Zigbee2MQTT:info 2023-06-25 10:52:06: Logging to console and directory: ‘/config/zigbee2mqtt/log/2023-06-25.10-52-05’ filename: log.txt
Zigbee2MQTT:info 2023-06-25 10:52:06: Starting Zigbee2MQTT version 1.31.2 (commit #unknown)
Zigbee2MQTT:info 2023-06-25 10:52:06: Starting zigbee-herdsman (0.14.117)
Error: Reset error: Error: {“sequence”:-1} after 10000ms
at /app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/uart.ts:299:23
at Queue.executeNext (/app/node_modules/zigbee-herdsman/src/utils/queue.ts:32:32)

or With Serial set to
port: >-
/dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_c47147d76943ed1195bf47ab2a61ed69-if00-port0

[10:56:12] INFO: Preparing to start…
[10:56:12] INFO: Socat not enabled
[10:56:14] INFO: Starting Zigbee2MQTT…
Zigbee2MQTT:info 2023-06-25 10:56:20: Logging to console and directory: ‘/config/zigbee2mqtt/log/2023-06-25.10-56-20’ filename: log.txt
Zigbee2MQTT:info 2023-06-25 10:56:20: Starting Zigbee2MQTT version 1.31.2 (commit #unknown)
Zigbee2MQTT:info 2023-06-25 10:56:20: Starting zigbee-herdsman (0.14.117)
Zigbee2MQTT:error 2023-06-25 10:56:40: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2023-06-25 10:56:40: Failed to start zigbee
Zigbee2MQTT:error 2023-06-25 10:56:40: Check Zigbee2MQTT fails to start | Zigbee2MQTT for possible solutions
Zigbee2MQTT:error 2023-06-25 10:56:40: Exiting…
Zigbee2MQTT:error 2023-06-25 10:56:41: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
at ZStackAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:103:27)
at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:132:29)
at Zigbee.start (/app/lib/zigbee.ts:58:27)
at Controller.start (/app/lib/controller.ts:101:27)
at start (/app/index.js:107:5)

Check your SkyConnect firmware here with another computer, and ensure it’s running the EZSP firmware.

Hi all any updates, i cannot get zigbee2MQTT with skyconnect to start.

With Serial set to
port: >-
/dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_c47147d76943ed1195bf47ab2a61ed69-if00-port0
adapter: ezsp

I thought the instructions above says this should be:

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


Assuming you want Zigbee2MQTT to use SkyConnect out-of-the-box which has a Zigbee Stack already flashed onto the SkyConnect, then Goto your HA UI->Settings->System->Hardware->All Hardware.
See if you can find your SkyConnect…its probably under the “/tty/USB0” and see if the device “by-id” matches what you have in the Zigbee2MQTT config.

This is for the case you want to try out Zigbee2MQTT over SiLabs Multiprotocol AddOn (with the Multiprotocol Add being the one that connects to the SkyConnect).

2 Likes

Thanks for the clarification.

Thanks for that important note. I don’t know why the documentation is missing this. I could finally get Zigbee2MQTT to work via SkyConnect in multiprotocol mode with the following 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:
  base_topic: zigbee2mqtt
  server: mqtt://my-ip-address:1883
  user: [redacted]
  password: [redacted]
serial:
  port: tcp://core-silabs-multiprotocol:9999
  adapter: ezsp
homeassistant: true

Wow!! Thank you man! I owe you a beer!
This and tcp:// was the exact thing missing

1 Like

Interesting, mine doesn’t start at all :frowning:

I have been trying to get this started. I am using Proxmox and was following this guide How To Separate Zigbee2MQTT From Home Assistant In Proxmox

I have ‘mqtt’ installed and trying to get ‘zigbee2mqtt’ installed and running. I have tried running the install several different ways, here is my config yaml file:

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
frontend:
  port: 8080
homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://10.0.10.8:1883'
  user: <redacted>
  password: <redacted>
  keepalive: 60
  reject_unauthorized: true
  version: 4
serial:
  port: tcp://core-silabs-multiprotocol:9999
  adapter: ezsp
advanced:
  pan_id: GENERATE
  network_key: GENERATE
  channel: 20 #Choose Zigbee channel

When I run the cd /opt/zigbee2mqtt && npm start I get this output:

Any help provided would be greatly appreciated.