SkyConnect - silabs multiprotocol and docker

I honestly don’t know. I followed the instructions on the internet, but I don’t think there was any mention of driver installation. Anyway, it works as a Zigbee Dongle with the Zigbee firmware. (I don’t know if this answers your question)

1 Like

It depends how do you connect it into HA. If you have HAOS then it use HAOS drivers, bud if you use docker container (Silabs-Multiprotocol) it use driver from base OS in that case Synology DSM OS drivers for example.

I have Debian 10 and I tried to run HA, Z2MQTT and this (Silabs-multiprotocol) in Docker as well.
I won’t fight it anymore. I put the Zigbee firmware back on it, now at least my Zigbee network works. Maybe I’ll try again later, when there are more how-tos on the net.

1 Like

Im waiting for a solution to this too.

So I got it to start and work in that the openboarder thread web site comes up and I can add a network and that appears to work.

But I can’t figure out how to get the zigbee stuff to also work with the socket stuff.

I tried following your install and got the container started but it gives these errors in the log. I am not sure where to go from here. Docker runs on Synology NAS.

/etc/s6-overlay/scripts/otbr-enable-check.sh: line 5: /etc/bashlog/log.sh: No such file or directory
/etc/s6-overlay/scripts/otbr-enable-check.sh: line 12: log: command not found
s6-rc-compile: fatal: during resolution of bundle user: undefined service name @eaDir

Hello,

I created a repo based on the container created by @nervousapps. I noticed that the ezsp no longer worked and I also saw that for SkyConnect, a new beta firmware was released.

If you use portainer, you can deploy a stack directly using the repo URL. The firmware is included and will be automatically flashed if you don’t change anything. Nothing else needs to be done or moved.

You might need to change the architecture of the pulled image in the compose file so it matches your system. This is for Raspberry Pi 4 using 64 bit Raspbian as host.

You can find my repo here

2 Likes

So is this the most updated method to have a Sonoff zigbee dongle to run on zigbee/thread on HA core on docker?

Btw I changed the images to amd64 (running on a Intel N95/Debian 12) and builded the docker but after launching it keeps rebooting with this log:

2023-08-26T13:19:06.489959235Z cont-init: info: running /etc/cont-init.d/config.sh
2023-08-26T13:19:06.490057579Z /package/admin/s6-overlay-3.1.5.0/etc/s6-rc/scripts/cont-init: 20: /etc/cont-init.d/config.sh: Permission denied
2023-08-26T13:19:06.490123234Z cont-init: info: /etc/cont-init.d/config.sh exited 126
2023-08-26T13:19:06.491400007Z cont-init: warning: some scripts exited nonzero
2023-08-26T13:19:06.491603942Z s6-rc: warning: unable to start service legacy-cont-init: command exited 1
2023-08-26T13:19:06.493249031Z /run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught             -logs/current if you have in-container logging) for more information.
2023-08-26T13:19:06.493264805Z /run/s6/basedir/scripts/rc.init: fatal: stopping the container.

Seems a permissions problem, how can I solve it?

Better to map /data to a host directory.
If anybody want to keep Threads ID,s and Zigbee NVM:

        volumes:
          -  "/home/docker/multipan/data:/data"

I have the same permission issue, any solutions yet? also have the privilege: true in my docker-compose file.

s6-rc: info: service universal-silabs-flasher: starting
s6-rc-oneshot-run: fatal: unable to exec /etc/s6-overlay/scripts/universal-silabs-flasher-up: Permission denied
s6-rc: warning: unable to start service universal-silabs-flasher: command exited 126
./run: line 5: /etc/bashlog/log.sh: No such file or directory
./run: line 7: log: command not found
Default: mDNSResponder (Engineering Build) (Aug 23 2023 18:27:14) 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
/package/admin/s6-overlay-3.1.5.0/etc/s6-rc/scripts/cont-init: 20: /etc/cont-init.d/check-cpcd-shm.sh: Permission denied
cont-init: info: /etc/cont-init.d/check-cpcd-shm.sh exited 126
cont-init: info: running /etc/cont-init.d/config.sh
/package/admin/s6-overlay-3.1.5.0/etc/s6-rc/scripts/cont-init: 20: /etc/cont-init.d/config.sh: Permission denied

I switched to Home Assistant OS and solved my problem…

okay, thank you. But that is not an option for me… Are there any other solutions on that topic?

1 Like

Did anyone see some kind of warning before buying the SkyConnect that there would only be proper support with HAOS (at least for the foreseeable future)? I feel kind of stupid for buying it and trying to get it up and running (ZigBee+Thread) with Docker.

4 Likes

Did you solve the issue? I have the same one.

i got 100% working on raspberry, so arm (aarch64) architecture.
1)flash last rcp fw on sonoff dongle E
2)download from this repository https://github.com/nervousapps/haDOCKERaddons/tree/master/silabs-multiprotocol/dockerCustom
3)edit docker-compose.yaml and in the “image” section change “:2.3.1” to “:latest” and add
volumes:
- “/home/docker/multipan/data:/data”
(adjust it to your home folder)
4)edit .env and put 0 instead “true” in this 3 variable; “CPCD_TRACE”, “FLOW_CONTROL” and “AUTOFLASH_FIRMWARE”
5)run docker-compose build --no-cache and next docker-compose up -d
6)in zigbee2mqtt config file change “serial” with
serial:
port: tcp://host_ip:20108
adapter: ezsp

enjoy

finally my version also works, without any complex configuration, docker builds or something.
(for amd64 and aarch64)

Works well.
Only a Little thing: i have the sonoff E dongle. To get It working i put to false the flow_control variable.
So, in the end, i wrote this in my docker-compose.yaml

multipan:
container_name: multipan
image: ghcr.io/b2un0/silabs-multipan-docker:latest
cap_add:
- SYS_ADMIN
- NET_ADMIN
restart: unless-stopped
privileged: true
network_mode: host
volumes:
- ~/multipan:/data
environment:
# OCPD environment variables
DEVICE: “/dev/ttyUSB0”
BAUDRATE: “460800”
CPCD_TRACE: “false”
FLOW_CONTROL: “false”
NETWORK_DEVICES: 0
# OTBR-AGENT environment variables
OTBR_ENABLE: 1
BACKBONE_IF: “eth0”
OTBR_LOG_LEVEL: “debug”
OTB_FIREWALL: 1
OTBR_REST_LISTEN_PORT: “8081”
# OTBR-WEB environment variables
OTBR_WEB_PORT: “8086”
# SOCAT environment variables
NETWORK_DEVICE: “”
# ZIGBEED environment variables
EZSP_LISTEN_PORT: “20108”
# UNIVERSAL FLASHER variables
AUTOFLASH_FIRMWARE: 0
FIRMWARE: “”

1 Like

Does this also work on arm64?

Yes, aarch64 is arm64

Is It correct flow_control false with sonoff E?
In this way it works!
if i enable flow_control, by read logs of container i get “FATAL in function ‘capabilities_checks’ in file /usr/src/cpc-daemon/server_core/server_core.c at line #714 : UART flow control configuration mismatch between CPCd (enabled) and Secondary (disabled)”

another question: in configuration.yaml of zigbee2mqtt, we have to put “baudrate: 460800” into serial section?