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

Nessun commento:

Posta un commento