Automazioni Home Assistant: conosciamo le Condition

In questa guida vedremo nel dettaglio come usare le Condition per le automazioni.
Condition:
Le Condition sono facoltative, sono simili ai Trigger ma con una funzione un po’ differente, ad esempio un Trigger rileva lo stato di uno switch quando passa da ‘Off’ a ‘On’, mentre la Condition verifica in quell’esatto istante se lo switch è fermo su ‘On’ o ‘Off’. Quindi possiamo dire che il Trigger esamina gli eventi che accadono nel sistema mentre le Condition guardano solo come appare il sistema in quel momento.
Possiamo dire che i servizi/eventi delle Condition sono gli stessi che si usano per i Trigger, però bisogna notare che il - platform: che troviamo nei Trigger viene sostituito con - condition: .
Per vedere tutti i servizi e come vengono usati vi rimando qui all’articolo dei Trigger.
Ecco un semplice esempio:
1 2 3 4 |
condition: - condition: state entity_id: 'device_tracker.mattia' state: 'home' |
Questa Condition fa si che, anche se il Trigger (che non è incluso in questo esempio ma che potete trovare alla fine dell’articolo o nell’articolo dei Trigger) si verifica ma io sono fuori casa l’automazione non viene eseguita, quindi appunto abbiamo messo una condizione ben precisa.
AND & OR:
Le Condition quando più di una possono essere messe in AND o in OR, questo cosa significa?
AND: Quando due o più condizioni sono in AND sta a significare che tutte le condizioni devono essere veritiere, appunto come dice la parola AND = E, si deve verificare la prima condizione E la seconda condizione per far eseguire l’automazione.
Ecco un esempio di Condition in AND:
1 2 3 4 5 6 7 8 9 |
condition: condition: and conditions: - condition: state entity_id: 'device_tracker.mattia' state: 'home' - condition: numeric_state entity_id: 'sensor.luminosita_esterna' below: 50 |
In questo caso se il Trigger (non presente nell’esempio) si verifica, l’automazione verrà eseguita solo se:
1° Condition: Io sono a casa,
AND (E)
2° Condition: La luminosità esterna è minore del 50%.
OR: Quando due o più condizioni sono in OR sta a significare che solo una condizione deve essere vera, appunto come dice la parola OR = O, si deve verificare la prima condizione O la seconda condizione per far eseguire l’automazione.
Ecco un esempio di Condition in OR:
1 2 3 4 5 6 7 8 9 |
condition: condition: or conditions: - condition: state entity_id: 'device_tracker.mattia' state: 'home' - condition: numeric_state entity_id: 'sensor.luminosita_esterna' below: 50 |
In questo caso se il Trigger (non presente nell’esempio) si verifica, l’automazione verrà eseguita solo se:
1° Condition: Io sono a casa,
OR (O)
2° Condition: La luminosità esterna è minore del 50%.
Esempi pratici:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
- alias: "Esempio condition in AND" trigger: - platform: sun event: sunset condition: conditions: and - condition: state entity_id: device_tracker.mattia state: 'home' - condition: numeric_state entity_id: sensor.luminosita_esterna below: 30 action: - service: light.turn_on entity_id: light.luce_esterna |
Vediamo il funzionamento di questa automazione con condition in AND:
trigger: = Questo farà scattare l’automazione al tramonto;
condition: = L’automazione prosegue solo se queste condizioni sono vere, devono essere vere entrambe visto che abbiamo usato l’operatore AND, quindi se io sono a casa e se la luminosità esterna è minore del 30%;
action: = Accendi la luce esterna.
Quindi riassumendo, la luce verrà accesa quando c’è il tramonto solo se io sono a casa e la luminosità esterna è minore del 30%.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
- alias: "Esempio condition in OR" trigger: - platform: state entity_id: binary_sensor.stato_allarme to: 'Acceso' condition: conditions: or - condition: state entity_id: group.all_lights state: 'on' - condition: state entity_id: media_player.samsung_tv state: 'on' action: - service: notify.telegram data: title: '*Ricordati di spegnere tutto*' message: 'Ti sei dimenticato di spegnere alcuni dispositivi!!!' |
Vediamo il funzionamento di questa automazione con condition in OR:
trigger: = Questo farà scattare l’automazione quando l’allarme viene inserito;
condition: = L’automazione prosegue solo se una delle due condizioni o entrambe sono vere visto che abbiamo usato l’operatore OR, quindi se c’è qualche luce accesa o se la TV è accesa;
action: = Manda una notifica su Telegram che ricorda di spegnere i dispositivi.
Quindi riassumendo, la notifica verrà inviata quando l’allarme viene inserito solo se qualche luce è rimasta accesa o la TV è accesa.
Una risposta.
[…] se alcune cose non vi sono chiare commentate, oppure aspettate i prossimi articoli dove spiego le Condition e le Action, ed alla fine di questi 3 articoli ne farò uno dedicato per mostrarvi un po’ di […]