This Docker container parses and forwards all WebSocket messages from your Unraid server to Home Assistant using the MQTT protocol. This enables you to create dashboards that provide a superior overview compared to Unraid's native capabilities.
Historical data is crucial! I aimed to monitor CPU, RAM, and other attributes over time. Maybe most importantly know how often and when disks spin up in order to debug the cause easier.
This integration enables Unraid automations via Home Assistant. You can receive notifications for disk space running low, fan failures, and more.
The custom view I developed greatly enhances locating disks within the array. A disk's color changes from grey (spin-down) to yellow to red if it overheats, and warnings are displayed for disks with issues. It also has a notification when disk scrubbing is running.
Instantly identify which shares are on which disks and how full the disk is.
The "network-share" view in Home Assistant is much more intuitive than Unraid's "shares" tab, in my opinion.
Ensure that Home Assistant and MQTT are correctly configured before proceeding.
I haven't created a Unraid template as I personally utilize docker-compose. However, setting this up shouldn't pose significant challenges.
Generate a config.yaml and store it in a directory named data
. For instance, I'll demonstrate by configuring two servers named 'Kaya' and 'Hisa'. Ensure to adjust the MQTT settings accordingly:
unraid:
- name: Kaya
host: 192.168.1.10
port: 80
ssl: False
username: root
password: PASSWORD
scan_interval: 30
- name: Hisa
host: 192.168.1.20
port: 80
ssl: False
username: root
password: PASSWORD
scan_interval: 30
mqtt:
host: 192.168.1.100
port: 1883
username: USERNAME
password: PASSWORD
Now we can run our container either using docker run
or docker-compose
.
Docker run:
docker run -d \
--name hass-unraid \
--network bridge \
--restart always \
-e TZ=Europe/Oslo \
-v $(pwd)/data:/data \
ghcr.io/idmedia/hass-unraid:latest
Docker-compose:
version: '3'
services:
hass-unraid:
container_name: hass-unraid
network_mode: bridge
restart: always
environment:
- TZ=Europe/Oslo
volumes:
- './data:/data'
image: ghcr.io/idmedia/hass-unraid:latest
The container should now connect to your Unraid server(s) and automatically create an entry in Home Assistant. To verify navigate to Settings->Devices & Services->MQTT. If no device is created make sure to check the contains logs using docker logs hass-unraid
.
Please check out the lovelace
folder. That's where I've placed two button-card templates and the main setup for showing the server named Kaya
just like you see in the screenshot.
This lovelace example is a bit complex and requires these modules in Home Assistant to work properly:
Copy the button_card templates from /lovelace/templates/
into /config/lovelace/templates/button_card/
:
network_share.yaml
simple_bar.yaml
unraid_disk.yaml
Ensure button-card locates the templates by adding the following line to the top of your ui-lovelace.yaml file:
button_card_templates: !include_dir_merge_named lovelace/templates/button_card