Markdown source

#Appunti su Home-Assistant

<abstract>
**[Home Assistant](https://www.home-assistant.io)** è un software open-source basato su Python 3 in grado di controllare tutti i dispositivi tecnologici all’interno della nostra abitazione, dalle luci al sistema di riscaldamento come le automazioni delle tapparelle. Essendo un prodotto open-source è supportato dall’intera community quindi è in continuo e costante aggiornamento. Questo software è multi-piattaforma quindi è installabile praticamente ovunque: Linux, Osx, Windows. E' estremamente leggero riguardo alle risorse hardware richieste, il che lo fa un compagno ideale per Raspberry per il quale esiste una apposita [immagine già pronta](https://www.home-assistant.io/hassio/), che però noi non utilizzeremo. Può essere controllato da qualsiasi Browser, desktop o mobile e sono presenti le realitive app di controllo per [Android](https://play.google.com/store/apps/details?id=com.axzae.homeassistant) e [iOS](https://itunes.apple.com/us/app/home-assistant-companion/id1099568401?mt=8).
</abstract>

Per prendere dimestichezza con l'ambiente operativo di Home Assistant è disponibile una pagina DEMO cliccando [QUI](https://home-assistant.io/demo/).

<img src="./img/rpi_ha.jpg" class="img-responsive center-block" width="50%"/>

##Installazione da Raspbian Lite
###Prenderò in cosiderazione l'installazione da RaspbianLite in modo da avere il pieno controllo sul raspberry
Partire da una SD con caricata l'ultima versione di [Raspbian Lite disponibile](https://downloads.raspberrypi.org/raspbian_lite_latest)

Loggarsi nel modo che preferite con l'utente pi poi aggiornare la distribuzione 
<pre class="terminal">
pi@raspberrypi:~$ sudo apt-get update && sudo apt-get upgrade -y
</pre>

Se necessario per le vostre esigenze installate mosquitto per il protocollo MQTT
<pre class="terminal">
pi@raspberrypi:~$ sudo aptitude install mosquitto mosquitto-clients -y
</pre>

Installare i pacchetti necessari
<pre class="terminal">
pi@raspberrypi:~$ sudo apt-get install python3 python3-venv python3-pip -y
</pre>

Procediamo alla creazione dell'utente con cui girerà HA
<pre class="terminal">
pi@raspberrypi:~$ sudo useradd -rm homeassistant
pi@raspberrypi:~$ sudo passwd homeassistant
pi@raspberrypi:~$ sudo nano /etc/sudoers
</pre>
###Aggiungere alla fine del file poi ctrl+x per chiudere e ctrl+y per salvare poi invio per confermare il file
<pre>
homeassistant   ALL=(ALL) NOPASSWD:ALL
</pre>
####*Questo passaggio è necessario per aggiungere l'utente homeassistant al gruppo sudo per poter lanciare i comandi shell con sudo all'interno di HA*

Ora procediamo all'installazione vera e propria
<pre class="terminal">
pi@raspberrypi:~$ cd /srv
pi@raspberrypi:/srv$ sudo mkdir homeassistant
pi@raspberrypi:/srv$ sudo chown homeassistant:homeassistant homeassistant
pi@raspberrypi:/srv$ sudo su -s /bin/bash homeassistant
homeassistant@raspberrypi:/srv$ cd /srv/homeassistant
homeassistant@raspberrypi:/srv/homeassistant$ python3 -m venv . *(okkio che c'è un punto che ci deve essere)*
homeassistant@raspberrypi:/srv/homeassistant$ source bin/activate
</pre>

Se tutto è andato come si deve dovreste trovarvi con un prompt così
<pre class="terminal">
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $
</pre>

Continuiamo l'installazione
<pre class="terminal">
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ python3 -m pip install wheel
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant
</pre>

##Bene è ora finalmente facciamo partire HA
<pre class="terminal">
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ hass
</pre>
###***Andate pure a prendere un caffè ora installerà tutte le dipendenze e cercherà tutti i dispositivi plug&play nella vostra rete, ci vorrà un pò, dai 5 ai 20 minuti in base alla vostra linea internet***

Dopo aprite un browser e digitate l'indirizzo e sarete nella schermata iniziale di HomeAssistant
<pre>
http://raspberrypi.local:8123
</pre>

<img src="./img/home.jpg" class="img-responsive center-block" width="50%"/>

##Ora facciamo in modo che HA parta all'avvio
Torniamo sul terminale di prima **CHIUDIAMOLO** ed **APRIAMONE** un'altro
<pre class="terminal">
pi@raspberrypi:~$ sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service
</pre>

###Copiamo e incolliamo poi ctrl+x per chiudere e ctrl+y per salvare poi invio per confermare il file
<pre>
[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target
</pre>

<pre class="terminal">
pi@raspberrypi:~$ sudo systemctl --system daemon-reload
pi@raspberrypi:~$ sudo systemctl enable home-assistant@homeassistant
pi@raspberrypi:~$ sudo reboot
</pre>

## Informazioni Utili
<pre class="terminal">
# Controllate la stato del servizio
pi@raspberrypi:~$ sudo systemctl status home-assistant@homeassistant
# Riavviare il servizio
pi@raspberrypi:~$ sudo systemctl restart home-assistant@homeassistant
# Riavviare il servizio e tenere sotto controllo il log
pi@raspberrypi:~$ sudo systemctl restart home-assistant@homeassistant && sudo journalctl -f -u home-assistant@homeassistant
# Vedere il log del servizio - crtl+c per uscire
pi@raspberrypi:~$ sudo journalctl -f -u home-assistant@homeassistant
# Vedere solamente gli errori log del servizio - crtl+c per uscire
pi@raspberrypi:~$ sudo journalctl -f -u home-assistant@homeassistant | grep -i 'error'
</pre>

# Modalità da seguire per aggiornamenti futuri, visto che è in continuo aggiornamento
<pre class="terminal">
pi@raspberrypi:~$ sudo systemctl stop home-assistant@homeassistant
pi@raspberrypi:~$ sudo su -s /bin/bash homeassistant 
homeassistant@raspberrypi:~$ cd /srv/homeassistant
homeassistant@raspberrypi:~$ source bin/activate
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install --upgrade homeassistant
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ exit
pi@raspberrypi:~$ sudo reboot
</pre>

...A breve altre guide per la configurazione 

@include='bio_alessio_camaioni'