
La mia casa domotica
Sono sempre stato un appassionato di automazione in generale e soprattutto di domotica che ritengo di grande utilità per migliorare la nostra vita ma soprattutto per dare una mano a chi ha qualche difficoltà in più come persone anziane e/o disabili.
Per anni mi sono occupato del progetto Freedomotic per lo sviluppo di un framework domotico open source in Java.
Per vari motivi lo sviluppo si è arrestato ma "non escludo il ritorno" (cit.).
Intanto ho deciso di adottare la soluzione Home Assistant, realizzata in linguaggio Python, che offre un software decisamente maturo, continuamente aggiornato e supportato da una vasta community.
E che dispone di una miriade di integrazioni per dispotivi, protocolli e servizi in ambito domotico e non solo.
In effetti l'utilità di un hub domotico è proprio quella di disporre di un unico software in grado di sostituire, o meglio di integrare, una pletora di applicazioni sviluppate dai vari produttori. Oltre a poter integrare ulteriori servizi web non necessariamente legati alle smarthome (ad es. Google Calendar, backup locali e in cloud, accesso a NAS e assistenti vocali, ecc.)
E allo stesso tempo poter gestire automazioni e scenari in modo semplice ma efficace.
Quindi questo post sarà un diario in continuo aggiornamento in cui racconterò tutte le attività svolte, dalla configurazione di hardware e software, all'aggiunta di nuovi dispositivi, agli aggiornamenti effettuati (con eventuali problematiche riscontrate).
Relativamente al setup completo del mio studio di lavoro ho realizzato uno specifico articolo, anche questo in perenne aggiornamento, con tutti i riferimenti ai dispositivi, agli oggetti e agli arredi utilizzati. Sono disponibili anche alcuni video di approfondimento.
In tutti i casi ci saranno dei rimandi agli articoli (ed eventuali video) che approfondiscono una specifica tematica.
Visto che sto lavorando su vari fronti non è detto che le varie sezioni siano aggiornate esattamente in ordine cronologico e con la stessa tempistica.
Ma alla fine il risultato sarà lo stesso. Quindi consultate di frequente questa pagina per non perdervi nulla.
Hardware
Server
Il software domotico gira sul server homelab basato su un HP EliteDesk 800 G1 SFF ricondizionato che ospita anche altri servizi per il mio lavoro e non solo. Se siete interessati all'acquisto lo trovate qui.
Per tutti gli approfondimenti vi rimando all'articolo in cui illustro i motivi alla base del progetto e a quello con tutte le specifiche dettagliate.
Se siete di fretta ecco un piccolo riepilogo
- Processore Intel Core i7 4770 (Haswell) con un max TDP di 84 W, su socket 1150 LGA basato su tecnologia a 22 nm
- Frequenza di clock a 3.4 GHz con 4 core e 8 thread.
- RAM di base costituita da 2 moduli DDR3 da 8 GB a 800 Mhz per un totale di 16 GB (ampliata a 32 GB con l'aggiunta di altri due moduli da 8 GB inseriti negli slot disponibili)
- Scheda grafica integrata Intel HD graphics 4600.
- Hard disk SSD da 512 GB
L'accesso è remoto tramite la console di Proxmox per cui non sono collegati mouse, tastiera e monitor.
Storage NAS
Il server è affiancato da due NAS Synology per lo storage e la relativa sicurezza dei dati.
Il primo è un DS214 a due bay, equipaggiato con altrettanti dischi WD Red Plus da 3 TB (disponibili qui), che lavora senza problemi dal 2016 a conferma della qualità dei prodotti Synology e anche dei dischi.
L'altro, acquistato ultimamente, è un DS723+ dotato di due slot su cui ho montato due dischi per NAS Seagate Iron Wolf da 4 TB (disponibili qui).
Questo modello più potente del precedente funge da replica per i dati (documenti, foto, video, musica) secondo la regola del 3-2-1 per i backup (2 copie su 2 diversi dispositvi), ma fa girare anche una serie di applicazioni all'interno di container Docker e VM (visto che comunque è attivo 24h/24h).
Nella sezione più in basso dedicata alla Sicurezza vi spiego in dettaglio la configurazione che ho creato.
Raspberry Pi
Questo dispositivo funge da hub per il protocollo Zigbee mediante il software Zigbee2Mqtt. In questo modo tutti i dati provenienti dai vari sensori sparsi per la casa vengono convertiti in messaggi MQTT pubblicati su un opportuno broker in esecuzione all'interno di un container LXC di Proxmox.
In questo modo l'interazione con i vari dispositivi è disaccoppiata da Home Assistant (che dispone di un opportuno componente per gestire il protocollo) e inoltre è possibile accedere ai dati anche da altri software, semplicemente facendo la sottoscrizione ai relativi topic del broker MQTT.
UPS
La sicurezza in caso di blackout è garantita da un UPS APC Bx750Mi da 750 VA a cui è collegato il server homelab della HP, il router LTE della TP-Link, il Raspberry Pi su cui gira Zigbee2Mqtt e il NAS Synology DS723+.
Con un carico di circa il 12-15% è garantita al momento (in base allo stato di efficienza delle batterie) una autonomia di circa 50 minuti.
La telecamera della Tapo è invece collegata ad un Mini UPS ERA PLUS della Tecnoware, che può alimentare dispositivi a 5, 9 e 12V DC per un massimo di 25 W. (guarda la video recensione)
Software
L'homelab è equipaggiato con il software di virtualizzazione Proxmox che rientra nella categoria degli hypervisor di tipo 1 o bare metal che, a differenza di quelli di tipo 2 come Virtualbox, non necessita di un sistema operativo host.
Di fatto è installato direttamente sul disco e parte all'avvio del sistema.
In questo modo posso sfruttare al meglio le risorse della macchina fisica e gestire un gran numero di servizi.
Per tutti i dettagli e le configurazioni si rimanda alla serie di video e articoli su Proxmox.
Hub domotico
Un hub domotico è un software che permette di centralizzare la gestione di dispositivi, protocolli e tecnologie differenti in ambito domotico.
Normalmente ogni produttore mette a disposizione una diversa app per gestire i propri dispositivi per cui diventa complicato e abbastanza noioso passare dall'una all'altra per eseguire comandi o consultare i valori dei sensori.
Una soluzione integrata ci permette di risolvere tutti questi problemi e soprattutto di avere un'unica interfaccia di gestione.
Per tutti i dettagli su Home Assistant vi rimando alla relativa serie di articoli.
Di seguito per ogni argomento ci sarà un link diretto allo specifico articolo.
Componenti aggiuntivi (AddOn)
Coming soon ...
Integrazioni
Le integrazioni permettono di estendere le funzionalità di Home Assistant attraverso l'interazione con protocolli, tecnologie e dispositivi di vari produttori.
Grazie ad HACS l'installazione delle stesse è davvero semplicissima.
Di seguito è riportata la lista in forma sintetica e per ciascuna integrazione ci sarà un link ad una pagina specifica con tutti i dettagli per la procedura di installazione e configurazione con tanto di video associato.
Integrazione | Descrizione | Link |
---|---|---|
Alexa Media Player | ||
Brother Printer | ||
HACS | ||
Internet Printing Protocol (IPP) | ||
MQTT | ||
Network UPS Tools (NUT) | ||
Speedtest.net | ||
Synology DSM | ||
Tomorrow.io | ||
TP-Link Router | ||
TP-Link Smart Home | ||
UpNP/IGD |
Coming soon ...
Protocolli di comunicazione
WiFi
Il principale vantaggio del wifi in ambito domotico è di non richiedere dispositivi aggiuntivi, ovvero hub come nel caso di Zigbee o ZWave, per far funzionare il tutto. Basta connettersi alla rete di casa e il gioco è fatto (o quasi).
Lo svantaggio è nella maggiore richiesta di energia che limita o impedisce l'alimentazione a batteria. Ovviamente dipende dal dispositivo (sensore o attuatore) e dalla frequenza di utilizzo (per esempio ogni quanto un sensore invia le sue misurazioni).
Zigbee
Il protocollo Zigbee consente di creare una rete ad hoc di dispositvi indipendente da quella wifi di casa.
Inoltre i sensori/attuatori possono essere alimentati da batterie (molto spesso delle semplici CR2032 o simili) che durano mesi o addirittura anni e che sono in grado di notificare il loro stato di carica.
Per questo protocollo è necessaria la presenza di un bridge/gateway al quale i vari dispositivi devono associarsi e a cui inviano le misurazioni nel caso dei sensori. Per gli attuatori (ad esempio prese smart) il gateway invia il comando e riceve il relativo feedback.
Questi bridge/gateway possono essere venduti direttamente dal produttore dei dispositivi oppure si può ricorrere ad una soluzione più generica e adattabile, di solito rappresentata da una dongle USB da collegare ad un PC oppure ad un Raspberry e simili.
Coming soon ...
Dispositivi e sensori
Attualmente sono presenti sia dispositivi wifi (principalmente Tapo della TP-Link) che Zigbee della Tuya.
Attuatori
Presa smart Tapo TP-Link P105 (disponibile qui)
Illuminazione
Lampadine Tapo TP-Link RGB (disponibili qui)
Sensori
Telecamere
Tapo TP-Link C200 Wifi da interno (disponibile qui)
Coming soon ...
Assistenti vocali
Coming soon ...
Dashboard
Oltre al lavoro dietro le quinte per gestire dispositivi, protocolli, servizi, notifiche e molto altro, un hub domotico deve offrire un'interfaccia chiara ed immediata per accedere a tutte le informazioni e ai comandi.
In questo modo è possibile sostituire molteplici applicazioni e app mobile con un'unica soluzione integrata.
Home Assistant consente di creare delle interfacce personalizzate assemblando in modo opportuno varie schede progettate per specifiche entità.
Il tutto lavorando in modalità visuale o direttamente con il codice YAML.
Per il mio progetto ho pensato al seguente schema
- Home (contenente i dati meteo)
- Stanze (una scheda per ciascun ambiente con i dati dei sensori di temperatura e umidità, nonchè le icone dei principali controlli di luci, prese smart e media player)
- Dispositivi (scheda di riepilogo con NAS, stampante ecc.)
- Home Assistant (dettaglio della versione del software installata e dei relativi componenti agguntivi)
- Batterie (informazioni sullo stato dell'UPS e delle batterie dei vari sensori sparsi per tutta la casa)
Per tutti i dettagli implementativi si rimanda allo specifico articolo (in progress)
Automazioni
Coming soon ...
Sicurezza
Accesso remoto
Backup
Generale
Proxmox
Home Assistant
Tutta la configurazione viene salvata su Google Drive utilizzando il componente aggiuntivo Home Assistant Google Drive Backup. Per tutti i dettagli sull'installazione e la confgurazione vi rimando all'articolo specifico.
Todo list
In questo elenco sono riportate le attività che intendo realizzare come upgrade o alternative di soluzioni già operative.
Per ciascuna di esse sarà creata una pagina specifica con tutti i dettagli su quanto fatto, compresa l'analisi preliminare.
- Installare un sistema di monitoraggio su Proxmox (Glances??) così da integrare queste informazioni in Home Assistant e ricevere delle opportune notifiche in caso di problemi
- Attivare Docker sul Synology DS723+ (l'installazione potrà essere effettuata comunque utilizzando i 2 GB di RAM in dotazione ma per un corretto funzionamento dovrò effettuare un upgrade della stessa - valore max supportato 32 GB)
- Installare PBS Proxmox Backup Server sul Synology DS723+ così da effettuare in automatico il backup di VM e container LXC sfruttando la deduplica (siccome PBS richiede un po' di risorse e anche per motivi di sicurezza non conviene installarlo sullo stesso server Proxmox)
- Spostare il server NUT per la gestione dell'UPS sul Synology DS723+ mentre ora sia client che server girano sul server Proxmox. Verificare la procedura più adatta per spegnere server e poi lo stesso NAS
- Valutare una procedura di riavvio a seguito di blackout e ritorno dell'erogazione di energia elettrica (quando il server e il NAS vengono spenti da NUT bisogna farli ripartire in automatico. Per il server si potrebbe usare un pacchetto WOL, ma per il NAS? E da dove dovrebbe partire? Forse da un Rpi che fa il boot in automatico quando viene alimentato)
- Verificare il funzionamento di Zigbee2Mqtt all'interno di un container Docker sul Synology DS723+ così da rimuovere l'attuale bridge basato su Rpi visto che il NAS è sempre attivo (il problema principale è il riconoscimento e funzionamento della dongle USB Sonoff all'interno del container). In alternativa penso di utilizzare una macchina virtuale sul NAS dove installare una distribuzione Debian e il software Zigbee2Mqtt.
- Verificare l'installazione di Zigbee2Mqtt su una macchina virtuale del Synology DS723+ così da evitare eventuali problemi di Docker con i dispositivi USB visto che bisogna collegare la dongle Sonoff
N.B. Copyright immagine di copertina www.freepik.com
[LINKS]
- HP EliteDesk 800 G1 SFF
- Moduli RAM Timetec 16GB KIT (2x8GB) DDR3L/DDR3B per HP EliteDesk
- Synology NAS DS214
- Synology NAS DS723+
- Disco Seagate Iron Wolf per NAS da 4 TB
- Disco Western Digital Red Plus 3 TB
- UPS APC Bx750Mi 750 VA
- Mini UPS ERA PLUS Tecnoware