IoT / Smart Home / OpenHAB 3
OpenHAB 2.5 a OpenHAB 3
L'idea
Qualche anno fa, grazie all'imbeccata di un amico, scopro il mondo di Arduino & co; per chi non lo sapesse, Arduino è un'azienza che progetta e produce microcontrollori basandosi su hardware e software opensource. Ne esistono diversi modelli che variano in funzione di caratteristiche tecniche e dimensioni; la scelta, quindi, viene effettuata in funzione degli obiettivi. Queste schede elettroniche (che si trovano sui principali ecommerce di tecnologia) permettono, tramite la scrittura di software più o meno complesso, di gestire ingressi (INPUT) ed uscite (OUTPUT). Un esempio molto semplice è quello dell'accensione di un led (OUTPUT) tramite l'utilizzo di un pulsante (INPUT). In generale, attraverso ingressi e uscite digitali e la programmazione software si possono realizzare dei veri e propri circuiti per interfacciarsi a sensori e pilotare attuatori.
Non mi voglio dilungare troppo sull'argomento e lascio il link al sito ufficiale per permettere, a chi fosse interessato, di approfondire https://www.arduino.cc/.
Torniamo a noi...
Il mio primo esperimento con Arduino è stata la creazione di un sensore di GAS. Trovate tutti i dettagli sul relativo post del mio blog: Primo esperimento: un semplice rilevatore di gas.
Da quel momento in avanti ho iniziato ad approfondire questo affascinante mondo e mi sono balenate per la testa diverse idee, fino ad arrivare al mio progetto definitivo: l'implementazione di un Home Automation System, grazie anche alla scoperta dei pulsanti Wifi (vedi Home Automation System - La scoperta dei Sonoff) e delle schedine ESP8266, molto simili ad Arduino ma con Wifi integrato, molto più piccole e soprattutto molto meno care. Il tutto, condito con diversi sensori (temperatura, umidità, gas, sonde per monitoraggio dei consumi energetici, etc etc) e grazie all'aiuto di mini computer (come ad esempio il famigerato Raspberry PI) e di software open source mi ha permesso di arrivare allo sviluppo reale del mio progetto, attualmente ancora in corso di implementazione (il tempo a disposizione è quello che è...)
Cos'è un Home Automation System
In giro per la rete si possono trovare numerose definizioni di Home Automation System. In parole molto semplici e semplificative, possiamo definire un Home Automation System come un sistema di monitoraggio, controllo ed automazione delle principali funzioni di una cosidetta "smart home" o casa intelligente. Un insieme di sensori ed attuatori che comunicano con un'unità centrale, detta Hub, cervello del sistema. Un classico esempio di componenti di un Home Automation System può essere dato da sensori di temperatura, interruttori e pulsanti virtuali, sistemi di videosorveglianza e sicurezza, sensori di misurazione di energia, lampadine intelligenti, etc etc, tutti interconnessi tramite hub in grado di interfacciarsi con i diversi protocolli di comunicazione dei dispositivi, spesso eterogenei tra loro. Affiancato all'hub abbiamo anche i sistemi di interfaccia utente, che permettono il reale utilizzo del sistema: partendo dal pannello montato a muro fino ad arrivare all'app sullo smartphone, ad un'applicazione desktop o ad un'interfaccia web; dulcis in fundo il controllo vocale, che ci permette di "utilizzare" la nostra Smart Home tramite semplici frasi. Esempi famosi sono Amazon Echo Dot / Alexa e Google Home / Assistant. Un'altra caratteristica importante degli Home Automation System è la possibilità del controllo remoto a distanza: possiamo gestire i nostri dispositivi in qualunque luogo ci troviamo, utilizzando la rete internet.Riassumendo, un Home Automation System ci permette di gestire i dispositivi domestici, anche fuori dalle mura di casa, senza a necessità di agire fisicamente sugli attuatori ma semplicemente utilizzando un software (smartphone, pc, tablet, pannello a muro) o addirittura la nostra voce. Un ultimo aspetto, non meno importante degli altri, che rende la nostra casa ancora più intelligente è la possibilità di automatizzare diverse operazioni e permettere di prendere decisioni basandosi sullo stato del sistema stesso. Esempi: la temperatura in soggiorno è superiore ai 28°C, allora accendo il climatizzatore; l'impianto fotovoltaico sta producendo 2.5Kwh, allora faccio partire la lavatrice; è sera, allora accendo le luci in giardino. Come si può facilmente immaginare, l'unico limite è la fantasia.
Il progetto
Dopo tutte queste belle parole, passiamo alla realtà dei fatti. Dopo aver studiato ed effettuato numerosi esperimenti pratici sono arrivato finalmente al progetto definitivo (per modo di dire...) del mio sistema di Home Automation System, comunque sempre in continua evoluzione. Il tutto si basa sull'ottimo software OpenHAB, giunto alla versione 3, selezionato tra i diversi sistemi Open Source di Home Automation presenti sulla rete. In questo post del mio blog potete approfondire cosa mi ha portato ad effettuare questa scelta.
Ecco i moduli principali del mio attuale sistema di Home Automation:
-
OpenHAB v.3 ed InfluxDB installati su un Raspberry PI4 4GB
Il cervello pensante di tutto il sistema ed un time-series database per la memorizzazione di tutti i dati del sistema domotico
-
Grafana installato su un Raspberry PI3 Model B+
Un potente strumento web per progettare dashboard e grafici in maniera molto semplice
-
DHT11 - Sensore di temperatura ed umidità
Sensore economico per la misurazione di temperatura ed umidità. Output digitale, facilmente leggibile da un microcontrollore.
-
DS18B20 - Sensore di temperatura da esterno
Sensore di temperatura utilizzabile all'esterno. Più preciso del DHT11 e leggermente più caro. Possono essere usati diversi sensori con un unico di comunicazione, sfruttando l'interfaccia One Wire.
-
PZEM-004t - Multimetro per misurazione di corrente e tensione
Sensore non invasivo (grazie al trasformatore di corrente CT) per la misurazione di potenze elettriche. Può funzionare standalone con un software per PC e collegamento USB, oppure collegato ad un microcontrollore tramite porta seriale.
-
MQ-4 - Sensore di GAS
Sensore per la misurazione di GAS, sensibile principalmente al gas metano, propano e butano. Ha un'uscita analogica per ottenere il valore preciso di rilevamento ed un'uscita digitale triggerabile.
-
FOTORESISTENZA - Misurazione dell'intensità di luce solare.
Sensore per la misurazione dell'intensità di luce solare, utilizzato per l'accensione e lo spegnimento automatico delle luci notturne esterne.
-
SONOFF Basic - Pulsante WiFi singola uscita
Pulsante WiFi singola uscita, basato su chip ESP8266. Permette di comandare un carico a distanza, tramite APP e/o pulsante integrato.
-
SONOFF Mini - Pulsante WiFi singola uscita
Pulsante WiFi singola uscita di dimensioni ridotte, basato su chip ESP8266. Permette di comandare un carico a distanza, tramite APP e/o pulsante integrato. E' già predisposto per il collegamento di un pulsante / interruttore esterno e può funzionare in modalità DIY
-
SONOFF Dual - Pulsante WiFi doppia uscita
Pulsante WiFi doppia uscita, basato su chip ESP8266. Permette di comandare due carichi a distanza, tramite APP e/o pulsanti integrati.
-
SONOFF 4 Channel - Pulsante WiFi quattro uscite
Pulsante WiFi quattro uscite, basato su chip ESP8285. Permette di comandare quattro carichi a distanza, tramite APP e/o pulsanti integrati.
-
SONOFF B1 - Lampadina smart WiFi RGB
Lampadina RGB WiFi comandabile a distanza. E' possibile controllare colore, temperatura e luminosità.
-
Xiaomi Yeelight RGB - Lampadina smart Wifi RGB
Lampadina RGB WiFi di Xiaomi utilizzabile tramite app proprietaria (Mi Home) ed integrabile in OpenHAB
-
Xiaomi Mi Robot Vacuum - Robot aspirapolvere
Robot aspirapolvere comandabile a distanza con mappatura della casa e rilevamento scale
-
ARDUINO Uno - Microcontrollore per progetti DIY.
Uno dei microcontrollori più famosi con I/O analogico/digitale. Lavora con tensione di 5V.
-
ESP8266 - Microcontrollore per progetti DIY con WIFI integrato.
Un microcontrollore economico con WiFi integrato. Lavora con tensione 3.3V ed ha, oltre diversi pin digitali, un solo pin analogico.
-
OPENHAB Main UI - Interfaccia web responsive principale per la configurazione ed il controllo di OpenHAB.
E' la novità di OpenHAB 3. Interfaccia web responsive per la configurazione ed il controllo di OpenHAB, costruita in maniera automatica in base alla definizione del modello semantico, ulteriore novità di OpenHAB 3.
-
OPENHAB Basic UI - Semplice interfaccia web di controllo.
Semplice e minimale interfaccia web di monitoraggio ed interazione con i diversi controlli del sistema. E' presente anche un'app per i diversi sistemi operativi mobile (Android, iOS, Windows).
-
OPENHAB Hab Panel - Interfaccia web per pannelli touch.
Interfaccia WEB basata su framework AngularJS per la costruzione e la fruizione di interfaccie ottimizzate per la visualizzazione su pannelli touch (ad esempio tablet). Nella versione 3 di OpenHAB può essere sostituita dalla nuova Main UI.
-
GRAFANA - Interfaccia web per la visualizzazione di dashboard.
Interfaccia WEB per la costruzione di dashboard interattive composte da widget grafici per la visualizzazione dei dati in tempo reale e storici dell'Home Automation System.
-
MOSQUITTO MQTT Server - Broker MQTT per lo scambio di messaggi.
Servizio di Broker MQTT per lo scambio di messaggio tra i diversi moduli del sistema.
-
TASMOTA - Firmware per ESP8266.
Firmware open source alternativo per moduli ESP8266 con interfaccia web di configurazione e gestione.
-
INFLUXDB - Database per serie di dati temporali.
Motore open source di database per la memorizzazione di serie di dati temporali.
-
GRAFANA Server - Servizio di visualizzazione dei dati.
Servizio open source per la gestione di dashboard interattive, interfacciabile con diverse tipologie di database.
-
DOCKER - Virtualizzatore di processi.
Progetto open source che permette la virtualizzazione dei singolo processo del sistema operativo ed offre strumenti di deploy automatico di applicazioni all'interno di container software.
-
Samsung UE49NU8000T 49' - 4K Ultra HD Smart TV
TV 4K da 49 pollici
-
BOSE Soundlink Color - Speaker Bluetooth
Cassa audio senza fili portatile
-
JAM Chill Out - Speaker Bluetooth impermeabile
Cassa audio senza fili dal design accattivante
-
SAMSUNG Bluetooth Soundbar
Soundbar senza fili con subwoofer esterno
-
Google Chromecast
Trasforma la tua vecchia TV in una Smart TV
-
Ubiquity PowerBeam 5AC Gen2 - 5Ghz PTP Wireless Bridge
Antenna alte performance per connessione wireless internet 5Ghz
-
LinkSys WRT54G - Wireless Router
Un router wireless un pò datato ma tornato nuovo con il firmware opensource DD-WRT utilizzato per espandere la rete al primo piano
-
Belkin F5D7234-4 - Wireless Router
Un router wireless un pò datato ma utile per espandere la copertura di rete al seminterrato
-
Tplink Archer C7 - Gigabit Wireless Router
Un nuovo router wireless con porte LAN Gigabit, utilizzato per la rete principale al piano terra
-
WD My Book World Edition - 1 TB NAS
Un vecchio NAS da 1TB con porta LAN Gigabit senza nessun tipo di RAID e/o Mirror dei dati, utilizzato come storage per le copie di backup
-
WD My Cloud EX2 Ultra - 4 TB NAS RAID 1
Un nuovo NAS da 4TB in configurazione RAID 1 con porta LAN Gigabit, utilizzato come storage per le copie di backup
OpenHAB v. 3
L'attuale configurazione del mio sistema di Home Automation prevede un numero di sensori ed attuatori di vario genere integrati in OpenHAB che rappresentano il cuore del sistema. OpenHAB, oltre a gestirne l'acquisizione dei dati con persistenza su database InfluxDB - Time Series Database e l'invio dei relativi comandi di azione, ne permette il controllo e la visualizzazione attraverso le sue interfacce utente MainUI, BasicUI e HabPanel, nonchè gestisce le regole di automazione, un altro aspetto importante di un sistema di Home Automation, dal quale non si può prescindere.
Attualmente il mio sistema gestisce:
- il controllo completo del 95% delle luci di casa e giardino, con gestione automatica delle accensioni delle luci notturne in base all'intensità di luce solare.
- l'acquisizione ed il monitoraggio dei dati di temperatura delle diverse stanza di casa e dell'esterno.
- l'acquisizione ed il monitoraggio dei dati di umidità delle diverse stanza di casa.
- l'acquisizione ed il monitoraggio del livello di GAS in cucina, con relativa gestione di notifica di allarme se raggiunta una certa soglia.
- l'acquisizione ed il monitoraggio dei consumi di energia di casa e della produzione fotovoltaica, con relativa gestione di notifica di allarme quando superato un certo livello di consumi al fine di evitare lo stacco automatico del contatore per superamento del limite contrattuale.
- il controllo del robot per la pulizia automatica e il monitoraggio della manutenzione, con invio della relativa notifica quando sono necessari degli interventi.
- un set di regole di automazione.
- un set di notifiche di allarme.