SCOPI DELLA GUIDA:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTIlIZZATE:PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
|
GUIDA INDICATA A UTENTI CON ISTALLAZIONE: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.5 |
Abstract
Come spiegato anche presso la sua scheda, DuckDNS è un servizio gratuito di Dynamic DNS il quale consente a chiunque di definire un FQDN (in breve, un “nome proprio su Internet“) tale da consentire un rapido accesso alla propria domotica personale (e/o altri servizi) da remoto, ovvero lontani dalla propria rete locale domestica.
Sì, perché il punto di accesso del proprio modem è solitamente rappresentato dall’indirizzo IP WAN che il fornitore di accesso gli attribuisce, indirizzo che nel tempo varia dinamicamente per diversi motivi. Va da sé che, salvo possedere un IP fisso (solitamente ottenibile a pagamento) collegarsi a tale indirizzo preveda di conoscerne le variazioni in tempo reale.
Qui interviene il sopracitato servizio Dynamic DNS, il quale permette di definire un nome FQND arbitrario (eg. casamia.duckdns.org) il quale, associato all’indirizzo IP WAN di cui sopra, permette di doversi ricordare semplicemente un insieme di parole (fisse) anziché un indirizzo numerico (che per l’appunto comunque varia). Quando si evoca l’indirizzo FQDN, il servizio DNS risolve per noi l’associazione dell’indirizzo IP e quindi presso esso dirige le sue richieste Internet; la cosa cruciale è quindi che l’associazione FQDN / indirizzo IP WAN sia sempre mantenuta aggiornata, altrimenti rischiederemmo una risoluzione verso un IP non più corretto, perché magari nel frattempo il fornitore d’accesso potrebbe averlo modificato.
Per provvedere a tale aggiornamento le tecniche sono le più disparate. Una delle più comuni è lasciare che sia il proprio modem ad effettuare l’aggiornamento (per esempio, i modem FRITZ!Box consentono di farlo configurando una voce apposita di menu), laddove il modem non lo preveda è necessario che un host sulla propria rete domestica provveda a questa semplice ma cruciale attività.
Gli utilizzatori di Home Assistant OS (aka HassOS/HASSIO) tendono ad utilizzare l’add-on specifico di DuckDNS, il quale consente non solo di tenere aggiornata l’associazione ma anche a gestire lo scambio dei certificati di sicurezza; gli utenti Home Assistant Core, invece, possono sbizzarrirsi nelle tecniche più disparate.
In questa guida proponiamo una tecnica estremamente semplice ed efficace per mantenere l’associazione, presso una qualsiasi installazione (Core e non) di Home Assistant, utilizzando una semplice e comodissima automazione.
N.b. Sì: esiste anche un componente ufficiale di Home Assistant allo stesso scopo della presente guida, ma semplicemente funziona male. Bocciato. |
Si parte
Servizio DuckDNS
N.b. Se si possiede già un dominio definito presso DuckDNS è allora possibile saltare a pie’ pari questo paragrafo. L’unica informazione necessaria è, oltre il proprio nome dominio, il proprio token di accesso disponibile presso la propria sezione privata di DuckDNS. |
Collegarsi quindi al servizio tramite l’indirizzo https://www.duckdns.org e, una volta registrati creare un proprio nome dominio (se non lo si possiede già) che, univocamente, rappresenterà il vostro modem collegato ad Internet. Il suffisso è sempre lo stesso (“.duckdns.org“) mentre ciò che cambia e va scelto è il suffisso (per esempio “casamia“).
Per questa guida, daremo per assunto di aver creato il seguente FQDN:
casamia.duckdns.org
dove “duckdns.org” è la parte fissa mentre casamia è il nome dominio da noi creato a mo’ di esempio.
All’interno della propria sezione privata di DuckDNS troverete anche un campo importante chiamato “token“, il quale appare analogo a questo:
e3ff465f-c6d6-acb1-4416-44b2af152111
Appuntarselo da una parte, tornerà utile a breve.
secrets.yaml
Aggiungiamo ora due chiavi all’interno del file secrets.yaml presente nella cartella che contiene i file di configurazione di Home Assistant (la stessa di configuration.yaml, per capirci). Se il file non esiste, crearlo.
Aggiungere queste chiavi:
duckdns_domain: nomedomino duckdns_token: xxxxxxx-yyyy-zzzz-qqqq-aaaaaaaaa
dove nomedominio sarà il proprio nome dominio (per esempio “casamia“) e xxxxxxx-yyyy-zzzz-qqqq-aaaaaaaaa sarà il proprio token precedentemente identificato.
Salvare e uscire.
Package
Creare dunque un package chiamato duckdns.yaml nella propria cartella dei package contenente il seguente codice:
sensor:
- platform: rest
name: public_ip
resource: https://ipinfo.io/ip
input_text:
duckdns_domain:
initial: !secret duckdns_domain
duckdns_token:
initial: !secret duckdns_token
rest_command:
update_duckdns_ip:
url: "https://www.duckdns.org/update?domains={{ states('input_text.duckdns_domain') }}&token={{ states('input_text.duckdns_token') }}"
verify_ssl: true
automation:
- id: update_duckdns_ip
alias: "Update DuckDNS IP"
trigger:
- id: ip
platform: state
entity_id: sensor.public_ip
- id: start
platform: homeassistant
event: start
action:
- choose:
- alias: ip
conditions:
- condition: trigger
id: ip
- condition: template
value_template: "{{ trigger.to_state.state not in ['unknown','unavailable','none'] }}"
sequence:
- action: rest_command.update_duckdns_ip
- alias: start
conditions:
- condition: template
value_template: "{{ states('sensor.public_ip') not in ['unknown','unavailable','none'] }}"
sequence:
- action: rest_command.update_duckdns_ip
salvare e poi riavviare Home Assistant.
Spiegazione
Dopo il riavvio saranno state create una serie di entità:
- sensor.public_ip
- input_text.duckdns_domain
- input_text.duckdns_token
- automation.update_duckdns_ip
In pratica, tutto verte sull’automazione chiamata automation.update_duckdns_ip la quale si innesca all’avvio di Home Assistant oppure quando il sensore sensor.public_ip (che contiene nel suo stato l’IP WAN a noi assegnato) varia. Al suo variare, l’automazione evoca l’azione rest_command.update_duckdns_ip, il quale non fa altro che evocare DuckDNS “passandogli” il nostro nome dominio, il nostro token di identificazione e, implicitamente, il nuovo IP.
Così facendo, automaticamente l’associazione verrà automaticamente aggiornata ad ogni variazione di IP.
⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui. |
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |