Home Assistant/Healthy
Tři appky o zdraví, jeden přehled.
Na spánek nosím prsten Oura, na sport hodinky Galaxy Watch a vážím se na chytré váze. Každá appka zná jen svůj kousek. Healthy bere to nejlepší z každé, dopočítá, co žádná sama neumí, a odpoví na otázky přes AI poradce.
K čemu to je
Ráno jeden pohled místo tří appek
Na hlavní obrazovce je šest kroužků: připravenost, spánek, energie, trénink, aktivita a odolnost. Pod nimi velký oblouk s dnešní připraveností a věta, co to znamená, třeba „HRV 57 ms je nad tvým průměrem, tělo je dobře zregenerované“.
Na záložce Trénink appka řekne, jestli dnes normálně trénovat, jít zlehka, nebo si dát volno, a v jakém tepovém pásmu. Trendy ukážou, jak se to vyvíjí za týden nebo měsíc, a Tělo složení těla z váhy za 90 dní.
Když něčemu nerozumím, podržím prst na kartě. Appka ji vyfotí a vloží do chatu s AI poradcem, stačí napsat „co to znamená?“. Ráno navíc přijde notifikace se shrnutím noci, jakmile Oura nahraje data.
Proč
Každá appka zná jen kousek
Hodinky mají spoustu funkcí, ale v noci je nenosím, na spánek mám prsten. Samsung Health proto nemá data ze spánku a chybí mu půlka výpočtů: energie, připravenost i zátěž. Oura zase nevidí tréninky z hodinek ani váhu.
Oura má vlastního AI poradce, jenže jen v angličtině. Když je telefon česky, appka celou funkci schová. Chtěl jsem poradce, který mluví česky a vidí i tréninky a váhu, ne jen prsten.
Healthy proto bere spánek a regeneraci z Oury, tréninky a kroky z hodinek a složení těla z chytré váhy. Nad tím počítá věci, které žádná z těch appek sama nemá: tréninkovou zátěž, energii, doporučení na trénink a souvislosti mezi dnem a následující nocí.
Jak to funguje
Ze tří zařízení do jedné appky
- Aktuální hodnoty z Home Assistanta. Home Assistant už má integraci Oury (zhruba šedesát hodnot) i chytré váhy. Appka si je stáhne jedním dotazem a k Oura účtu se sama nepřihlašuje.
- Historie z VictoriaMetrics. Health Connect dá jen zhruba 30 dní zpátky. Trendy, souvislosti a váha za 90 dní proto jdou z databáze, kam Home Assistant ukládá historii.
- Tréninky přes Health Connect. Hodinky zapisují tréninky s tepem po vteřinách do Samsung Health a odtud do Health Connect. Když stejný trénink zapíše i Oura, appka je sloučí a tep bere jen z hodinek. Opačným směrem zapisuje vážení, takže ho vidí i Samsung Health.
- Obnova na pozadí. Ráno mezi pátou a jednou se appka dívá každých 15 minut, jestli Oura nahrála noc, a pak pošle shrnutí. Zbytek dne stačí jednou za hodinu. Widgety se obnoví spolu s daty.
- Data zůstávají doma. Všechno jde přes domácí síť a Tailscale. Ven odchází jen dotaz na AI poradce, a to jako textový souhrn, ne surová měření.
Co jsem zjistil
Co appka dopočítá
Den od nápadu po betu
Brainstorming, oprava Samsung Health, appka, výpočty, šest widgetů, ranní notifikace i AI poradce vznikly 8. října 2026 během jednoho dne s AI asistentem.
Dní historie v Health Connect
Víc bez zvláštního oprávnění nedá. Proto je historie z VictoriaMetrics a průměry zátěže startují z průměrné denní zátěže, ne z nuly.
Složek energie
Spánek 35 %, HRV proti normálu za 14 dní 25 %, nejnižší tep 15 %, včerejší zátěž 15 % a odolnost z Oury 10 %. Karta ukáže, která energii zrovna brzdí.
Dní, než se počítá poměr zátěže
Poměr akutní a chronické zátěže se do skóre započítá až po třech týdnech a s rozumným objemem tréninku. Do té doby se nehodnotí.
Dní minimum pro souvislost
Šest dvojic, třeba kroky a HRV nebo délka spánku a připravenost. Pod deset dní dat appka nic netvrdí.
Surových měření do AI
Poradce dostane textový souhrn: dnešek, spočítaná skóre, tabulku za 30 dní, váhu, tréninky za 3 týdny a souvislosti.
Co jsem se naučil
Tři věci, na které jsem narazil
Samsung Health nečetl vůbec nic
Oura spánek se do Samsung Health nedostal, přestože byl v Health Connect. Na vině byla první synchronizace Samsung Health s cloudem, která se zasekla, takže na Health Connect vůbec nesahal. Po opravě začal spánek ukazovat a navíc zapisovat tréninky, bez kterých by Healthy nemělo co počítat.
Poměr zátěže z procházek je šum
Když jsem chodil jen na procházky, poměr akutní a chronické zátěže vycházel 2,0, tedy „prudký nárůst“. Malá čísla dělí malá čísla. Teď se počítá až od rozumného objemu tréninku a tří týdnů historie.
Widget nezná svoji velikost
Widgety v Glance neumí oblouky ani vlastní písmo, takže kroužky a čísla kreslím jako obrázky. A v režimu Responsive widget dostane velikost přihrádky, ne skutečnou. Na ploše One UI byly kroužky malé, dokud jsem nepřidal víc stupňů velikosti.
Pro AI agenta
Postav si to u sebe
Chceš si to postavit u sebe? Zkopíruj návod a dej ho svému AI agentovi, třeba Claude Code nebo Codexu. Je v něm cíl, postup krok za krokem, pasti, na které jsem narazil, a jak ověřit, že to funguje. Adresy ani hesla v něm nejsou, ty agent doplní s tebou.
Pro zvědavé
Technické detaily
Stack a tok dat Kotlin · Compose · Health Connect · VictoriaMetrics
- Appka
- Nativní Android, Kotlin a Jetpack Compose. Grafy a kroužky kreslené v Compose, tmavý teplý design inspirovaný Ourou, velká čísla písmem Instrument Serif. Instalace z APK podepsaného vlastním klíčem, v Google Play není.
- Home Assistant
- Aktuální hodnoty z integrace Oura a z chytré váhy (bodymiscale počítá složení těla) jedním dotazem na šablonové API. Appka má vlastní token.
- VictoriaMetrics
- Historie za 30 a 90 dní. Denní hodnota je poslední hodnota dne, ne maximum: počítadlo kroků se nuluje až s první aktualizací po půlnoci.
- Health Connect
- Tréninky s tepem a kroky z hodinek přes Samsung Health, čtení i na pozadí. Kroky = vyšší z hodnot Samsung Health a Oury, protože Samsung je posílá se zpožděním. Zápis vážení s vlastním ID záznamu, opakovaný zápis jen přepíše.
- Pozadí
- WorkManager: ráno mezi 5. a 13. hodinou každých 15 minut, jinak jednou za hodinu. Ranní notifikace jednou za noc, až když Oura nahraje spánek. Šest widgetů v Jetpack Glance.
- AI poradce
- Claude Sonnet 5.5 přes Anthropic API, odpověď se streamuje, souhrn dat je v cache, takže další otázky jsou levnější. Historie chatu v telefonu, do API jde posledních 20 zpráv. Ukázkový režim má vlastní vymyšlená data i oddělenou historii.
- Síť
- Doma přes domácí síť, venku přes Tailscale.
Vlastní výpočty TRIMP · ACWR · korelace
| Výpočet | Jak |
|---|---|
| Tréninková zátěž | Banisterův TRIMP: minuty × podíl tepové rezervy × 0,64 × e1,92 × podíl. Klidový tep = průměr nejnižšího nočního tepu z Oury. |
| Tepové zóny | 50, 60, 70, 80 a 90 % tepové rezervy |
| Akutní a chronická zátěž | klouzavé průměry za 7 a 28 dní a jejich poměr ACWR |
| Energie | spánek 35 %, HRV 25 %, nejnižší tep 15 %, včerejší zátěž 15 %, odolnost 10 % |
| Připravenost na trénink | Oura Readiness a korekce: ACWR nad 1,5 −20, nad 1,3 −8, pod 0,8 +3; energie pod 50 −10, pod 60 −5; plus únava ze včerejška. Nikdy skóre uměle nezvedá nad to, co dává smysl. |
| Doporučení | 80 a víc: pořádný trénink (zóny 3 až 4), 65 a víc: normální, 50 a víc: lehký pohyb, níž: regenerace. K tomu cílový tep a zátěž odvozená z chronické zátěže. |
| Souvislosti | Pearsonova korelace dne s následující nocí a porovnání nad a pod mediánem, nejméně 10 dní dat |
Obrazovky co kde najdeš
| Záložka | Co ukazuje |
|---|---|
| Dnes | šest kroužků, připravenost s větou, trénink dnes, spánek s fázemi, energie, regenerace, aktivita, stres, tělo |
| Trénink | připravenost na trénink a doporučení, tréninky v pásu dnů s tepovou křivkou, týdenní souhrn, tepové zóny, zátěž |
| Trendy | 7 nebo 30 dní: připravenost, spánek, HRV, noční tep, teplota, aktivita, kroky, stres a souvislosti |
| Tělo | tuk, svaly, kosti, voda, viscerální tuk, BMI, bazální metabolismus, metabolický věk a trendy za 90 dní |
| Advisor | chat s AI poradcem, vložení karty dlouhým podržením |
Pasti a jejich řešení pro ty, kdo to staví taky
Health Connect bez zvláštního oprávnění vrátí jen zhruba 30 dní. Čtení na pozadí potřebuje vlastní oprávnění a kontrolu, jestli ho telefon podporuje. Samsung Health převzaté vážení zapíše zpátky jako svoje, takže je v Health Connect dvakrát. Když tréninky zapisují hodinky i prsten, vzorky tepu se prolínají: sloučit a tep brát z jednoho zdroje. Snímek karty pro AI poradce je hardwarová bitmapa, před kreslením ji je potřeba zkopírovat, jinak appka spadne. Android nezná formát dne EEEEEE, spadne na něm. Odinstalace appky smaže widgety z plochy.
Dál





















