Close Menu
    Facebook X (Twitter) Instagram
    Nicola PreoNicola Preo
    • Home
    • Domotica
    • Informatica
    • Recensioni
    • Tutorial
    • About Nicola
      • Contattami
    Nicola PreoNicola Preo
    Domotica

    Accendere PC da Remoto…Magie con Home Assistant

    17 commenti6 Mins Read
    wol

    Accendere PC da Remoto…Magie con Home Assistant

    Nel mio precedente articolo Wake On Lan + Home Assistant, vi ho mostrato come accendere i vostri dispositivi da remoto; in questo articolo invece vediamo come spegnerli!

     

    Hai già dato un occhio all’indice di articoli inerenti la Domotica presenti nel mio sito?

    Facci un salto: Indice articoli di Domotica

     

    Se volete il Bundle:
     

    Progetto Accendere pc da remoto

    Nonostante sia in grado di controllare l’accensione in remoto tramite WOL del mio PC e della mia NAS Qnap, non mi sentivo ancora soddisfatto al 100%. Per spegnerli dovevo sempre accedere tramite l’applicazione di Qnap e via RDP al PC.

    Come sapete, l’idea cardine con la quale sto portando avanti tutti questi progetti è la centralizzazione di tutte le tecnologie e gli strumenti in un’unica piattaforma: Home Assistant nel mio caso.

    Sapendo che il componente WOL di Home Assistant comprende anche la funzionalità di “spegnimento“, ho deciso di farci un pensierino e di sviluppare qualcosa che mi permettesse con 1 click di spegnere PC e NAS contemporaneamente.

    La Nas che ho a casa è una Qnap 453-pro.

    Hai già letto Miglior NAS per casa. Synology Vs Qnap. ?

    Il PC invece è un assemblato.
    La caratteristica comune di entrambi i dispositivi è che supportano il WOL, cosa fondamentale in questo progetto.
    Per prima cosa dobbiamo configurare Home Assistant in modo tale che sia in grado di accendere i nostri dispositivi. Se non l’avete ancora fatto, potete seguire questa guida: Wake On Lan + Home Assistant
    Fatto questo, possiamo procedere con la parte divertente, lo spegnimento.
     
    Come funziona la parte di spegnimento del componente che si occupa di accendere il pc da remoto di Home Assistant? Non è difficile. In pratica questo componente non fa altro che chiamare un comando o script che scatena lo spegnimento dei dispositivi.
    Nell’esempio che propongono nella pagina del componente: Wake On Lan Switch Home Assistant viene lanciato un comando shell che innesca lo spegnimento. Io ho preso spunto dalla rete e ho deciso di implementare queste 2 soluzioni:
    • Per quanto riguarda il PC avremo la possibilità non solo di spegnerlo ma anche di riavviarlo!
    • Per quanto riguarda la NAS, azionando il pulsante (switch) che l’ha accesa, la faremo spegnere.

     

    Configurazione PC

    Nel PC è necessario installare un programma che ci permetta di interagire, tramite una paginetta WEB, ai comandi WOL necessari per lo spegnimento. Trovate il software qui

    Scaricato e installato il software nel vostro PC, avviatelo. Nella barra start, in basso a destra potete trovare l’icona del software AiryTech Switch Off, cliccate col destro del mouse sopra il programma e spostatevi su “Remote“.

    Dovrebbe comparirvi una finestra come questa:

    Abilitate “Enable web interface” e cliccate poi su “View Web interface“. Questo programmino, tramite la porta 8000 (volendo si può cambiare) apre una paginetta web con i comandi da poter utilizzare per scatenare: spegnimento, riavvio, ibernazione e altri stati che possiamo far prendere al PC.

     

    Piccolo Focus sulla sicurezza. Bellissimo come programma ma allo stesso tempo, “fastidioso”. Chiunque punti a questa interfaccia WEB conoscendo l’IP del vostro PC, può spegnerlo.

    Consiglio di configurare una password e di limitare l’accesso a questa pagina solo all’indirizzo IP di Home Assistant. Personalmente, modificherei anche la porta di default giusto per essere più sicuro.

     

    Purtroppo al giorno oggi non possiamo essere sicuri al 100% su nulla, ma prendere tutte le giuste precauzioni trovo che sia la cosa più corretta.

    La stringa di comando che vi serve, qualora decidiate di utilizzare username e password è
    Tutto quello che viene dopo “http://” è riportato di seguito

    ‘curl -u User:VOSTRA_PASSWORD -k http://INDIRIZZO_IP:PORTA/?action=System.Restart’

    Se invece decidete che l’utente non vi serve, usate questo:

    ‘curl -k http://INDIRIZZO_IP:PORTA/?action=System.Shutdown’

    Il pezzo del comando che segue “?action=” varia in base a cosa volete fare. Dalla pagina web, copiatevi i Link che volete usare su un Notepad così da avere la sintassi corretta. E’ tutto Case Sensitive, quindi prestate attenzione.

     

    Configurazione NAS per accendere pc da remoto

    Per quanto riguarda la NAS, è sufficiente seguire i passi riportati nella pagina del componente Wake On Lan Switch Home Assistant.

    Nel mio caso, la NAS non ha la possibilità di editare il file sudoers, ho quindi optato per usare l’utente admin.

     

    Attenzione! Nel momento in cui dovete copiare la vostra chiave SSH dentro la NAS, NON dovete utilizzare l’utente pi (se state usando quello di default) ma bensì “homeassistant”.

    Ricordatevi che tutte le azioni che vengono scatenate dall’interfaccia WEB del software Home Assistant sono coordinate dall’utente omonimo.

     

    Nella mia NAS il comando responsabile dello spegnimento soft, è poweroff e lo trovate qui: /sbin/poweroff.

    Create quindi uno script chiamato off.sh, copiatelo dentro /root e dategli i permessi di esecuzione.

    echo “/sbin/poweroff” > /root/off.sh && chmod 777 /root/off.sh

    Con la NAS abbiamo terminato. Passiamo ad Home Assistant!

     

    Configurazione Home Assistant

    Concludiamo la nostra configurazione settando tutti i parametri necessari ad Home Assistant per poter scatenare lo spegnimento via WOL di NAS e PC.

    Ve la rendo facile includendo tutto quello che serve nel file configuration.yaml, ma ognuno è libero di dividere i componenti come meglio preferisce.

     

    input_select:
      pcoptions:
        name: pc mode
        options:
          - Restart
          - Shutdown
          - None
        initial: None
        icon: mdi:desktop-tower
    
    shell_command:
      shutdown_pc: 'curl -k http://INDIRIZZO_IP:PORTA/?action=System.Shutdown'
      restart_pc 'curl -k http://INDIRIZZO_IP:PORTA/?action=System.Restart'
      turn_off_nas: '/home/homeassistant/.homeassistant/commands/off.sh &'
    
    automation:
      - alias: pc_restart
        trigger:
          platform: state
          entity_id: input_select.pcoptions
          to: "Restart"
        action:
          - service: shell_command.restart_pc
      - alias: pc_shutdown
        trigger:
          platform: state
          entity_id: input_select.pcoptions
          to: "Shutdown"
        action:
          - service: shell_command.shutdown_pc
    switch:
      - platform: wake_on_lan
        mac_address: MAC_NAS
        name: "Nas WOL"
        host: "IP_NAS"
        turn_off:
          service: shell_command.turn_off_nas

     

    Occhio che i comandi “Shell_Command” devono essere tutti in minuscolo!

    Avrete notato che il terzo comando SHELL fa riferimento ad un percorso all’interno della Raspberry. Creiamolo subito.

    Connettiamoci in SSH alla Raspberry e, con l’utente Pi, lanciamo il comando “sudo su –” e poi questo:

    cd /home/homeassistant/.homeassistant/ && mkdir commands && echo “ssh admin@IP_NAS ‘/root/off.sh'” > commands/off.sh && chmod 777 commands/off.sh && chown homeassistant.homeassistant -R /home/homeassistant/.homeassistant/

    Sostituite IP_NAS con l’indirizzo della vostra NAS. Fate la stessa cosa nelle configurazioni riportate sopra, cambiando IP e MAC con quello della vostra NAS.

    Riavviate il servizio di Home Assistant tramite il comando:

    sudo service home-assistant restart

     

     

    Se volete il Bundle:
     

    Verifica configurazione WOL:

    Ora nell’interfaccia WEB dovreste trovarvi il nuovo componente “PC MODE” configurato come un menu a tendina, per quanto riguarda invece il pulsante WOL della NAS non è cambiato nulla, tranne che se ora lo azionate quando la NAS è accesa, si spegne.

    Bene, chiamate il vostro migliore amico e mostrategli come spegnere i vostri dispositivi tramite WOL!

    Se vi sentite parecchio motivati dopo aver letto questa guida, perché non creare con SNIPS un bell’Intent per accendere un pc da remoto o che spegne i vostri dispositivi tramite un comando vocale?

     

    Articoli collegati

    Case domotiche: una Dashboard per gestirle

    Rilevatore GAS metano smart

    Serratura Domotica Smart

    17 commenti

    1. Luca on 4 Novembre 2018 18:31

      Dopo aver ricontrollato bene i vari passaggi, ora funziona perfettamente.
      Grazie

    2. Luca on 4 Novembre 2018 16:39

      Ciao Nik,
      ho provato a ricontrollare il tutto ed anche le tue guide. In quella dove spiegavi come implementare il comando WOL, io non ho modificato il servizio di Home Assistant in quanto mi accendeva il qnap perfettamente.
      Il comando ‘ssh-keygen’, riportato nella guida sul sito di home assistant, lo lancio dopo aver lanciato il comando ‘sudo su – homeassistant’, dopo eseguo il comando ‘ssh-copy-id [email protected].1.4′.
      Dopo averlo eseguito ho notato che lui mi dice di provare a connettermi lanciando il comando “ssh ‘[email protected]′”, ed in questa maniera mi si connette senza problemi. Se lancio il comando “ssh ‘[email protected]’ ‘/share/CACHEDEV1_DATA/homes/off.sh'” il NAS si spegne. Ho cambiato lo script per home assistant mettendo il comando come ho scritto sopra ma non funziona.
      Non so più dove sbattere la testa
      grazie

    3. Nik on 4 Novembre 2018 13:10

      Ciao Luca,

      lanci il comando da dove?
      In questi casi di solito il problema è solo la chiave SSH, hai provato a leggere i commenti? credo di aver risposto a Giorgio in merito.

      Fammi sapere

      Ciao

      Nik

    4. Luca on 4 Novembre 2018 12:28

      Ciao Nik,
      ho seguito le tue indicazioni e le informazioni riportate in questa guida, https://www.home-assistant.io/components/switch.wake_on_lan/, ma quando lancio il comando ssh 192.168.1.4, mi chiede comunque la password per eseguire il login “[email protected]’s password:”
      Non riesco a capire dove sta il mio errore
      Grazie per l’aiuto

    5. Nik on 19 Agosto 2018 15:39

      Ciao Luca,

      – Se non trovi più il file “off.sh”, è probabile che la NAS lo cancelli. In questo caso è sufficiente spostarlo (magari mettilo sotto /home/). Ricordati poi di cambiare il percorso statico anche nello script di Homeassistant!
      – l’utente “homeassistant” di default se ricordo bene non può essere usato per connettersi in SSH al Raspberry. Per connetterti con quell’utente, prima entri come “pi” poi con il comando “sudo su – homeassistant” ti logghi con l’altro utente. A questo punto copi la chiave SSH come indicato nel mio articolo.

      Fammi sapere se poi hai risolto!

      Ciao

      Nik

    6. Luca on 17 Agosto 2018 1:02

      Ciao Nicola,
      ho seguito anche io la tua guida per sfruttare il wake on lan e funziona. Anche io mi sono impantanato sulla funzionalità per spegnerlo. Io ho un QNAP TS-251. Lanciando da terminale il comando poweroff, il nas si spegne, e po da home assistant, intervenendo sullo switch si accende. Rientrando via terminale sul NAS ho notato che il file off.sh, nella cartella root, è sparito. Il mio problema è che non sono riuscito a seguire la guida per creare la chiave ssh e trasferirla sul NAS, in quanto io mi collego al rapsberry tramite l’utente pi, mentre non è possibile collegarmi usando l’utente homeassistant. Seguendo questa guida, https://www.home-assistant.io/docs/installation/raspberry-pi/, io ho creato l’utente homeassistant con questo comando “$ sudo useradd -rm homeassistant -G dialout,gpio”.
      A capire come fare a creare la chiave tramite l’utente homeassistant, probabilmente tutto si sistemerebbe

    7. Nik on 10 Aprile 2018 19:24

      Ciao Cristian,

      nel file di configurazione devi mettere quello che ho specificato nell’articolo. Per quanto riguarda la Qnap assicurati di avere la chiave SSH correttamente caricata dentro e che se lanci lo script da dentro la Qnap funzioni correttamente. Per il resto si tratta di fare prove 🙂

      Ciao

      Nik

    8. Cristian on 9 Aprile 2018 18:45

      Ciao io ho un nas qnap 228a, riesco ad accenderlo ma non a spegnerlo, mi fai sapere per favore cosa devo mettere in file configuration? Grazie

    9. Giorgio Sarcletti on 11 Gennaio 2018 14:53

      Nik scusami se continuo ad importunarti su questa problematica: ma non mi funziona ancora il turn_off.
      Ti spiego i passi che ho effettuato:
      Ho seguito la guida Wake on LAN Switch fino al punto 5 (mi dici poi cosa vuol dire la seguente frase riportata al punto 1) della guida :On the server, log in as the user account Home Assistant is running und er. (I’m using hass in this example))?
      Passi che immagino servano a generare la chiave SSH e copiarla dentro il PC Linux.
      Quando mi chiedi: lo hai fatto con l’utente Homeassistant? E’ obbligatorio ai fini del funzionamento ?( e qui secondo me sta l’inghippo), che cosa intendi? Spiegati meglio perchè non comprendo (sono un po’ tardo). Per il resto ho seguito tutte le tue indicazioni……. ma nulla. Ti chiedo di aver un po’ di pazienza e ti ringrazio ancora molto per la tua disponibilità. Un caro saluto Giorgio

    10. Nik on 10 Gennaio 2018 22:22

      Ciao Flavio,

      Certo che si può fare. Ho scritto una guida precisamente su come farlo con noip: https://www.nicolapreo.it/domotica-con-raspberry-https/

      Alla prossima

      Nik

    11. Nik on 10 Gennaio 2018 21:33

      Ciao Giorgio,

      Il comando che hai lanciato nel precedente commento dovrebbe averti creato e strutturato una serie di cose tra cui:
      – Cartella “commands” dentro il path di home assistant
      – script off.sh creato nel Raspberry con all’interno questo comando: ssh admin@IP_NAS ‘/root/off.sh’
      – Sistemato i permessi di Homeassistant per far girare gli script.

      Per te ho 2 domande:
      – quando hai generato la chiave SSH e l’hai copiata dentro il PC Linux, lo hai fatto con l’utente Homeassistant? E’ obbligatorio ai fini del funzionamento 🙂
      – Hai creato lo script “/root/off.sh” dentro il tuo PC linux? Questo script all’interno deve avere questa riga: “sudo poweroff”

      Ovviamente per funzionare, lo script del PC Linux deve essere eseguibile. Dagli permessi 777 per fare delle prove.
      Da quello che mi dici nel tuo commento sembra che la chiave ssh non sia stata creata con l’utente giusto, in ogni caso prova a verificare quanto ti ho scritto.

      PS. la “&” in fondo al comando dice al server: “Lancia il comando in background senza aspettare che comando finisca”.

      Ciao!

      Nik

    12. Giorgio Sarcletti on 10 Gennaio 2018 21:19

      Ciao Nik, scusi se ti disturbo ancora, ma senza il tuo aiuto non ne vengo a capo! Sono due giorni che mi arrabatto su questo turn_off ma non ne vuole sapere di funzionare. Ho seguito l’idicazione che hai dato tu di seguire i passi della guida Wake On Lan Switch Home Assistant. In effetti lanciando dal terminale del Raspberry sul quale ho installato HomeAssistant (server) il comando: ssh [email protected] sudo poweroff, il PC (targhet) sul quale ho installato Ubuntu si spegne senza chiedere la password. Mi da l’impressione che home-assistant non mandi in esecuzione la:
      shell_command:
      turn_off_nas: ‘/home/homeassistant/.homeassistant/commands/off.sh &’.
      Scusa la mia ignoranza ma che significato ha il simbolo & in fondo alla riga precedente?
      Ti prego aiutami. Buona serata Giorgio

    13. Flavio on 9 Gennaio 2018 14:18

      Ciao Nicola grazie per i tuoi post e i tuoi articoli davvero interessanti ti volevo chiedere un consiglio .Io voglio utilizzare iun servizio dns tipo no ip
      Direttamente da modem aprendo solamente le porte relative a home assistant accedendo direttamente da remoto.
      È possibile modificare il file configuration yaml
      Inserendo l’indirizzo dns e accedere da remoto grazie se vorrai rispondermi.

    14. Giorgio Sarcletti on 8 Gennaio 2018 22:31

      Ciao Nik, rieccomi con le mie perplessità e soprattutto con la mia incapacità. Ho seguito le tue indicazioni per quanto riguarda turn_off in HA.
      ti posto parte del file configuration.yaml per come l’ho impostato io:

      – platform: wake_on_lan
      mac_address: “”
      name: “PcIntelNUC”
      host: “192.168.0.129”
      turn_off:
      service: shell_command.turn_off_pcintelnuc

      shell_command:
      turn_off_pcintelnuc: ‘/home/homeassistant/.homeassistant/commands/off.sh &’

      Precedentemente sul raspberry dove ho installato HA ho dato i seguenti comandi come root:

      cd /home/homeassistant/.homeassistant/ && mkdir commands && echo “ssh [email protected] ‘/root/off.sh’” > commands/off.sh && chmod 777 commands/off.sh && chown homeassistant.homeassistant -R /home/homeassistant/.homeassistant/

      Morale della favola: non funziona il turn_off. Mi sai dire dove sbaglio o non ho capito bene? Ti ringrazio per la collaborazione e ti auguro una buona serata. Giorgio Sarcletti

    15. Giorgio Sarcletti on 2 Gennaio 2018 20:36

      ok Nik ti ringrazio per la rapidità della risposta appena mi riesce provo a fare quanto mi dici. Grazie ancora

    16. Nik on 2 Gennaio 2018 19:28

      Ciao Giorgio,

      Mi hanno chiamato in tanti modi ma mai “Mago” 🙂 Grazie!
      Voglio augurarti un buon anno rispondendo al tuo quesito:

      Nulla di più facile se hai Ubuntu in quanto Linux parla benissimo con Homeassistant.
      Segui in dettaglio tutti i passi riportati sotto “Configurazione WOL NAS” e sarai perfettamente in grado di accendere e spegnere il tuo PC Linux con lo “Swipe” del dito 🙂

      Io faccio così con la mia NAS.

      Felici automazioni per il 2018!

      Nik

    17. Giorgio Sarcletti on 2 Gennaio 2018 18:57

      Nicola come al solito hai pibblicato un altro bellissimo articolo su home hassistant! Sei veramente un mago. Ho un problema però con il software AiryTech Switch Off che gira solo sotto windows. Io ho un pc sul quale gira Ubuntu 16.04. Non ho trovato in giro software analoghi che girino sotto Ubuntu. Pertanto l’idea che mi è venuta è se potessi lanciare con uno switch in home assistant uno scritto bash .sh del tipo “sudo shutdown -h now” magari riesco ad effettuare lo spegnimento del PC. E’ pur vero che potrei spegnere il mio computer da shell (con JuiceSSH riesco a spegnerlo), ma mi piace l’idea di poterlo fare da home assistant così come faccio il WOL. Ti saluto molto cordialmente e ti auguro un anno ricco di soddisfazioni (e di realizzare tanti nuovi articoli di domotica su HA), buona serata Giorgio

    Leave A Reply

    Homepage | Chi è Nicola Preo | Contatti | Privacy |

    Copyright © Nicola Preo

    Type above and press Enter to search. Press Esc to cancel.