Tutta la domotica di casa gira su un mini PC: Home Assistant, il gateway WhatsApp, il controller Wi-Fi e la VPN per entrare da fuori. Un giorno ci siamo accorti di una cosa semplice e scomoda: se il mini PC si spegne, per un blackout, un crash o uno spegnimento accidentale, resta spento.

E nessuno se ne accorge. Gli avvisi WhatsApp partono da lì, quindi quando il server è giù il sistema non può dirtelo da solo: è come chiedere a chi dorme di svegliarti se si addormenta.

🔁 Il paradosso da tenere a mente

  • Chi deve svegliare il server deve restare acceso quando il server è spento.
  • Chi deve controllare il server deve stare fuori dal server.
  • Per questo nessuna automazione di Home Assistant risolve il problema: quando serve, Home Assistant è spento con tutto il resto.

La soluzione è a strati: tre livelli per far ripartire il PC, ognuno più robusto del precedente, e un allarme che sta su server di altri e si accorge quando il nostro tace.

🧱 I quattro elementi a confronto

ElementoBlackoutSpegnimentoPC bloccatoDa fuori casaCosto
1 · BIOS «accendi sempre»✅ riparte da solo al ritorno della corrente❌❌Non serve, è automaticoGratis
2 · Wake-on-LANNon serve, ci pensa il BIOS✅❌❌ solo dalla rete di casaGratis
3 · Presa smart✅✅✅✅ dall'app del produttoreUna presa Wi-Fi
4 · Allarme esterno🔔 avvisa🔔 avvisa🔔 avvisa✅ l'avviso arriva ovunqueGratis per pochi check

I primi tre risolvono, il quarto avvisa. Servono tutti e due i tipi: un sistema che si rimette in piedi da solo ma non te lo dice, prima o poi resta giù senza che tu lo sappia.

⚡ Livello 1 · il BIOS: «riaccenditi sempre»

Nel BIOS del mini PC c'è un'opzione che decide cosa fare quando torna la corrente dopo un'interruzione. Di solito è impostata su «resta spento» e va cambiata in «accendi sempre». Il nome cambia da produttore a produttore:

  • Restore on AC Power Loss: impostala su Power On;
  • AC Power Recovery o Power On After Power Fail: On o Always On;
  • State After G3: S0 State, che vuol dire acceso.

Effetto: quando torna la corrente il PC si accende senza che nessuno prema il tasto. Da solo però non basta, perché un PC acceso alla schermata di accesso non fa partire niente. Servono anche:

  1. l'accesso automatico di Windows, così il desktop si apre senza password;
  2. l'avvio automatico di Docker all'accesso, con i container impostati su restart: unless-stopped.

Con queste tre cose insieme la casa riparte da sola dopo un blackout. Le impostazioni di Docker sono quelle della guida Come installare Home Assistant con Docker su Windows.

🔋 E l'UPS?

  • Un UPS (gruppo di continuità) tiene acceso il mini PC con la sua batteria durante i blackout brevi: il PC non si spegne proprio, e non deve ripartire.
  • Da noi è stato ordinato e completa il BIOS: l'UPS copre i buchi di corrente di pochi minuti, il BIOS i blackout più lunghi della batteria.
  • Quando arriva, attenzione a dove si mette la presa smart: lo vediamo al livello 3.

📡 Livello 2 · Wake-on-LAN: svegliarlo dalla rete

Il Wake-on-LAN (WOL) è un «pacchetto magico» mandato nella rete di casa: la scheda di rete del PC spento resta in ascolto con un filo di corrente, lo riconosce e accende il computer. Serve quando il PC è stato spento, per esempio da Windows o da un tasto premuto per sbaglio, e la corrente non è mai mancata: in quel caso il BIOS non interviene.

Va abilitato in due punti: nel BIOS (voci come Wake on LAN, Power On by PCI-E o Resume by LAN) e in Windows. Controllando la parte di Windows abbiamo scoperto che era configurata solo a metà:

ImpostazioneCom'eraPerché blocca il WOL
Wake on Magic PacketDisattivatoLa scheda ignora proprio il pacchetto magico
Energy-Efficient EthernetAttivoSu molte schede Realtek spegne il collegamento quando il PC è spento, e il pacchetto non arriva
Avvio rapido di WindowsAttivoCon l'avvio rapido «Arresta» in realtà iberna il sistema, e spesso la scheda non resta in ascolto

La correzione sono tre comandi da PowerShell aperto come amministratore. «Ethernet» è il nome della scheda di rete: se la tua si chiama in un altro modo, lo vedi con Get-NetAdapter.

# 1. La scheda accetta il pacchetto magico
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Wake on Magic Packet" -DisplayValue "Enabled"

# 2. Il collegamento resta attivo anche a PC spento
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Energy-Efficient Ethernet" -DisplayValue "Disabled"

# 3. Niente ibernazione: spegne anche l'avvio rapido
powercfg /hibernate off

I nomi delle voci (-DisplayName) e dei valori (-DisplayValue) li decide il driver della scheda, e su alcune schede sono diversi o tradotti. Se un comando dà errore, guarda come si chiamano davvero sulla tua:

Get-NetAdapterAdvancedProperty -Name "Ethernet" | Format-Table DisplayName, DisplayValue

🚧 I limiti onesti del Wake-on-LAN

  • Il pacchetto va mandato dalla rete di casa, per esempio da un'app WOL sul telefono collegato al Wi-Fi di casa.
  • Da fuori casa non funziona: per entrare nella rete di casa serve la VPN, e la VPN gira proprio sul server spento.
  • Home Assistant non può mandarlo: l'integrazione Wake on LAN esiste, ma Home Assistant è sullo stesso PC da svegliare.
  • Non risolve un PC bloccato, acceso ma piantato: per la scheda di rete il PC è già acceso, e il pacchetto non fa niente.

🔌 Livello 3 · la presa smart, la soluzione più robusta

Una presa smart Wi-Fi sulla spina del mini PC, nel nostro caso una Smart Life/Tuya. Il punto forte è che si comanda dal cloud del produttore, non da Home Assistant: l'app sul telefono funziona anche quando Home Assistant è spento, e anche fuori casa.

Il trucco sta nella combinazione con il livello 1:

  1. dall'app spegni la presa;
  2. aspetti 10 secondi;
  3. la riaccendi: per il PC è un blackout finito, e grazie al BIOS «accendi sempre» riparte da solo.

Funziona anche quando il PC è bloccato, che è proprio il caso in cui gli altri due livelli non possono niente. Staccare la corrente a un PC acceso non è il massimo per il disco, ma qui è l'ultima risorsa, non l'abitudine.

⚠️ Con l'UPS: la presa va tra UPS e mini PC

  • L'ordine giusto è muro → UPS → presa smart → mini PC.
  • Se la presa sta prima dell'UPS (muro → presa → UPS → PC), spegnerla per l'UPS è un blackout: passa a batteria e tiene acceso il PC. Il taglio non serve a niente.
  • Messa dopo l'UPS, la presa è alimentata dalla batteria anche durante un blackout: resta comandabile dall'app finché ci sono corrente e Internet.

Un bonus: la presa si comanda anche da Alexa e Google, con le loro integrazioni con Smart Life e senza passare da Home Assistant. «Alexa, spegni la presa server» funziona anche a server spento. Per collegare la stessa presa anche in Home Assistant c'è la guida su Smart Life in Home Assistant.

Proteggere la presa in Home Assistant

In Home Assistant la presa del server è un interruttore come gli altri, ed è un problema: spegnerla dalla dashboard spegne il server, e con il server spento Home Assistant non può più riaccenderla. Serve l'app del produttore. Due accorgimenti:

  • non metterla in mezzo alle altre prese, e non esporla agli assistenti vocali attraverso Home Assistant;
  • se vuoi vederla in dashboard, aggiungi una conferma al tocco, così un dito scivolato non basta.
type: entities
title: 🖥️ Server
entities:
  - entity: switch.presa_server
    name: Alimentazione mini PC
    icon: mdi:power-plug
    tap_action:
      action: toggle
      confirmation:
        text: Spegnere la presa del server? Home Assistant si spegne e non potrà riaccenderla.

🚨 Accorgersene subito: Healthchecks.io

I tre livelli rimettono in piedi il server, ma qualcuno deve sapere che è caduto. Qui entra Healthchecks.io, un servizio esterno, gratuito per pochi controlli, che funziona come l'interruttore dell'uomo morto dei treni: non controlla il server da fuori, aspetta che sia il server a farsi vivo. Se smette di farsi vivo, scatta l'allarme.

Come funziona un check

Su Healthchecks si creano dei check. Ognuno ha tre cose:

  • un indirizzo segreto, il link di ping: chi lo apre dice «sono vivo»;
  • un periodo (Period): ogni quanto deve arrivare un segnale;
  • una tolleranza (Grace Time): quanto ritardo concedere prima di preoccuparsi.

Se un check non riceve niente per periodo più tolleranza, diventa rosso e Healthchecks manda un avviso. Quando il segnale riprende torna verde, e può avvisare anche di questo.

I nostri due check

Da noi ci sono due check, entrambi con periodo di 2 minuti e tolleranza di 5:

  • PC: un'attività pianificata di Windows chiama il suo indirizzo ogni minuto;
  • Home Assistant: un'automazione di Home Assistant fa lo stesso, ogni minuto.

Due check separati distinguono due guasti diversi: «è spento il PC» (rossi tutti e due) e «il PC è acceso ma Home Assistant è fermo» (rosso solo Home Assistant). Il segnale ogni minuto con un periodo di 2 lascia margine: un ping perso per strada non fa scattare niente.

✅ Checks
Periodo 2 minuti · tolleranza 5 minuti
🟢 PCultimo ping 21 secondi fa
🟢 Home Assistantultimo ping 34 secondi fa

Esempio: la lista dei check con tutti e due i segnali in regola

Il percorso dell'avviso, con circa 7 minuti tra lo spegnimento e il messaggio (2 di periodo più 5 di tolleranza):

🖥️ Mini PCattività pianificata
🏠 Home Assistantautomazione
ping ogni minuto
→
☁️ Healthchecks.ioaspetta il segnale
nessun ping per 7 min
→
📱 Il tuo telefonoemail o notifica push

Lo schema dell'allarme esterno

Il vantaggio è tutto qui: l'avviso parte dai server di Healthchecks, non dal nostro, quindi funziona proprio quando la casa è spenta. E se cade la connessione a Internet di casa diventano rossi tutti e due: l'avviso arriva lo stesso, e anche quella è un'informazione utile, perché la casa non è raggiungibile.

Il ping dal PC: un'attività pianificata

Un modo per creare l'attività è un comando da PowerShell come amministratore. Gira come SYSTEM, quindi parte anche prima dell'accesso a Windows e senza aprire finestre; al posto di IL-TUO-CODICE va il codice del check «PC», che trovi nella sua pagina su Healthchecks.

schtasks /Create /TN "Healthchecks PC" /SC MINUTE /MO 1 /RU SYSTEM /F /TR "curl.exe -fsS -m 10 --retry 3 -o NUL https://hc-ping.com/IL-TUO-CODICE"

Il ping da Home Assistant: un'automazione

In Home Assistant basta un rest_command chiamato ogni minuto. L'indirizzo del check è un segreto: va in secrets.yaml, non nella configurazione.

# configuration.yaml
rest_command:
  healthchecks_ha:
    url: !secret healthchecks_ha_url
    method: get
    timeout: 10

# secrets.yaml
healthchecks_ha_url: https://hc-ping.com/IL-TUO-CODICE

# automations.yaml
- id: healthchecks_ping_ha
  alias: Healthchecks - segnale di vita
  mode: single
  triggers:
    - trigger: time_pattern
      minutes: "/1"
  actions:
    - action: rest_command.healthchecks_ha
      continue_on_error: true

Se il segnale parte da un'automazione, il check «Home Assistant» resta verde solo se Home Assistant è acceso e le automazioni girano: un Home Assistant avviato a metà, con le automazioni ferme, diventa rosso come uno spento.

💡 La lezione imparata: un allarme vale quanto il canale su cui arriva

  • Healthchecks funzionava da settimane, i segnali arrivavano tutti. Poi il server si è spento, e non è arrivato nessun avviso.
  • Il motivo: l'unica integrazione, cioè il canale di notifica, era l'email dell'account. Una casella creata apposta, che nessuno leggeva.
  • Apri la pagina Integrations del progetto e guarda a chi vanno davvero gli avvisi.
  • Aggiungi un indirizzo email che leggi davvero: Healthchecks manda una mail di conferma, e finché non clicchi il link quel canale non riceve niente.
  • Premi Test accanto a ogni integrazione e controlla che il messaggio arrivi.
  • Meglio ancora, aggiungi una notifica push sul telefono con Telegram, ntfy o Pushover: l'email si legge tardi, una notifica no.

Il canale WhatsApp di casa, quello della guida sulle notifiche WhatsApp formattate, qui non serve: parte dal server, ed è proprio il server che è giù. L'allarme esterno deve usare un canale che non dipende da casa.

🗺️ Il percorso completo quando qualcosa va storto

🧭 Dal guasto al ritorno in linea

  1. Il server si spegne o si blocca.
  2. Dopo circa 7 minuti Healthchecks avvisa sul telefono.
  3. Se è un blackout: al ritorno della corrente il BIOS lo riaccende da solo, e l'UPS evita del tutto i blackout brevi.
  4. Se resta spento o bloccato: dall'app della presa smart spegni per 10 secondi e riaccendi. Oppure, se sei a casa, mandi il Wake-on-LAN dal telefono.
  5. Healthchecks torna verde e avvisa che il server è di nuovo su.

🧪 Come provarlo

  1. Con il PC acceso, spegni la presa smart dall'app per 10 secondi e riaccendila: il PC deve ripartire da solo, entrare in Windows e far partire Docker e Home Assistant.
  2. Spegni il PC da Windows e, dal telefono collegato al Wi-Fi di casa, manda il Wake-on-LAN: il PC deve accendersi.
  3. Su Healthchecks premi Test su ogni integrazione e controlla che email e notifica push arrivino davvero.
  4. Ferma solo il container di Home Assistant: dopo circa 7 minuti deve diventare rosso solo il check «Home Assistant», e l'avviso deve arrivare.
  5. Riavvia il container: il check torna verde e arriva l'avviso di ripresa.

✅ Checklist finale

  • BIOS: dopo un'interruzione di corrente, accendi sempre; Wake-on-LAN abilitato.
  • Windows: accesso automatico, Docker all'avvio, container con riavvio automatico.
  • Scheda di rete: Wake on Magic Packet attivo, Energy-Efficient Ethernet spento, ibernazione e avvio rapido spenti.
  • Presa smart tra UPS e mini PC, comandabile dall'app anche da fuori casa, protetta in Home Assistant.
  • Due check su Healthchecks, PC e Home Assistant, con periodo 2 minuti e tolleranza 5, tutti e due verdi.
  • Almeno un canale di notifica che leggi davvero, provato con il pulsante Test.

Per il resto della salute del server ci sono le guide sul monitoraggio del mini PC, sui backup notturni cifrati, che servono quando il server riparte ma qualcosa si è rotto, e sul controllo della rete e degli access point Wi-Fi.