
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 (forse anche troppo) 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 di cui trovate i link al suo interno.
In tutti i casi ci saranno dei rimandi agli articoli 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 tecniche 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 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 oltre a quella offsite), 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)
L'UPS è gestito via software da NUT che a sua volta è in grado di dialogare con Home Assistant fornendo una serie di metriche sullo stato del carico, delle batterie e della tensione di rete.
Sto pianificando le procedure di spegnimento automatico in assenza di corrente e quando il livello delle batterie scende sotto una certa soglia, oltre a ricevere delle notifiche quando il sistema viene alimentato dalle stesse.
Resta da considerare anche la procedura di riavvio del server al ripristino della corrente, magari utilizzando Wake On Lan tramite Raspberry che di fatto è l'unico dispositivo a poter partire in automatico quando viene alimentato.
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. Senza contare la possibilità di creare dei cluster su cui far migrare facilmente le macchine VM e l'utilizzo di filesystem come ZFS che garantiscono maggiore sicurezza e affidabilità.
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.
Non tutti dispongono di automazioni o spesso è necessario crearne alcune più complesse in cui sono coinvolti dispositivi di brand differenti.
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 lista completa degli articoli.
Ad ogni modo nelle sezioni successive ci sarà un link diretto alla specifica tematica affrontata.
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 tempo 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.
Personalmente ho optato per quest'ultima soluzione, così da avere un dispositivo in grado di funzionare anche in caso di problemi con la VM di Home Assistant.
Quando si hanno molti dispositivi Zigbee, dover ricreare la rete ed associarli nuovamente è decisamente fastidioso.
Tuttavia vorrei verificare l'installazione di Zigbee2Mqtt su una macchina virtuale del Synology DS723+ per semplificare il backup di tutto ed eliminare un ulteriore dispositivo (il Raspberry Pi).
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
La telecamera da interno Tapo TP-Link C200 Wifi offre un'ottima visione anche notturna tramite infrarossi e dispone di sensori per il rilevamento delle presenze nella stanza che vengono notificate direttamente sull'app di Tapo.
L'interfacciamento con Home Assistant è garantito da una specifica integrazione. Trovate qui l'articolo completo sulla procedura di configurazione.
Assistenti vocali
Alexa
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 (ancora in fase di definizione)
- 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)
Tutti i dettagli implementativi saranno illustrati in uno specifico articolo (in progress)
Automazioni
Coming soon ...
Sicurezza
Accesso remoto
Coming soon ...
Backup
Generale
Per garantire la massima sicurezza i dati (documenti, foto, video, ecc.) sono salvati all'interno del NAS DS214 e organizzati in opportune cartelle. Quindi tali cartelle sono sincronizzate su un secondo NAS DS723+ a cui è collegato un disco meccanico USB esterno Toshiba CANVIO BASICS 2.5 da 4 TB su cui viene effettuata una ulteriore copia (utilizzando USB Copy).
Infine le cartelle sono cifrate localmente e caricate in cloud sul servizio C2 Synology. All'interno di tale spazio i dati sono ulteriormente cifrati. Il backup è di tipo incrementale e sono conservate le ultime 3 copie.
La sincronizzazione tra i NAS avviene in tempo reale, ad ogni modifica su quello principale.
Il backup in cloud viene eseguito ogni notte così da non impattare sulle prestazioni del sistema e sul carico di rete.
NB. A breve saranno disponibili articoli e video su Synology e le procedure di configurazione, backup e sincronizzazione.
Proxmox
Attualmente le VM vengono salvate sul NAS Synology ogni notte, attraverso una schedulazione programmata nella GUI principale di Proxmox come abbiamo visto in questo video.
Tuttavia, per abilitare il backup incrementale e ridurre lo spazio di storage necessario, ho intenzione di installare Proxmox Backup Server come container Docker sul NAS DS723+ ed effettuare i backup su questo dispositivo con replica sul disco USB esterno. E successivamente anche in cloud.
PBS richiede un po' di risorse e anche per motivi di sicurezza non conviene installarlo sullo stesso server 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 configurazione 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
- 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
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
- Disco meccanico USB esterno 4TB Toshiba CANVIO BASICS 2.5