Monitor
Allenamenti
Integrazione Home Assistant per il monitoraggio degli allenamenti e della composizione corporea, con card Lovelace dedicata. Importa lo storico da Apple Health, legge la bilancia via Withings e aggiunge punti, streak, record personali e analisi delle correlazioni. Distribuita via HACS.
Cos’è
Monitor Allenamenti è un’integrazione per Home Assistant che porta dentro casa il monitoraggio dell’attività fisica e della composizione corporea, con una card Lovelace dedicata che fa da interfaccia. Registra gli allenamenti, legge i dati della bilancia e li mette in relazione tra loro, invece di lasciarli sparsi tra app diverse.
L’idea è che i dati di allenamento e peso finiscano nello stesso posto dove già vive tutto il resto della casa, consultabili dalla stessa dashboard, senza dipendere da un servizio cloud per guardare il proprio storico.
Da dove arrivano i dati
- Apple Health per lo storico degli allenamenti: si carica il file di esportazione (
.xmlo.zip) direttamente dal browser e viene importato tutto in blocco. L’upload passa da un endpoint HTTP dedicato, perché quei file sono grandi e il WebSocket non è il canale giusto. - Withings per la composizione corporea: l’integrazione si aggancia alle entità della bilancia e ne segue peso, massa grassa, massa magra, massa muscolare, massa ossea, idratazione e grasso viscerale.
- Registrazione manuale tramite il servizio
log_workout, per gli allenamenti che non passano da nessuna app.
Gli allenamenti sono classificati per tipo: camminata, corsa, HIIT, nuoto e pesi, ognuno con la sua durata, le calorie, la distanza, il volume sollevato e il numero di serie a seconda di cosa ha senso per quel tipo.
La card
La card Lovelace è divisa in sei schermate, con lo stesso linguaggio visivo usato per Chronos:
| Schermata | Cosa mostra |
|---|---|
| Panoramica | Il colpo d’occhio su attività recente, punti e stato generale |
| Allenamenti | L’elenco delle sessioni con i loro dati |
| Calendario | La distribuzione nel tempo, navigabile mese per mese |
| Corpo | La composizione corporea e il peso scomposto nelle sue componenti |
| Statistiche | Correlazioni, andamenti e proiezioni |
| Impostazioni | Configurazione della card |
Punti, streak e record
Sopra i numeri grezzi c’è uno strato di gamification volutamente semplice: ogni tipo di allenamento vale un certo punteggio, viene tenuta la streak dei giorni consecutivi di attività, e i record personali vengono riconosciuti da soli quando una sessione supera le precedenti. Serve a dare continuità, non a trasformare l’allenamento in un videogioco.
Analisi
La parte statistica è quella che dà senso allo storico una volta che è abbastanza lungo:
- Correlazione di Pearson tra le variabili, con la forza della correlazione tradotta in parole invece che lasciata come coefficiente grezzo
- Regressione lineare sull’andamento del peso, con proiezione a 30 giorni
- Correlazione tra peso e volume di allenamento, per vedere se e quanto le due cose si muovono insieme
- Distribuzione degli allenamenti per tipo su una finestra temporale
Il grafico del peso mostra anche la copertura reale dei dati e disattiva gli intervalli vuoti, così non traccia linee immaginarie su periodi in cui non è stato misurato niente. La composizione corporea usa il recorder di Home Assistant per recuperare lo storico all’indietro: i dati già registrati in casa vengono riletti, quindi i grafici partono pieni invece di doversi ricostruire da zero.
Servizi
| Servizio | Descrizione |
|---|---|
monitor_allenamenti.log_workout |
Registra un allenamento completato con i suoi parametri |
monitor_allenamenti.import_apple_health |
Importa gli allenamenti da un file di esportazione Apple Health |
Stack
Backend Python come integrazione Home Assistant nativa, con config flow guidato, sensori per allenamenti e composizione corporea, modulo di analisi statistica, gamification e parser dell’esportazione Apple Health.
Frontend TypeScript per la card Lovelace, con le sei schermate collegate ai dati reali via WebSocket API e un editor per configurarla dall’interfaccia.
Distribuita via HACS come integrazione personalizzata.