Disclaimer

Prestare sempre attenzione a seguire le indicazioni fornite in questo blog, soprattutto se si tratta di apparecchiature elettriche collegate alla tensione di 220V. Non mi ritengo responsabile di danni causati dall'aver seguito i consigli qui pubblicati.
Grazie

sabato 5 agosto 2017

Home Automation System - OpenHAB 2 su Raspberry PI 3




E' arrivato il momento di preparare l'ambiente software per creare il vero e proprio sistema di Home Automation. La scelta è ricaduta sul software OpenHAB v.2 e ne ho parlato in un post precedente (vedi http://domoticaduino.blogspot.it/2017/07/home-automation-system-la-scoperta-dei.html)


Il mio scopo è di installare OpenHAB v.2 e tutti i servizi di contorno sul nuovo Raspberry PI 3; leggendo la documentazione vengo indirizzato su un sistema operativo configurato ad hoc...il suo nome è OpenHABian e seguendo la documentazione a questo link http://docs.openhab.org/installation/openhabian.html. scarico un'immagine preconfezionata, da installare sulla SD del Raspberry PI 3 per aver pronto, in pochi click e qualche minuto di attesa, un sistema operativo basato su Raspbian Lite contenente, già configurato, il software OpenHab v.2 più tutta una serie di servizi aggiuntivi e configurazioni a supporto.

Scarico allora l'ultima versione di OpenHABian da questo link https://github.com/openhab/openhabian/releases e, tramite il software Etcher, la scrivo sulla SD Card del Raspberry PI 3. Dopo aver inserito l'SD nell'apposito slot, avvio il Raspberry PI 3, non prima di averlo collegato alla LAN (per chi non avesse a disposizione la LAN, esiste anche una procedura per fare in modo che al primo boot venga agganciata la rete WiFi di casa...http://docs.openhab.org/installation/openhabian.html#wifi-setup). La procedura di installazione di OpenHABian è automatica e la si può seguire tramite SSH...Dopo una decina di minuti l'installazione si conclude ed il sistema è pronto.

La prima cosa da fare è eseguire il tool openhabian-config, che permette, tramite un'interfaccia interattiva testuale, di aggiornare e configurare l'ambiente e installare ulteriori servizi.

sudo openhabian-config


Oltre le voci 01 - Update e 02 - Upgrade System, da eseguire con frequenza per tenere aggiornato il sistema, il mio consiglio è quello di seguire i menù:

- 10 - Apply Improvements ==> tutte le voci

- 20 - Optional Components ==> 21 - Log Viewer, 22 - Mosquitto (il broker MQTT) e 23 - Grafana (non necessario ma è un ottimo strumento per creare dashboard)

- 30 - System config ==> a scelta, ma "obbligatorio" il cambio delle password di default (34 - Change Passwords); un'opzione molto utile è la voce 37 - Move root to USB; potrebbe aiutare in caso di problemi con le SD Card, facilmente "corruttibili"...in questo modo si può utilizzare un hard disk USB esterno al posto della SD Card, dove rimane solo la partizione di Boot. Entrambi i miei raspberry sono configurati in questo modo, ma ho preferito seguire una procedura manuale (vedi https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=44177&hilit=usb+stick+operating+system)

- 40 - openHAB related ==> 43 - Reverse Proxy opzione molto utile per esporre openhab su internet in tutta sicurezza in modo da poterlo utilizzare anche da fuori casa, utilizzando il servizio NGINX attenzione a configurare bene le sicurezze; altrimenti chiunque su internet potrebbe prendere il controllo dei nostri dispositivi.

A questo punto OpenHAB configurato e pronto all'uso. Per conoscere come funziona, configurarlo ed sfruttarlo al massimo delle sue potenzialità vi lascio ai tutorial e alla guida ufficiale che trovate direttamente sul sito http://docs.openhab.org/ e soprattutto al ricco forum https://community.openhab.org

Anche su youtube esistono tantissime guide e tutorial. Il canale ufficiale di OpenHAB è https://www.youtube.com/channel/UC7OK88DW0La_BJlcXZg8ydQ/feed

Un'ultima informazione che potrebbe tornare utile: come scoprirete leggendo la documentazione, OpenHAB può usare dei servizi di persistenza su DB per memorizzare le informazioni ricevute (ad esempio dati di temperatura, umidità, etc etc...); uno di questi è la persistenza su InfluxDB, un motore database di tipo NOSQL per la memorizzazioni di serie temporali. Questo permette di memorizzare e storicizzare tutti o alcuni dati gestiti da OpenHAB in modo tale da poter creare grafici e tabelle. Grafana, lo strumento opensource per la creazione di dashboard interattive, si integra perfettamente con questo tipo di database. Per chi volesse invece gestire, come servizio di persistenza, un database relazionale standard, esiste l'integrazione con il famosissimo MYSQL. Io ho deciso di utilizzare InfluxDB, ed ho quindi provveduto alla sua installazione e configurazione sul Raspberry, seguendo la documentazione ufficiale https://docs.influxdata.com/influxdb/v1.3/introduction/installation/

Per riassumere, il mio sistema è configurato nel seguente modo:

- OpenHAB v 2.1
- Broker MQTT mosquitto, con autenticazione abilitata
- Grafana
- InfluxDB, come motore di persistenza di OpenHAB
- Reverse proxy SSL con autenticazione, tramite NGINX , per esporre in sicurezza su internet OpenHAB e Grafana.

Riguardo l'ultimo punto, per chi non fosse troppo avvezzo alle problematiche di tipo "sistemistico" derivanti dall'utilizzo di un reverse proxy nella propria rete e la configurazione del NAT / Port Forwarding sul proprio router, OpenHAB offre un servizio di pubblicazione su internet di un'installazione OpenHAB locale, attraverso il suo portale My OpenHAB, previa registrazione.

Ok, siamo pronti ad utilizzare il nostro Home Automation System