Note
Thank you to @ms1design for his generous contributions and work on porting Home Assistant & Wyoming containers for Jetson!
The container image is based on the Home Assistant Core with a few modifications:
HA OS |
Container |
Core |
Core on Jetson |
Supervised |
|
|---|---|---|---|---|---|
| Automations | ✅ | ✅ | ✅ | ✅ | ✅ |
| Dashboards | ✅ | ✅ | ✅ | ✅ | ✅ |
| Integrations | ✅ | ✅ | ✅ | ✅ | ✅ |
| Blueprints | ✅ | ✅ | ✅ | ✅ | ✅ |
| Uses container | ✅ | ✅ | ❌ | ✅1 | ✅ |
| Supervisor | ✅ | ❌ | ❌ | ❌ | ✅ |
| Add-ons | ✅ | ❌ | ❌ | ✅2 | ✅ |
| Backups | ✅ | ✅ | ✅ | ✅ | ✅ |
| Managed Restore | ✅ | ❌ | ❌ | ❌ | ✅ |
| Managed OS | ✅ | ❌ | ❌ | ❌ | ❌ |
If you want to use docker compose to run Home Assistant Core Voice Assistant Pipeline on a Jetson device with cuda enabled, you can find a full example docker-compose.yaml here.
name: home-assistant-jetson
version: "3.9"
services:
homeassistant:
image: dustynv/homeassistant-core:latest-r36.2.0
restart: unless-stopped
init: false
privileged: true
network_mode: host
container_name: homeassistant
hostname: homeassistant
ports:
- "8123:8123"
volumes:
- ha-config:/config
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
volumes:
ha-config:The user interface can be found at http://your-ip:8123. (replace with the hostname or IP of the system). Follow the wizard to set up Home Assistant. Feel free to follow the official instructions.
We encourage to look for help in the official Home Assistant documentation and within the HA Community Forums or on a Jetson Research Group thread on the NVIDIA forum.
Configuration files location
You can specify where you want to store your Home Assistant Core configuration by attaching a docker volume. Make sure that you keep the :/config part:
-v /PATH_TO_YOUR_CONFIG:/configDevices auto-discovery
Home Assistant can discover and automatically configure zeroconf/mDNS and UPnP devices and add-ons on your network. In order for this to work you must create the container with --net=host:
when using docker cli:
--net=hostwhen using docker-compose.yaml:
network_mode: hostAdd-on auto-discovery
TLDR; It's disabled, go with manual way...
Native auto-discovery of add-ons running on the same host/network is disabled due to the requirement of running Home Assistant Supervisor. This has some deep debian system dependencies which were too tedious to port in this project.
Most Home Assistant add-ons use
bashiounder the hood so some of the system overlay commands ware adapted to make them work withoutSupervisor.
To manually add the wyoming enabled add-on from this repository to the running Home Assistant Core instance, just follow the steps below:
- Browse to your Home Assistant instance (eg.:
homeassistant.local:8123). - Go to
Settings > Devices & Services. - In the bottom right corner, select the
Add Integrationbutton. - From the list, search & select
Wyoming Protocol. - Enter the
wyomingadd-onHost IPaddress (uselocalhostif running of the same host as Home Assistant). - Enter the
wyomingadd-onport(default is10400).
Accessing Bluetooth Devices
To provide Home Assistant with access to the host's Bluetooth device(s), the Home Assistant Core container uses BlueZ on the host - add the capabilities NET_ADMIN and NET_RAW to the container, and map dbus as a volume as shown in the examples below to enable Bluetooth support:
when using docker cli:
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
-v /var/run/dbus:/var/run/dbus:rowhen using docker-compose.yaml:
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- /var/run/dbus:/var/run/dbus:ro- Fix add-ons auto-discovery
Got questions? You have several options to get them answered:
- The Home Assistant Discord Chat Server.
- The Home Assistant Community Forum.
- Join the Reddit subreddit in
/r/homeassistant - In case you've found an bug in Home Assistant, please open an issue on our GitHub.
- The NVIDIA Jetson AI Lab tutorials section.
- The Jetson AI Lab - Home Assistant Integration thread on NVIDIA's Developers Forum.
- In case you've found an bug in
jetson-containers, please open an issue on our GitHub.
Note
This project was created by Jetson AI Lab Research Group.
CONTAINERS
homeassistant-core:2025.7.1 |
|
|---|---|
| Aliases | homeassistant-core |
| Requires | L4T ['>=34.1.0'] |
| Dependencies | build-essential homeassistant-base pip_cache python psutil-home-assistant ffmpeg |
| Dockerfile | Dockerfile |
| Notes | The homeassistant-core wheel that's build is saved in /usr/src/homeassistant |
CONTAINER IMAGES
| Repository/Tag | Date | Arch | Size |
|---|---|---|---|
dustynv/homeassistant-core:2024.12.4-r36.4.0 |
2024-12-20 |
arm64 |
1.5GB |
dustynv/homeassistant-core:2024.4.2-r35.4.1 |
2024-04-09 |
arm64 |
6.0GB |
dustynv/homeassistant-core:2024.4.2-r36.2.0 |
2024-04-09 |
arm64 |
1.4GB |
dustynv/homeassistant-core:latest-r36.2.0 |
2024-04-26 |
arm64 |
1.4GB |
dustynv/homeassistant-core:r35.4.1 |
2024-04-10 |
arm64 |
6.0GB |
dustynv/homeassistant-core:r36.2.0 |
2024-04-10 |
arm64 |
1.4GB |
Container images are compatible with other minor versions of JetPack/L4T:
• L4T R32.7 containers can run on other versions of L4T R32.7 (JetPack 4.6+)
• L4T R35.x containers can run on other versions of L4T R35.x (JetPack 5.1+)
RUN CONTAINER
To start the container, you can use jetson-containers run and autotag, or manually put together a docker run command:
# automatically pull or build a compatible container image
jetson-containers run $(autotag homeassistant-core)
# or explicitly specify one of the container images above
jetson-containers run dustynv/homeassistant-core:2024.12.4-r36.4.0
# or if using 'docker run' (specify image and mounts/ect)
sudo docker run --runtime nvidia -it --rm --network=host dustynv/homeassistant-core:2024.12.4-r36.4.0
jetson-containers runforwards arguments todocker runwith some defaults added (like--runtime nvidia, mounts a/datacache, and detects devices)
autotagfinds a container image that's compatible with your version of JetPack/L4T - either locally, pulled from a registry, or by building it.
To mount your own directories into the container, use the -v or --volume flags:
jetson-containers run -v /path/on/host:/path/in/container $(autotag homeassistant-core)To launch the container running a command, as opposed to an interactive shell:
jetson-containers run $(autotag homeassistant-core) my_app --abc xyzYou can pass any options to it that you would to docker run, and it'll print out the full command that it constructs before executing it.
BUILD CONTAINER
If you use autotag as shown above, it'll ask to build the container for you if needed. To manually build it, first do the system setup, then run:
jetson-containers build homeassistant-coreThe dependencies from above will be built into the container, and it'll be tested during. Run it with --help for build options.
Footnotes
-
Home Assistant Core is now containerized. ↩
-
Supports only manually installed, dockerized and preconfigured
wyomingLocal Voice Assistant add-ons from this repository. These add-ons are compatible withHome Assistant Corehosted on any machine. ↩
