Al posto del solito articolo dedicato ad uno specifico argomento, questa volta semplicemente voglio elencarvi una serie di snippet per Home Assistant che possano aiutare a risolvere piccoli problemini nelle vostre automazioni o nei vostri script.
Spazi vuoti configurabili
Usando custom button cards, è possibile personalizzare tante cose ma a volte c’è semplicemente bisogno di aggiungere uno spazio vuoto verticale tra due elementi. Siamo però costretti a fare 100 tentativi per capirne la dimensione voluta e soprattutto creare una regola per ogni spaziatura diversa, trovandoci poi con una roba del tipo spazio_vuoto10, spazio_vuoto12, spazio_vuoto15, ecc.
Con questo snippet, creiamo una sola regola che ci permette di configurare lo spazio per l’elemento che vogliamo.
no_background:
styles:
card:
- background-color: "rgba(0, 0, 0, 0.0)"
- box-shadow: none
no_border:
styles:
card:
- border: 0
row_space:
template:
- no_background
- no_border
styles:
card:
- height: "[[[ return variables.size + 'px' ]]]"
- padding: 0px
Ovviamente no_background e no_border possono essere usati anche da soli per rimuovere rispettivamente lo sfondo e il bordo dagli elementi (ma la cosa non riguarda questo specifico snippet).
Ecco invece un esempio su come inserire lo spazio vuoto e configurarlo:
type: vertical-stack
cards:
- type: "custom:button-card"
template: row_space
variables:
size: 6
- type: "custom:button-card"
template: row_space
variables:
size: 15
Il valore di size (in questo caso 6 e 15) vi permette di scegliere quanti pixel dovrà essere alto lo spazio vuoto.
Controllare che una automazione non sia stata eseguita prima di un determinato lasso di tempo
Se non vogliamo che una automazione venga eseguita più volte prima che passi un certo periodo di tempo ecco la parte di codice da usare nelle condition:
condition:
- condition: template
value_template: "{{ now() - state_attr('automation.[SLUG_DELLA_AUTOMAZIONE]', 'last_triggered') > timedelta(minutes=10) }}"
Nell’esempio l’automazione non verrà eseguita di nuovo prima di 10 minuti. Ovviamente questo valore si può cambiare e si possono usare anche i secondi.
Ricerca di una lista di sensori in base all’entity_id
Se vogliamo applicare un servizio a tutti i sensori che hanno un certo testo nella entity ecco come fare:
action:
- service: media_player.volume_set
data:
volume_level: 0.5
target:
entity_id: >-
{% set ea_list = states.sensor | selectattr('entity_id','search','^sensor.ea_') | list %}
Nell’esempio verranno fuori tutti i sensori che iniziano con “ea_”.
Conclusioni
Aggiornerò questo articolo con altri snippet per Home Assistant man mano che ne troverò/creerò altri. Vi invito però a condividere anche i vostri nei commenti in modo da rendere questa pagina ancora più utile per tutti.
Supporto reciproco
La realizzazione di questo articolo ha richiesto tempo, studio ed impegno.
Vi chiedo quindi mettere una mano sul cuore e l’altra sul portafogli per ricompensare il mio sforzo con un contributo libero:
Grazie.