Installare e configurare Home Assistant, la guida completa
Oggi vedremo come installare e configurare Home Assistant su una Raspberry. Se non sai cos’è Home Assistant trovi Maggiori informazioni qui.
La guida comprende: preparazione ed installazione di Raspbian Lite, installazione di Home Assistant, Configurazione iniziale. Se non sai cos’è una Raspberry trovi Maggiori informazioni qui
Hai già dato un occhio all’indice di articoli inerenti la Domotica presenti nel mio sito?
Facci un salto: Indice articoli di Domotica
Premessa
Il livello di questa guida richiede un minimo di competenze informatiche per quanto riguarda la preparazione e installazione di Home Assistant. Vi spiegerò tutto il necessario, programmi da utilizzare, cosa fare e tutti i comandi di Linux necessari per poter installare Home Assistant nella vostra Raspberry.
Passo 1: Installazione di Raspian Lite
Prima di installare Home Assistant, andiamo a fare tutte le pre-configurazioni del caso nella nostra Raspberry.
Se avete già installato e configurato Raspian Lite, potete saltare questo passaggio ed andare al Passo 2, diversamente continuate la lettura.
Prima di tutto dobbiamo fare 2 cose:
- Scaricare USBit per poter caricare l’immagine di Raspbian Lite nella nostra scheda Micro SD: https://usb-image-tool.it.uptodown.com/windows
- Scaricare la versione più aggiornata di Raspian Lite che trovate qui: https://www.raspberrypi.org/downloads/raspbian/
Fatto questo, inserite la scheda Micro SD nel PC, installate e lanciate il software USBit.
Quando avreste scaricato anche l’immagine di Raspbian Lite, estraetela e salvatela del Dekstop. Aprite ora USBit e cliccate su “Favorites” e poi su “Add” in basso.
Selezionate l’immagine di Raspbian Lite che avete appena estratto. Il prossimo passaggio andrà a formattare tutti i dati dentro la vostra Micro SD.
Tra i dispositivi elencati sulla sinistra, individuate la vostra scheda SD e cliccate poi su “Restore“. Questo caricherà l’immagine di Raspbian nella vostra SD.
Il processo durerà in base a quanto è performante la vostra SD ed il vostro disco. Maggiori informazioni qui
Una volta completato il processo, entriamo dentro la nostra scheda SD.
- Potete individuarla facilmente perchè è un’unità chiamata “BOOT“.
- Dentro la scheda create un file senza estensione chiamato “ssh“. Se lo create con il formato “ssh.txt” dovrebbe funzionare lo stesso.
- Questo farà si che la vostra Raspberry abbia di default il server SSH attivo, così potete connettervi da remoto senza bisogno di attaccarci lo schermo o la tastiera.
Se non ce l’avete già nel vostro PC, scaricate Advanced IP Scanner: http://www.advanced-ip-scanner.com/it/
Questo software fa una scansione di tutti gli indirizzi IP presenti nella vostra rete. Sganciate la micro SD con la “Rimozione sicura“. Inserite l’SD nella vostra Raspberry ed avviatela.
Dopo qualche minuto, avviate il software Advanced Ip Scanner. Di default caricherà la classe degli indirizzi del vostro computer.
Assicuratevi che la Raspberry risieda nella stessa rete del PC dal quale state lanciando la scansione. Avviate la scansione della rete cliccando su “Scan“.
Dopo pochi secondi dovreste essere in grado di trovare l’indirizzo IP della vostra Raspberry nella lista degli indirizzi trovati. Se non avete cambiato niente nelle configurazioni del vostro Modem/router, dovrebbe avere un indirizzo molto basso. Una cosa del tipo 192.168.1.1-10. Diversamente, andate per esclusione.
Se non riuscite a trovarlo, basta connettere monitor e tastiera al Raspberry e poche righe sopra il Login troverete l’indirizzo IP in chiaro.
Ok. Una volta individuato l’indirizzo IP, possiamo connetterci alla nostra Raspberry tramite Putty. Se non lo avete nel PC potete scaricarlo qui: Download Putty
Le credenziali di default una volta caricato Raspbian sono:
Username: pi
Password: raspberry
Se avete seguito tutti i passi, ora dovreste essere connessi alla vostra Raspberry in SSH. Possiamo passare alla pre-configurazione di Raspbian per prepararlo ad installare Home Assistant.
Passo 2: Pre-configurazione Raspbian Line
Connettetevi in SSH alla vostra raspberry.
Se avete saltato il passo 1, le credenziali sono riportate poco più in alto. Procediamo subito a lanciare in sequenza questi comandi:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get clean && sudo apt-get autoclean && sudo apt-get autoremove
Aggiornato tutto il necessario, vi consiglio caldamente di configurare un IP statico alla vostra Raspberry. per farlo trovate Maggiori informazioni qui.
Come passo successivo, vi consiglio caldamente di cambiare la password di default della vostra Raspberry. per farlo è sufficiente lanciare il comando:
sudo raspi-config
Per ora è sufficiente che cambiate la password e che selezionate “Expand Filesystem“. Questa seconda opzione andrà ad espandere completamente la partizione “/” fino ad occupare tutto lo spazio residuo nella vostra scheda SD.
Ora che abbiamo predisposto tutto possiamo installare Home Assistant
Passo 3: Installare Home Assistant.
Alcune cose sono cambiate per l’installazione di Homeassistant. Vi consiglio di leggere questo articolo qui:
Homeassistant, notivà 2018 e matrimonio
Ora possiamo procedere ad installare Home Assistant. L’installazione è molto semplice.
E’ sufficiente lanciare questo comando dalla vostra Raspberry SENZA sudo. Va lanciato come utente normale.
curl -O https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh
Avete già preso il caffè? No? Ottimo. Questo è il momento adatto. Per fare tutta l’installazione questo comando ci metterà circa 1h e mezza. Se invece avete comprato una SDXC, come vi ho suggerito nella mia recensione del Raspberry, ci impiegherà molto meno.
Dopo circa 10 minuti, la console SSH vi domanderà la password dell’utente pi (password che spero abbiate modificato). Fatto questo macinerà per un bel pò. Bene, armatevi di pazienza mentre vi spiego perchè non abbiamo fatto l’installazione con il sistema Hassbian.
Considezioni su Hassbian
Cos’è Hassbian? Il nome suona familiare. Hassbian è una versione modificata dell’originale Raspbian Lite. In parole povere contiene già i sorgenti di installazione di Home Assistant.
L’unica cosa che dovete fare è caricare l’immagine di Hassbian dentro la Raspberry ed Home Assistant si caricherà direttamente all’avvio nel giro di 5 minuti.
Il motivo per cui il tutorial è incentrato sul fare l’installazione da zero e non direttamente con Hassbian è dovuto all’immagine.
- Personalmente ho riscontrato che l’immagine di Hassbian non è continuamente aggiornata.
- Per quanto poco è stata manipolata ed ho avuto anche episodi spiacevoli di crash durante i test. Cosa che con una installazione pulita di Raspbian Lite non ho avuto.
- In secondo luogo, Hassbian è a mio avviso molto più lenta di Raspbian Lite. Tirando le somme, sono dell’idea che partire da un’installazione fresca e Lite sia la cosa migliore.
- Installando Home Assistant tramite il comando di prima, viene creato un ambiente virtuale su cui vengono caricati tutti i file in Python necessari per far girare Home Assistant.
- Questa cosa è fenomenale perchè vi permette di gestire gli aggiornamenti del sistema operativo separatamente da quelli di Home Assistant.
Seguiranno futuri tutorial su come difendersi da potenziali intrusioni, considerando che questo giocattolino potrebbe anche gestire l’apertura e la chiusura delle porte a casa nostra.
Passo 4: Pre-configurazione Home Assistant
Una volta completata l’installazione, la raspberry si riavvierà automaticamente. Una volta riavviata, rientrate dentro la Raspberry in SSH. Aprite poi un browser qualsiasi ed andate all’indirizzo:
http://IP_VOSTRA_RASPBERRY:8123
Se l’installazione si è conclusa correttamente senza dare errori, dovrebbe comparirvi una pagina simile a questa
Ottimo! Abbiamo installato il nostro sistema di automazione all’interno della nostra Raspberry.
Un pò di nozioni su Home assistant:
- Tutti i file di Home assistant sono presenti dentro /home/homeassistant/.homeassistant/
- Il file di configurazione principale di Home Assistant è configuration.yaml
- Per far si che tutti gli utenti, senza conoscere Python, potessero usare Home Assistant hanno deciso di strutturare il software con il linguaggio YAML. Tutti i file di configurazione di Home Assistant e la sintassi all’interno è in YAML. Trovate Maggiori informazioni qui
- Se fate l’installazione da zero lo script di configurazione installerà la versione più recente di Home Assistant nella vostra Raspberry.
- Home Assistant si avvia automaticamente una volta accesa la Raspberry.
- Come Database è utilizzato SQL Lite, cosa che potete cambiare configurando Mysql se volete.
- I file di Log di Home Assistant lo trovate nel path indicato nel primo punto e si chiama home-assistant.log
Piccolo focus su come funziona l’interfaccia WEB
- A sinistra è presente il menù principale dove è possibile vedere gli stati dei nostri dispositivi, i log delle operazioni e la storia in dettaglio delle azioni che hanno fatto i nostri dispositivi.
- Nel menù “Configuration“, funzionalità introdotta di recente, possiamo testare il nostro file di configurazione, ricaricare le funzioni “core” di home assistant (le automazioni) e riavviare il software senza bisogno di riavviarlo da linea di comando.
- Sempre a sinistra, tutto in basso troviamo “Services” Questo menù ci permette di chiamare servizi direttamente dall’interfaccia WEB senza bisogno di passare dalla console SSH. Utile se dobbiamo testare le risposte dei nostri sensori.
- Proseguendo sulla destra abbiamo: gli stati dei nostri dispositivi, gli eventi e i template (Maggiori informazioni qui E’ una funzionalità avanzata che vedremo più avanti). In fine il riepilogo della versione utilizzata.
- I 2 riquadri bianchi nella home page sono chiamati Gruppi
- I 2 “tondini” in alto sono chiamati invece Viste. Gruppi e Viste possono essere combinate tra loro per creare la propia configurazione.
Vi consiglio di prendere un pò di confidenza con questa semplice ma allo stesso tempo completa interfaccia.
Una volta presa confidenza, date uno sguardo ai componenti aggiuntivi che Home Assistant è in grado di supportare: https://home-assistant.io/components/ Prima di natale, i componenti aggiuntivi si attestavano a circa 400.
Per quanto riguarda la guida su come installare Home Assistant, abbiamo terminato.
Seguiranno ulteriori tutorial su come rafforzare la sicurezza, costruire progettini ed integrarlo con la nostra casa senza modificare nulla nel nostro impianto elettrico.
Hai già dato un occhio all’indice di articoli inerenti la Domotica presenti nel mio sito?
Facci un salto: Indice articoli di Domotica
Come sempre se avete domande, scrivete pure nei commenti, sarò felice di rispondervi.
19 commenti
Ciao Nicola, mi sono arenato quasi subito, non riesco a collegarmi in SSH, non mi accetta le credenziali d’accesso quando tento di accedere con Putty, io inserisco le credenziali di partenza ma mi da “access denied”…qualche idea?
Stesso tuo problema Franco:
Traceback (most recent call last):
File “/usr/local/bin/fab”, line 10, in
sys.exit(program.run())
File “/usr/local/lib/python2.7/dist-packages/invoke/program.py”, line 352, in run
self.parse_collection()
File “/usr/local/lib/python2.7/dist-packages/invoke/program.py”, line 444, in parse_collection
self.load_collection()
File “/usr/local/lib/python2.7/dist-packages/fabric/main.py”, line 82, in load_collection
super(Fab, self).load_collection()
File “/usr/local/lib/python2.7/dist-packages/invoke/program.py”, line 661, in load_collection
module, parent = loader.load(coll_name)
File “/usr/local/lib/python2.7/dist-packages/invoke/loader.py”, line 76, in load
module = imp.load_module(name, fd, path, desc)
File “/home/pi/fabric-home-assistant/fabfile.py”, line 8, in
from fabric.api import *
ImportError: No module named api
sto deguendo la guida ma durante l’installazione di Home Assistant….
File “/home/pi/fabric-home-assistant/fabfile.py”, line 8, in
from fabric.api import *
ImportError: No module named api
pi@raspberrypi:~ $
come mai ?
Ciao Luigi,
Onestamente non ho mai provato il componente Homekit. Tu hai provato a seguire la guida di Homeassistant o a chiedere nel forum ufficiale?
Ciao
Nik
Buongiorno, da una settimana ho avuto problemi con l’accoppiata homekit/tradfri(Ikea). Mentre funziona benissimo il triangolo Home Assistant/tradfri/HomeKit installando l’add on per hass.io. Tutti i gruppi luce vengono riportati nell’applicazione home kit ma come semplici switch , infatti posso soltanto accendere e spegnere ma non ho accesso alle opzioni come la luminosità ed il colore. Sapete dirmi se c’è qualche opzione da abilitare per poter comandare anche questi parametri da home kit. Grazie
Ciao Luca,
Se hai seguito la mia guida il file lo trovi qui: /home/homeassistant/.homeassistant
Se hai usato un altro metodo, probabilmente al posto di “homeassistant” devi mettere “hass”
per modificarlo ti consiglio di utilizzare “vim”. Non è installato di default su Raspberry. Per installarlo basta che lanci il comando: sudo apt-get install vim
Ciao
Nik
Ciao Nicola, complimenti per il sito….ho installato home assistant ma non riesco a trovare e modificare il file configuration.yaml
Potresti spiegarmi?
Grazie
Ciao Cosimo,
E’ del tutto normale che su putty non ti compaiano i caratteri. Digita semplicemente la password che hai impostato per l’utente “pi” e poi clicca “INVIO”. E’ una prerogativa di Linux.
Ciao!
Nik
Ciao Cosimo,
Non c’è un APP per Homeassistant per Android. Essendo Homeassistant un sito web è raggiungibile con un qualsiasi Browser internet. La prima volta che lo apri dal tuo telefono, nelle impostazioni del tuo browser clicca su “Aggiungi alla schermata Home”, e ti comparirà l’icona di Homeassistant.
Ciao!
ciao Nicola,
l’installazione di home assistant arriva fino al punto che mi ricompare il promp dove mi viene chiesto di reinserire la password. poi si blocca. Cioe’ non riesco nemmeno ad inserire la password perche’ non mi compaiono i caratteri . uso putty.
Ciao Nicola,
Buon 2018e complimenti per questa guida. Vorrei chiederti informazioni per quanto riguarda l’app di Andorid Home assist. Come configurarla e soprattutto come collegarla a Home Assist che sto in questo momento finendo di installare su rasp pi2.
Cio Grazie
Ciao Subroutine,
Io sono un appassionato di Sicurezza, ecco perché ho scritto anche questo articolo: Home Assistant e la Sicurezza
Alla prossima
Nik
Assegnare una password ad Home Assistant? Dopo aver fatto tutta la procedura e naturalmente cambiato la password del raspberry su home assistant si riesce ad entrare senza digitare nessuna password.
Grazie
Ciao Gio,
Ho fatto un pò di prove e son giunto ad alcune conclusioni.
Prove fatte con:
– Raspberry Pi 3 Modello B
– Home Assistant ultima versione
– Raspberry connessa direttamente su HDMI della mia Smart TV Samsung.
Questo quanto ho scoperto:
– Seguendo passo passo la guida di Home Assistant non arrivi ad una soluzione. Devi seguire il post di GilHaz qui: https://github.com/home-assistant/hassbian-scripts/issues/38 per avere una situazione correttamente funzionante (Almeno nel mio caso).
– Configurando poi Home Assistant nel “configuration.yaml” posso dirti che la TV viene riconosciuta, ma Home Assistant non è in grado di accenderla o spegnerla. Sono sicuro al 100% sia colpa della TV. Sono in grado però di cambiare sorgente HDMI tramite il comando “Select Source” ma non sempre funziona. Diciamo che la combinazione HDMI_CEC + Home Assistant + Smart TV Samsung non è il massimo.
– Facendo fede alla guida di cui sopra, son riuscito seguendo questo post ad accendere e spegnere la TV con 2 comandi lanciati via SSH.
– Altra conclusione a cui son arrivato: Tantissime televisioni, benché tu possa riuscire a cambiare sorgente HDMI, non ti permettono di ritornare alla sorgente “TV”. Alcuni modelli di Samsung ti permettono di farlo tramite dei comandi “KEYS” ma non tutte le TV lo supportano (la mia no ad esempio).
Ricapitolando:
Hai la possibilità di accendere e spegnere la TV da remoto tramite 2 comandi SSH che usano il comando HDMI_CEC ma non sei in grado di cambiare la sorgente. Nel mio caso almeno è così.
Per quanto riguarda la tua Raspberry, l’upgrade di modello vale i soldi spesi: http://amzn.to/2wp51XO Amazon come al solito regna sovrano.
Spero di esserti stato utile
Nik
Anzitutto grazie per la tua disponibilità.
Ho una raspberry 2 collegata direttamente alla TV tramite HDMI (ma tra breve avrò una Rpi 3, quindi se ci sono peculiarità per il nuovo modello, per favore evidenziale).
Su di essa gira soltanto Home Assistant installato seguendo la tua guida (Raspian Stretch Lite sul quale ho lanciato lo script All In One): di conseguenza, H.A. gira su Python Virtual Environment.
Veniamo al componente HDMI_CEC.
Per prima cosa ho semplicemente abilitato la corrispondente voce nel file configuration.yaml; come risultato, una serie di errori (modulo cec non presente) e nessuna istanza viene creata in HA, nè alcun “servizio” è visibile nella console developer di HA.
Tuttavia, il comando “echo scan | cec-client -s -d 1” funziona ed elenca la TV collegata.
Di seguito elenco i vari tentativi che ho effettuato senza successo.
1) Ho creato il simlink indicato in https://home-assistant.io/components/hdmi_cec/, sia dall’interno del virtualenv (sia come utente “pi” che come utente “homeassistant”) sia dall’esterno; tuttavia, ho notato che gli esempi riportati nella pagina ($ ln -s /usr/local/lib/python3.4/site-packages/cec /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages) si fa riferimento alla versione 3.5 di python per la quale non è presente la cartella “site-packages” ma soltanto “dist-packages”, ed ho quindi dovuto modificare il percorso.
2) Successivamente, ho provato a compilare la libreria “libcec” seguendo https://github.com/Pulse-Eight/libcec/blob/master/docs/README.raspberrypi.md, sia dall’interno del virtualenv (sia come utente “pi” che come utente “homeassistant”) sia dall’esterno.
Nessuna di queste combinazioni, seguite dal comando sudo service home-assistant restart, ha funzionato. Tuttavia, a un certo punto, quando lancio il comando “echo scan | cec-client -s -d 1”, mi viene segnalato che il bus è già “impegnato” e consigliato di dare il comando “tvservice –off” e riprovare.
Fatto questo, il comando “echo scan | cec-client -s -d 1” riprende a funzionare…
Ciao Gio,
Rispondi al commento indicando la tua configurazione di Home Assistant così abbiamo un punto di partenza.
Se hai la Raspberry con Home Assistant installato direttamente connessa alla TV, hai verificato di aver installato anche tutte le librerie richieste?
vedi: https://home-assistant.io/components/hdmi_cec/
A breve posterò un tutorial su come gestire l’HDMI CEC e molto altro. Iscriviti alla newsletter così rimani aggiornato anche tu come tanti altri!
Saluti
Nik
Ciao Nik,
la raspberry con HA è connessa direttamente alla TV tramite cavo HDMI.
Puoi cortesemente indicarmi entrambe le configurazioni?
Grazie di cuore.
Ciao Gio,
Il componente HDMI_CEC ha fatto tribolare anche me all’inizio.
La Raspberry con Home Assistant installato è connessa direttamente alla TV/device che vuoi pilotare? Oppure stai usando un’altra Raspberry? (Io ne ho 2)
Cambiano le configurazioni nei 2 casi
Nik
Salve Nicola.
Ho seguito la tua guida.
Tuttavia non riesco a far funzionare il compomente HDMI_CEC.
Tu lo hai testato?