HASS.IO in Docker - cosa fare dopo la prima installazione! VOL.2
di Luigi Duchi
04 Maggio 2020
Home Assistant
Proseguiamo con le guide su HASS.IO dopo aver già affrontato i primi argomenti.
Siamo partiti da un PC (un miniPC per dire la verità tipo questo https://amzn.to/2KhtiaY) nuovo di zecca fino ad arrivare al primo avvio di HASS.IO.
Installazione di HASS.IO su un miniPC - prepariamolo con Ubuntu
Installazione di HASS.IO su un miniPC con Ubuntu e Docker
Successivamente abbiamo parlato dei primi add-on altamente consigliati da installare per rendere il personal HUB funzionale.
HASS.IO in Docker - cosa fare dopo la prima installazione! VOL.1
Oggi siamo alla seconda puntata del "cosa fare dopo la prima installazione!"
Siamo ancora in compagnia di un paio di ADD-ONS altamente consigliati:
- DUCKDNS
- MOSQUITTO BROKER(MQTT)
DUCKDNS
La maggior parte degli utenti che hanno una connessione ADSL o Fibra, hanno un indirizzo ip pubblico dinamico associato alla propria connessione.
Questo significa che l'indirizzo ip della propria connessione ad internet cambia ad ogni connessione o ad intervalli di tempo decisi dal provider del servizio di connettività (da qui la dicitura "dinamico").
Quando siete fuori casa con il vostro Smartphone non potete in alcun modo raggiungere i dispositivi della vostra rete locale, ma potrete raggiungere solamente l'unico dispositivo della vostra casa che è fisicamente collgato ad internet: il Router.
Eventualmente poi dovrete configurare il Router per instradare la vostra richiesta ad un dipositivo della rete locale. Naturalmente in questo caso ci servirà accedere al nostro server Home Assistant.
E qui torniamo al problema dell'ip dinamico. Ammesso che abbiate configurato il vostro Router per instradare la richiesta verso il server di Home Assistant e abbiate preso nota dell'indirizzo ip della vostra ADSL, riuscirete ad accedere da HA solo finchè l'indirizzo ip rimane il medesimo.
Ad un certo punto le vostre richieste cadranno nel vuoto perchè l'indirizzo IP della vostra connessione domestica sarà cambiato.
Esiste anche la possibilità che abbiate un indirizzo ip statico, ma è decisamente più rara come situazione, in questo caso non avrete bisogno di usare l'add-on di cui stiamo per parlare.
Quindi se siete nella casistica della maggior parte degli utenti, cioè con indirizzo ip dinamico, avrete bisogno di un DDNS, acronimo di Dynamic Domain Name System, ovvero sistema dei nomi di dominio dinamico.
È un sistema che, in poche parole, permette ad un normale DNS di essere sempre associato all'indirizzo IP dello stesso dispositivo, anche se questo indirizzo IP dovesse cambiare nel tempo.
Di fatto con questo servizio non ci dovremo più preoccupare se il nostro IP varia.
Uno tra i più noti e gratuiti servizi utili allo scopo è sicuramente Duckdns.
Servizio totalmente gratuito richiede solo la creazione di un account.
lo potrete fare sulla pagina ufficiale QUI
Una volta che vi sarete loggati vi ritroverete nella pagina che vedete nella precedente immagine.
Avrete a disposizione il vostro TOKEN SEGRETO di cui dovrete prendere nota perchè servirà successivamente.
Avrete anche la possibilità di creare un vostro dominio.
Esattamente scrivendo un nome a vostra scelta, nello spazio disponibile all'interno del riquadro, che nella foto si presenta cerchiato di rosso.
Successivamente cliccate su ADD DOMAIN.
Il risultato finale apparirà più o meno cosi:
http://nomescelto.duckdns.org
Prendete nota anche di questo indirizzo.
Recatevi nella vostra interfaccia di Home Assistant e cliccate sulla voce SUPERVISOR presente nel menù a tendina laterale (quello cerchiato di rosso).
Nella barra di ricerca digitate DUCK DNS
Cliccandoci sopra si aprirà la schermata dell'add-ons, cliccate su installa.
Recandovi in fondo alla pagina dell'add-on troverete una parte compilabile sotto la voce CONFIG
lets_encrypt:
accept_terms: false
certfile: fullchain.pem
keyfile: privkey.pem
token: null
domains:
- null
seconds: 300
Non dovrete far altro che sostistuire la parola false con la parola true dopo la voce accept_terms:
Copiate il vostro token reperito dalla pagina principale del sito duckdns.org esattamente dopo la voce token:
Ed infine aggiungere il vostro dominio duckdns dopo la voce domains: proprio come nell'esempio sottostante.
lets_encrypt:
accept_terms: true
certfile: fullchain.pem
keyfile: privkey.pem
token: VOSTRO TOKEN
domains:
- nomescelto.duckdns.org
seconds: 300
Una volta compilato avviate l'add-on semplicemente cliccando START
L'add-on Duck DNS attiverà in automatico i certificati ssl sul vostro dominio e non vi dovrete più preoccupare di rinnovarli, ci penserà direttamente lui.
Ricordo che i certificati SSL sono necessari per accedere tramite il protocollo di comunicazione sicura HTTPS (HyperText Transfer Protocol over Secure Socket) alla vostra installazione Home Assistant.
Adesso che avete avviato DuckDNS recatevi in fondo alla pagina e leggete il log. Cliccate sul pulsante refresh per aggiornarlo eventualmente.
Dovreste trovare un messaggio del genere.
# INFO: Using main config file /data/workdir/config
+ Generating account key...
+ Registering account key with ACME server...
+ Done!
Sat Jul 20 00:36:10 CEST 2019: OK
95.232.225.128
NOCHANGE
# INFO: Using main config file /data/workdir/config
+ Creating chain cache directory /data/workdir/chains
Processing nomescelto.duckdns.org
+ Creating new directory /data/letsencrypt/nomescelto.duckdns.org ...
+ Signing domains...
+ Generating private key...
+ Generating signing request...
+ Requesting new certificate order from CA...
+ Received 1 authorizations URLs from the CA
+ Handling authorization for nomescelto.duckdns.org
+ 1 pending challenge(s)
+ Deploying challenge tokens...
OK + Responding to challenge for nomescelto.duckdns.org authorization...
+ Challenge is valid!
+ Cleaning challenge tokens...
OK + Requesting certificate...
+ Checking certificate...
+ Done!
+ Creating fullchain.pem...
+ Done!
Accertatevi di arrivare a leggere la scritta DONE! sul log prima di proseguire...nel caso sia andato qualcosa storta riguardate e ripetete i passaggi precedenti.
Un altro passaggio necessario per poter accedere al vostro Home Assistant dall'esterno sarà aprire la porta 8123 (la porta utilizzata da HA) sul vostro router.
Dato che la procedura varia da router a router, vi mostrerò come fare con quello in mio possesso.
Anche se i menù dei vari router sono sicuramente diversi, il principio di funzionamento è il medesimo.
In sostanza dovrete recarvi nel menù dove sarà possibile abilitare le porte sul vostro router.
Comunemente questo menu si chiama port forwarding.
Selezionare l'indirizzo ip del vostro dispositivo su cui è installato Home Assistant e regolare l'apertura della porta 8123 come da schema seguente:
Selezionando come porta del dispositivo appunto la 8123 e come porta esterna sempre la 8123.
Salvate le impostazioni sul vostro router e andate a modificare il file configuration.yaml del vostro Home Assistant.
aggiungendo i seguenti parametri:
http:
base_url: https://nomescelto.duckdns.org:8123
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
Ovviamente sostituendo "nomescelto" con il vostro dominio creato precedentemente su DuckDNS.
Salvando e riavviando il vostro Home Assistant noterete che potrete raggiungerlo all'indirizzo di esempio qui sotto:
https://nomescelto.duckdns.org:8123
Da notare che http:// è diventato https://
Potrete cosi raggiungere il vostro Home Assistant anche fuori dalla vostra rete locale.
nel caso vogliate eliminare la porta dal vostro indirizzo e quindi trasformarlo in
https://nomescelto.duckdns.org
sarà necessario tornare nelle impostazioni del vostro router nel menu dove abbiamo inoltrato le porte e cambiare il parametro porta esterna desiderata da 8123 a 443
successivamente dovrete modificare anche il file configuration.yaml cosi come si vede nell'esempio.
http:
base_url: https://nomescelto.duckdns.org
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
Salvando e riavviando avrete apportato le modifiche per poter togliere la porta dall'indirizzo del vostro Home Assistant potendolo raggiungere quindi all'indirizzo segnato poco sopra.
È possibile anche raggiungere in locale il nostro server purchè ci si ricordi di usare https://
ad esempio https://192.168.1.30:8123
Ovviamente dovrete inserie l'ip della macchina che ospita Home Assistant e il browser vi darà un errore di certificato ma, cliccando su avanzate e confermando, raggiungerete lo stesso il vostro Home Assistant.
Mosquitto Broker (MQTT)
Ne abbiamo parlato più volte in passato, il protocollo MQTT è un protocollo molto usato nel mondo dell'Home Automation.
Per funzionare questo protocollo ha bisogno di un broker che permette di far comunicare i client (che si dividono in publisher e subsciber).
Gestisce inoltre il flusso dei dati e permette ai client di iscriversi o pubblicare messaggi.
Uno degli esempi più eloquenti che abbiamo fatto dell'uso del protocollo MQTT è stato quello con i dispositivi Shelly. In questo modo si elimina qualsiasi complicazione derivante dal Cloud o dall'app proprietaria.
La soluzione migliore è quella di installare il broker direttamente nella macchina su cui gira Home Assistant.
Vediamo la procedura tramite l'add-on dedicato.
Per prima cosa andate in impostazioni e successivamente su utenti
Cliccando il pulsante + andrete ad aggiungerne uno.
Selezionate un nome, un nome utente una password di vostro gradimento dopo di che spuntate la voce administrator
Per la nostra guida farò finta che il vostro nome e il vostro nome utente siano mqtt e la password scelta password (che fantasia eh?)
Tornate nel menù supervisor e ricercate nell'add-ons store mosquitto broker
Installatelo ma, prima di avviarlo, scorrete in basso nella pagina dell'add-on fino a che non arriverete alla voce configurabile chiamata appunto config
qui copiate questa configurazione:
logins:
- username: mqtt
password: password
anonymous: false
customize:
active: false
folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false
Ovviamente al posto di mqtt e password dovrete inserire il nome del vostro utente e la password da voi scelta.
Salvate le modifiche ma NON AVVIATE ANCORA L'ADD-ON.
Aprite il terminale direttamente dal menu a tendina sulla sinistra (se avete seguito la nostra guida lo troverete cliccando su terminal)
una volta aperto il terminale digitate in ordine i seguenti comandi
cd share
mkdir mosquitto
cd mosquitto
nano accesscontrollist
ogni comando dovrà essere seguito dal tasto invio.
Quando avrete dato invio all'utimo comando vi si aprirà una pagina di testo, copiate il seguente codice
user mqtt
topic #
user homeassistant
topic #
user hass.io
topic #
user nome che avete usato per loggarvi ad homeassistant
topic #
Ovviamente dovrete sostituire mqtt con il nome utente che avete creato ad inizio guida e "nome che avete usato per loggarvi ad homeassistant" con ...indovinate un pò?
esatto, proprio il nome che avete usato per loggarvi in Home Assistant ehehhehehehe.
Salvate il file e uscite con la combinazione di tasti CTRL+X confermare con Y quando richiesto e poi premete invio.
Adesso digitate il comando
nano acl.conf
Nel file che si aprirà digitate:
acl_file /share/mosquitto/accesscontrollist
successivamente salvate il file e uscite con la combinazione di tasti CTRL+X confermare con Y quando richiesto e poi premete invio.
Digitate exit e premete invio per uscire dal terminale.
Adesso non vi rimane che riavviare Home Assistant e successivamente avviare l'add-on Mosquitto per avere l'mqtt broker in funzione.
Appuntamento al volume 3 di questa serie di guide.
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.