🧠Automazioni e Script: Logica di Sistema
Path:
/home-assistant/logic/automations
::: info Definizioni Core:
- Automazione: Un processo “Trigger-Condition-Action” (TCA). Risponde a un evento (es. il sole tramonta) e, se le condizioni sono soddisfatte, esegue un’azione.
- Script: Una sequenza di azioni salvata per essere richiamata più volte, sia da automazioni diverse che manualmente dalla Dashboard. :::
1. Il Modello TCA (Trigger-Condition-Action)
Ogni automazione segue un flusso logico rigoroso:
- Trigger (Quando?): L’evento scatenante (es. sensore di movimento rileva presenza, orario specifico, cambio stato di un’entità ).
- Condition (Se?): Filtri opzionali (es. “solo se è dopo il tramonto”, “solo se qualcuno è in casa”).
- Action (Cosa?): L’operazione da compiere (es. accendi luce, invia notifica, avvia script).
2. Best Practices di Programmazione
Per mantenere il sistema manutenibile, adottiamo standard ingegneristici:
- Naming Convention: Usa prefissi chiari per identificare lo scopo.
[Area] - [Target] - [Action]->Soggiorno - Luci - Accensione Notturna
- Decoupling con gli Script: Se una sequenza di azioni viene usata in più di un’automazione, spostala in uno Script.
- ID Univoci: Assegna sempre un
idalle automazioni per poterle gestire tramite l’editor grafico senza perdere la possibilità di modificarle via YAML.
3. Esempio Tecnico: Illuminazione Intelligente
Invece di un’automazione monolitica, usiamo un approccio modulare.
Script: “Modalità Cinema”
# scripts.yaml
cinema_mode:
alias: "Attivazione Modalità Cinema"
sequence:
- service: light.turn_off
target:
area_id: living_room
- service: light.turn_on
target:
entity_id: light.led_strip_tv
data:
brightness_pct: 30
rgb_color: [255, 0, 0]
Automazione: “Accensione Automatica”
# automations.yaml
- id: 'living_room_auto_light'
alias: "Soggiorno - Luci - Auto Accensione"
trigger:
- platform: state
entity_id: binary_sensor.living_room_motion
to: 'on'
condition:
- condition: sun
after: sunset
action:
- service: script.cinema_mode
📉 Logica di Esecuzione (Mermaid)
4. Strumenti Avanzati: Blueprints
I Blueprints sono template di automazioni condivisi dalla community.
- Vantaggio: Permettono di implementare logiche complesse (es. “Illuminazione basata su sensore con timer variabile”) semplicemente assegnando le proprie entità a uno schema predefinito.
- Uso: Scaricabili da HACS o dal forum ufficiale di Home Assistant.
💡 Note dell’Ingegnere (Critical Thinking)
- Fail-Safe: Progetta sempre le automazioni in modo che non siano bloccanti. Se un sensore smette di funzionare, l’utente deve comunque poter accendere la luce manualmente (Override).
- Mode: Restart vs Queued: Quando un’automazione viene triggerata di nuovo mentre è ancora in esecuzione, scegli con cura il
mode. Per le luci,restartè spesso la scelta migliore (resetta il timer del movimento). - Tracing: Home Assistant offre uno strumento di Trace (Impostazioni -> Automazioni -> Simbolo orologio). Usalo per il debugging: mostra esattamente dove una condizione ha fallito o quale azione ha richiesto troppo tempo.
Ultimo aggiornamento: {{UPDATE_DATE}} | Tags: #Automations #Scripts #YAML #Logic #HomeAssistant