Home Assistant - accendere e spegnere un PC da remoto grazie al Wake On Lan

Home Assistant

Scritto da Vincenzo Caputo

Nelle reti di computer, Wake on LAN (WoL) è uno standard Ethernet che consente di "risvegliare" un computer in standby da una postazione remota, a patto di conoscerne l'indirizzo MAC. Oggi vedremo come sia possibile creare un vero e proprio Switch virtuale all'interno di Home Assistant per effettuare l'operazione con un solo click o addirittura per automatizzarla.

Vedremo anche come aggiungere lo spegnimento del pc con sistema operativo Windows da remoto, sempre attraverso Home Assistant, usando Samba.

CONFIGURIAMO IL BIOS DEL PC

Il primo passaggio è l’abilitazione del Wake on Lan dal bios della scheda madre del PC.

Quindi, spegniamo il pc e riaccendiamolo entrando nel BIOS: di solito bisogna schiacciare appena dopo aver acceso il PC uno dei tasti F1, F2, F10, DEL, ESC, ma questo cambia da bios a bios e nella schermata di avvio di solito compare per pochi istanti l'indicazione corretta. In ogni caso vi consiglio di fare riferimento al manuale del vostro PC o della vostra scheda madre per conoscere la combinazione di tasti che fa al vostro caso.

Una volta entrati nel BIOS dovrete cercare la voce relativa al servizio di "risveglio". Anche qui la dicitura può cambiare da scheda madre a scheda madre e non posso darvi delle indicazioni univoche. Solitamente però la voce si trova nella sezione Power Management, come nell'esempio seguente.

Da diversi anni però, sia la scheda madre sia la scheda di rete supportano lo standard PCI 2.2 e anche a computer spento gli slot PCI vengono alimentati con una tensione di standby. Con l'introduzione della revisione 2.2 del PCI infatti viene aggiunto il supporto ai PME (Power Management Events) in modo che le schede PCI possano scambiare segnali anche a computer spento. Infatti nel caso della mia scheda madre, come potete osservare nelle seguenti figure, il risveglio deve essere attivato attraverso i dispositivi PCI o PCI-E.

 

CONFIGURIAMO WINDOWS

Siamo arrivati alla seconda parte, in cui dovremo attivare il risveglio attraverso il Wake on Lan nelle impostazioni di Windows.

Dallo start dobbiamo cercare Gestione dispositivi oppure premere il tasto Windows + R che vi si aprirà una finestra, nella casella di testo incollare devmgmt.msc e date invio per aprire la finestra Gestione dispositivi.

Ora dovete cercare la vostra scheda di rete ethernet, e facendo doppio clic su di essa andare in Risparmio Energia e attivare tutte le caselle come da foto seguente.

Poi sulla sezione avanzate dobbiamo attivare le due seguenti voci:

  • Shutdown Wake Up
  • Wake on magic packet

A questo punto abbiamo correttamente attivato il risveglio tramite Wake on Lan sia sul PC che sul sistema operativo.Dobbiamo ore ottenere l'indirizzo ip ed il mac address del computer in questione.Quindi da start dobbiamo cercare cmd o con il tasto Windows + R aprire la finestra esegui e scrivere cmd e dare invio.Poi nel cmd scriviamo il seguente comando:

ipconfig /all 

Dalla schermata simile all'immagine qui sopra prendete nota del MAC Address (dove c'è scritto indirizzo fisico) e dell'indirizzo IP.

CONFIGURIAMO HOME ASSISTANT

A questo punto andiamo ad integrare il Wake on Lan in Home AssistantDovremo andare a modificare il file famoso file configuration.yaml

Non sto a ripetervi ancora una volta la posizione del file in questione e come aprirlo in modalità amministrativa per la modifica in quanto l'abbiamo mostrato nelle tantissime guide precedenti su Home Assistant presenti e disponibili su questo Blog.Una volta aperto dovremo incollare questo:

switch: - platform: wake_on_lan mac_address: "00-01-02-03-04-05" name: Wake on lan host: "192.168.1.105"

Nella linea mac address dovremo sostituire quello presente con il nostro, mantenendo gli apici, stessa cosa con la linea host dove andremo a mettere il nostro indirizzo IPOra riavviando Home Assistant, avremo un interruttore che, quando impostato sulla posizione di On, accenderà il PC in questione.

IMPOSTIAMO LO SPEGNIMENTO REMOTO

Questo è l’ultimo passo della nostra guida, dobbiamo ora aggiungere lo spegnimento da remoto.Per ora il nostro interruttore per il Wake on Lan accende soltanto il pc, ma non lo spegne se portato nella posizione di OffSul raspberry, attraverso ssh o vnc aprendo il terminale, installate questi due programmi:

  • sudo apt-get install samba-common-bin
  • sudo apt-get install etherwake
In questo caso i due programmi sono già installati

Poi sul computer, cercate nello start il regedit (editor del registro di sistema di Windows) o dopo aver aperto esegui digitare regedit, e recatevi in HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSysteme create una chiave DWORD, tasto destro - nuovo - Valore DWORD (32 bit), chiamatela LocalAccountTokenFilterPolicy e dategli un valore esadecimale di 1.

Fatto questo dovete inserire questo componenti nel configuration.yaml su raspberry e modificare il componente precedentemente aggiunto. Modifichiamo aggiungendo la parte finale. Mentre il secondo codice lo aggiungiamo, modificando 192.168.x.x, con il nostro ip, poi user con il nostro utente su windows e password con la nostra password del utente di windows.

switch wol: - platform: wake_on_lan mac_address: "00-01-02-03-04-05" name: Wake on lan host: "192.168.1.105" turn_off: service: shell_command.turn_off_pc shell_command: turn_off_pc: 'net rpc shutdown -I 192.168.x.x -U user%password'

Come di consueto vi lascio al video di fine articolo dove vi mostrerò anche un automazione realizzata con Home Assistant proprio per l'accensione e spegnimento del PC. Buona visione!

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.

Vincenzo Caputo

Nato a Matera, il 1° novembre 1977. Sono da sempre appassionato di tecnologia e ho un'esperienza lavorativa ventennale nel settore IT. Mi piace sperimentare e cercare sempre nuove soluzioni e soprattutto mi piace comunicare le mie esperienze agli altri.


Vai ai commenti