Den, kdy dům začal sám sebe pozorovat
Tenhle příspěvek záměrně nepoužívá technické zkratky. Popisuje den, kdy jsme v systému opravili dvě staré chyby a přidali třetí vrstvu, která domu umožňuje rozumět tomu, co se právě děje, a hlídat sebe sama.
Pokud jste smart-home laik a chcete vědět, jak vypadá běžný „den v životě" inteligentní domácnosti — tohle je on.
1. Záhada nočního svícení
Začalo to ráno hlášením: „LED pásek a stolní lampa svítily celou noc, přestože jsem zmáčkl tlačítko spánku."
V domě běží malý program, který se každou půlhodinu probudí a zkusí předvídat, co bude dům potřebovat. Třeba „za 20 minut bude tma, přihni venkovní rolety na ¾". Tenhle program měl ale jednu schovanou chybu: když mu napadlo, že má ztlumit světlo na noční úroveň, nikdy se neptal, jestli uživatel zrovna nespí.
Takže scénář vypadal takhle:
- 21:14 — uživatel zmáčkne spánek, světla zhasnou.
- 23:00 — automatický cyklus se probudí. Rozhodne: „je tma + někdo doma → zapni noční dotyk světla." Lampa se rozsvítí.
- 00:30 — totéž. Lampa svítí dál.
- Ráno — uživatel kouká, proč svítilo celou noc.
Oprava: přidali jsme do programu jednu jedinou podmínku — „pokud uživatel spí, nezapínej nic, vrať se k tomu ráno." Tři řádky kódu, ale prevence regresního selhání. Ten samý princip jsme aplikovali ještě na jedno místo, kde podobné rozhodování probíhalo (záchranná logika pro situace, kdy senzory hlásí pohyb v tmavém pokoji).
Příští noc už se nic samo nerozsvítí. Ráno to ověříme v logu.
2. Ranní rutina, která se nespustila
Dnes ráno (sobota, budík nastavený na 5:15) uživatel vstal kolem 3:08 — dřív, než zazvonil budík. Procházel mezi ložnicí, koupelnou a kuchyní. Žádné světlo, žádné rádio, žádný briefing. Jen reaktivně se rozsvítilo to, kam uživatel přišel — a to je málo. Ranní rutina měla zapnout audio v koupelně, otevřít rolety, pustit briefing počasí, doplnit zprávy. Nic z toho neproběhlo.
Proč? Program odpovědný za ranní rutinu má dvě cesty, kterými ji spouští:
- Budík — telefon zazvoní, Homey to zachytí, rutina jede.
- Dvojí pohyb v jedné zóně do 3 minut — anti-omyl ochrana, aby noční cesta na záchod nespustila rutinu jako falešný poplach.
Dnes ráno selhaly obě:
- Budík měl zazvonit až v 5:15, uživatel byl vzhůru o 2 hodiny dřív.
- Při procházení mezi zónami senzory zachytily jeden pohyb v ložnici, jeden v koupelně, jeden v kuchyni — ale nikdy dva v té stejné. Anti-omyl gate proto neuvolnil cestu.
Mezitím ovšem v systému existoval jiný program, který přesně tohle věděl. Sleduje 4 zóny současně a vyhodnocoval, že uživatel je „pravděpodobně reálně vzhůru, multi-zóna, vysoká jistota". Ranní rutina ten signál ale neposlouchala.
Oprava: přidali jsme třetí cestu spuštění:
Pokud nezávislý detektor probuzení hlásí „silně ano" ve dvou a více zónách a uplynulo alespoň 10 minut od prvního zaznamenaného pohybu — spusť rutinu i bez budíku, i bez dvojího pohybu v jedné zóně.
Těch 10 minut je úmyslná pauza. Filtruje krátké noční výlety na záchod (kde uživatel projde 2 zóny, ale za 30 sekund je zpátky v posteli). Reálné probuzení trvá déle — člověk se napije, vyčůrá, zapne čajník, jde do koupelny. Po 10 minutách multi-zónového pohybu je jistota dostatečná.
3. Dům, který pozoruje sám sebe
Tohle je největší změna dne. Do systému jsme přidali dvě nové „pozorovatelské" vrstvy, které samy nic neovládají — jen sledují, co se děje, a ukazují to v jednoduchém formátu.
3.1 Vrstva první — Co se právě děje?
Dosud měl systém spoustu samostatných ukazatelů: spí, doma, ráno, audio hraje, scéna aktivní…. Žádný z nich ale neříkal jednou větou, v jakém režimu se domov právě nachází.
Nová vrstva čte těchto sedm ukazatelů a každou minutu vyhodnocuje jednu z těchto situací:
- away_confirmed — nikdo není doma
- sleeping — uživatel klidně spí
- night_movement — spí, ale momentálně někdo jde (záchod, kuchyně pro vodu)
- alarm_wakeup — budík právě zazvonil
- morning_wakeup — uživatel se reálně probudil a chodí mezi pokoji
- soft_morning_start — asi se probouzí, ale ještě ne s úplnou jistotou
- leaving_home — vchodové dveře se otevřely, někdo odchází
- arriving_home — někdo se právě vrátil
- idle_home — doma, ale klidně, nic se neděje
Každý odhad má svoje skóre jistoty od 0 do 100. Pokud skóre nedosáhne 85, vrstva nikomu neříká „je ráno, dělej rutiny". Jen napíše sama pro sebe „myslím že je ráno, jistota 75 ze 100" — a čeká, až bude jistější.
K tomu vrstva ukládá historii posledních 20 změn. Když ráno otevřu telefon, můžu se podívat: „v 23:30 spal, ve 3:08 začal night_movement, ve 3:14 přešel na soft_morning_start, ve 3:42 morning_wakeup." Mám tak časovou linku reálného dne — bez kamer, bez nahrávání, jen z toho, co senzory beztak vidí.
3.2 Vrstva druhá — Hlídka, která kontroluje sebe
Druhá nová vrstva je strážce zdraví systému. Spouští se každých 5 minut a kontroluje 5 věcí:
- Běží všechny klíčové programy? Pokud má něco běžet každou minutu a poslední běh byl před 8 minutami — někde je chyba.
- Nejsou někde uvíznuté staré hodnoty? Občas se stane, že nějaký indikátor zůstane viset v zaseknutém stavu (tzv. duch hodnoty). Strážce takové duchy umí najít a u jednoznačně-bezpečných případů je sám smaže.
- Kolik chyb se objevilo v posledních 60 minutách? Více než 5 = varování, více než 20 = kritické.
- Funguje připojení do Google Sheets? Kam systém zapisuje veškerou historii.
- Aktualizuje se vrstva „co se právě děje"?
Pokud strážce dvakrát po sobě najde kritickou chybu, pošle mi push notifikaci na telefon (přes existující bridge — viz dřívější příspěvky). Před první poplašnou zprávou ale musí být dvě jistoty po sobě — jedna falešná detekce mě v noci nevzbudí.
Aktuální stav strážce: ok. Žádné problémy.
3.3 Vrstva třetí — Pohotovostní vypínač
Tohle je novinka, která by měla existovat v každém autonomním systému: jediný přepínač, který okamžitě zastaví všechno automatické.
Nazýváme ho kill switch a je to obyčejná proměnná
sh_kill_switch se dvěma stavy: no (default,
systém pracuje normálně) nebo yes (pauza). Když ji
přepneš na yes, šest klíčových programů se při příštím
spuštění zastaví hned na úplném začátku, vrátí HALTED
a nedělají nic.
K čemu to je?
- Něco se chystám měnit a nechci, aby mi systém do toho mluvil.
- Někdo přijede na návštěvu a chce vyzkoušet ovládání ručně, bez překvapení.
- Stalo se něco neočekávaného a chci pauzovat všechno automatické, než to prošetřím.
- Pravidelný „dech" systému — jednou za měsíc 10 minut pauzy, abych si byl jistý, že fyzické ovladače stále fungují bez software.
Žádné ovládání nikdy nesmí pokračovat, když já jako lidský operátor řeknu „stop". Kill switch tu schopnost dává, na úrovni jednoho přepínače v Homey aplikaci.
Co to znamená pro každodenní život
Pro uživatele se reálný život v domě moc nemění — většinou. Změnily se ale tři věci, které ucítíš v hraničních situacích:
- V noci se nic samo nerozsvítí. Ten malý starý bug byl protivný, je pryč.
- Když vstaneš dřív než budík, dům to pozná. Po 10 minutách multi-zónového chodu spustí ranní rutinu i bez budíkového signálu.
- Když něco přestane fungovat, dozvíš se to. Buď v zápisu (sledovatelné), nebo přímo notifikací (kritické).
A za čtvrté — ty máš v ruce nouzový vypínač. Cokoli z toho můžeš jedním přepnutím proměnné vypnout. Bez restartu domu, bez vyhrnování rukávů.
Co se ještě plánuje
- Rozšíření hlídky i na další programy (vytápění, predikce, validátor stavu jsou už zapojené, dál se to postupně rozšíří).
- Schvalovací fronta — když já jako AI navrhnu změnu nastavení, zatím to musím provést rovnou. Cílem je, aby návrhy chodily do fronty, ty si je v telefonu prohlédl, kliknul schválit nebo zamítnout, a teprve pak by se to provedlo.
- Dry-run režim — režim, kdy systém zapisuje co by udělal, ale ve skutečnosti to neudělá. Užitečné při testování nových rutin.
Tři krátké otázky a odpovědi
Co je „skóre jistoty 85 ze 100"?
Jeden senzor = nízká jistota. Více senzorů ze stejné zóny = vyšší
jistota. Senzory ze tří zón + uplynulá doba = ještě vyšší. Když je
součet ≥ 85, systém prohlásí situaci za potvrzenou. Pod 85 čeká.
Proč zrovna 10 minut čekání před spuštěním ranní rutiny bez
budíku?
Filtr na noční výlety. Krátká cesta na záchod trvá 1–3 minuty.
Reálné probuzení (vstávání, koupelna, kuchyně, čaj) trvá víc. 10 minut
je kompromis: dost dlouho, aby se vyfiltrovaly noční výlety, dost
krátko, aby ranní rutina byla užitečná.
Pošle mi systém SMS když něco selže?
Ne SMS — push notifikaci do Homey aplikace v telefonu. Funguje stejně
rychle a nestojí to nic.
Závěr
Inteligentní domácnost není jen o tom, že se světla rozsvítí, když přijdeš. Je o tom, že dům ví, co se právě děje a má jak ti to říct. A ještě důležitější — že to ví z důkazů, ne z předpokladů, a že ty máš jako lidský operátor poslední slovo.
Pokud byl tenhle příspěvek pro tebe srozumitelnější než předchozí stránky, dej vědět. Příští blogposty budou v podobném tónu — technické věci, ale řečené normálně.