This custom integration allows you to monitor and control your Unraid server from Home Assistant. Unraid is a popular NAS (Network Attached Storage) operating system that provides flexible storage, virtualization, and application support.
I wanted to share an important update regarding the future development of this integration. After careful consideration, I've decided to focus my efforts on developing a new version that utilizes Unraid's official GraphQL API instead of continuing with the current SSH-based implementation.
- Improved Reliability: The GraphQL API provides a more stable and officially supported method of interacting with Unraid
- Better Performance: Direct API access should result in faster response times and less system overhead
- Future-Proof: As Unraid continues to develop their API, we'll benefit from new capabilities without requiring extensive rewrites
- Reduced Edge Cases: Many of the current integration's limitations stem from the varied environments where SSH commands can behave differently
The current SSH-based integration will remain available but will enter maintenance mode. I won't be actively developing new features or addressing edge cases for it. Instead, I'm channeling those efforts into the new GraphQL-based integration, which I believe will provide a better experience for everyone in the long run.
For those who need immediate fixes for specific edge cases in the current integration, I encourage you to fork the repository and adapt it to your needs. Pull requests are still welcome and will be reviewed, though my primary development focus will be on the new approach.
I've already begun work on the new integration and will share updates as development progresses.
I appreciate your understanding and continued support as we move toward this improved implementation.
- Monitor CPU, RAM, Boot, Cache, Array Disks, and Array usage
- Monitor CPU and Motherboard temperature
- Monitor System Fans
- Monitor UPS Connected
- Control Docker containers
- Control VMs
- Execute shell commands
- Buttons for user scripts
- Manage user scripts
- Automatic repair flows for common issues
- Advanced config flow validation
- Comprehensive diagnostics
- Copy the
unraid
folder into yourcustom_components
directory. - Restart Home Assistant.
- Go to Configuration > Integrations.
- Click the "+ ADD INTEGRATION" button.
- Search for "Unraid" and select it.
- Follow the configuration steps.
IMPORTANT: SSH is disabled by default. SSH needs to be enabled on Unraid --> Settings --> Management Access
During the setup, you'll need to provide:
- Host: The IP address or hostname of your Unraid server
- Username: Your Unraid username (usually 'root')
- Password: Your Unraid password
- Port: SSH port (usually 22)
- General Update Interval (Minutes): How often to update non-disk sensors (1-60 minutes). Default is 5 minutes.
- Disk Update Interval (Hours): How often to update disk information (1-24 hours). Default is 1 hour
Note: Setting lower intervals will provide more up-to-date information but may increase system load.
- CPU Usage: Shows the current CPU utilization percentage.
- RAM Usage: Displays the current RAM usage percentage.
- CPU and Motherboard Temps: Shows CPU and Motherboard temperatures
- System Fans : Shows System Fans and RPM
- Array Usage: Shows the overall array usage percentage.
- Individual Array Disks: Displays usage information for each disk in the array.
- Uptime: Shows how long the Unraid server has been running.
- UPS Power: Displays information about the UPS power consumption
- UPS Status: Displays information about the connected UPS (if available).
- Disk Health: Displays disk health information
- VM and Docker Service: Displays information about docker and vm services
- SSH Connectivity: Display information about integration connected to Unraid via SSH
- Parity Check: Displays information if parity check is enabled.
The integration includes automatic repair flows for common issues:
- Connection Issues: Helps you fix connection problems to your Unraid server
- Authentication Problems: Guides you through fixing authentication issues
- Disk Health Issues: Alerts you about potential disk failures and provides guidance
- Array Problems: Notifies you about array issues and suggests solutions
- Parity Check Failures: Alerts you about parity check failures
The integration includes advanced validation during setup:
- Hostname/IP Validation: Ensures the hostname or IP address is in a valid format
- Port Validation: Verifies the SSH port is within a valid range (1-65535)
- Credential Validation: Ensures username and password are not empty
- Connection Testing: Tests the connection before completing setup
- Docker Containers: Turn on/off Docker containers
- VMs: Turn on/off Virtual Machines
unraid.execute_command
: Execute a shell command on the Unraid serverunraid.execute_in_container
: Execute a command in a Docker containerunraid.execute_user_script
: Execute a user scriptunraid.stop_user_script
: Stop a running user scriptunraid.system_reboot
: Reboot Unraidunraid.system_shutdown
: Shutdown Unraid
unraid.docker_pause
: Pause a running Docker containerunraid.docker_resume
: Resume a paused Docker containerunraid.docker_restart
: Restart a Docker container
unraid.vm_pause
: Pause a running virtual machineunraid.vm_resume
: Resume a paused virtual machineunraid.vm_restart
: Restart a running virtual machineunraid.vm_hibernate
: Hibernate a running virtual machine (suspend to disk)unraid.vm_force_stop
: Force stop a virtual machine (equivalent to pulling the power plug)
- Buttons to control user scripts (Disabled by default)
- Buttons to control system reboot and shutdown (Disabled by default)
- Ensure SSH is enabled on your Unraid server (Settings > Management Access)
- Verify the hostname/IP address is correct
- Check that the SSH port is correct (usually 22)
- Ensure your username and password are correct
- Check your network connectivity
- Increase the update intervals if the integration is causing high CPU usage
- Disable sensors you don't need
- Ensure your Unraid server has adequate resources
Comprehensive documentation is available on our Documentation Site:
- Installation Guide
- Features Overview
- Examples and Use Cases
- Troubleshooting Guide
- Docker Management
- VM Control
- User Scripts
- Contributing Guide
Contributions to this integration are welcome. Please fork the repository and submit a pull request with your changes. Make sure to follow the contribution guidelines. See our Contributing Guide for more details.
This integration is released under the Apache License.
This integration is not officially associated with or endorsed by UNRAID. UNRAID trademarks belong to UNRAID, and this integration is independently developed.