community italiana di domotica personale
 
Home Assistant è stabile? I perché di tanti (benedetti) aggiornamenti

Home Assistant è stabile? I perché di tanti (benedetti) aggiornamenti

 f

Prendiamo una moka.

Sì, proprio una caffettiera Moka, come quella dell’italica Bialetti che tutto il mondo ci ha invidiato e copiato sin dal primo giorno. Riempiamola di caffè, di acqua, mettiamola sul fuoco: pochi minuti e avremo un buon caffè caldo da consumare da soli o in compagnia. Questo, ovviamente, reiterato per l’eternità, almeno laddove si abbia cura di manutenere la caffettiera quel minimo previsto. Basta che ci siano acqua, caffè e calore: un caffè potremo bercelo in qualunque momento (da soli o in compagnia).

Prendiamo ora una caffettiera elettrica.
Le cose si fanno moderatamente più complesse. Sì, perché dando per scontati acqua e caffè, entrano in gioco tutta una serie di fattori addizionali: una caldaia, una pompa, un pressostato, insomma vari componenti elettriche e non che contribuiscono alla produzione finale del caffè. Questa macchina, questa appliance, funzionerà in eterno come una moka? Quasi certamente, no: la complessità è infatti un fattore determinante sull’affidabilità complessiva di una soluzione.

Queste metafore, forse similitudini, per introdurre il tema di questo FOCUS: abbiamo ritenuto utile pubblicarlo per rispondere alle molte critiche che si leggono spesso in giro, per lo più spinte da luoghi comuni o da cattiva interpretazione di quello che, alla fine, è Home Assistant.

È “stabile” o no?

Per chi leggesse per la prima volta di Home Assistant, è sufficiente dire che esso è, de facto, l’HUB per domotica personale open source più diffuso del mondo, nonché il più potente, versatile e apprezzato (lo precisiamo in quanto non scontato: “il meglio” non è sempre “il più adottato”, basti pensare alla guerra VHS/Betamax).

Home Assistant è un progetto che ha raggiunto, dopo anni di fase “beta“, la fase stabile in data 13 dicembre 2020, data di pubblicazione della versione 2020.12.0, la prima del nuovo corso. Per stabile si intende (banalizzando) una versione software che abbia raggiunto un grado di maturità tale da essere adottata nell’uso quotidiano senza particolari problemi.

È così? Sì, è così: Home Assistant, installato in modo appropriato, è un software all’apparenza semplice ma roccioso, non particolarmente esoso in termini di potenza di calcolo del computer che lo ospita, che molto difficilmente, per non dire praticamente mai, presenta malfunzionamenti tale da causarne “la caduta” – ovvero la mancata erogazione dei suoi servizi. Questo è fattuale, non lo sosteniamo noi di inDomus: è un puro fatto empirico.

Il “core” di Home Assistant si compone in primis di porzioni di software che definiscono “come funzionino le cose”: questi, chiamati “componenti“, danno le regole del mondo Home Assistant. Un po’ come l’iterazione forte che tiene assieme del nucleo degli atomi, o le regole fisiche che definiscono la gravità nell’universo: insomma, degli assoluti sui quali si basa tutto l’HUB. Un esempio banalissimo di questi è il componente “Switch“, il quale definisce cosa e come funzioni, all’interno dell’HUB, l’astrazione di un interruttore. Poi ci sono le “piattaforme” le quali, tramite le definizioni dei “componenti” di cui sopra, consentono di integrare componenti fisici (nonché servizi) all’HUB: un esempio è la piattaforma “Shelly” la quale, utilizzando i componenti “Switch”, “Sensor” e svariati altri consente di integrare i componenti della linea Shelly “Home Automation Systems”.

Capito questo, andiamo a capire perché Home Assistant è assolutamente da considerarsi stabile malgrado gli oggettivamente molti aggiornamenti – aspetto che non dice di lui il contrario, anzi. Home Assistant subisce infatti un aggiornamento maggiore al mese, intervallato da aggiornamenti minori, quando necessari, che escono appunto tra una major e l’altra.

vetrina indomus

“Non funziona più niente!!!!11!1!!!”

Molti utenti (troppi) si lamentano dei tanti aggiornamenti additando la soluzione come “instabile“, “immatura“, “gestita senza roadmap” da chi coordina centinaia di sviluppatori che concorrono – gratuitamente, lo ricordiamo – alla stesura del codice dell’HUB. Molti si lamentano che dopo gli aggiornamenti “non funziona più niente“.

Si tratta di un approccio profondamente miope.

I motivi alla base di un aggiornamento maggiore di Home Assistant possono essere:

  • perfezionamento dei componenti “core”, per esempio:
    • introduzione di nuove funzionalità;
    • revisione del concept design;
  • perfezionamento delle piattaforme di integrazione:
    • introduzione di nuove piattaforme;
    • modifica delle piattaforme esistenti.
  • correzione di errori (endogeni ed esogeni) nel codice.

Per entrare nella fase “stabile”, Home Assistant aveva necessità di stabilizzare la maturità dei “componenti core”, ovvero delle regole del gioco dell’HUB. Questo è stato raggiunto nel dicembre 2020, ma non significa che l’evoluzione non debba proseguire la propria strada, evoluzione è che solo ed unicamente ad appannaggio di chi ha l’ultima parola sul progetto, ovvero la board decisionale di Home Assistant. Se domattina volessero introdurre un nuovo componente, che ne so, l’astrazione di un pannello solare chiamata “Solar Panel”, potrebbero farlo su propria iniziativa e rilasciarlo al prossimo rilascio pianificato, mettendo così l’elemento a disposizione degli sviluppatori delle piattaforme d’integrazione.

I problemi che l’utenza lamenta sono per lo più legati alle piattaforme, le quali possono variare per motivi endogeni e per motivi esogeni.

Le variazioni endogene nascono dalla volontà specifica di uno o più sviluppatori che seguono una data piattaforma di migliorarne le caratteristiche, come per esempio aggiungere funzionalità o migliorare/correggere il codice esistente. Quando questo capita, spesso è richiesta una riconfigurazione – post aggiornamento – a carico dell’utente, il quale – pigro – non legge le release note che accompagnano la nuova versione.

L’utente pigro aggiorna Home Assistant senza leggere la nota di rilascio dove era prevista una variazione lato utente, l’utente non la attua, Home Assistant presenta problemi (e da lì è tutto un fischio, è instabile, è immaturo, che palle). Il problema, nella maggioranza dei casi, nasce per colpa dell’utente, non di Home Assistant. Sfidiamo gli scettici a dimostrare il contrario.

Poi ci sono cause esogene, ancor più subdole. Un paio di anni fa, per esempio, l’integrazione dei termostati Tado° smise di botto di funzionare – tra l’altro, in pieno inverno. Apriti cielo, è colpa di Home Assistant, è impossibile pensare di usarlo, è un giocattolo, eccetera. Cos’era successo? Semplice. Tado, che offre gratuitamente alla sua clientela (e quindi agli sviluppatori di mezzo mondo) un set di API per l’integrazione delle sue componenti su sistemi terzi (come Home Assistant) via Cloud, aveva cambiato (legittimamente e unilateralmente) gli indirizzi verso i quali puntare per, appunto, interfacciarsi. Ovviamente l’integrazione di Home Assistant smise di funzionare e quindi necessitò di un aggiornamento per far sì che ricominciasse a funzionare. In buona sostanza: se va via la corrente nel palazzo e l’ascensore smette di funzionare, non è colpa dell’ascensore, è semmai “colpa” di chi (non) eroga energia.

Fatalmente, lo spartiacque sono per lo più le piattaforme d’integrazione (che sono però anche il vero valore di Home Assistant). Quelle con funzionamento locale (come per esempio l’integrazione Shelly prima elencata) difficilmente smettono di funzionare se non si cambia nulla nelle proprie configurazioni. Una volta installato Home Assistant e integrati gli elementi, tale installazione potrà continuare a funzionare indefinitamente, ovviamente al netto di guasti hardware. Ma quando un’integrazione si affaccia ad Internet, allora lì sono potenziali guai (motivo per cui vi consigliamo sempre integrazioni Local in luogo di quelle Cloud).

Il quadro complessivo rende quindi chiaro il perché Home Assistant, pur essendo ottimamente realizzato, necessita di continui e ripetuti aggiornamenti: proprio perché l’HUB più adottato e versatile del mondo, la sua stessa natura di sistema asservito a componenti terze (che siano componenti, servizi o altro) prevede che venga continuamente aggiornato.

Home Assistant - Moka

Come un OS

Alcuni si chiedono perché non trattare Home Assistant alla stregua di un sistema operativo, spronando il board a rilasciare solo di tanto in tanto degli aggiornamenti di sicurezza.

Beh, perché non è un sistema operativo.

Paragonare Home Assistant (il quale è, non dimentichiamolo, un’applicazione Python) a un sistema operativo è come mischiare olio e acque, o confondere pere con mele, se si è più bucolici.

Un sistema operativo open source come Linux è il prodotto del lavoro di migliaia di volontari che, quotidianamente, ne ampliano e migliorano il codice. Il prodotto finale è un monolite software (concetto volutamente forzato) che va in esecuzione sui più disparati host, sui quali poi viene eseguito il più disparato software. Come debba evolvere questo sistema operativo lo decide la community di sviluppo, e lo fa disinteressandosi (anche qui forziamo il concetto per renderlo comprensibile) del mondo che lo circonda: non ha interlocutori diretti ai quali stare appresso. Disegna, realizza, rilascia.

Un’applicazione come Home Assistant invece presenta un modello completamente ribaltato: trattandosi di un HUB per domotica personale, è assolutamente asservito al mondo che gli gira attorno: le scelte sono obbligate, se per esempio Tado non permette l’integrazione locale ma solo quella Cloud, lo sviluppatore della piattaforma di integrazione dovrà necessariamente scriverla in modo che si colleghi a quel cloud e, quando qualcosa cambierà, sarà costretto a modificare il codice di conseguenza (innescando quindi nuovi aggiornamenti). Per lo più Home Assistant non guida, è guidato. Solo nel suo concept di design (il modello di funzionamento dei “componenti core” di cui sopra) è guidato dal suo board, aspetto come detto ormai più che stabilizzato.

Ma tutto il resto è sensibile ai cambiamenti, quotidiani, che il mondo della domotica gli impone: va da sé che se in casa utilizzo Home Assistant per gestire tre interruttori in croce gestiti localmente (la metafora della Moka), allora poco potrebbero interessarmi aggiornamenti e novità, ma nel momento in cui comincio ad avere:

  • integrazioni ZigBee e Z-Wave;
  • integrazioni verso servizi Cloud;
  • centinaia di integrazioni Cloud e Locali di natura molto diversa tra loro;
  • gestioni esterne di diversa natura (Node-RED e compagnia cantante)

allora rientriamo nel caso della caffettiera elettrica, dove la complessità diventa una aspetto non secondario. Giocoforza, questo fa sì che Home Assistant debba essere necessariamente aggiornato, e molto di frequente, così da mantenerlo l’eccellente pezzo di software (gratuito) che è. Volete la grande versatilità e il grande margine di integrazione? Questo è. Altrimenti fatevi un caffè con la Moka.

Se questo non vi sta bene, Home Assistant o non l’avete capito, o non lo meritate.
Siate “gli altri”.

 

Domotica su Home Assistant (et similia): meglio Intel NUC/Mini PC, Raspberry Pi o altro?

⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui.

Dicci la tua o poni la tua domanda nei commenti qui sotto!

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.
Telegram News Channel