Translate

giovedì 26 novembre 2020

Domotica accessibile dall'esterno della casa

 Gli spunti per questo articolo li ho presi sempre qui: indomus.it-collegarsi-da-remoto

Abbiamo due aspetti per poter accedere ad Home Assistand dall'esterno della nostra rete domestica :

1) riuscire ad arrivarci
2) fare in modo che l'accesso sia il piu protetto possibile 

Partiamo dal primo.

Avendo l'ADSL o fibra che sia, l'operatore telefonico potrebbe, e lo fà, a sua discrezione cabire l'indirizzo IP assegnato al router casalingo;
quindi quando navighiamo abbiamo di volta in volta indirizzi ip differenti. 

Per renderse conto basta travare un sito come https://www.mio-ip.eu che mostra l'indirizzo IP del proprio accesso ad internet.

Quando si naviga, poco male.. il problema è quando qualcuno (noi) dall'esterno vuole conttarci, ma noi abbiamo cambiamo "indirizzo" ... 

Scordiamoci di avere un ip Fisso (costa parecchio farselo assegnare fisso...), a noi basta che ci sia un sitema mnemonico per raggiungere la nostra Rete; per fare questo utilizzeremo Duck DNS https://www.duckdns.org

a cui dovremo accedere/registrarci e creare un nostro sottodominio (in questo caso ipotizziamo "casamia")

in modo da poter navigare ad un indirizzo del tipo

casamia.duckdns.org

All’interno della vostra sezione privata di DuckDNS troviamo anche un campo chiamato “token“ simile a questo:

e3ff465f-c6d6-acb1-4416-44b2af152111

 


Ora implementiamo su Home Assistant un elemento che, a fronte del cambiamento dell’IP Internet del proprio modem/router, comunichi tale variazione a DuckDNS, in modo da aggiornare la risoluzione dell’FQDN.

Per far questo è sufficiente aggiungere al file configuration.yaml di Home Assistant il seguente codice:

duckdns:

  domain: casamia

  access_token: il-tuo-token-duckdns

dove:

domain nome di dominio definito sul servizio DuckDNS (inteso come terzo livello, quindi nel caso sopra solo “casamia“)
access_token toker definito da DuckDNS

Una volta inserita questa configurazione e rilanciato Home Assistant, DuckDNS conoscerà l’IP del vostro modem/router ma questo solo in caso di riavvio di Home Assistant

sudo systemctl restart home-assistant@homeassistant


Quel che faremo ora è definire un processo automatico che, una volta ogni tot, invii la richiesta di (eventuale) aggiornamento verso DuckDNS. 

creeremo uno script ...

mkdir duckdns
cd duckdns
sudo nano duck.sh

inserendo la seguente stringa (tutto in una sola riga):

echo url="https://www.duckdns.org/update?domains=<tuo-dominio>&token=<tuo-token>&ip=" | curl -k -o ~/duckdns/duck.log -K -

dove (guardando immagine sopra di DuckDNS):

  • <tuo-dominio> è il nome del tuo dominio, inteso come terzo livello, quindi nel caso sopra solo "casamia";
  • <tuo-token> è il token assegnato al proprio dominio.

Una volta formattata opportunamente la stringa, è necessario copia-incollarla dentro l’editor.
Successivamente, salvare, uscire (CTRL+X, Y, Invio) e cambiare i permessi del file appena generato con:

sudo chmod 777 duck.sh

Per automatizzare, dovremo usare il contab, un servizio di sistema unix che esegue comandi secondo una certa logica temporale.
Lanciamo il crontab in edit usando come editor "nano".

export VISUAL=nano; crontab -e

andiamo in fondo al file che si apre, ed inseriamo la riga:

*/60 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

che dice al crontab di eseguire lo script dai noi creato (duck.sh) ogni 60 minuti. Per maggiori dettagli riguardo alla sintassi di crontab consiglio il sito  https://crontab.guru

Infine dovremo far partire/installare il servizio di crontab:

sudo service cron start

Ora testiamo che l'aggiornamento dell'Ip pe ril nostro dominio funzioni correttamente:

./duck.sh
cat duck.log

Se apparirà “OK“, signfica che la comunicazione verso DuckDNS è stata effettuata e l’aggiornamento richiesto correttamente.

 

Attivare il port forwarding sul router

Per accedere, dalla rete esterna, al nostro Home Assistant è ora necessario configurare il router in modo che qualsiasi chiamata esterna verso la porta (8123, o altra) venga girata direttamente all’IP statico del Raspberry sulla porta 8123, ovvero quella di Home Assistant.

Per effettuare l’attività di configurazione del port forwarding si consiglia la lettura di questo articolo; i dati necessari applicando tale guida sono:

  • IP destinazione: IP statico del Raspberry Pi (assegnato in precedenza);
  • Porta esterna: 8123 (a meno che non vogliate usarne un’altra, è lo stesso);
  • Porta interna: 8123

 

 per la gestione della crittografia, rimando al prossimo articolo

mercoledì 18 novembre 2020

HACS ovvero "Home Assistant Community Store"

... proseguiamo ad installare altri componenti utili in seguito...

HACS
ovvero "Home Assistant Community Store"

 
HACS è un componente custom che permette di aggiungere all’interfaccia del frontend un "pannello di controllo" aggiuntivo utile a gestire (aggiornare, cancellare, configurare, rimuovere) alcune tipologie di elementi aggiuntivi non direttamente certificati dal team di sviluppo di "Home Assistance".



Come al solito, questo è il link da cui ho preso le info... e qui sotto la parte usata da me per installare Hacks su HOME ASSISTANT CORE Su Raspbian:

Ci si collega via SSH e si eseguono i seguenti comandi:

sudo install -g homeassistant -o homeassistant -d /home/homeassistant/.homeassistant/custom_components
git clone https://github.com/custom-components/hacs.git /tmp/hacs
sudo mv /tmp/hacs/custom_components/hacs /home/homeassistant/.homeassistant/custom_components/
sudo chown -R homeassistant:homeassistant /home/homeassistant/.homeassistant/custom_components/hacs
rm -rf /tmp/hacs

infine, effettuare un riavvio con:

sudo reboot

Prima di aggiungere l’integrazione “HACS” a Home Assistant è necessario procurarsi un Token fornito da GitHub.

Per ottenerlo, recarsi presso la sezione Token personali del proprio pannello utente presso GitHub e cliccare su “Generate New Token”.

Indicare “HACS” nel campo “Note” e, in fondo (senza cliccare altro), cliccare su “Generate Token”. Questo produrrà il proprio token d’accesso (e.g. “ee437a5186726118c799d124e04cecd962c965bb“) il quale andrà indicato in configurazione all’atto di configurare l’integrazione.

 

Per configurare HACS tramite interfaccia, prima svuotate la cache del browser e poi recarsi alla voce “Impostazioni” > “Integrazioni” e premere su “+“.

 Cercare “HACS”:

 

a questo punto si seleziona e si seguomno le istruzioni (a distanza di un mese sonocambiate... quindi non entrerei troppo nel dettaglio ora lasciando ad inDomus di togliere eventuali dubbi)

Qui posso dire solo che su Rapberry Pi [1] i riavvii e le installazioni sono particolarmente "lunghe" quindi potrebbe sembrare che si sia freezato qualcosa ... conviene aspettare fiduciosi a botte di quarti d'ora :')