Progetto fai-da-te / Dashboard animata

Aurora Glass: dashboard animata per Home Assistant

Uno sfondo che si muove come un'aurora boreale, pannelli in vetro smerigliato e aloni luminosi che pulsano solo quando qualcosa è davvero attivo (l'allarme che scatta, un elettrodomestico in funzione). Nessuna app esterna, nessun abbonamento: solo YAML, CSS e due componenti gratuiti da HACS.

Livello: intermedio~30 minutiRichiede HACS (card-mod)
Scarica il pacchetto (.zip)↓
Dashboard Aurora Glass con i pannelli Sicurezza, Luci e Movimento su sfondo viola-ciano

In uno screenshot statico lo sfondo appare uniforme: dal vivo si muove di continuo, lentissimo e ipnotico — l'animazione è spiegata al punto 1.

01

Cosa ottieni

Una vista Home Assistant con sfondo animato, pannelli in vetro e aloni di stato, costruita su una base pulita che puoi riempire con le tue entità.

02

Cosa serve prima di iniziare

  • Un'istanza Home Assistant 2024.8 o successivo (serve per la vista sections).
  • HACS installato, con card-mod aggiunto — obbligatorio, è il motore di tutte le animazioni.
  • Bubble Card da HACS — facoltativo, serve solo per il pop-up rapido di sicurezza.

1. Da dove nasce l'idea

Due progetti open source della comunità Home Assistant coprono la quasi totalità delle animazioni "belle" che si vedono in giro: card-mod, che permette di iniettare CSS (incluse le animazioni @keyframes) dentro qualsiasi card esistente, e Bubble Card, una collezione di card con pop-up e pulsanti animati pronti all'uso. Aurora Glass studia il tipo di movimento che questi progetti rendono possibile e lo ricostruisce da zero con palette, nomi di entità e struttura propri: nessuna riga di codice copiata, solo la stessa idea di fondo.

2. Copia il tema e i sensori

Scarica il pacchetto in alto ed estrai lo zip. Con l'add-on File editor (si installa da Impostazioni → Componenti aggiuntivi → Negozio componenti aggiuntivi se non lo hai già), copia:

  1. Il file themes/aurora_glass.yaml nella cartella config/themes/ di Home Assistant.
  2. Il file packages/tablet_dashboard.yaml nella cartella config/packages/ (crea la cartella se non esiste).

Verifica che in configuration.yaml siano presenti queste due righe (aggiungile se mancano):

frontend:
  themes: !include_dir_merge_named themes
homeassistant:
  packages: !include_dir_named packages

3. Ricarica i temi

Non serve riavviare tutto Home Assistant: apri la pagina Strumenti, scheda YAML, scorri fino a "Ricaricamento della configurazione YAML" e clicca la voce "Temi". È il passaggio che quasi tutti dimenticano — senza questo, il tema resta invisibile anche se il file è corretto.

Elenco di ricaricamento della configurazione YAML con la voce Temi
La voce "Temi" nell'elenco di ricaricamento, in ordine alfabetico verso il fondo della pagina.

4. Crea la vista Aurora Glass

Apri la dashboard dove vuoi aggiungere il progetto, premi la matita in alto a destra (Modifica dashboard), poi il + accanto alle schede. Nel dialogo "Configurazione della vista" scegli disposizione "Sezioni (predefinito)", dai un titolo (es. "Aurora Glass") e imposta il tema su Aurora Glass. Salva, poi riapri la stessa vista in modifica, premi i tre puntini ⋮ e scegli "Modifica in YAML": qui incolli il contenuto di dashboards/tablet_dashboard.yaml dallo zip.

Dialogo Configurazione della vista con Disposizione Sezioni predefinito, titolo Aurora Glass e URL aurora-glass
Scheda "Impostazioni" del dialogo: layout, titolo e URL della vista.
Opzioni delle sezioni: numero massimo di colonne e posizionamento
Scorrendo più giù nello stesso dialogo: numero di colonne e opzioni di layout delle sezioni.
Scheda Sfondo del dialogo di configurazione della vista
Scheda "Sfondo": facoltativa, utile solo se vuoi un'immagine invece del solo tema.
Editor Modifica in YAML con il codice della vista Aurora Glass incollato
L'editor "Modifica in YAML" con il codice incollato dentro.

Il cuore dell'effetto è questo blocco, che trasforma una card invisibile in uno sfondo animato a tutto schermo:

- type: markdown
  content: " "
  card_mod:
    style: |
      ha-card {
        position: fixed;
        inset: 0;
        z-index: -1;
        background: var(--aurora-bg);
        overflow: hidden;
        pointer-events: none;
      }
      ha-card::before, ha-card::after {
        content: "";
        position: absolute;
        width: 60vw; height: 60vw;
        border-radius: 50%;
        filter: blur(90px);
        opacity: 0.5;
        mix-blend-mode: screen;
      }
      ha-card::before {
        top: -15%; left: -10%;
        background: radial-gradient(circle, var(--aurora-accent-a) 0%, transparent 70%);
        animation: aurora-drift-a 26s ease-in-out infinite alternate;
      }
      ha-card::after {
        bottom: -18%; right: -12%;
        background: radial-gradient(circle, var(--aurora-accent-b) 0%, transparent 70%);
        animation: aurora-drift-b 32s ease-in-out infinite alternate;
      }
      @keyframes aurora-drift-a {
        0%   { transform: translate(0,0) scale(1); }
        50%  { transform: translate(6%, 8%) scale(1.12); }
        100% { transform: translate(-5%, 3%) scale(0.95); }
      }
      @keyframes aurora-drift-b {
        0%   { transform: translate(0,0) scale(1); }
        50%  { transform: translate(-7%, -5%) scale(1.15); }
        100% { transform: translate(4%, -8%) scale(0.94); }
      }

Due cerchi enormi e sfocati, uno per angolo, che si spostano lentissimamente (26s e 32s per ciclo — durate diverse così non si muovono mai in sincronia). Il file dello zip ha già questo blocco duplicato in ogni vista, perché Home Assistant smonta le viste quando cambi scheda.

5. Aloni che pulsano solo quando serve

La seconda tecnica fa dipendere un'animazione da uno stato reale, templando lo stile con Jinja — la stessa sintassi già usata nei sensori di Home Assistant. Sulla tile dell'allarme:

card_mod:
  style: |
    ha-card {
      {% if is_state('alarm_control_panel.SOSTITUISCI_allarme', 'triggered') %}
      animation: aurora-alarm-pulse 1.1s ease-in-out infinite;
      {% endif %}
    }
    @keyframes aurora-alarm-pulse {
      0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--aurora-danger) 55%, transparent); }
      50%      { box-shadow: 0 0 0 8px color-mix(in srgb, var(--aurora-danger) 0%, transparent); }
    }

Finché l'allarme non scatta, il blocco Jinja produce una stringa vuota e la card resta ferma: nessuna automazione, nessun JavaScript, solo CSS più il motore di template che Home Assistant usa già ovunque. Lo stesso schema, con soglia diversa, gestisce nel pacchetto anche l'alone sulla tile della lavatrice mentre è in funzione.

6. Sostituisci le tue entità

Ogni riga con SOSTITUISCI nel file incollato è un segnaposto da cambiare con un entity_id reale.

  1. Dalla lista entità: vai in Impostazioni → Dispositivi e servizi → Entità, cerca l'entità che ti interessa (es. digita "cucina") e copia il valore dalla colonna "ID Entità".
  2. Con un template (più veloce se hai tante entità): vai in Strumenti → Modello e incolla, cambiando light con il dominio che ti serve:
{% for s in states.light %}{{ s.entity_id }} | {{ s.name }} | {{ s.state }}
{% endfor %}

Nel riquadro "Risultato" ottieni l'elenco completo con nome ed entity_id, pronto da copiare. Una riga come light.SOSTITUISCI_luce_soggiorno diventa, con la tua entità reale, light.luce_salotto_dimmer: cambi solo il valore di entity: (e volendo name:, che è solo l'etichetta a schermo).

7. Aggiungi altri dispositivi

Gli esempi del pacchetto coprono luci, movimento e allarme perché sono i più comuni, ma qualsiasi entità che si accende, spegne o regola entra allo stesso modo. Duplica una tile, cambia dominio ed entità:

DispositivoDominioTile YAML
Termostatoclimate
- type: tile
  entity: climate.SOSTITUISCI_termostato
Tapparellacover
- type: tile
  entity: cover.SOSTITUISCI_tapparella
  features:
    - type: cover-open-close
Presa smartswitch
- type: tile
  entity: switch.SOSTITUISCI_presa
Robot aspirapolverevacuum
- type: tile
  entity: vacuum.SOSTITUISCI_robot

8. Personalizza colori e velocità

CosaDoveCome
Colore dell'accentothemes/aurora_glass.yamlCambia aurora-accent-a e aurora-accent-b.
Velocità dello sfondoblocco card_mod dello sfondoCambia i secondi in aurora-drift-a 26s.
Velocità dell'aloneblocco card_mod della tileCambia i secondi in aurora-alarm-pulse 1.1s.
Disattivare un'animazioneovunqueCancella il blocco card_mod corrispondente: sono isolati.

9. Verifica

Salva la vista e controlla questi tre segnali prima di considerare l'installazione riuscita:

Risoluzione dei problemi

  • Nessuna animazione → verifica che card-mod sia installato da HACS: senza, i blocchi card_mod vengono ignorati silenziosamente.
  • Tema invisibile dopo il salvataggio → hai ricaricato i Temi dalla pagina Strumenti → YAML? È un passaggio separato dal salvataggio del file.
  • L'alone non parte mai → controlla che l'entity_id nel template Jinja sia quello vero e che il valore di states(...) corrisponda esattamente al testo nell'if (case-sensitive).