04 - Home Assistant + Zigbee2MQTT
Date: 2025-12-25
System: Proxmox VE 9.1.2, HP EliteDesk 800 G4
Goal: Home Assistant OS VM installation, Zigbee2MQTT integration, full backup strategy
📋 Table of Contents¶
- System overview
- Home Assistant VM installation
- Zigbee2MQTT setup
- Device pairing
- Copying automations
- Removing Docker HA
- Backup strategy
- Windows offsite backup
🖥️ System Overview¶
Hardware:¶
- Host: HP EliteDesk 800 G4
- CPU: Intel i5-8400 (6 cores)
- RAM: 16GB
- Storage:
- 256GB NVMe SSD (Proxmox OS + VM/LXC)
- 4x HDD (MergerFS pool, 8.1TB)
- Parity: disk2 (SnapRAID)
Proxmox configuration:¶
- Version: Proxmox VE 9.1.2
- IP: 192.168.0.109
- LXC 100: Docker host (192.168.0.110)
- VM 101: Home Assistant OS (192.168.0.202)
Storage:¶
- local-lvm: VM/LXC disks (NVMe)
- local: ISO storage (NVMe)
- backup-hdd: Vzdump backups (HDD, /mnt/storage/backup/proxmox)
🏠 Home Assistant VM Installation¶
Why VM and not Docker?¶
Docker Compose DISADVANTAGES: - ❌ No Supervisor - ❌ No Add-on Store - ❌ USB passthrough is cumbersome - ❌ Not officially supported
HA OS VM ADVANTAGES: - ✅ Full HA ecosystem (Supervisor, Add-ons, HACS) - ✅ Official support - ✅ Simple USB/Zigbee passthrough - ✅ Proxmox snapshot/backup - ✅ Dedicated resources
Installation with community script:¶
Proxmox host SSH:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/haos-vm.sh)"
Script automatically: - ✅ Downloads the latest HA OS image (16.3) - ✅ UEFI boot setup (OVMF firmware) - ✅ Optimal VM configuration (q35, kvm64) - ✅ Creates EFI disk - ✅ 32GB root disk size - ✅ Starts the VM
Result: - VM ID: 101 - Name: haos-16.3 - CPU: 2 cores - RAM: 4096MB - IP: 192.168.0.202 - WebUI: http://192.168.0.202:8123
Manual installation problems (that we avoided):¶
Previous failed attempts: - ❌ Manual QCOW2 import → would not boot - ❌ Using SeaBIOS → stuck at boot - ❌ Old HA OS version (13.2) → incompatible with Proxmox 9.1.2 - ❌ Port conflict (8123) → with old Docker HA
Community script SOLVED: - ✅ UEFI boot (OVMF) - ✅ Latest HA OS (16.3) - ✅ Correct machine type (q35) - ✅ EFI disk with proper configuration
VM configuration (final):¶
/etc/pve/qemu-server/101.conf:
bios: ovmf
boot: order=scsi0
cores: 2
cpu: kvm64
efidisk0: local-lvm:vm-101-disk-1,efitype=4m,size=1M
machine: q35
memory: 4096
name: haos-16.3
net0: virtio=YOUR_MAC_ADDRESS,bridge=vmbr0
ostype: l26
scsi0: local-lvm:vm-101-disk-0,size=32G
scsihw: virtio-scsi-pci
First login:¶
HA WebUI (http://192.168.0.202:8123): 1. Create Account 2. Name, username, password 3. Location: YOUR_CITY, YOUR_COUNTRY 4. Auto-discovery: Allow 5. Analytics: Disable/Enable (as preferred)
📡 Zigbee2MQTT Setup¶
Why Zigbee2MQTT and not ZHA?¶
| Aspect | ZHA | Zigbee2MQTT |
|---|---|---|
| Setup | Simple (5 min) | More complex (15 min) |
| Supported devices | ~1500 | ~2600+ ✅ |
| Updates | Slower | Faster ✅ |
| OTA firmware | Limited | Full ✅ |
| Network map | None | Yes (graphical!) ✅ |
| Frontend UI | HA only | Separate WebUI ✅ |
| Customization | Limited | Many options ✅ |
Decision: Zigbee2MQTT (experienced user, more devices, better features)
USB Dongle passthrough:¶
Hardware: SONOFF Zigbee 3.0 USB Dongle Plus V2
USB identification (Proxmox host):
USB passthrough to VM:
Proxmox WebUI:
1. VM 101 → Hardware → Add → USB Device
2. Use USB Vendor/Device ID
3. Vendor/Device: 10c4:ea60
4. USB3: ✅
5. Add
OR CLI:
Verify in HA:
Installing Mosquitto MQTT Broker:¶
HA WebUI: 1. Settings → Add-ons → Add-on Store 2. Official add-ons → Mosquitto broker 3. Install 4. Configuration: (default is fine) 5. ✅ Start on boot 6. ✅ Watchdog 7. Start
Installing Zigbee2MQTT Add-on:¶
Add repository:
HA WebUI: 1. Settings → Add-ons → Add-on Store 2. ⋮ (three dots) → Repositories 3. Add repository URL:
4. Add → CloseInstall add-on: 1. Refresh page (F5) 2. Zigbee2MQTT → Install (~2 minutes) 3. Configuration tab
Zigbee2MQTT configuration:¶
Configuration tab:
data_path: /config/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: "-d -d"
log: false
mqtt:
server: mqtt://core-mosquitto:1883
user: ""
password: ""
serial:
port: /dev/ttyUSB0
adapter: ezsp
advanced:
log_level: info
network_key: GENERATE
pan_id: GENERATE
Important settings:
- mqtt.server: Mosquitto broker (internal HA network)
- serial.port: USB dongle device
- serial.adapter: ezsp (SONOFF Dongle Plus)
Start add-on: 1. ✅ Start on boot 2. ✅ Watchdog 3. ❌ Auto-update (before testing!) 4. ✅ Show in sidebar 5. Start
Check logs:
Z2M Add-on → Log tab:
[INFO] Starting Zigbee2MQTT...
[INFO] MQTT connected
[INFO] Starting zigbee-herdsman...
[INFO] Coordinator firmware version: {'type': 'EmberZNet', 'meta': {'version': '6.10.3'}}
[INFO] Currently 0 devices are joined
[INFO] Zigbee: allowing new devices to join
[INFO] Started
✅ Working!
Z2M WebUI: http://192.168.0.202:8099 (OR sidebar: Zigbee2MQTT icon)
Adding MQTT Integration in HA:¶
IMPORTANT: Z2M → HA communication goes through MQTT!
HA WebUI: 1. Settings → Devices & Services 2. MQTT discovered → Add 3. Submit (default settings)
Ignoring discovered integrations: - Sonoff Zigbee 3.0 USB Dongle → Ignore (ZHA auto-discovery, not needed!)
Result: - MQTT integration: Configured ✅ - Z2M Bridge appears as a device - Paired Zigbee devices appear automatically!
🔌 Device Pairing¶
Philips Hue Essential White and Color Ambiance (3 units):¶
Reset method: Philips Hue App reset
Steps: 1. Install Philips Hue Bluetooth app (Android/iOS) 2. Connect to lamp via Bluetooth 3. Lamp Settings → Delete 4. Lamp reset ✅
Pairing in Z2M: 1. Z2M WebUI → Permit join (All) ON 2. ~10-30 seconds → Lamp pairs automatically 3. Appears in Devices list 4. Rename: e.g. "Living room lamp"
OTA firmware update: ⚠️ SLOW! ~1-2 hours per lamp - Progresses at ~1% per minute - DO NOT interrupt! - Lamp stays ON - Keep dongle CLOSE
Z2M → Devices → Philips Hue → OTA tab → Update
EMOS GoSmart A65 E27 14W RGB Zigbee:¶
Reset method: 5x ON/OFF
Steps: 1. Switch: ON (2 sec) → OFF (2 sec) → repeat 5x 2. 5th time: LEAVE IT ON 3. Lamp flashes/pulses → Reset mode ✅ 4. Z2M Permit join ON 5. ~10-30 sec → Pairs
In Z2M: - Rename: "EMOS Living room" - Test: ON/OFF, brightness, RGB color
Aqara Door & Window Sensor (MCCGQ11LM):¶
Reset method: Button for 5 seconds
Steps: 1. Check battery (CR1632) 2. Open cover 3. Reset button (on top or in hole on side) 4. PRESS and HOLD for 5 seconds 5. LED flashes quickly (blue/red) → Pairing mode ✅ 6. Z2M Permit join ON 7. ~10-30 sec → Pairs
In Z2M: - Rename: "Front door" - Test: Magnet close (true) / far (false)
Automatically appears in HA:
- binary_sensor.bejárati_ajto_contact
- sensor.bejárati_ajto_battery
- sensor.bejárati_ajto_linkquality
🤖 Copying Automations¶
Finding old automations:¶
Old Docker HA config folder:
Installing File Editor Add-on:¶
HA WebUI: 1. Settings → Add-ons → Add-on Store 2. Official add-ons → File editor 3. Install 4. ✅ Show in sidebar 5. Start
Copying automations:¶
File Editor (sidebar):
1. Left file tree → automations.yaml
2. Delete content (if [] is there)
3. PASTE the full old automations.yaml content
4. Save (💾 button)
OR with Terminal & SSH:
Reload automations: 1. Developer Tools → YAML tab 2. AUTOMATIONS → Reload 3. OR: Settings → System → AUTOMATIONS → Reload
Result: - ✅ Automations appear (Settings → Automations) - ✅ Automations fixed - device_id references replaced with entity_id after devices were paired in Zigbee2MQTT
Copied automations:¶
1. Towel dryer timer (time-based, device ID)
2. Entrance light On (motion, device ID)
3. Entrance light Off (motion, device ID)
4. Entrance light On (Sunset/Sunrise, device ID)
5. Hallway lights (3x motion sensor, entity ID)
6. Door sensors (entity ID)
To be fixed later:¶
Device ID → Entity ID conversion required!
BEFORE (device_id, NOT working):
triggers:
- type: occupied
device_id: 2bae5d981d74e6724b39d3615daf55ec # ❌
entity_id: ca930b208dffc389aac517604dc09584
AFTER (entity_id, WORKS):
triggers:
- trigger: state
entity_id: binary_sensor.bejarati_mozgas_occupancy # ✅ Z2M friendly name
to: 'on'
Create mapping table when devices are paired: - Old ZHA entities → New Z2M entities - Find & Replace for each automation - Rewrite device ID automations
🗑️ Removing Docker HA¶
Why remove it? New HA VM exists, old Docker HA is no longer needed!
Remove Docker container:¶
# In LXC 100
pct enter 100
# Container stop & remove
docker stop homeassistant
docker rm homeassistant
# Remove compose folder
rm -rf /srv/docker-compose/homeassistant/
# Remove data folder (after backup!)
rm -rf /srv/docker-data/homeassistant/
# Verify
docker ps -a | grep homeassistant # No result ✅
ss -tulpn | grep 8123 # Port free ✅
Docker cleanup (optional):¶
# Remove image
docker images | grep homeassistant
docker rmi ghcr.io/home-assistant/home-assistant:stable
# Volume cleanup
docker volume prune
🛡️ Backup Strategy¶
3-2-1 Backup rule:¶
- 3 copies: Original + Proxmox backup + Windows offsite
- 2 media: NVMe (snapshot) + HDD (backup)
- 1 offsite: Windows machine (manual/scheduled sync)
SnapRAID vs Proxmox Backup vs Snapshot:¶
| Type | Protects | Good for | NOT good for | Storage |
|---|---|---|---|---|
| SnapRAID | Media files | Disk failure | VM/LXC, frequent changes | HDD (parity) |
| Proxmox Backup | Full VM/LXC | Disaster recovery | Media files (large) | HDD |
| Snapshot | VM/LXC point-in-time | Fast rollback | Long term | NVMe |
SnapRAID configuration (ALREADY SET UP):¶
Parity protection for media files:
Automation:
# /etc/cron.d/snapraid
0 3 * * 0 root /usr/bin/snapraid sync
0 4 1 * * root /usr/bin/snapraid scrub -p 10
Proxmox Backup HDD storage:¶
Create storage:
Proxmox WebUI:
1. Datacenter → Storage → Add → Directory
2. ID: backup-hdd
3. Directory: /mnt/storage/backup/proxmox
4. Content: ✅ VZDump backup file
5. Nodes: pve
6. Enable: ✅
7. Shared: ❌
8. Add
OR CLI:
mkdir -p /mnt/storage/backup/proxmox
pvesm add dir backup-hdd --path /mnt/storage/backup/proxmox --content backup
Backup Schedule setup:¶
Proxmox WebUI:
1. Datacenter → Backup → Add
2. Storage: backup-hdd (HDD!)
3. Schedule: 02:30 (Systemd calendar format!)
4. Selection mode: Include selected VMs
- ✅ 100 (docker-host)
- ✅ 101 (homeassistant)
5. Retention:
- Keep last: 7 (last 7 days)
- Keep daily: 7 (7 daily backups)
- Keep weekly: 4 (4 weekly backups)
- Keep monthly: 3 (3 monthly backups)
6. Mode: Snapshot
7. Compression: ZSTD
8. Enable: ✅
9. Create
⚠️ WARNING: Proxmox does NOT use cron format!
CORRECT formats:
02:30 = Every day at 02:30
daily = Every day at 00:00
mon..fri 02:00 = Monday to Friday at 02:00
sat,sun 03:00 = Weekend at 03:00
INCORRECT (cron):
Manual backup test:¶
# On Proxmox host
vzdump 100 --storage backup-hdd --mode snapshot --compress zstd
vzdump 101 --storage backup-hdd --mode snapshot --compress zstd
# Verify
ls -lh /mnt/storage/backup/proxmox/dump/
# vzdump-lxc-100-2025_12_25-02_00_00.tar.zst
# vzdump-qemu-101-2025_12_25-02_30_00.vma.zst
Snapshot strategy (NVMe):¶
WHEN to take a snapshot: - Before a Proxmox update - Before a major update (Docker, HA OS) - Before trying a new configuration
Taking a snapshot:
# CLI
qm snapshot 101 pre-haos-update-$(date +%Y%m%d)
pct snapshot 100 pre-docker-update-$(date +%Y%m%d)
# Rollback (if something goes wrong)
qm rollback 101 pre-haos-update-20251225
pct rollback 100 pre-docker-update-20251225
# Delete snapshot (after 1-2 days)
qm delsnapshot 101 pre-haos-update-20251225
pct delsnapshot 100 pre-docker-update-20251225
OR Proxmox WebUI: - VM/LXC → Snapshots tab → Take Snapshot
Full backup timeline:¶
02:00 - Proxmox backup start (LXC 100)
02:15 - LXC 100 backup finish (~15 min, 2-5GB)
02:15 - Proxmox backup start (VM 101)
02:30 - VM 101 backup finish (~15 min, 5-10GB)
03:00 - SnapRAID sync (Sunday, media protection)
05:00 - Windows offsite sync (manual/scheduled)
Storage plans:¶
256GB NVMe:
Proxmox OS: ~10GB
VM 101 (HA): ~32GB
LXC 100: ~48GB
Snapshots: ~10GB (3-5, pre-update)
Temp: ~10GB
─────────────────────
Used: ~110GB
Free: ~146GB ✅
MergerFS HDD (8.1TB):
Media: 1.7TB
Proxmox backups: ~120GB (7 daily + 4 weekly + 3 monthly)
Docker configs: ~1GB
SnapRAID parity: 1.7TB (disk2)
─────────────────────────
Used: ~3.5TB
Free: ~4.6TB ✅
💾 Windows Offsite Backup¶
Why Windows sync?¶
- ✅ Offsite backup (separate machine)
- ✅ Disaster recovery (if Proxmox host dies)
- ✅ Fulfills 3-2-1 rule
Rclone attempt (FAIL):¶
Problem: SMB authentication error
# Proxmox → Windows SMB
rclone config # SMB/CIFS remote
rclone lsd windows-backup:/
# ERROR: The attempted logon is invalid
Cause: Windows user/password issue (PIN vs Password?)
WORKING SOLUTION: Windows batch script!¶
Reversed strategy:
Proxmox backup → HDD (/mnt/storage/backup/proxmox)
↓
Samba share (working!)
↓
Windows Robocopy script (simple!)
Samba configuration (ALREADY SET UP):¶
Proxmox Samba share:
Windows access: File Explorer → \\192.168.0.109\Storage
Windows Robocopy script:¶
D:\Scripts\proxmox-backup-sync.bat:
@echo off
title Proxmox Backup Sync
color 0A
echo ================================================
echo PROXMOX BACKUP SYNC
echo ================================================
echo.
echo Source: \\192.168.0.109\Storage\backup\proxmox\dump
echo Dest: D:\Backups\Proxmox
echo.
echo Starting copy...
echo.
REM Robocopy sync - without net use!
robocopy "\\192.168.0.109\Storage\backup\proxmox\dump" "D:\Backups\Proxmox" /MIR /Z /W:5 /R:3 /NP /V /LOG:D:\Scripts\sync.log
echo.
echo ================================================
if %ERRORLEVEL% LEQ 7 (
echo SUCCESS!
) else (
echo ERROR!
)
echo Log: D:\Scripts\sync.log
echo ================================================
pause
Robocopy flags:
- /MIR = Mirror mode (deletes what's not in source)
- /Z = Restartable (can continue after interruption)
- /W:5 = Retry wait 5 seconds
- /R:3 = 3 retries
- /NP = No progress % (faster)
- /V = Verbose (detailed log)
- /LOG: = Log file
Robocopy exit codes:
Troubleshooting: System error 1219:¶
Problem:
Cause: Already connected in File Explorer (different user?)
Solution:
1. Delete connections:
2. Re-run script:
OR simpler: Do NOT use net use in the script!
Windows Credential Manager remembers the password: - First run: Asks for password - After that: Logs in automatically
Permanent Credential Manager setup:¶
After this the script can run without asking for a password! ✅
Task Scheduler automation (optional):¶
To run on every login:
Task Scheduler:
1. Create Task
2. General:
- ✅ Run only when user is logged on
3. Triggers:
- At log on (or Daily when logged on)
4. Actions:
- Program: D:\Scripts\proxmox-backup-sync.bat
5. OK
IMPORTANT: "Run only when user is logged on" → Does NOT ask for password!
Manual run (RECOMMENDED!):¶
Simplest:
1. Turn on Windows
2. Double-click: D:\Scripts\proxmox-backup-sync.bat
3. Wait ~5-10 minutes (copies only changes)
4. Done! ✅
📊 Final System Overview¶
VM/LXC configuration:¶
| ID | Type | Name | vCPU | RAM | Disk | IP | Services |
|---|---|---|---|---|---|---|---|
| 100 | LXC | docker-host | 4 | 8GB | 48GB | 192.168.0.110 | Docker (Jellyfin, *arr stack, qBittorrent, etc.) |
| 101 | VM | homeassistant | 2 | 4GB | 32GB | 192.168.0.202 | HA OS 16.3, Z2M, Mosquitto |
HA Add-ons:¶
- ✅ Mosquitto broker (MQTT)
- ✅ Zigbee2MQTT (Zigbee devices)
- ✅ Terminal & SSH (CLI access)
- ✅ File editor (Config editing)
Zigbee devices:¶
- 💡 Philips Hue Essential (3x RGB lamp)
- 💡 EMOS GoSmart A65 (1x RGB lamp)
- 🚪 Aqara Door Sensor (MCCGQ11LM)
Backup strategy summary:¶
DAILY (automatic):
WEEKLY (automatic):
MONTHLY (automatic):
BEFORE UPDATES (manual):
Before Proxmox/Docker/HA update:
→ Snapshot (NVMe, fast rollback)
→ If OK: Delete snapshot after 1-2 days
→ If FAIL: Rollback (30 seconds!)
OFFSITE (manual/scheduled):
Network topology:¶
Internet
↓
Router (192.168.0.1)
↓
├─ Proxmox Host (192.168.0.109)
│ ├─ LXC 100 (192.168.0.110) - Docker
│ └─ VM 101 (192.168.0.202) - Home Assistant
│ └─ USB: SONOFF Zigbee Dongle
│ └─ Zigbee2MQTT
│ ├─ Philips Hue (3x)
│ ├─ EMOS GoSmart (1x)
│ └─ Aqara Door Sensor (1x)
│
└─ Windows PC (192.168.0.100) - Offsite backup
Access points:¶
| Service | URL | Description |
|---|---|---|
| Proxmox WebUI | https://192.168.0.109:8006 | Proxmox management |
| Home Assistant | http://192.168.0.202:8123 | HA WebUI |
| Zigbee2MQTT | http://192.168.0.202:8099 | Z2M frontend (OR sidebar) |
| Jellyfin | http://192.168.0.110:8096 | Media server |
| qBittorrent | http://192.168.0.110:8080 | Torrent client |
| Radarr | http://192.168.0.110:7878 | Movie management |
| Sonarr | http://192.168.0.110:8989 | TV management |
| Samba | \192.168.0.109\Storage | Network file share |
🔧 Useful Commands¶
Proxmox host:¶
# VM/LXC status
qm status 101
pct status 100
# VM start/stop
qm start 101
qm stop 101
qm reboot 101
# LXC start/stop
pct start 100
pct stop 100
pct reboot 100
# LXC shell
pct enter 100
# Manual backup
vzdump 100 --storage backup-hdd --mode snapshot --compress zstd
vzdump 101 --storage backup-hdd --mode snapshot --compress zstd
# Backup list
ls -lh /mnt/storage/backup/proxmox/dump/
# SnapRAID
snapraid status
snapraid sync
snapraid scrub -p 10
# Storage info
pvesm status
df -h /mnt/storage
Home Assistant (Terminal & SSH):¶
# HA CLI
ha help
ha core info
ha core restart
ha core update
# Add-on management
ha addons
ha addons info zigbee2mqtt
ha addons restart zigbee2mqtt
ha addons logs zigbee2mqtt
# Backup
ha backups new --name "manual-backup"
ha backups list
# USB devices
ls -lh /dev/ttyUSB*
ls -lh /dev/ttyACM*
# Config files
ls -lh /config/
cat /config/automations.yaml
nano /config/configuration.yaml
Zigbee2MQTT:¶
Z2M WebUI → Settings → Tools: - Touchlink factory reset (for Philips lamps) - Permit join (All/Specific) - Network map (graphical)
View logs:
Docker (LXC 100):¶
# Container list
docker ps -a
# Logs
docker logs -f jellyfin
docker logs -f radarr
# Restart
docker restart jellyfin
docker compose -f /srv/docker-compose/jellyfin/docker-compose.yml restart
# Cleanup
docker system prune -a
Windows (PowerShell/CMD):¶
REM Samba connection
net use \\192.168.0.109\Storage /user:smbuser
net use REM List all connections
net use * /delete /yes REM Delete all
REM Robocopy sync
D:\Scripts\proxmox-backup-sync.bat
REM View log
type D:\Scripts\sync.log | more
REM Credential Manager
cmdkey /list
cmdkey /add:192.168.0.109 /user:smbuser /pass:PASSWORD
❗ Troubleshooting¶
HA VM won't boot:¶
Problem: Stuck at "Booting from Hard Disk" or "Starting serial terminal"
Solution: 1. STOP attempting manual QCOW2 import 2. Use the community script:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/haos-vm.sh)"
Zigbee device won't pair:¶
Checks: 1. USB dongle accessible?
2. Z2M running? 3. Permit join ON? 4. Device in reset mode? - Philips Hue: App reset - EMOS: 5x ON/OFF - Aqara: Button 5 sec → LED flashing? 5. Dongle CLOSE to device? (1-2 meters for first pairing!)MQTT integration not visible:¶
- Mosquitto running?
- Z2M connected to MQTT?
- Did you add MQTT when discovered?
Proxmox backup errors:¶
"unable to create backup": 1. Storage accessible?
2. VM/LXC running? 3. Snapshot mode supported? - LXC: LVM-thin OK ✅ - VM: QCOW2/RAW OK ✅"backup retention cleanup failed": - Keep last/weekly/monthly numbers too small? - Enough space?
Windows backup sync error 1219:¶
Problem: "Multiple connections to a server"
Solution:
Or modify the script: Delete connections first!
net use \\192.168.0.109 /delete /yes 2>nul
robocopy "\\192.168.0.109\Storage\backup\proxmox\dump" "D:\Backups\Proxmox" /MIR
🎯 Next Steps¶
Short term (1 week):¶
- [ ] Pair more Zigbee devices (additional lamps, sensors)
- [ ] Fix automations (device ID → entity ID conversion)
- [ ] Customize HA Dashboard (Layout, Lovelace cards)
- [ ] Check Z2M network map (Map tab)
Medium term (1 month):¶
- [ ] Install mobile app (Android/iOS)
- [ ] Set up notifications (push notification)
- [ ] Expand automations (presence detection, schedules)
- [ ] Energy monitoring (with smart plugs)
- [ ] Install HACS (custom integrations)
Long term (3-6 months):¶
- [ ] Expand Zigbee mesh (router devices, repeaters)
- [ ] Advanced automations (Node-RED, scripts)
- [ ] Voice assistant (Assist, Whisper, Piper)
- [ ] Google Drive backup (rclone offsite)
- [ ] Dashboard display (tablet, Raspberry Pi)
📚 Further Resources¶
Official documentation:¶
- Home Assistant: https://www.home-assistant.io/docs/
- Zigbee2MQTT: https://www.zigbee2mqtt.io/
- Proxmox VE: https://pve.proxmox.com/wiki/Main_Page
- SnapRAID: https://www.snapraid.it/manual
Community:¶
- HA Community: https://community.home-assistant.io/
- HA Reddit: https://www.reddit.com/r/homeassistant/
- Z2M GitHub: https://github.com/Koenkk/zigbee2mqtt
- Proxmox Forum: https://forum.proxmox.com/
Device compatibility:¶
- Z2M Supported devices: https://www.zigbee2mqtt.io/supported-devices/
- HA Integrations: https://www.home-assistant.io/integrations/
🎉 Summary¶
What we achieved:
✅ Home Assistant OS VM (16.3) on Proxmox with UEFI boot
✅ Zigbee2MQTT fully configured (MQTT, USB passthrough)
✅ 5 Zigbee devices paired and working
✅ Automations copied and fixed from old HA
✅ Docker HA removed from LXC (port freed)
✅ Full backup strategy:
- Proxmox backup (daily to HDD)
- SnapRAID (media protection)
- Snapshot (pre-update on NVMe)
- Windows offsite (robocopy script)
✅ 3-2-1 rule met (3 copies, 2 media, 1 offsite)
Working system: - 🏠 Home Assistant: http://192.168.0.202:8123 - 📡 Zigbee2MQTT: Sidebar or :8099 - 💾 Automatic backup: Nightly 02:30 - 🔒 Secure: Snapshot + Backup + Offsite
Congratulations! Full home automation + backup system ready! 🎄✨
Created: 2025-12-25
System: Proxmox VE 9.1.2 / Home Assistant OS 16.3
Version: 1.0