Il team di sviluppo di Home Assistant ha rilasciato un nuovo aggiornamento per il noto HUB software gratuito per la propria domotica personale, il quale si porta alla versione 2022.5. Si tratta di una versione importante che introduce, come più capita in occasione di questi aggiornamenti mensili, svariate novità e migliorie.
Come sempre, vi ricordiamo l’estrema importanza – come qualunque nuova versione, specialmente di questo oggetto software – di essere installata senza indugi o attese (come spiegato nella procedura).
Eventuali problemi con questo aggiornamento – segnalati dalla community internazionale – sono disponibili:
Ovviamente, come sempre ci sono sempre anche il nostro FORUM e la nostra CHAT (in italiano, of course) per qualsiasi domanda o consiglio. |
Servizio backup.create
Dopo l’introduzione del mese scorso dei backup per l’implementazione Core, ora è possibile avviare automazioni (magari su base temporale, o altro), per esempio:
automation:
- alias: "Backup automatico alle 3 del mattino"
trigger:
platform: time
at: "03:00:00"
action:
alias: "Creazione backup"
service: backup.create
Riorganizzazione menu
Il menu di “Configurazione” aveva bisogno di una riorganizzata. Che si utilizzi Home Assistant Core o OS/Supervised, tutte le voci del menu sono state spostate/risistemate:

I progetti (blueprint) sono stati spostati nella sezione “Automazioni e scene” e, a grande richiesta, gli helper sono stati spostati nella pagina dispositivi e servizi. Gli strumenti di configurazione YAML hanno una nuova casa negli strumenti di sviluppo, un posto più logico per i controlli e il ricaricamento della configurazione YAML.
Quick bar
La “Quick Bar” viene ulteriormente migliorata. Viene infatti aggiunta la “lente di ingrandimento” in alto a destra nella “Dashboard” dell’HUB, la quale consente ricerche rapide sull’elenco delle proprie entità.
Questa funzione non è disponibile su Home Assistant Companion, ma solo da web.
Novita per automazioni e script
Le automazioni e gli script – tra gli strumenti più importanti di un HUB personale per domotica, figuriamoci su Home Assistant – acquisiscono con questa nuova major release nuove, importanti funzionalità. Tutte sono state proposte e votate sul forum apposito (in inglese).
ATTENZIONE: le spiegazioni che seguono sono maggiormente indicate verso chi abbia effettiva dimestichezza con le automazioni e gli script. |
If/then/else
L’avvento della comodissima “Choose” ha lasciato comunque un vuoto per quanto riguarda la gestione dei bivi processivi di tipo if/then/else (se/allora/altrimenti).
Detto, fatto: ora è possibile utilizzarle.
Un esempio di configurazione YAML di una action di un’automazione:
actions:
- if:
- alias: "Se nessuno è a casa"
condition: state
entity_id: zone.home
state: 0
then:
- alias: "Avvia la pulizia col robot aspirapolvere!"
service: vacuum.start
target:
area_id: living_room
# Esiste anche l'else, comunque opzionale
else:
- service: notify.notify
data:
message: "Non faccio partire le pulizie: c'è qualcuno a casa!"
Volendo l’if può essere scritto in notazione breve:
actions:
- if: "{{ states('zone.home') == 0 }}"
then:
- alias: "Avvia la pulizia col robot aspirapolvere!"
service: vacuum.start
target:
area_id: living_room
La nuova sintassi è configurabile anche tramite interfaccia grafica via web.
Trigger calendario
Se si utilizzando entità di tipo “Calendar“, ora è possibile utilizzarle come trigger:
automation:
trigger:
- platform: calendar
event: start
entity_id: calendar.personal
action:
- service: persistent_notification.create
data:
message: >-
Event {{ trigger.calendar_event.summary }} @
{{ trigger.calendar_event.start }}
For each
Avevamo diverse opzioni disponibili per ripetere un gruppo di azioni. Ad esempio, ripetendo in base a un conteggio, mentre una condizione passa o finché una condizione non passa. D’altra parte è stata anche richiesta e votata la ripetizione di una sequenza per ogni elemento di una lista. Questa versione aggiunge il for each.
Questa è una funzionalità avanzata ed è disponibile solo per l’uso in automazioni scritte manualmente in YAML. Ecco un esempio che invia due notifiche in lingue diverse:
repeat:
for_each:
- language: Italian
message: Ciao mondo
- language: Dutch
message: Hallo Wereld
sequence:
- service: notify.phone
data:
title: "Messaggio in {{ repeat.item.language }}"
message: "{{ repeat.item.message }}!"
Ciascun elemento nell’elenco verrà eseguito rispetto a una sequenza di azioni e l’elemento è disponibile come variabile che si possono utilizzare nei modelli. Gli elementi che si possono fornire a for_each possono essere mappature, elenchi di sole stringhe e persino modelli complessi che forniscono un elenco come risultato.
Disabilitare trigger, condition e action
A volte portebbe essere utile disabilitare un trigger, una condition o un’action specifica, sia che si tratti di test, di un’automazione temporanea o di qualsiasi altro motivo. In YAML era, sinora, facile (anche se poco ortodosso): bastava commentare il blocco di codice. Ma da interfaccia? Da oggi in tutti i casi è possibile semplicemente disabilitare questi elementi alla bisogna.
In questa versione è stato aggiunto il supporto per la disabilitazione. Un trigger disabilitato non si attiva, una condizione disabilitata viene ingnorata e un’azione disabilitata viene saltata.
In YAML, invece:
automation:
trigger:
# Questo trigger non si innesca mai, perché disabilitato
- platform: sun
event: sunset
enabled: false
# Questo invece viene eseguito, perché non esplicitamente disabilitato (quindi operativo)
- platform: time
at: "15:32:00"
Continue on error
Come sappiamo, un’automazione esegue tipicamemnte una sequenza di azioni. Una delle domande che vediamo/leggiamo/otteniamo spesso è: “Se una delle azioni fallisce, perché l’intera automazione si ferma?”
Buona domanda! Per rispondere a questo è stato aggiunto il “continue on error”.
Consente il fallimento di passaggi specifici in un’automazione o in una sequenza di script senza interrompere il resto della sequenza. Questa funzionalità avanzata è attualmente disponibile solo per automazioni e script scritti in YAML. L’esempio seguente mostra un’azione di automazione che eseguirà sempre la seconda azione, anche se la prima azione non riesce con un errore:
action:
- alias: "Se questa action fallisce..."
continue_on_error: true
service: notify.super_unreliable_service_provider
data:
message: "Io sono in errore!"
- alias: "...questa comunque verrà eseguita."
service: persistent_notification.create
data:
title: "Test"
message: "Per me invece tutto ok"
Era ora.
STOP di script e automazioni
È ora possibile interrompere uno script o un’automazione a metà utilizzando l’azione “Stop“. In combinazione con la nuova azione if/then menzionata in precedenza, può essere utilizzata per interrompere un’automazione o uno script in modo condizionale.
Ad esempio, questo può essere utile se si desidera che solo una parte di un’automazione venga eseguita quando si è a casa e che venga eseguita completamente quando non ci si trova.
Questa funzione è disponibile sia tramite l’interfaccia utente che tramite YAML.
Un esempio in YAML:
action:
- stop: "Stop right here!"
error: true
Maggiori dettagli qui.
Azioni parallele
Solitamente le azioni di automazioni e script vengono eseguite in sequenza. Da oggi è possibile parallelizzarle.
L’esecuzione in serie non è sempre necessaria, ad esempio, se la sequenza di azioni non dipende l’una dall’altra e l’ordine non ha importanza. In questi casi, l’azione parallela può essere utilizzata per eseguire le azioni nella sequenza in parallelo, il che significa che tutte le azioni vengono avviate contemporaneamente.
Esempio:
automation:
- trigger:
- platform: state
entity_id: binary_sensor.motion
to: "on"
action:
- parallel:
- service: notify.person1
data:
message: "Queste notifiche vengono inviate allo stesso tempo!"
- service: notify.person2
data:
message: "Queste notifiche vengono inviate allo stesso tempo!"
Maggiori info qui.
Trigger “not from” (ALLELUIA!)
Ora è possiible escludere “da quali stati” non considerare il from di un trigger, laddove si utilizzi la piattaforma “State“.
Si capisce meglio dall’esempio:
trigger:
- platform: state
entity_id: light.living_room
not_from:
- "unavailable"
- "unknown"
to: "on"
Questo trigger si innesca solo quando lo stato della luce light.living_room diventa on ma solo se lo stato precedente non era unavailable o unknown.
Questo è particolarmente apprezzato per esempio quando capita che un’entità abbia stato sconosciuto e, aggiornandosi, acquisisca lo stato reale. Questo poteva innescare automazioni non correttamente gestite, ovvero senza entrambi i campi from: e to: correttamente configurati.
Conditions in notazione breve
Per chi scrive automazioni e script su YAML: finalmente le conditions possono essere scritte in notazione breve, per esempio:
or:
- <condition>
- and:
- <condition>
- <condition>
- not:
- <condition>
Nuovo indicatore
Il “Gauge” ora è configurabile con più fasce colorate:

Utile se desideri definire i limiti del sensore superiore e inferiore sul misuratore, come mostrato nell’esempio sopra. L’esempio di configurazione utilizzato per lo screenshot sopra può essere trovato nella documentazione della Gauge Card.
Ottimizazioni database
Continuano le azioni volte a ottimizzare la struttura e l’organizzazione dei dati nel database dell’HUB, rendendolo più snello e rapido nella consultazione e popolamento.
Sebbene ci siano alcune ottimizzazioni aggiuntive in questa versione per ridurre ulteriormente la quantità di dati che devono essere scritti, in questa versione si sono concentrati sulla frequenza con cui i dati vengono letti dal database e sull’ottimizzazione della sua scala per configurazioni più grandi.
Questa versione è ideale se si hanno molti sensori che generano statistiche, poiché la compilazione delle statistiche ora richiede dalle 30 alle 100 volte meno tempo. Il numero di query del database necessarie per la maggior parte dei sensori con un orario di inizio fisso è inferiore del 99%.
Anche se l’istanza è piccola e non registra molti stati, si trarrà comunque vantaggio dalle ottimizzazioni del Recorder (ricordarsi comunque di configurarlo al meglio). Sono state inoltre apportati ulteriori miglioramenti alle API della cronologia per velocizzare il recupero dal database, riducendo i tempi di risposta delle API in media del 15-35%.
Infine, è stata ridotta la memoria utilizzata durante le migrazioni del database per facilitare le migrazioni future e ora il database viene riorgranizzato automaticamente una volta al mese per mantenere tutto in massima efficienza.
Insteon
Insteon è morta, viva Insteon. Fortunatamente le sue componenti potevano e possono essere integrate anche localmente, quindi chi possiede questi elementi può da oggi continuare a coordinarle tramite il pannello di controllo Insteon appositamente introdotto da questa 2022.5:
Questo nuovo pannello di controllo consente di gestire i dispositivi Insteon direttamente da Home Assistant, proprio come si faceva in precedenza con l’applicazione Insteon.
Altro
Ecco alcune altre novità importanti:
- ora è possibile indicare a Home Assistant di saltare eventuali aggiornamenti indicati in Dashboard;
- sempre da interfaccia Dashboard, ora è possibile configurare anche i template, solitamente relegati alla configurazione YAML;
- ora anche gli script sono dotati di ID univoco, il che consente di configurarne da interfaccia icone, assegnamento eventuale a zone e altro;
- ora un’eventuale istanza di Z-Wave JS presente sulla stessa rete di Home Assistant viene automaticamente riconosciuto e proposto per l’integrazione;
- l’integrazone Shelly ora supporta l’autenticazione anche per i dispositivi di seconda generazione;
- i “Sensor” ora guadagnano una nuova classe, duration;
- l’integrazione Philips TV ora permette di attivare/disattivare la sincronizzazone – laddove supportata – con Philips HUE e Ambience
e altro ancora.
Integrazioni
Un po’ di nuove integrazioni:
mentre ci salutano le seguente integrazioni:
- Arlo;
- Digital Loggers
- Updater
Inoltre, alcune integrazioni già presenti guadagnano da questa versione la possibilità di essere configurate via interfaccia grafica anziché da codice:
Breaking changes
Presente una lista di modifiche che potrebbero eventualmente causare problemi o comunque degne di nota.
Date una scorsa CON MOLTA ATTENZIONE.
Alcune di esse ci sembra giusto menzionarle di seguito:
- AVM FRITZ!Box Call Monitor ora si configura solo tramite interfaccia grafica;
- HomeKit non supporta più le device class carbon_dioxide come sensori binari;
- se calcolate l’energia (i consumi elettrici) tramite Integration – Riemann sum integral, attenzione: il parametro unit non è più supportato;
- ONVIF non supporta più la configurazione YAML, ma solo da interfaccia;
- se usate Z-Wave JS (in qualsiasi modalità) assicuratevi di averlo aggiornato all’ultima versione disponibile prima di aggiornare Home Assistant alla 2022.5.
e molto altro (incluse molte altre integrazioni che da oggi andranno configurate solo da interfaccia).
LOG COMPLETO
L’elenco completo delle novità della 2022.5 è disponibile qui.
Il lancio ufficiale di questo aggiornamento è disponibile qui.
Aggiornamento
Tutte le modalità di aggiornamento per Home Assistant Core sono riassunte su questa scheda ad hoc:
⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui. |
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Se ti sei perso, a tua disposizione c'è la mappa. |