Domotica con Raspberry. Home Assistant + WOL
Nel mio precedente articolo su come Aumentare la sicurezza con Home Assistant + HTTPS, abbiamo affrontato l’argomento Sicurezza e Crittografia delle comunicazioni.
In questo post della categoria “Domotica con Raspberry“, andremo a vedere una configurazione più pratica che ci permette di interagire con i dispositivi di casa che usiamo giornalmente in modo da poterli accendere da remoto.
L’argomento che andremo a trattare è: Wake On Lan, un servizio che se configurato permette di accendere i nostri dispositivi (NAS/PC) in questo caso, tramite Home Assistant.
Passo 1: Pre-Configurazione di Home Assistant
Home Assistant ci mette a disposizione nativamente la piattaforma wake_on_lan, con la quale è possibile interagire con i nostri dispositivi ed accenderli da remoto. Per farlo dobbiamo dotarci del MAC ADDRESS e dell’IP di ogni dispositivo che dobbiamo controllare.
Ovviamente, il dispositivo che vogliamo accendere, deve supportare il protocollo WOL (Wake On Lan). Se è un PC/NAS moderno basterà attivarlo, in caso contrario verificate se la scheda di rete lo supporta.
Per prima cosa connettiamoci in SSH alla nostra Raspberry ed editiamo il file di configurazione di Home Assistant. Se incontrate problemi, ho scritto una guida su come Installare Home Assistant e configurarlo.
Copiamo alla fine del file questo:
switch: - platform: wake_on_lan mac_address: !secret nas_mac name: "NAS WOL" host: "IP_VOSTRA_NAS" - platform: wake_on_lan mac_address: !secret pc_mac name: "PC WOL" host: "IP_VOSTRO_PC"
Questa piccola configurazione andrà ad attivare uno “Switch” con il quale potremo, tramite interfaccia web, accendere i nostri dispositivi. In questo caso specifico, NAS & PC.
Noterete che su “mac_address:” è presente una dicitura simile alla precedente guida su come Aumentare la sicurezza con Home Assistant + HTTPS. E’ corretto, in quanto andremo a specificare tutti i nostri dati “sensibili” all’interno di un file specifico.
Modifichiamo ora il file secrets.yaml aggiungendo questo:
Devices
nas_mac: XX-XX-XX-XX-XX-XX
pc_mac: XX:XX:XX:XX:XX:XX
Da notare che i 2 MAC ADDRESS hanno una dicitura differente. Quello della NAS è separato con i “-” mentre quello del PC con i “:”. Nel mio caso specifico ho riscontrato che questa configurazione è la migliore. Qualora a voi non dovesse funzionare, provate a invertire la combinazione.
Per quanto riguarda Home Assistant la nostra configurazione è completata.
Passo 2: Configurazione Raspbian
Visti gli ultimi aggiornamenti dei vari componenti: Home Assistant, Qnap e Windows ho dovuto apportare delle modifiche anche ad altre cose. La prima è il servizio di Home Assistant.
vim /etc/systemd/system/home-assistant.service
[Service] Type=simple User=homeassistant ExecStart=/srv/homeassistant/homeassistant_venv/bin/hass -c “/home/homeassistant/.homeassistant” Environment=PATH=”$VIRTUAL_ENV/bin:/usr/sbin:/usr/local/sbin:/
usr/local/bin:/usr/bin:/sbin:/bin:$PATH”
Sovrascrivete la parte di [Service] con quella indicata sopra. Dovreste notare che l’unica modifica fatta è quella della variabile PATH.
Riavviamo i servizi:
sudo systemctl daemon-reload
sudo service home-assistant restart
Ottimo, ora andiamo ad installare un componente utile al nostro scopo.
sudo apt-get install etherwake
etherwake andrà ad installare le librerie necessarie per far si che tutto funzioni correttamente. Volendo potete usare anche separatamente questo comando per lanciare comandi WOL ai vostri dispositivi.
Passo 3: Configurazione NAS
Questo passo dipende molto dalla versione di NAS che avete. Nel mio caso con una Qnap aggiornata all’ultima versione non ho avuto particolari problemi.
E’ stato sufficiente verificare il MAC ADDRESS e attivare nel menù “Accensione” il protocollo Wake On Lan.
Nel vostro caso dovrete:
- Verificare che il modello di NAS che utilizzate supporti questo protocollo.
- Verificare in che modo spegnere la vostra NAS per poterla accendere in un secondo momento. Alcuni modelli vogliono per forza che non facciate “Spegni” ma “Iberna“
Segnato MAC ADDRESS e IP, proseguiamo con la parte dedicata a Windows.
Passo 4: Windows
Questa configurazione dovrebbe essere abbastanza simile per tutti i sistemi operativi: Windows 7/8/10 e successivi.
Come nel passo precedente dovrete:
- Verificare innanzitutto che la vostra scheda di rete supporti il protocollo WOL. Se avete un PC fisso, verificate le specifiche della scheda madre. Se il vostro PC ha meno di un anno dalla data di questo articolo, non dovreste avere problemi.
- Verificato questo prerequisito, bisogna andare nel BIOS del PC e modificare alcune impostazioni. Purtroppo anche qui, essendoci una miriade di PC, è difficile fare una guida passo-passo, ma per fortuna le configurazioni sono molto simili.
- Prima di tutto attivate la scheda di rete cercando la sezione “Network Stack“.
- Nel mio caso, sotto il menù “Advanced” è presente la voce APM con all’interno un’opzione chiarissima: “Attiva il protocollo Wake on Lan“. In linea di massima dovreste anche voi avere una cosa simile. Diversamente controllate nel manuale del vostro PC/scheda madre, come attivarlo.
- Passiamo a Windows. Nelle proprietà della vostra scheda di rete, cliccate su “Configura“. Anche qui, in base al modello della vostra scheda di rete ed i Drivers installati i menù potrebbero essere diversi. In linea di massima, sotto la voce “Power Management” dovrebbero esserci 3 spunte da mettere. Mettetele tutte e 3. Nel mio caso ho dovuto attivare tutto quello che c’era sotto “Wake on LAN” nel menù “Power Management”. Se non dovesse funzionare, al 100% c’è una impostazione sotto “Advanced” da disattivare.
Passo 5: Test delle configurazioni
E’ giunto il momento di testare le nostre configurazioni. Accediamo alla console di amministrazione di Home Assistant.
Se avete eseguito il Passo 1 correttamente, dovreste trovarvi una scheda con 2 switch. “NAS WOL” e “PC WOL”.
L’aver configurato anche L’indirizzo IP nella configurazione di Home Assistant, permette al componente di verificare che il vostro dispositivo sia effettivamente acceso o no. In futuro potrete integrare questo “feedback” per effettuare altre azioni. Per esempio: Creare un’automazione che una volta accesa la NAS faccia partire una musica specifica. (Vedremo come fare anche questo)
Spegnete NAS e PC e verificate il tutto.
Considerazioni:
Una piccola riflessione lato Sicurezza. Se tutto è andato per il verso giusto avrete notato che all’attivarsi di uno switch su Home Assistant è possibile accendere i vostri dispositivi. (Volendo c’è anche la possibilità di spegnerli).
Come è stato facile per voi, potrebbe esserlo anche per qualcun’altro. Ecco una serie di passi per aumentare il più possibile la sicurezza:
- Proteggete sempre il PC con una password all’avvio.
- Proteggete sempre la NAS con una password. Sia per quanto concerne l’accesso tramite interfaccia WEB che per quanto concerne l’accesso dei file tramite Windows.
- Non tenete mai le password salvate. Specialmente per la NAS dato che si suppone ci sia l’archivio dei vostri files.
- Se possibile, tramite Router/Firewall o programmi specifici, filtrate l’indirizzo MAC in grado di poter accendere o mandare richieste WOL ai vostri dispositivi. Alcuni modelli di router permettono di bloccare l’input di questi pacchetti via rete.
Detto questo, mostrate ai vostri amici cosa siete in grado di fare con una Raspberry da meno di 40€ e 4 righe di codice!
Per quanto incredibile, questa è solo una parte delle potenzialità di Home Assistant.
Hai già dato un occhio all’indice di articoli inerenti la Domotica presenti nel mio sito? Facci un salto: Indice articoli di Domotica
25 commenti
Ciao Cristian,
Se intendi il WOL, credo proprio di si
Ciao
Nik
è possibile anche su hass.io? se si, come? grazie
Ciao Riccardo,
Non sei mai riuscito a connetterti o è la prima volta? quell’errore potrebbe voler dire qualsiasi cosa, prova a riavviarlo
Ciao
Nik
non riesco a connettermi al server di home assistant, continua a darmi questo errore: ” 2018-03-30 12:24:38 WARNING (Thread-19) [netdisco.ssdp] Error fetching description at http://127.0.0.1:58080/114573dba9.xml ”
Sapresti aiutarmi?
Avevo capito giusto allora, segui quello che ho scritto prima e non dovresti avere problemi. Una volta connessa la Raspberry con un cavo di rete, dovrai ricercare l’IP
Ciao
Nik
Praticamente io non posseggo ne tastiera ne mouse perché utilizzo solo notebook, siccome ho letto che per la prima accensione devo necessariamente averle, volevo sapere se c’è un metodo per evitare questo, grazie
Ciao Cristian,
Intendi quando formatti l’SD per la prima volta? In tal caso, devi creare un file chiamato “ssh” (Si, è senza estensione) e metterlo dentro la cartella principale dell’SD. In questo modo quando l’accendi si attiva subito la modalità SSH e ti puoi connettere da remoto.
Se è altro, fammi sapere
Ciao
Nik
Ciao nik, c’è la possibilità alla prima accensione di non usare una tastiera? Se si come? Grazie.
È proprio quella che posseggo già
Ciao Cristian,
Per supportarla la supporta si
Posso consigliarti questa come buona candidata: https://amzn.to/2GcKKtH
Buone automazioni
Ciao
Nik
Ciao, solo perché la posseggo già e non mi va di spendere altri soldi per una sd ? l’importante che la supporti
Ciao Cry,
Teoricamente, funziona.
Trovi maggiori info a questo Link: https://elinux.org/RPi_SD_cards
Te la consiglio? No, se hai bisogno di così tanto spazio, no usare la Raspberry per queste cose ma cambia device
32 son più che sufficienti per avere una scheda SD con un buon rapporto Velocità/Costo
Ciao
Nik
ciao, ma nel raspberry 3 b posso inserire anche una micro sd da 64gb?
grazie
ciao, ma nel raspberry 3 b posso inserire anche una micro sd da 64gb?
Grazie Nik sei stato esaustivo su tutto e… mi hai convinta, lo acquisto ! Ovviamente condividerò tutti, tempi tecnici di apprendimento 😉
Grazie ancora e dilettaci con i tuoi tutorial utilissimi 😉
Ciao
F
Ciao Francesca,
Grazie per i complimenti 🙂
1) Questione Raspberry. Il motivo per il quale vedi tutorial principalmente su base Raspberry è semplice: consuma poco, super affidabile, super veloce, economica e con un potenziale infinito. Penso che la combinazione con Home Assistant sia l’eden della Domotica moderna. Uno strumento così potente ed un software così versatile in uno spazio di 5x3cm. Una delle caratteristiche di Home Assistant è quella che si può appunto installare anche in sistemi diversi dalla Raspberry, però continuo a preferire la Raspberry ugualmente.
2) Al momento sto cercando anche io un KIT che mi dia un compromesso tra prezzo/durabilità/domotica ma devo ancora trovarlo. Stai tranquilla che appena lo trovo ci faccio un articolo!
3) Comprare il Raspberry? Sono onesto, ho sempre avuto la passione per la domotica ma in particolare un’ossessione per gli automatismi. L’uscita della Raspberry e la scoperta di Home Assistant hanno spostato questa mia ossessione. L’ho comprata per farci esperimenti ma poi l’ho trasformata nella mia personale IA chiamata “Freedom” in grado di gestire intelligentemente tutte le mie necessità.
Home Assistant puoi installarlo dove preferisci, è compatibile con molte soluzioni, ma sono convinto che con la Raspberry arrivi ad un ottimo compromesso tra: consumi, costi e durabilità. Se ci fai un pensiero, ecco il mio setup 🙂
http://amzn.to/2zS8sIW
http://amzn.to/2zQx8Bs
http://amzn.to/2zRVkTQ
http://amzn.to/2zQtTKe
Bundle:
http://amzn.to/2xpp9cN
4) Alexa? Inizialmente volevo fare un tutorial anche su quella piattaforma. La trovo affascinante, ma troppo Open…considera che il traffico che Alexa e Google Home fanno, passa verso internet. Nell’ottica di avere anche una casa gestibile con comandi vocali, preferisco rimanere orientato verso soluzioni locali come Snips
Spero di averti chiarito le idee
Mi raccomando condividi 🙂
Ciao
Nik
Ciao Nicola, complimenti per le tue guide :).
Mi sto avvicinando pian piano alla domotica e ne sono affascinata. Ora sono approdata a Home Assistant e al tuo sito e si è aperto un mondo. Una domanda base: ho un vecchio mac del 2007 che uso ormai solo come media center con Plex. Ho installato Home Assistant e ci stavo giochicchiando. Però ogni tutorial o altro prevede sempre l’uso del raspberry PI, quindi mi chiedevo se fosse poi così necessario. Al momento in casa ho installato interruttori remoti (SESOO S-Y903-X US), relè Sonarr Power , Yeelight lamp , Netatmo Cronotermostato, Broadlink rm Pro, chromecast. In programma c’è l’automazione del cancello (anzi se hai qualche consiglio su un kit in particolare magari per collegarci anche un campanello che attiva una webcam in remoto). Ma… il raspberry Pi? Lo compro? Sto aspettando che arrivi in Italia Alexa, non vorrei fare una spesa superflua.
Intanto grazie 🙂
Ciao Roberto,
Data la diversità di ogni sistema, non c’è un modo generico per spegnere i dispositivi. Home Assistant però ha a disposizione l’opzione “turn_off” per poter chiamare uno script che ti permette di lanciare un comando per spegnere la macchina. Ti lascio il link della pagina di Home Assistant relativa al WOL
In quella pagina è presente un esempio per spegnere un server Linux.
in sintesi:
– Crea 2 script. 1 per spegnere Windows e uno per spegnere la NAS (La maggior parte dei NAS è su base Linux)
– Configura il comando “turn_off” su Home Assistant
Spero di esserti stato d’aiuto.
Saluti
Nik
Ciao riesco tranquillamente a accendere sia il nas che il pc, non ho capito però come spegnerli.
Ciao Giorgio!
Perdona il ritardo per ero in ferie.
Mi fa piacere che tu abbia risolto il tuo problema. Qual’era l’inghippo? Ad altri potrebbe far comodo
Per rispondere alla tua domanda:
GPIO Pin Home Assistant
Mi par di capire che tu voglia solo utilizzare come trigger Home Assistant per azionare qualcos’altro. Il link che ti ho messo dovrebbe fare al caso tuo.
In alternativa prova a dare un occhio qui:
Raspberry Pi Cover
Questo componente si presta meglio per applicazioni come la porta di un garage dove uno dei due piedini è utilizzato come “stato”
Sono consapevole della scarsità di contenuti in italiano, ma è per questo che c’è il mio sito.
Come ti dicevo, a breve pubblicherò un altro articolo che includerà anche l’utilizzo di Arduino.
Mi raccomando condividi tutto…è gratis 🙂
A presto
Nik
Risolto alla grande. Avrei altre domande da porti. Come è possibile gestire eventuali altri pin (che attivano relay) collocati su altre raspberry che non siano quella dove è installato HA? Mi entusiasma sempre di più Home Assistant e non vedo l’ora di aggiungere nuove funzionalità. Ben si intende con il tuo aiuto. Vedo che purtroppo c’è poco materiale in italiano. La stragrande maggioranza è tutto in inglese ed essendo io poco esterofilo ho difficoltà a realizzare nuove funzionalità per cui attendo sempre con impazienza una qualsiasi tua pubblicazione sull’argomento. Ti ringrazio ancora per il tuo contributo. Cordialmente Giorgio Sarcletti.
Grazie per la dritta. Ho risolto questa parte di configuration.yaml
Ciao Giorgio,
Grazie. Innanzitutto, complimenti per i passi che hai fatto. La gestione del WOL non è per principianti quindi te la stai cavando piuttosto bene!
2 cose:
– Quando compili il file configuration.yaml e Home Assistant non si avvia più oppure ha errori, controlla il file “home-assistant.log”. Questo è il file di Log di Home Assistant, ti mostrerà esattamente la riga che ha generato l’errore.
– Nel tuo caso specifico, Home Assistant non si avvia in quanto c’è un errore nella sintassi del file configuration.yaml
“Platform” è un oggetto di Switch. Switch è la macro categoria e, una volta specificata, aggiungerai N Platform in base a cosa vuoi attivare su Home Assistant. Nel tuo caso specifico basta che rimuovi “switch:” sopra la riga che riporta “wake_on_lan”, lancia questo comando: “sudo service home-assistant stop && sudo service home-assistant start” e Home Assistant dovrebbe avviarsi correttamente.
La sintassi alla fine dovrebbe essere qualcosa come questa:
(In teoria la formattazione di wordpress dovrebbe essere mantenuta)
A presto!
Nik
Ho dimenticato di allegarti la parte aggiunta al file configuration.yaml:
switch:
– platform: rpi_gpio
ports:
26: Luce studio
# Example configuration.yaml entry
switch:
– platform: wake_on_lan
mac_address: “C0:3F:D5:64:AC:E9”
name: “PC Intel Nuc WOL”
host: “192.168.0.112”
Sempre molto interessanti i tuoi articoli. Ho tentato di replicare quest’ultimo lavoro, (ti allego parte del file configuration.yaml) con implementati il MAC address e l’IP del mio Pc. Ma quando vado a fare il restart di home assistant e mi collego al mio indirizzo IP:8123 mi viene fuori la scritta impossibile raggiungere il sito. Prima di questa aggiunta home assistant era raggiungibile. Ripristino alle condizioni precedenti il tutto riprende a funzionare. So che home assistant è molto sensibile alla indentazione dove sbaglio? Sarebbe magari utile nei tuoi lavori indicare alcune regole nella compilazione del file configuration.yaml. Ti ringrazio Giorgio Sarcletti