Automazioni e Script: Logica di Sistema

🧠 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:

  1. Trigger (Quando?): L’evento scatenante (es. sensore di movimento rileva presenza, orario specifico, cambio stato di un’entità).
  2. Condition (Se?): Filtri opzionali (es. “solo se è dopo il tramonto”, “solo se qualcuno è in casa”).
  3. 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 id alle 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

Built with Hugo
Theme Stack designed by Jimmy