Added support for Home Assistant Diagnostics, including a new feature to download diagnostics for each Easy Proxmox config entry. Diagnostics include sanitized config entry data, runtime client information, and more, with sensitive data redacted.
Easy Proxmox (by René Bachmann)
A powerful Home Assistant integration to monitor and control Proxmox VE. With Easy Proxmox you can monitor nodes, VMs and containers directly in Home Assistant, start/stop/reboot guests and display detailed system metrics.
Features
Per Node
- CPU usage (%)
- Load Average (1 minute)
- RAM Used / Total / Free (MB)
- Swap Used / Total / Free (MB)
- Storage (RootFS):
- Used / Total / Free (GB, 3 decimals)
- Uptime (days, hours, minutes)
Per VM / Container
- Status (running, stopped, etc.)
- CPU usage (%)
- RAM usage (MB)
- Uptime (days, hours, minutes)
- Network In / Out (MB)
- IP address (preferred IP is configurable)
- Power Switch:
- ON = Start
- OFF = Shutdown (soft)
- Buttons:
- Reboot
- Stop (hard)
Dynamic Behavior
- New VMs/CTs appear automatically
- Deleted VMs/CTs are fully removed (no “ghost devices”)
- Renames are applied live
- Options are applied live (no restart required)
📦 Installation via HACS (Recommended)
To install Easy Proxmox through HACS:
-
Ensure HACS is already installed in your Home Assistant instance.
If not, follow the official guide: https://hacs.xyz/ -
Open HACS → Integrations.
-
Click the “⋯” (three dots) → Custom repositories.
-
Add the following repository:
- Repository URL:
https://github.com/bahmcloud/easy_proxmox - Category: Integration
- Version: Tags (recommended)
- Repository URL:
-
Click Add, then locate Easy Proxmox in the HACS list and click Install.
-
After installation, restart Home Assistant.
-
Go to Settings → Devices & Services → Add Integration → Easy Proxmox.
Proxmox: Create User & API Token
1) Create a User
In the Proxmox Web UI:
Datacenter → Permissions → Users → Add
Example:
- Username:
homeassistant - Realm:
pamorpve - Set a password (only for management; the token will be used for API access)
2) Create an API Token
Datacenter → Permissions → API Tokens → Add
- User:
homeassistant@pve - Token ID:
easyproxmox - Privilege Separation: disabled (important!)
- Create → copy & store the Token Secret
You will get:
Token Name: homeassistant@pve!easyproxmox
Token Secret: <long secret string>
3) Assign Permissions (Admin Rights)
To ensure full functionality (monitoring + guest controls), assign admin rights:
Datacenter → Permissions → Add
- Path:
/ - User:
homeassistant@pve - Role:
PVEAdmin
This allows the integration to:
- read node status
- read VM/CT status
- start/stop/shutdown/reboot guests
- query QEMU Guest Agent (for IP discovery)
Set Up the Integration in Home Assistant
When adding the integration, you will be asked for:
| Field | Meaning |
|---|---|
| Host | IP address or hostname of your Proxmox server |
| Port | Default: 8006 |
| Verify SSL | Enable only if your certificate is valid/trusted |
| Token Name | e.g. homeassistant@pve!easyproxmox |
| Token Secret | The generated API token secret |
After saving:
- One device is created per Proxmox node
- VM/CT devices are linked below their node device
🚀 Services & Automations (since v0.7.0)
Easy Proxmox provides Home Assistant services so you can fully control your VMs and containers in automations and scripts without using buttons or switches.
Available services:
| Service | Description |
|---|---|
proxmox_pve.start |
Start a VM or container |
proxmox_pve.shutdown |
Gracefully shutdown a VM or container |
proxmox_pve.stop_hard |
Hard stop a VM or container |
proxmox_pve.reboot |
Reboot a VM or container |
All services are multi-host aware and automatically select the correct Proxmox server.
✅ Recommended usage: Device based
This is the safest and easiest way, especially for multi-host setups.
In an automation or script:
service: proxmox_pve.shutdown
target:
device_id: YOUR_DEVICE_ID
In the UI, you can simply select the VM/CT device from the dropdown.
Home Assistant will automatically:
- Find the correct Proxmox host
- Find the correct node
- Execute the action
🔧 Manual usage: Node / VMID based
You can also call services manually:
service: proxmox_pve.reboot
data:
node: pve1
vmid: 100
type: qemu
If you have multiple Proxmox servers configured, you should also specify one of:
host: 192.168.178.101
or
config_entry_id: 8d9f2e7b1c3d4a5f...
This avoids ambiguity.
🧠 Resolution priority
When a service is called, Easy Proxmox resolves the target in this order:
config_entry_iddevice_idhost- Guest lookup by
node + vmid + type
If a guest exists on multiple Proxmox hosts, the call fails and asks for clarification.
🏗 Example automations
Shutdown all test systems at night:
alias: Stop Test VM at Night
trigger:
- platform: time
at: "23:00:00"
action:
- service: proxmox_pve.shutdown
target:
device_id: 123456abcdef...
Start a VM when electricity price is low:
alias: Start VM on cheap power
trigger:
- platform: numeric_state
entity_id: sensor.power_price
below: 0.20
action:
- service: proxmox_pve.start
target:
device_id: 123456abcdef...
🧩 Why this matters
With services you can:
- Fully automate your Proxmox infrastructure
- Remove dependency on dashboard buttons
- Build power-saving or maintenance automations
- Control multiple Proxmox clusters cleanly
Options (Gear Icon)
After setup, open: Settings → Devices & Services → Easy Proxmox → Options (gear icon)
Polling Interval
How often data is fetched from Proxmox.
| Value | Description |
|---|---|
| 5 seconds | Very fast, higher API load |
| 10–20 seconds | Recommended |
| >30 seconds | Lower API load |
Changes are applied immediately (no restart required).
IP Preference Mode
Controls which IP is shown as the “primary” IP for a guest:
| Mode | Description |
|---|---|
| prefer_192168 | Prefer 192.168.x.x |
| prefer_private | Prefer private networks (10.x, 172.16–31.x, 192.168.x) |
| any | Use the first available IP |
| custom_prefix | Use a custom prefix |
Custom IP Prefix
Only relevant if custom_prefix is selected.
Examples:
10.0.192.168.178.172.20.
This allows you to force a specific subnet to be selected as the guest’s preferred IP.
Recommended Network Configuration
For reliable guest IP detection:
- Enable QEMU Guest Agent in VMs
- Ensure the guest receives valid IPs (DHCP/static)
- If only loopback/link-local addresses exist, no useful IP can be selected
Device Structure in Home Assistant
Easy Proxmox └── Proxmox Node pve1 ├── CPU ├── RAM Used / Free / Total ├── Swap Used / Free / Total ├── Storage Used / Free / Total ├── Uptime └── VM: HomeAssistant (VMID 100) ├── Status ├── CPU ├── RAM ├── Network In / Out ├── IP ├── Power Switch ├── Reboot Button └── Stop (hard) Button
Security Notice
The API token has admin rights. Treat it like a root password:
- never share it publicly
- store it only in Home Assistant
- revoke and regenerate it if compromised
Troubleshooting
| Issue | Fix |
|---|---|
| Integration won’t load | Check logs: Settings → System → Logs |
| No IP shown | QEMU Guest Agent missing OR IP preference mode not matching your subnet |
| Buttons don’t work | Check Proxmox permissions (PVEAdmin role) |
| Old devices remain | Fully cleaned up automatically since version 0.4.1 |
Support & Contributing
If you need help, open an issue in GitHub.
Want to contribute? Feel free to submit PRs!
Easy Proxmox aims to provide a complete Proxmox VE experience in Home Assistant.
See CHANGELOG.md for full version history.
Releases: https://github.com/bahmcloud/easy_proxmox/releases