Home Assistant è una piattaforma open-source di automazione domestica che consente di integrare e gestire diversi dispositivi smart all’interno di un’unica interfaccia.
Il vero valore risiede nelle automazioni. Invece di gestire cinque app di cinque fornitori diversi, è possibile controllare tutto da un’unica dashboard e creare automazioni attraverso diversi ecosistemi. Esempi di automazioni includono:
- Spegnere tutte le luci quando tutti escono
- Chiudere la porta quando l’allarme è attivato
- Ricevere una notifica quando il garage è aperto da 10 minuti
Tutto funziona localmente, quindi è privato e non si interrompe quando i server di altri fornitori vanno giù.
Vedremo come monitorare i consumi energetici utilizzando una presa smart, come il Tapo Smart Plug P125M, e anche come ricevere i dati dei consumi direttamente dal sito di Enel Energia in una apposita dashboard.
A questo scopo, creeremo due VLAN separate: la DMZ sarà dedicata ad ospitare la VM di Home Assistant, mentre la VLAN IoT sarà riservata ai dispositivi smart, isolandoli completamente dalla rete Internet.
Creazione VLAN DMZ
Una DMZ (demilitarized zone) è una rete utilizzata solitamente per ospitare tutti i servizi pubblicamente accessibili, come nel nostro caso Home Assistant. L’intenzione è quella di proteggere la rete interna dalle minacce esterne, riducendo l’esposizione pubblica delle risorse, oltre a limitare i danni potenziali nel caso in cui un intruso riesca ad infiltrarsi nel sistema.
L’obiettivo principale è quindi quello di implementare una VLAN dedicata con le seguenti caratteristiche:
- Tag VLAN:
99 - Subnet:
10.0.99.0/24 - Gateway:
10.0.99.254
Per procedere con la creazione della VLAN, accedere a OPNsense e navigare verso la sezione Interfaces > Devices > VLAN.
Ora, recarsi nella sezione Interfaces > Assignments per abilitare la VLAN, adeguando le relative specifiche.
Nella sezione DHCP, configurare il range degli indirizzi IP che saranno assegnati: nel nostro caso, imposteremo il range 10.0.99.50-10.0.99.249.
Accedere allo switch di rete e creare la VLAN: non deve essere configurata come untagged su alcuna porta, ma deve essere taggata sulla porta in trunk, che nella nostra configurazione è la porta 1.
Regole di firewall
Configurare le seguenti regole di firewall per garantire che l’accesso alla rete interna sia limitato. Le regole devono consentire esclusivamente l’accesso a Internet, bloccando comunicazioni verso eventuali VLAN interne.
Se necessario, consentire al dispositivo mobile di accedere alla DMZ, limitando l’accesso esclusivamente alla porta 443 (HTTPS), utilizzata per i servizi web.
Creazione VLAN IoT
La VLAN IoT deve essere creata anche sull’Access Point, in quanto verrà utilizzata per connettere vari dispositivi smart, senza però consentire accesso a Internet. Il processo di creazione è identico a quanto descritto nel paragrafo precedente.
L’unica differenza è che la VLAN IoT nello switch deve essere taggata su entrambe le porte in trunk: nel nostro homelab, la porta 1, che è collegata a OPNsense, e la porta 16, dove è connesso l’Access Point.
Queste le specifiche:
- Tag VLAN:
30 - Subnet:
10.0.30.0/24 - Gateway:
10.0.30.254
Configurare le seguenti regole del firewall per garantire che non sia consentito alcun accesso a Internet o ad altre VLAN interne.
Successivamente, sarà necessario configurare le regole del firewall per consentire unicamente alla VM di Home Assistant di accedere a questa VLAN, in modo che possa ricevere i dati dai dispositivi smart presenti.
Creazione VLAN nell’AP
La creazione della VLAN IoT nell’AP dovrebbe essere molto semplice. L’unica accortezza è assicurarsi che la VLAN sia configurata per operare sulla banda 2.4 GHz, sicuramente compatibile con la maggior parte dei dispositivi.
Configurare una nuova rete wireless (IoT), associandola alla VLAN 30 e inserendo una password adeguata. Il processo di creazione può variare da dispositivo a dispositivo, ma generalmente seguirà una procedura simile:
Una volta creata, tentando di collegarsi con il cellulare non sarà possibile accedere alla rete Internet. Questo comportamento è desiderato e conferma che la configurazione della VLAN sta funzionando correttamente.
Per maggiori informazioni, fare riferimento all’articolo dedicato all'AP Zyxel.
Installazione di Home Assistant
Scaricare la versione qcow2 direttamente dal sito ufficiale e, come descritto nell’articolo precedente, importarla in Proxmox.
Creare la VM con almeno 2 GB di RAM, selezionando UEFI.
Nel caso si verifichi un errore di avvio, sarà necessario disattivare il Secure Boot della VM.
- Ad avvio fallito, premere
ESC - Accedere alle impostazioni del BIOS e dirigersi verso
Device Manager - Selezionare
Secure Boot Configuration - Deselezionare
Attempt Secure Boote confermare il prompt Configuration Changed
Questa operazione dovrebbe risolvere il problema di avvio, non solo per Home Assistant, ma anche per altre immagini basate su UEFI.
Per configurare Home Assistant, accedere alla pagina web via HTTP e seguire il wizard di installazione.
È necessario configurare le regole del firewall per consentire l’accesso, dalla rete locale LAN alla VM, sulle porte 443 e 8123, quella di default, che sarà disattivata al termine della configurazione.
Infine, dalle configurazioni di rete, impostare un indirizzo IP statico, come da immagine:
Riavviare HA e rieseguire il login.
Aggiungere un certificato SSL self-signed
Anche se la VM di HA è isolata da altre reti, è sempre consigliato utilizzare la crittografia. Non implementare un certificato SSL/TLS espone le credenziali e i dati a potenziali intercettazioni, poiché viaggerebbero in chiaro sulla rete.
HTTP è un protocollo obsoleto e non utilizza alcuna forma di crittografia per la trasmissione o la ricezione dei dati. Se un attaccante dovesse intercettare il traffico tra il dispositivo utilizzato e l’interfaccia web di Home Assistant durante il login, potrà visualizzare la password in chiaro.
Per utilizzare un certificato self-signed, è necessario installare il componente aggiuntivo Terminal & SSH. Questo è accessibile solo in “Modalità Avanzata”.
- Navigare sulla sezione Profilo e attivare la modalità avanzata
- Per installare il componente aggiuntivo, recarsi nelle Impostazioni e selezionare
Apps
- Ricercare
Terminal & SSH Add-one cliccare su Install - Una volta completata l’installazione, cliccare su Start
- Si consiglia di installare anche
File editor, che permette di modificare i file di configurazione direttamente dalla finestra del browser
- Avviare una nuova finestra del terminale nel browser
Per creare il certificare autofirmato, eseguire i seguenti comandi:
In questo esempio, -subj "/CN=homeassistant.home.lan" indica il soggetto del certificato, specificando il Common Name (CN). Invece -addext "subjectAltName=DNS:homeassistant.home.lan,IP:10.0.99.20" si aggiungono estensioni al certificato, per garantire che sia valido anche per l’IP specificato, oltre che per il nome di dominio.
Verificare che il certificato sia stato creato correttamente:
Modificare, tramite l’applicazione File editor il file di configurazione di HA /homeassistant/configuration.yaml nel modo seguente:
|
|
Il trusted_proxies tornerà utile in futuro.
Riavviare Home Assistant e rieseguire il login, ora sulla porta 443 (https://homeassistant.home.lan). La regola che consentiva di accedere dalla LAN alla DMZ sulla porta 8123, puó essere eliminata, se il login é avvenuto correttamente.
Applicazione mobile
Dall’applicazione terminale, eseguire il comando cat ssl/ha.crt, salvando il contenuto in un file .crt, da copiare poi sul cellulare. Per copiare del testo, tenere premuto il tasto SHIFT.
Installare sul cellulare l’applicazione di HA da F-Droid. Assicurarsi che il dispositivo mobile possa accedere alla DMZ sulla porta 443 dalla rete WLAN.
Una volta copiato sul telefono, importare il certificato seguendo questi passaggi:
- Andare su
Settings > Security & Privacy > More security & privacy > Encryption & credentials - Selezionare
Install a certificate > CA certificate - Scegliere il certificato copiato in precedenza
Aprire l’applicazione di Home Assistant, inserire poi l’indirizzo IP della VM: si dovrebbe visualizzare la schermata di login senza errori di certificato.
HACS
Home Assistant supporta l’uso di componenti esterni, noti come Custom Components. Questi non sono certificati ufficialmente dal team di sviluppo, ma estendono notevolmente le funzionalità del sistema.
HACS (Home Assistant Community Store) permette di gestire, aggiornare, eliminare, configurare, questi componenti aggiuntivi sopra illustrati.
Installazione
L’installazione é davvero semplice:
- Andare su
Settings > Appse selezionare il pulsanteInstall Apps - In alto a destra, selezionare il menu a tre punti e scegliere
Repositories - Aggiungere l’URL
https://github.com/hacs/addonsdi HACS - Tornare in
Settings > Apps > Install Appse selezionareGet HACSeInstall - Avviare l’app
HACSper completare la configurazione
Enel Grid
Questo componente aggiuntivo, recupera e importa i dati del consumo energetico orario e giornaliero dal sito di Enel Energia, rendendoli disponibili nella sezione Energy di Home Assistant.
- In
HACS, cercareenelgride installare l’integrazione
- Riavviare Home Assistant
- Seguire i passaggi di configurazione in
Settings > Devices & services
Durante la configurazione, sarà necessario fornire:
- Username: l’email dell’account Enel
- La password associata all’account
- Numero POD e numero cliente
- Prezzo per kWh
Infine, recarsi nella sezione Energy e configurare le statistiche in questo modo:
Se tutto é stato configurato correttamente, si dovrebbe visualizzare un grafico simile al seguente:
Il grafico puó essere consultato anche dalla propria Area clienti nella sezione Consumi.
Configurazione Tapo Smart Plug
Per configurare il Tapo P125M, basta seguire i seguenti passaggi:
- Installare sul dispositivo mobile l’applicazione TP-Link Tapo
- Dopo aver eseguito il login nell’applicazione, collegare la presa smart alla presa a muro e scannerizzare il QR code visibile sulla smart plug
Seguire la procedura guidata:
- Selezionare il modello
Tapo P125Me attendere il riconoscimento del dispositivo da parte dell’applicazione - Scegliere la rete IoT, creata in precedenza, alla quale connettere il dispositivo smart
È utile creare una regola di firewall temporanea per consentire l’accesso a Internet, in modo da aggiornare il firmware del device.
- Aggiornare il firmware della presa tramite l’applicazione. Una volta completato l’aggiornamento, disattivare la regola firewall precedentemente creata
- Accedere a OPNsense e spostarsi in
Services > Dnsmasq DNS & DHCP > Leasesper verificare l’indirizzo IP assegnato alla presa - Impostare una reservation DHCP per garantire che il dispositivo abbia un indirizzo IP statico
- In Home Assistant, aggiungere l’integrazione ufficiale per i dispositivi Tapo
- Recarsi in
Settings > Devices & servicese selezionare il pulsanteAdd Integration - Dalla lista delle integrazioni disponibili, selezionare
Tapoe inserire l’indirizzo IP del dispositivo - Dopo aver completato la configurazione, disinstallare l’applicazione dal cellulare, poiché non sarà più necessaria
- Creare una dashboard personalizzata in Home Assistant per monitorare i consumi giornalieri, in tempo reale e mensili di tutto ciò che è collegato alla presa smart