Sistema de domótica distribuido sobre Raspberry Pi 5 y VirtualBox, interconectado mediante ZeroTier con control centralizado en Home Assistant.
Arquitectura distribuida con dos instancias de Home Assistant sincronizadas via ZeroTier SDN.
Dispositivos integrados en el sistema, organizados por protocolo y función.
Red virtual SDN que conecta ambas instancias de Home Assistant sin exposición pública de puertos.
Proceso completo de configuración del sistema DOMOTEC desde cero.
Configuración inicial del hardware base: Raspberry Pi 5 con almacenamiento SSD NVMe y sistema operativo Home Assistant.
# Verificar modelo y memoria cat /proc/cpuinfo | grep Model free -h # Verificar almacenamiento lsblk df -h
# /boot/config.txt dtparam=audio=off dtparam=pciex1_gen=3 # PCIe Gen 3 para NVMe arm_boost=1 usb_max_current_enable=1
Flasheo de la imagen oficial de Home Assistant OS en el SSD NVMe de la Raspberry Pi 5.
# Descargar imagen HAOS para RPi5 wget https://github.com/home-assistant/operating-system/releases/latest/download/haos_rpi5-64-xx.x.img.xz # Descomprimir y flashear (reemplazar sdX por tu dispositivo) xz -d haos_rpi5-64-xx.x.img.xz sudo dd if=haos_rpi5-64-xx.x.img of=/dev/sdX bs=4M status=progress sync
# Acceder al onboarding http://homeassistant.local:8123 # O por IP directa http://192.168.1.50:8123 # Credenciales iniciales Usuario: admin Contraseña: [configurar en onboarding]
Instalación de Home Assistant OS en una máquina virtual VirtualBox para la segunda casa.
# Descargar imagen HAOS para genérico x86_64 wget https://github.com/home-assistant/operating-system/releases/latest/download/haos_ova-xx.x.vdi.zip # Crear VM con VBoxManage VBoxManage createvm --name "DOMOTEC-Casa2" --ostype Linux_64 --register VBoxManage modifyvm "DOMOTEC-Casa2" --memory 4096 --vram 16 VBoxManage modifyvm "DOMOTEC-Casa2" --nic1 bridged --bridgeadapter1 eth0 # Adjuntar disco VDI VBoxManage storagectl "DOMOTEC-Casa2" --name "SATA" --add sata VBoxManage storageattach "DOMOTEC-Casa2" --storagectl "SATA" \ --port 0 --device 0 --type hdd --medium haos_ova-xx.x.vdi
Creación de la red SDN privada que interconecta ambas instancias de Home Assistant.
# En Home Assistant: Ajustes → Add-ons → Tienda # Buscar e instalar: ZeroTier One # Configuración del add-on (options) network_id: "tu-network-id-aqui" # Verificar unión a red # En ZeroTier Central: https://my.zerotier.com # Autorizar el dispositivo en la red
# ZeroTier One Add-on config network_id: "ab34c567xxxxxxxx" api_auth_token: "" # Opcional: para gestión via API # IPs asignadas (ejemplo) # Casa 1 (RPi5): 10.147.17.10 # Casa 2 (VBox): 10.147.17.20
Configurar cada instancia de Home Assistant para conocer y compartir entidades con la otra.
# En Casa 1: añadir Casa 2 como instancia remota # Ajustes → Dispositivos → Integraciones → "Home Assistant" # URL de Casa 2 via ZeroTier: http://10.147.17.20:8123 # Generar token de larga duración en Casa 2: # Perfil → Tokens de acceso de larga duración → Crear # En configuration.yaml de Casa 1 (entidades remotas) homeassistant_remote: - host: 10.147.17.20 token: "eyJ0eXAiOiJKV1..." verify_ssl: false
Configuración de los coordinadores Zigbee y Z-Wave para integrar dispositivos físicos en el ecosistema.
# Zigbee Home Automation (ZHA) # Ajustes → Integraciones → Añadir integración → ZHA device: /dev/ttyUSB0 # ConBee II / Sonoff baudrate: 115200 # Alternativa: Zigbee2MQTT # Instalar add-on Zigbee2MQTT + Mosquitto serial: port: /dev/ttyUSB0 mqtt: base_topic: zigbee2mqtt server: mqtt://localhost:1883
Instalación y configuración de add-ons esenciales: Mosquitto MQTT, Node-RED, y herramientas de monitoreo.
# Add-on: Mosquitto broker logins: - username: homeassistant password: "tu-password-mqtt" customize: active: false certfile: fullchain.pem keyfile: privkey.pem # Add-ons recomendados # ✓ Mosquitto broker # ✓ Node-RED # ✓ ZeroTier One # ✓ Zigbee2MQTT # ✓ File Editor # ✓ Terminal & SSH
Ejemplos de automatizaciones básicas que aprovechan la arquitectura distribuida de DOMOTEC.
# Notificación cross-casa: si se abre puerta Casa 1, # encender luz de alerta en Casa 2 alias: "Alerta puerta Casa 1 → Casa 2" trigger: - platform: state entity_id: binary_sensor.puerta_principal_c1 to: "on" condition: - condition: time after: "22:00:00" before: "07:00:00" action: - service: light.turn_on target: entity_id: light.salon_alerta_c2 data: color_name: red brightness_pct: 100 - service: notify.mobile_app data: message: "⚠ Puerta abierta en Casa 1"