Ciao a tutti, in questo post voglio mostrarvi come ho integrato Home Assistant nella mia casa per darvi qualche idea e ricevere qualche consiglio dalla community.
Inizio dicendo che inizialmente tutto era stato progettato per funzionare con il software da me sviluppato Switchando (che ora ho lasciato per decicarmi ad altri progetti più ambiziosi) ed è stato in un secondo momento adattato per Home Assistant.
Per facilitarne la lettura, dividerò questo post in più parti.
Parte 1: La piattaforma
La prima cosa che ho voluto evitare è stata il contatto con qualsiasi server esterno, se non quelli di Google per poter integrare Google Assistant, quindi ho deciso di installare il server dentro casa mia.
Ho deciso di affidarmi ad un Raspberry Pi 3 B+ vista la sua affidabilità e il suo consumo di energia molto basso. Il Raspberry monta l'OS DietPi, che dopo alcuni test è risultato quello che si avvicina più di tutti alle mie esigenze.
Per una maggiore sicurezza ho deciso di installare Home Assistant all'interno di un container Docker, e per una maggiore facilità nell'installare aggiornamenti e add-on ho deciso di installare Hass.io (pubblicherò a breve una guida sulle differenze tra i diversi tipi d'installazione di Home Assistant).
Parte 2: Dispositivi IoT utilizzati
Inizialmente il progetto prevedeva solo il controllo di alcune strisce led RGBW, si è poi col tempo evoluto e ora integra:
Principali punti luce della casa
Interruttori e pulsanti a parete e sulla scrivania
Strisce RGBW e lampadine YeeLight decorative
Valvole termostatiche per i termosifoni
Sensori per il monitoraggio della temperatura
Chromecast
Volumio (player Hi-Fi che anima il mio impianto audio da 800W, ma ne parliamo dopo)
Plex Media Server (per poter accedere ai contenuti multimediali che ho su un hard disk fuori casa)
Misuratori di potenza elettrica per misurare il consumo elettrico delle varie zone della casa durante la giornata.
Per controllare LED, interruttori, pulsanti e sensori vari ho deciso di utilizzare i chip ESP32 in quanto, a differenza di Arduino, offrono un clock più alto e la connettività Wi-Fi, pur mantenendo un consumo elettrico basso (circa 30mA a 3,3V, con picchi di 100mA durante la trasmissione di pacchetti Wi-Fi); e rispetto a piattaforme quali Philips HUE, Osram o Tradfri hanno un costo molto ridotto, un controller mi viene a costare non più di 4-5€.
Inizialmente utilizzavo la rete MySensors per comunicare con i dispositivi IoT, ho deciso di eliminarla e passare al Wi-Fi in quanto offre una maggior sicurezza e affidabilità (e il Fritz!Box non mi crea nessun problema con 30 dispositivi connessi) al costo di un consumo elettrico leggermente maggiore (ma si parla di meno di un euro l'anno).
Parte 3: La casa
Ho strutturato casa mia in questo modo:
All'ingresso si trovano il router Fritz!Box, il gateway per le valvole termostatiche (della eQ-3 Max, che anche se sono riuscito a integrare con HA continuo a non consigliare), il Raspberry Pi, un hard disk da 1TB con i file multimediali (principalmente dischi in vinile digitalizzati o CD acquisiti su file) e il controller per una striscia RGBW basato su ESP32.
https://i.imgur.com/T2txUME.jpg[/img]
Girandoci troviamo 2 interruttori (per le varie luci) e un pulsante, che in base a quante volte lo si preme fa determinate azioni (es. accendere le luci del salone, spegnere le luci delle camere da letto, spegnere le luci di tutta casa prima di uscire, cambiare colore alla striscia LED vista nella foto di prima e avviare l'aspirapolvere robot.
https://imgur.com/BNtYrS9.jpg[/img]
Sul mobile del salone invece ci sono una striscia RGB, dei faretti LED da 12V, TV con Chromecast, Raspberry Pi Zero W con scheda audio HifiBerry Digi+ collegata all'amplificatore audio Yamaha RX-V757. A sinistra del mobile si trova una lampada che monta una lampadina YeeLight RGBW di seconda generazione.
I faretti e la striscia RGB sono controllati da un ESP32 collocato sopra il mobile, che va anche a gestire un pulsante che permette di accendere e spegnere tutte le luci appena viste e attivare alcuni scenari.
https://imgur.com/CNMGRUg.jpg[/img]
Spostandoci invece nella mia stanza possiamo notare la mia postazione che uso per lavorare, studiare e, a tempo perso, giocare. Dietro ai due monitor e dentro al case sono presenti delle strisce LED RGBW, mentre sotto al tavolo e sopra il mobile in alto sono presenti due strisce RGB. Sul tavolo sono presenti due interruttori: il primo accende le varie luci della stanza e con una pressione prolungata attiva una scena, il secondo accende e spegne (in base a quante volte viene premuto) monitor, casse e ciabatta (collegati a 3 relé) che uso per collegare quello che capita.
Sulla destra sono presenti due interruttori e un pulsante a muro, gli interruttori si occupano di gestire le varie luci (uno per i LED, uno per il lampadario con il Sonoff, che accendo molto raramente), mentre il pulsante accende e spegne monitor, casse e ciabatta.
Tutto quanto è controllato da un solo ESP32.
https://imgur.com/SavCmxo.jpg[/img]
Girandoci troviamo un'altra striscia RGBW sopra finestra e armadio e due interruttori ed un pulsante sopra il letto, i due interruttori sono collegati uno al Sonoff per il lampadario e l'altro ai faretti (alogeni) che uso per leggere, il pulsante ai LED e, con una pressione prolungata, attiva la modalità notturna.
Tutto quanto è controllato da un ESP8266 (NodeMCU).
https://imgur.com/CRXiJHu.jpg[/img]
Parte 4: Il problema dei LED
Le strisce LED RGBW che possiedo hanno il bianco caldo, e con Home Assistant non c'è modo di trattarle in questo modo. Ho programmato in C# (con il .NET Core 2.1) un software che fa da tramite con Home Assistant, in questo modo su HA posso controllare in maniera precisa il colore (e automaticamente regola anche il bianco) e ho lo slider per regolare la temperatura del bianco.
https://imgur.com/3lXgL44.jpg[/img]
Parte 5: Volumio
Per poter ascoltare in alta fedeltà la musica sia dal mio hard disk che da Spotify ho deciso di installare sul Pi Zero W visto in precedenza Volumio, un ottimo player musicale.
Parte 6: Screenshot
Di seguito degli screenshot del mio Home Assistant (ancora work in progress):
https://imgur.com/7bqJC7P.jpg[/img]
https://imgur.com/dvy1MeD.jpg[/img]
https://imgur.com/gtAkoQR.jpg[/img]
https://imgur.com/gTf0dPM.jpg[/img]
https://imgur.com/M4TCzCh.jpg[/img]