A UGREEN NAS can host Home Assistant and Zigbee2MQTT without another computer, provided its software can give Zigbee2MQTT access to the coordinator. For a USB dongle, that means checking both the NAS-side mapping and the serial device seen by the container or virtual machine. Installing Home Assistant from App Center does not settle either question.
There are three useful choices: the packaged Home Assistant container, a custom Docker deployment, or Home Assistant OS in a VM. A network coordinator offers another way to avoid USB passthrough. The right choice depends on your NAS model, UGOS Pro and app versions, and whether you want Home Assistant’s managed apps alongside it.
UGOS Pro’s install paths: App Center, custom Docker and a VM
UGREEN lists Home Assistant among its third-party featured apps (第三方精品应用). Its Chinese quick-start guide, dated 6 March 2025, specifies NAS firmware 1.2.0.2121 or later and Home Assistant app version V1.0.0.3768 or later. Those are requirements for that packaged app guide, not a current USB-compatibility guarantee.
The guide describes a container installation and recommends deploying containers yourself through Docker when you need more control. Keep the distinction between a Home Assistant integration and an app, formerly called an add-on: xiaomi_home is an integration loaded by Home Assistant; Zigbee2MQTT is a separate service. Home Assistant Container does not include the Supervisor or managed apps. With that route, deploy Zigbee2MQTT and an MQTT broker separately. With Home Assistant OS in a VM, you can install their managed apps inside HAOS instead.
A VM runs a guest operating system and needs its own allocation of memory, CPU and storage. Containers share the host kernel and generally have less overhead. Neither automatically gives a service access to an attached Zigbee radio.
| Path | Coordinator access to check | How Zigbee2MQTT runs | Practical tradeoff |
|---|---|---|---|
| Packaged App Center Home Assistant | Whether this app version exposes the required USB mapping; the quick-start does not document one | Separate service, not an app installed inside Home Assistant Container | Easy initial Home Assistant installation, fewer deployment controls |
| Custom Docker deployment | Host serial driver, device permissions and an explicit container device mapping | Separate Zigbee2MQTT container plus MQTT broker | More control, with container maintenance your responsibility |
| Home Assistant OS VM | USB device assignment in the VM app and a working serial device in the guest | Managed app inside HAOS, or another separate service | Guest OS overhead; check model and VM support first |
USB passthrough: check the exact UGOS Pro feature
UGREEN’s current documentation needs careful reading. The Virtual Machine User Guide, applicable from NAS firmware 1.18.0.0073, includes USB devices occupied by other VMs among startup problems. The separate Hardware Passthrough guide, whose applicability heading says 1.19.0.0093 or later, says USB port passthrough is not currently supported. Device assignment and forwarding an entire physical port are different mechanisms; that wording does not establish that every USB dongle works or that no USB device can be assigned.
Owner reports below confirm that a VM device-passthrough option existed on some UGREEN installations in June 2025, but also show an adapter-specific failure. Before committing to the VM route, check the USB-device options actually available on your model and VM app version, and ask UGREEN about your exact coordinator if compatibility is unclear. A screenshot showing a USB controller is not enough: the guest must open the dongle’s serial interface successfully.
The App Center quick-start does not describe serial-device mapping. That is a limit of the guide, not proof that Docker cannot use USB on UGOS Pro. For a custom deployment, the relevant questions are whether the host creates the device, whether you can map it into the container, and whether the service has permission to open it.
The Docker route: stable serial names and device mappings
Zigbee2MQTT’s Docker instructions recommend using the coordinator’s /dev/serial/by-id/... path on the host. Map that to a fixed name inside the container, then use the container-side name in Zigbee2MQTT’s serial configuration.
services:
zigbee2mqtt:
image: ghcr.io/koenkk/zigbee2mqtt
restart: unless-stopped
devices:
- /dev/serial/by-id/REPLACE_WITH_YOUR_DONGLE_ID:/dev/ttyACM0
volumes:
- ./data:/app/data
- /run/udev:/run/udev:ro
Replace the placeholder with the full path that exists on the NAS. In Zigbee2MQTT, set serial.port to /dev/ttyACM0 for this mapping and choose the correct serial.adapter for your hardware. This is a device-mapping example, not a complete setup: configure the MQTT broker, persistent data and any frontend access separately. It assumes a Linux Docker host that provides those paths; it is not a promise that the packaged App Center app offers these fields.
Linux may assign a different /dev/ttyUSB0 or /dev/ttyACM0 number after a reboot or replug. A raw USB address such as /dev/bus/usb/001/029 is a different kind of device path, used for USB-bus access; it is not the serial path in the example. Do not treat those two naming problems as interchangeable.
A stable host symlink helps the next container start resolve the right dongle. It does not keep an already-open serial connection alive through unplugging, or guarantee that a running container’s device mapping follows a newly created device node. After reconnecting the dongle, verify its host path and, if necessary, recreate the container with the intended mapping. Avoid resetting or re-pairing Zigbee devices to solve a missing serial port.
If by-id is unavailable and you manage the NAS host, a udev rule can provide a custom name. Match the actual serial number as well as the vendor and product IDs: those IDs alone identify a product type and can match several dongles.
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="REPLACE_WITH_ACTUAL_SERIAL", SYMLINK+="zigbee_coordinator"
The IDs above are an example, not a model recommendation. Obtain the real attributes from the device before using a rule, and confirm that UGOS Pro supports and preserves your host customization. A serial number may be absent or duplicated on some adapters; in that case, choose an appropriate host-supported matching method. A custom symlink still does not provide automatic hotplug recovery for an open container connection.
The VM route: verify the device inside HAOS
First confirm that your NAS model supports the Virtual Machine app and can run the appropriate HAOS image. UGREEN’s VM guide describes allocating CPU, memory, storage and networking; use an HAOS image for the VM’s architecture. For LAN services and discovery, UGREEN recommends bridge networking when other local devices need to access the VM.
If your VM app provides USB device assignment, select the actual coordinator and verify it in Home Assistant’s hardware view. Use the serial path visible inside the VM; the NAS host’s path is not necessarily the guest’s path. Only one Zigbee application should open that coordinator. Stop or disable ZHA before giving the same dongle to Zigbee2MQTT, and check for another VM or host service using it.
Before moving the dongle, stop the Zigbee service and detach the device through the supported VM controls. Recheck assignment and the guest path after changing ports or rebooting. Whether a VM rule follows the device identity or a physical port depends on the implementation; it is not safe to promise either behavior for every UGOS Pro version.
A reported failure: the “serial port locked” error
Home Assistant issue #146834 concerns a ConBee II passed to an HAOS VM on a UGREEN NAS with Home Assistant Core 2025.6.0. The guest detected the dongle, but ZHA could not open its serial connection. Another participant reported the same problem on a DXP2800.
The discussion is more useful than the error message alone. A maintainer explained that a USB device can appear in the guest while its serial interface is unusable. A linked ZHA change allowed another communication attempt after a failed probe; it did not fix the underlying passthrough. In the author’s July 2025 follow-up, updating the ConBee II firmware had not helped, while moving to another Zigbee stick worked. The issue is closed, not an open report awaiting that test.
A busy or locked-port error is a reason to inspect service ownership, permissions and VM serial passthrough. A stale path is another check after a reboot or replug, but this report did not establish it as the cause. Keep the NAS, VM app, guest and coordinator versions with your logs.
If the serial connection opens reliably but devices later disappear or stop responding, work through the radio and mesh checks in the ghost-device troubleshooting guide. USB transport failures and Zigbee routing failures need different fixes.
A network coordinator avoids USB passthrough
An Ethernet or PoE coordinator such as the SMLIGHT SLZB-06 gives Zigbee2MQTT a network serial connection instead of a local USB device. The manufacturer’s specifications confirm Ethernet and PoE support. You still need the correct adapter driver, coordinator firmware and configured network endpoint, but no NAS USB mapping.
This is useful when the NAS sits in a poor radio location or USB support is uncertain. It also makes the LAN, switch and coordinator power part of the connection: use reliable wired networking and restrict access to the coordinator’s management and serial ports. A network coordinator avoids a passthrough problem; it does not remove transport troubleshooting altogether. For USB alternatives, see the ZBDongle-E and ZBDongle-P comparison.
Do not confuse this setup with eWeLink CUBE, which lists UGREEN NAS among its hosting options. CUBE is a separate smart-home system, not a Home Assistant installation or Zigbee2MQTT service. Follow its own deployment and adapter requirements if that is the system you intend to run.
Models, firmware and regional guides
Check your exact model rather than assuming all UGREEN NAS devices have the same apps. UGREEN’s September 2026 update notes distinguish x86 models, including the DX4600, DH2600, DXP2800 and DXP4800 series, from ARM DH2300 and DH4300 series. The notes explicitly warn that features vary with model and architecture. That list is not certification of each model’s USB dongle compatibility.
The Chinese App Center guide’s older minimum versions describe its packaged Home Assistant installation. Current firmware and app availability may differ by region. Keep the app’s shared configuration folder in place: UGREEN warns that moving, renaming or deleting a mounted path can break a container installation. The Chinese guide also documents the separate Xiaomi/Mijia integration route; our Xiaomi Home integration guide explains its local and cloud dependencies.
Frequently asked questions
Can I run Zigbee2MQTT on a UGREEN NAS? A supported Docker deployment or HAOS VM can host it. Check coordinator access, an MQTT broker and persistent data first. The packaged Home Assistant container alone does not include Zigbee2MQTT.
Does a UGREEN VM support my USB Zigbee dongle? Owners have used VM USB device assignment, but the ConBee II report shows detection is not enough. UGREEN’s current guides also distinguish hardware/port passthrough from VM USB-device handling. Confirm your exact NAS, VM app and dongle combination.
Should I choose Docker or a VM? Choose HAOS in a VM if you want its managed apps and have confirmed USB support. Choose custom containers if you are comfortable managing the services yourself. A network coordinator works without USB passthrough in either approach.
Will a stable device name fix unplug/replug failures? It helps identify the right device when a service or container starts. It does not repair an open serial connection or guarantee that an existing container mapping follows a replaced device node.
Is the NAS powerful enough? Check the chosen installation’s requirements against available CPU, RAM and storage after allowing for the NAS’s other work. App and VM availability, architecture and coordinator access matter as much as raw resources.
Sources and limits
The deployment distinctions come from UGREEN’s linked guides and Home Assistant and Zigbee2MQTT documentation. The ConBee II case is a dated owner report with maintainer discussion, not a current compatibility test of every UGREEN model. No NAS or dongle was tested for this guide. Before moving an established setup, back up its configuration and prove that the chosen coordinator connection survives a service restart and a planned NAS reboot.
