How to get HA docker to work with zbdongle-e with multipan

Has anyone managed to get the zbdongle-e with multipan to work with both zigbee and thread on HA(docker).

Found a guide to do it with add-ons but not with docker How to Use MultiPAN in Home Assistant with SONOFF ZBDongle-E

Hardware: Raspberry pi 4b+, Zbdongle-e with Multipan firmware
Software: Raspberry pi os lite (64 bit)

You have to find a multi protocol stack docker, don’t know if there is one available.

Found this but don’t know how to set it up to work with HA. Running Multiprotocol Solution on Docker | Multiprotocol Solution on Linux | Bluetooth LE | latest | Silicon Labs

Don’t know if I would go through all that trouble to save €15

2 Likes

It works on HAOS, anyone got it working with docker ?

Got it to work. Just flashed multipan with Silabs Firmware Flasher | Web based flasher for ZB-GW04 and ZBDongle-E. MultiPAN RCP firmware enables these devices to be used with Silabs Multiprotocol Addon in Home Assistant. Allow Zigbee and Thread to co-exist on the same dongle. Get ahead of the tech an experiment with Matter! insted of the sonoff dongle flasher.

Zigbee (z2m) works fine with multipan but otbr is very buggy. Seems like the official flasher for the zbdongle-e is using a newer version of the multipan (4.6.0.) firmware that is not compatible with b2un0/multipan. The container logs this when multipan is flashed using the sonoff dongle flasher

2025-09-22 00:02:03 [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.
[00:02:03:344547] Info : [CPCd v4.3.1.0] [Library API v3] [RCP Protocol v4]
[00:02:03:344641] Info : Git commit: 133b29678b3d0bc7578e098d2f46b4d5bcd2ebb4 / branch: 
[00:02:03:344657] Info : Sources hash: ff8300587e7e4ab1def7a89a272c0baef32f9eb3bff9b0ba06b94e655d652367
[00:02:03:344679] 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.
[00:02:03:344718] Info : Reading cli arguments
[00:02:03:344735] Info : /usr/local/bin/cpcd 
[00:02:03:349450] Info : Reading configuration
[00:02:03:349480] Info :   file_path = /usr/local/etc/cpcd.conf
[00:02:03:349491] Info :   instance_name = cpcd_0
[00:02:03:349501] Info :   socket_folder = /dev/shm
[00:02:03:349511] Info :   operation_mode = MODE_NORMAL
[00:02:03:349521] Info :   use_encryption = false
[00:02:03:349530] Info :   binding_key_file = /root/.cpcd/binding.key
[00:02:03:349540] Info :   stdout_tracing = false
[00:02:03:349550] Info :   file_tracing = false
[00:02:03:349600] Info :   lttng_tracing = false
[00:02:03:349612] Info :   enable_frame_trace = false
[00:02:03:349622] Info :   traces_folder = /dev/shm/cpcd-traces
[00:02:03:349632] Info :   bus = UART
[00:02:03:349642] Info :   uart_baudrate = 460800
[00:02:03:349652] Info :   uart_hardflow = false
[00:02:03:349662] Info :   uart_file = /dev/ttyUSB0
[00:02:03:349672] Info :   fu_recovery_pins_enabled = false
[00:02:03:349682] Info :   fu_connect_to_bootloader = false
[00:02:03:349692] Info :   fu_enter_bootloader = false
[00:02:03:349701] Info :   restart_cpcd = false
[00:02:03:349711] Info :   application_version_validation = false
[00:02:03:349721] Info :   print_secondary_versions_and_exit = false
[00:02:03:349730] Info :   use_noop_keep_alive = false
[00:02:03:349740] Info :   reset_sequence = true
[00:02:03:349749] Info :   stats_interval = 0
[00:02:03:349759] Info :   rlimit_nofile = 2000
[00:02:03:349769] Info : ENCRYPTION IS DISABLED 
[00:02:03:349779] Info : Starting daemon in normal mode
[00:02:03:365286] Info : Connecting to Secondary...
[00:02:05:365472] Info : Failed to connect, secondary seems unresponsive
[00:02:05:365536] Info : Connecting to Secondary...
[00:02:07:365678] Info : Failed to connect, secondary seems unresponsive
[00:02:07:365769] Info : Connecting to Secondary...
[00:02:09:365959] Info : Failed to connect, secondary seems unresponsive
[00:02:09:366058] Info : Connecting to Secondary...
[00:02:11:366274] Info : Failed to connect, secondary seems unresponsive
[00:02:11:366373] Info : Connecting to Secondary...

Managed to get to this point using the siliconlabsinc/multiprotocol container.

░░ Subject: A start job for unit cpcd.service has finished successfully
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ A start job for unit cpcd.service has finished successfully.
░░ 
░░ The job identifier is 83.
Sep 22 01:19:24 zwop cpcd[63]: WARNING in function 'main' in file ./main.c at line #68 : Running CPCd as 'root' is not recommended. Proceed at your own risk.
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.424454Z] Info : [CPCd v4.6.2.0] [Library API v3] [RCP Protocol v5]
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.424642Z] Info : Git commit: GITDIR-NOTFOUND / branch: GITDIR-NOTFOUND
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.424651Z] WARNING : In function 'main' in file ./main.c at line #68 : Running CPCd as 'root' is not recommended. Proceed at your own risk.
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.424711Z] Info : Reading cli arguments
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.424728Z] Info : /usr/bin/cpcd
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460206Z] Info : Reading configuration
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460222Z] Info :   file_path = /etc/cpcd.conf
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460227Z] Info :   instance_name = cpcd_0
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460230Z] Info :   socket_folder = /dev/shm
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460234Z] Info :   operation_mode = MODE_NORMAL
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460238Z] Info :   use_encryption = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460241Z] Info :   binding_key_file = /root/.cpcd/binding.key
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460244Z] Info :   stdout_tracing = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460247Z] Info :   file_tracing = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460250Z] Info :   lttng_tracing = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460253Z] Info :   enable_frame_trace = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460256Z] Info :   traces_folder = /dev/shm/cpcd-traces
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460259Z] Info :   bus = UART
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460262Z] Info :   uart_baudrate = 115200
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460265Z] Info :   uart_hardflow = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460268Z] Info :   uart_file = /dev/ttyUSB0
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460271Z] Info :   fwu_recovery_pins_enabled = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460274Z] Info :   fwu_connect_to_bootloader = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460278Z] Info :   fwu_enter_bootloader = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460280Z] Info :   restart_cpcd = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460283Z] Info :   application_version_validation = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460286Z] Info :   print_secondary_versions_and_exit = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460289Z] Info :   use_noop_keep_alive = false
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460292Z] Info :   reset_sequence = true
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460295Z] Info :   stats_interval = 0
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460297Z] Info :   rlimit_nofile = 2000
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.460300Z] Info : ENCRYPTION IS DISABLED 
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.475740Z] Info : Starting daemon in normal mode
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:24.491287Z] Info : Connecting to Secondary...
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:25.155058Z] Info : RX capability is 256 bytes
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:25.155083Z] Info : Connected to Secondary
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:25.162678Z] Info : Secondary Protocol v5
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:25.176407Z] Info : Secondary CPC v4.6.0
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:25.192036Z] Info : Secondary bus bitrate is 115200
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:25.209633Z] Info : Secondary APP vUNDEFINED
Sep 22 01:19:25 zwop cpcd[63]: [2025-09-22T01:19:25.209795Z] Info : Daemon startup was successful. Waiting for client connections
Sep 22 01:22:55 zwop cpcd[63]: [2025-09-22T01:22:54.905097Z] Info : New client connection using library v4.6.2.0
Sep 22 01:22:55 zwop cpcd[63]: [2025-09-22T01:22:54.912651Z] Info : Opened connection socket for ep#12
Sep 22 01:22:55 zwop cpcd[63]: [2025-09-22T01:22:54.919877Z] Info : Endpoint socket #12: Client connected. 1 connection(s)
Sep 22 01:23:14 zwop systemd[1]: /etc/systemd/system/cpcd.service:13: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
Sep 22 01:23:14 zwop systemd[1]: /etc/systemd/system/cpcd.service:14: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
Sep 22 01:25:41 zwop cpcd[63]: [2025-09-22T01:25:41.393706Z] Info : New client connection using library v4.6.2.0
Sep 22 01:25:41 zwop cpcd[63]: [2025-09-22T01:25:41.400633Z] Info : Endpoint socket #12: Client connected. 2 connection(s)

2 Likes

Thank you for your feedback. :kissing_heart:

@Z-SHOCK-E would you mind sharing your current configuration for using the container? I am also looking to try to update my Zigbee Dongle-E to use the latest firmware, and the b2un0 image does not support it.

Thanks :slightly_smiling_face:

If you’re trying to set up multipan in Docker, keep in mind that the b2un0/silabs-multipan-docker project targets the original Home Assistant Silicon Labs Multiprotocol add-on, which has been deprecated.

For those using Sonoff dongles, I’ve created a fork aligned with the Sonoff iHost multiprotocol add-on, which is actively maintained by Sonoff.
You can find the standalone container here: GitHub - antoniocifu/ihost-multipan-docker: A standalone RPC server based on Sonoff iHost's Silicon Labs multiprotocol addon. It is generally more stable for this specific hardware since it uses Sonoff’s own implementation