Guida completa OpenHAB: Piattaforma per domotica DIY – P1

Oggi parleremo di un’eccellente piattaforma di sviluppo software per la realizzazione di un sistema di domotica DIY.
Analizzeremo le sue principali caratteristiche, vedendo quali sono i suoi moduli, funzioni e come sfruttare al massimo le sue potenzialità.
Questo viaggio ci renderà capaci di agire con consapevolezza e di realizzare qualcosa che ci appartenga realmente, riflettendo quello che è il modo in cui preferiamo vivere in casa e ufficio.
Nell’articolo precedente abbiamo visto alcune piattaforme tra le quali è possibile scegliere per realizzare il proprio sistema di domotica ed è stato anticipato che non sarebbe mancata una serie dedicata ad OpenHAB.
In passato si è già parlato di OpenHAB, ma abbiamo deciso di approfondire l’argomento dandogli l’attenzione che merita, rendendo Mario fiero di Noi.

Cosa è OpenHAB

OpenHAB, acronimo di Open Home Automation Bus, è un software Open Source sviluppato in Java che permette di automatizzare la propria abitazione o ufficio esattamente come si desidera, visto che è possibile personalizzare ogni sua singola funzione.
Si tratta di un software modulare con una vasta gamma di funzionalità che possono essere ulteriormente espanse tramite l’installazione di determinati componenti.
È compatibile con la maggior parte di piattaforme, tra le quali Windows, MacOS e Linux.
L’architettura di OpenHAB è basata principalmente sul framework Eclipse SmartHome ed utilizza Apache Karaf in combinazione con Eclipse Equinox per la creazione di un Open Services Gateway (OSGi).
Il server HHTP viene invece gestito da Jetty.

In pochi e semplici passi è possibile interfacciare molti dispositivi con OpenHAB, come ad esempio l’impianto di illuminazione, la TV, lo stereo, l’impianto di allarme, l’apertura delle serrande e tutto quello che potreste desiderare.
Non si parla soltanto di sistemi fisicamente connessi, ma è collegabile anche ad un sistema di videosorveglianza, un servizio Web o qualsiasi altra fonte di informazioni e funzioni.
Dietro OpenHAB è presente una vasta comunity abbastanza attiva di utenti e sviluppatori che restano in contatto attraverso il forum ufficiale, dando una mano a chi ne ha bisogno.
Grazie al suo alto grado di versatilità in termini di personalizzazione e numero di device supportati,  apre infinite porte per lo sviluppo di un sistema di domotica fatto su misura.

Moduli di OpenHAB

In OpenHAB è possibile individuare cinque moduli principali, che combinati tra loro, costituiscono un sistema di domotica completo e al 100% personalizzabile:

  1. Items – sono tutti gli “oggetti”, dispositivi, sensori o informazioni che si possono integrare e usare nel proprio sistema.
    Non si deve trattare per forza di un dispositivo fisico come un sensore, ma potrebbe essere anche un dato proveniente dal web come ad esempio le previsioni meteo. Gli Items sono memorizzati in un file all’interno della directory opt/openHAB/configurations/items
  2. Sitemaps – sono utilizzati per disporre gli elementi nella dashboard di openHAB per come vogliamo che siano visualizzati, con la possibilità di raggrupparli e organizzarli in sottocategorie (Ad esempio; Soggiorno, Stanza da letto, etc).
  3. Rules – sono le regole e i parametri predisposti, dai quali dipendono certe azioni programmate ad essere eseguite automaticamente in determinate condizioni. Ad esempio, se la temperatura della stanza da letto supera una determinata soglia programmata, allora in automatico si accenderà il condizionatore, oppure ad esempio, all’ora prestabilita, si spegneranno tutte le luci delle stanze dove non sono presenti persone.
  4. Persistence – tramite questa funzione è possibile decidere quali valori devono essere memorizzati, in modo da poterli consultare nel tempo, come ad esempio la temperatura o il numero di utilizzo delle stanze. In questo modo è anche possibile fare delle statistiche dei dati memorizzati.
  5. Transform – serve per etichettare determinati dati. Ad esempio, posso definire che la casa si trova in uno stato che chiamo ‘ottimale‘, se la temperatura ambientale è compresa tra 19° C e 23° C con un’umidità compresa tra il 70% e il 80%.
    In questo modo è anche possibile semplificare la visualizzazione di determinati dati e la formulazione delle

Gestione del sistema

Per capire meglio il funzionamento di un sistema di domotica gestito da OpenHAB, è possibile individuare due parti tanto distinte quanto intrecciate, che semplificando è possibile chiamare:

  • Parte fisica
  • Parte funzionale

La parte fisica riguarda l’insieme di tutti i collegamenti e dispositivi che compongono il sistema di domotica (ad esempio fili, Z-Wave, dispositivi hardware e WiFi) ed altre caratteristiche hardware del sistema.
La parte funzionale ha invece a che fare con il modo in cui i dispositivi fisici vengono connessi tra di loro e gestiti, come la modalità di collegamento, la memorizzazione dei dati acquisiti e il loro utilizzo in base a determinati parametri precedentemente settati e su come tutto l’insieme viene rappresentato nell’interfaccia utente.
Se fosse presente soltanto una delle due parti, non si tratterebbe di nient’altro che un sistema privo di vita, un vero e proprio guazzabuglio.

Sviluppare il proprio sistema di domotica con OpenHAB richiederà giusto il tempo di capire come impiegare correttamente gli strumenti che mette a disposizione.
Cercheremo di analizzarli tutti e di vedere degli esempi pratici di utilizzo, per capire meglio il loro funzionamento e cominciare subito a sperimentare.

Ad esempio avremo a che fare con i seguenti componenti.

Binding

Uno dei componenti essenziali di OpenHAB è il binding, che potrebbe essere visto come un vero e proprio adattatore software che rende gli Items usufruibili dal proprio sistema di domotica.
Rende quindi possibile integrare molti dispositivi senza dovere scrivere da se apposite librerie, rendendo il proprio lavoro un gioco da ragazzi.
OpenHAB binding

Thing discovery

Una volta collegati al sistema o alla rete, molti dispositivi possono essere rilevati automaticamente da OpenHAB, rendendo in questo modo più semplice espandere il proprio sistema integrando nuovi dispositivi e funzioni.
Quindi non si dovranno indicizzare manualmente i nuovi dispositivi connessi, ma basterà abilitarli dall’apposita Dash Board, che vedremo in seguito.

Audio e Voce

audio openhab
Nel software di OpenHAB è presente anche un modulo che consente di gestire degli input e output audio.
Questa predisposizione lo rende ottimo per creare un sistema capace di interagire naturalmente con l’utente, attraverso il controllo vocale. In futuro vedremo un’applicazione molto interessante.

Sitemap

Abbiamo visto che in OpenHAB è possibile inserire un’infinità di oggetti sia fisici che logici.
Per ordinare questi oggetti e suddividerli in categorie, bisogna comporre una Sitemap, modulo del software già accennato precedentemente.
In questo modo il sistema saprà come disporre gli elementi nell’interfaccia utente.

Interfaccia Utente (UI)

Per permettere all’utente di interagire con il sistema in modo immediato, esistono diverse interfacce utente.
Si tratta di pannelli con elementi ordinati in base alla programmazione della sitemap, che riescono a soddisfare la maggior parte delle esigenze e gusti. In alternativa è possibile creare la propria interfaccia personalizzata.
Sono disponibili sia per dispositivi mobili che Web frontend.
In futuro vedremo come realizzare un pannello touch screen di interazione.

Interfaccia utente HABpanel
Interfaccia utente HABpanel

Anticipazioni

La prossima volta vedremo come installare e configurare correttamente OpenHAB, focalizzandoci sul suo utilizzo in combinazione con il Raspberry Pi 3, sfruttando le sue interessanti features.
Saranno inoltre approfondite le funzioni dei suoi moduli, e vedremo come utilizzarli nel modo corretto in un esempio di applicazione.

Ma non è tutto quì, se ne vedranno delle belle, perciò: Stay Tuned!

Ivan Scordato