Openhab guida completa parte 3

Nella seconda parte della guida dedicata ad OpenHAB, abbiamo visto come installare la piattaforma sui principali SO, compreso Raspbian su una board Raspberry Pi.
Dato per certo che abbiate completato con successo la fase di installazione, passiamo all’argomento di oggi: come configurare OpenHAB per cominciare ad utilizzare sin da subito le sue principali features e predisporre la piattaforma per gestire il proprio sistema di Home Automation.

PRIMA DI COMINCIARE

Prima di cominciare con la puntata di oggi, ecco riportati alcuni punti per comprendere al meglio quello che andremo a fare.
Nel primo articolo abbiamo visto quali sono gli elementi di OpenHAB che bisogna combinare per formare il proprio sistema di automazione:

  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 ad esempio un sensore, ma potrebbe essere anche un dato proveniente dal web come 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.

Binding

Una delle funzioni che rendono questa piattaforma una delle migliori, è il binding, cioè un vero e proprio adattatore software che rende gli Items usufruibili dal proprio sistema di domotica.
Rende quindi possibile integrare, con estrema semplicità, molti dispositivi di diversa provenienza, permettendone l’utilizzo. Ad esempio se si vogliono gestire tramite OpenHAB delle lampade wireless di una determinata marca, basterà aggiungere con pochi click la compatibilità al proprio sistema.
In seguito vedremo come fare.

INTERFACCE UTENTE (UIS)

Una volta completata correttamente la fase di installazione, una volta recatoci da Web browser all’indirizzo http://localhost:8080, ci si presenterà davanti una schermata dedicata alla configurazione iniziale di OpenHAB, tramite la quale, abbiamo la possibilità di fare le nostra prima scelta: scegliere quale interfaccia utente utilizzare.
start OpenHAB
Non è una scelta da fare a caso: ogni interfaccia ha delle differenze che non si limitano soltanto al layout, ma anche sulle funzioni che vengono messe a disposizione dell’utente, rendendo la propria scelta vantaggiosa o deleteria in base al modo in cui si ha intenzione di gestire la configurazione del proprio sistema.
Vediamo quali sono le interfacce utente principali che una volta installato OpenHAB vengono messe a disposizione degli utenti, analizzandone le differenze vedendo come possono migliorare o interferire lo sviluppo del proprio sistema.
Sin da subito risultano disponibili 4 interfacce:

  1. Home Builder
  2. HABPANEL
  3. BASIC UI
  4. PAPER UI

Home Builder e Paper UI sono pensate per la gestione e configurazione della piattaforma, mentre HABPANEL e Basic UI sono due vere e proprie interfacce per il controllo dei propri dispositivi collegati ad OpenHAB.

Home Builder

Home Builder è uno strumento molto utile introdotto nella versione 2 di OH, che permette di creare in pochi e semplici passi i files di configurazione per gli Items e la sitemap. Fra poco vedremo nel dettaglio come fruirne.

HABPanel

L’interfaccia utente HABPanel viene scaricata di default durante la fase di installazione iniziale e permette la creazione di una dashboard moderna e user friendly, pensata per essere visualizzata sugli schermi di tablet e pannelli da montare a parete.
HABPanel può essere configurata tramite il suo file di configurazione, oppure direttamente tramite la finestra di progettazione interattiva incorporata.
Si tratta di un’interfaccia ben fatta, che permette di avere sempre sotto controllo determinati comandi in un pannello di gestione, con un’impostazione grafica minimal, ma curata nei minimi dettagli.

Interfaccia utente HABpanel
Interfaccia utente HABpanel

Interfaccia utente base (Basic UI)

L’interfaccia utente Basic UI è un’interfaccia Web basata su Material Design Lite di Google, un kit di sviluppo che permette di disporre gli elementi grafici di una pagina web in modo ordinato e rispettando un determinato concept grafico.
Si tratta di un’interfaccia basata su AJAX con un layout reattivo, ottimizzata per la visualizzazione su dispositivi con display di tutte le dimensioni.
Nella versione attuale, non tutti gli aggiornamenti di stato vengono visualizzati in live stream, ma in alcuni casi è necessario aggiornare manualmente la pagina.
Si tratta di un’interfaccia ottima per la gestione di un sistema già finito, in quanto molto leggera e non permette modifiche dirette alla configurazione di OpenHAB.

Paper UI

Paper UI è un’interfaccia utente semplice, tramite la quale è possibile configurare con semplicità quasi ogni aspetto di OpenHAB, ma nella versione attuale, in alcuni casi, purtroppo non permette di esercitare un controllo diretto con tutti gli elementi di OpenHAB, dovendo ricorrere ad una configurazione manuale tramite editor dei files di configurazione.
Vedremo questa sezione di OpeHAB tra poco, nel paragrafo dedicato alla configurazione di OH.

Interfaccia utente Classica (Classic)

Naturalmente possono essere installate anche altre interfacce, tra le quali troviamo ad esempio la Classic, un’interfaccia con le stesse funzionalità ed opzioni della Basic, ma che presenta un layout completamente diverso che si ricollega allo stile di una vecchia versione di iOS.
Openhab classic UI smartphone

CONFIGURAZIONE DI OPENHAB

Dobbiamo indicare ad OpenHAB quali elementi e dispositivi abbiamo intenzione di utilizzare, di cosa si tratta, come gestirli e visualizzarli.
Queste operazioni possiamo eseguirle tramite i corrispettivi files di configurazione, nei quali utilizzando la sintassi corretta andremo ad inserire tutte le informazioni necessarie.
Cominciamo subito con la fase di configurazione, creando i file di configurazione per gli Items e la Sitemap principale.
I files di configurazione vanno creati nella directory $ OPENHAB_CONF, cartella che può variare in base al SO sul quale è stata eseguita l’installazione.
I files che andranno creati per lo scopo sono di due tipologie, esattamente:

$ OPENHAB_CONF / items <- * .items files
$ OPENHAB_CONF / sitemaps <- * .sitemap files

Se si preferisce è possibile ordinare le proprie configurazioni suddividendole in più file, creando diversi files con nomi diversi ed estensione identica.

Home Builder

L’estensione HOME BUILDER ci semplifica di molto il lavoro, infatti tramite un’interfaccia grafica possiamo generare simultaneamente le configurazione di cui abbiamo bisogno per compilare i files, suddividendo la casa per piano e stanza, assegnando i vari Items ad ogni sezione della casa e nominarli a piacere.
Offre la possibilità di salvare la propria configurazione direttamente nel DB di OpenHAB, evitando così la manipolazione dei files di configurazione.
Home Builder OpenHAB

Come files di esempio, andiamo a creare i seguenti: “default.items” e “default.sitemap“:

$ OPENHAB_CONF / articoli / default.items
$ OPENHAB_CONF / sitemap / default.sitemap

All’interno del file default.items andranno definiti quelli che sono gli Items che vorremo utilizzare nel nostro sistema di home automation.
In questa pagina puoi trovare una lista dettagliata dei diversi Items.
I nomi da utilizzare per definire gli Items, devono essere univoci. Per non confondersi e ritrovarsi con degli Items anonimi, l’ideale è seguire una propria logica nell’attribuzione dei nomi.
La sintassi per aggiungere gli Items nel file di configurazione è la seguente:

ItemType ItemName "ItemDescription" <ItemIcon> {ItemToThingChannelLink}
Es. Switch Smartphone_presenza "Ivan Huawei" <network> { channel="network:device:192_168_1_100:online" }

Sitemap

Per potere controllare i dispositivi collegati al proprio sistema, sarà necessario che essi vengano visualizzati in una pagina, tramite la quale sarà possibile interagire con essi.
In modo da far si che gli Items  vengano visualizzati in una determinata pagina di controllo e in un determinato ordine, dovremo creare una sitemap, cioè un file di configurazione contenente le istruzioni su quello che dovrà essere visualizzato, come dovrà essere visualizzato e in che ordine.

Video configurazione items e sitemap

configurazione base con Paper UI

Come accennato in precedenza, Paper UI è un’interfaccia di configurazione con un layout minimale, pronta all’uso con un alto grado di versatilità.
Nella versione attuale fornisce all’utente un pacchetto di funzionalità interessanti, tra le quali:

  • Add-on management: installazione e disinstallazione dei componenti aggiuntivi di OpenHAB con un click
  • Thing discovery: Visualizza nella sezione Inbox i dispositivi e i servizi trovati sulla propria rete e di aggiungerli alla propria configurazione.

Nella sezione Inbox, è possibile trovare e aggiungere nuovi Things (ad esempio dispositivi Zwave, lampade Hue, dispositivi di rete, etc…).
Per poter aggiungere nuovi Things, per prima cosa è necessario installare il binding corrispondente al dispositivo che si vuole aggiungere. Se ad esempio si vogliono controllare le proprie lampade Hue, è necessario installare il binding Hue.
L’installazione va eseguita tramite la pagina Addons, raggiungibile dal menu posizionato a sinistra.
Tramite il Network Binding, è possibile configurare alcuni dei dispositivi di rete come degli elementi da utilizzare per l’esecuzione di determinate azioni, ad esempio possiamo fare in modo che ogni qualvolta il proprio smartphone venga disconnesso dalla rete, allora il sistema provvede a spegnere tutte le luci e ad attivare il sistema d’allarme.
Ad ogni installazione di un binding, basterà tornare alla sezione Inbox per aggiungere il dispositivo corrispondente a quel binding.

Per rendere più semplice il processo di collegamento dei propri Items, è consigliabile cambiare l’impostazione di sistema predefinita di OpenHAB “Item Linking” in modalità semplice.
Nella modalità semplice, per i nuovi Things vengono creati automaticamente i collegamenti e i relativi elementi.
Se la modalità semplice è disattivata, l’utente ha il completo controllo (e manuale) su quali Things vengono collegati.
Per cambiare questa impostazione, tramite il menu di sinistra bisogna spostarsi nella sezione Configuration => System, scorrere la pagina verso il basso fino a raggiungere la voce Item Linking e salvare i cambiamenti dopo averla cambiata in Simple mode.
simple mode openhab
In questa modalità, recandosi nella pagina Configuration => Things, saranno visibili le proprie periferiche e il loro stato. Inoltre facendo clic sul nome di un determinato oggetto, verranno mostrati i relativi Channels disponibili.
I canali rappresentano le diverse funzioni fornite dagli articoli, ma non vengono collegati in modo automatico.

Nel prossimo articolo della serie, vedremo concretamente come collegare dei dispositivi e servizi alla piattaforma OpenHAB.
Attualmente è stato tralasciato l’utilizzo di Rules, Persistence e Transform, in quanto verranno analizzati prossimamente in un esempio di applicazione.
A presto!

Ivan Scordato