21. Beta testování a vývoj — cloudové AI BETA
V nové větvi vývoje připravujeme volitelnou cloudovou AI (Google Gemini API) jako doplněk k lokální AI zdarma (SHADOW / ASSIST / AUTO). Cíl: denní plán a srozumitelné české vysvětlení nad daty, která už zařízení a aplikace mají (FVE, baterie, teploty; Spot jen pokud ho používáte) — ne náhrada safety ani zdroje měření.
Co se v beta verzi připravuje
-
Denní briefing — krátký text o dni (počasí / FVE / Spot) pro Premium UI
(
/ai-live, Spot stránky), bez zásahu do PWM. - Soft plán dne — doporučená okna nabíjení / topení z přebytku, jemný bias agresivity lokální AI (ne absolutní PWM).
- Vysvětlení pro laika — 2–4 věty česky, proč dnes AI nabíjí / šetří / čeká na levnější Spot.
- Vlastní API klíč uživatele — klíč z Google AI Studio se ukládá do zařízení (SPIFFS), ne do prohlížeče.
- Testy na Free tier — nejdřív bez placení; billing až když limity nestačí.
Co platí vždy (i v beta)
| Pravidlo | Význam |
|---|---|
| Čísla jen z aplikace a měření | Teplota, Wh, W, SOC — vždy z senzorů a weather app. Spot Kč/MWh jen pokud Spot používáte (OTE). Cloudová AI čísla nikdy nevymýšlí. |
| Spot je možnost, ne pravidlo | Spot ceny a Spot Gate jsou volitelné. Bez Spotu aplikace i cloudová AI fungují dál (FVE, baterie, teploty, lokální AI). Spot jen přidá okna levné/drahé sítě, pokud ho máte zapnutý a data z OTE jsou k dispozici. |
| Lokální safety vyhrává | Max teplota, Min SOC, Distr., max krok PWM — a pokud používáte Spot, i Spot Gate. Cloud to nesmí obejít. |
| AI zdarma zůstává | Bez internetu / bez Premium / bez klíče běží SHADOW / ASSIST / AUTO jako dnes. |
| Klíč v zařízení | Gemini API klíč patří uživateli a ukládá se do SPIFFS. Nesdílet veřejně. |
Jak to má fungovat (obecně)
- Zařízení sestaví vstup: telemetrie + forecast z weather app (+ Spot křivka z OTE, jen pokud Spot používáte).
- Volitelně přes backend (proxy) požádá cloud o plán / text — s klíčem uloženým v ESP.
- Odpověď: okna, soft bias, české vysvětlení. Žádné nové „autoritativní“ teploty / Wh / ceny.
- ESP zobrazí text; řízení PWM jen pokud projde lokální safety (v ostré fázi soft bias).
Jak se aplikace chová — příklady dne
Cloudová AI ráno (nebo několikrát denně) sestaví krátký plán z toho, co už aplikace ví: stav baterie, předpověď výroby, teploty — a volitelně Spot ceny, pokud je máte zapnuté. Níže jsou typické situace: co uvidíte a co se stane s topením.
Příklad A — mám baterii, má svítit
Co aplikace ví: baterie třeba na 55 %, předpověď výroby dobrá. Spot (pokud ho máte) nic dramatického — bez Spotu se den řídí jen podle FVE.
Co napíše Cloud (na AI LIVE)
Dnes slušné slunce — dopoledne dobít baterii, kolem poledne topit z přebytku FVE.
Tip: nabíjet ráno · přebytek do bojleru cca 9–14
Lokální AI při přebytku zvedne topení do bojleru. Cloud jen doporučí okna dne — nepřepisuje watty ani teplotu na Home.
Příklad B — mám baterii, bude zataženo
Co aplikace ví: slabá výroba, SOC nesmí klesnout pod váš Min. S Spotem: večer často dražší pásmo. Bez Spotu: priorita je FVE + baterie + limity, bez „drahého večera“.
Co napíše Cloud
Se Spotem: Dnes slabší FVE; Spot večer vyšší — dopoledne nabít, večer topit spíš z baterie…
Bez Spotu: Dnes slabší FVE — šetřit baterii, topit hlavně z přebytku, až bude.
Se Spotem např.: nabíjet 6–11 · večer síť ne 17–21 · Bez Spotu: tip jen k FVE / SOC
Aplikace chrání Min SOC. Spot Gate („ze sítě ne“) platí jen když Spot používáte a Gate je aktivní — jinak rozhodují teploty, Distr. a lokální AI.
Příklad C — nemám baterii, topím podle počasí, bez Spotu
Typický provoz: jen FVE + bojler (nebo TUV). Žádná baterie, žádné Spot ceny. Denní plán se opírá o předpověď počasí / výroby a lokální limity teplot.
Když má svítit
Dnes dobré slunce — topit z přebytku FVE hlavně dopoledne až odpoledne, ať bojler chytí teplo ze slunce.
Tip: přebytek do bojleru cca 9–15 · bez nabíjení baterie · bez Spot oken
Když bude zataženo
Dnes slabší FVE — méně přebytku. Topení podle potřeby a limitů teploty; cloud nevymýšlí „drahý večer“ (Spot nemáte). Při prioritě úspora šetřit síť; při komfortu topit dřív, pokud Distr. a max. T dovolí.
Lokální AI (ASSIST/AUTO) + MQTT výkon FVE/zátěž + min/max teplota + Distr.
Neřeší: SOC, Spot Gate, okna Kč/MWh.
Cloud jen vysvětlí den podle weather; Wh a °C zůstávají z aplikace.
Příklad D — bez Spotu, s baterií (pro srovnání)
Cloud
Shrnutí počasí a FVE + tip k baterii / topení z přebytku. Žádná pásma Kč/MWh.
Další možnosti
| Situace | Co aplikace typicky udělá | Co uvidíte ve zkratce |
|---|---|---|
| Bez baterie + bez Spotu + slunce | Topit z přebytku FVE v okně slunce; cloud tip surplus heat; žádné SOC / Spot | „Dnes slušné slunce — topit z přebytku…“ |
| Bez baterie + bez Spotu + zataženo | Málo přebytku; topení dle komfortu/úspory + limity T; cloud nevymýšlí Spot | „Slabší FVE — méně přebytku…“ + stav na Home |
| Bez baterie + musím topit (min. T / komfort) | Lokální limity a AI drží teplo; cloud jen vysvětlí, že FVE nestačí | Text + PWM podle teplot — ne podle Gemini |
| Levný Spot ráno + slunce odpoledne jen se Spotem |
Ráno prostor nabít (pokud Gate dovolí), odpoledne topit z přebytku, baterie na večer | „Levnější dopoledne“ + „jasno odpoledne“ + tip oken |
| Drahý Spot večer + zataženo jen se Spotem |
Nabít dřív, večer šetřit síť; bez slunce méně topení z FVE | Varování před drahým pásmem; tip „síť ne 17–21“ |
| Nemám baterii + Spot zapnutý | Cloud neřeší SOC; při slunci přebytek do tepla; v drahém okně šetřit síť (Gate) | Text bez nabíjení; topení + Spot tip |
| Priorita úspora | Častěji „počkej na slunce“; se Spotem i „počkej na levný Spot“; méně ze sítě | Vysvětlení, proč teď bojler netopí naplno |
| Priorita komfort | Teplo dřív, pokud limity dovolí; Gate (jen se Spotem) a max. teplota platí vždy | Méně odkladů; pořád safety na prvním místě |
| Priorita baterie | Nejdřív dobít; se Spotem zvlášť před drahým oknem; topení z přebytku až potom | Tip nabíjení dřív než tip topení |
| Bojler skoro na maximu | I při „skvělém slunci“ PWM drží max. teplota / Distr. | Cloud může chválit den; Home ukáže, že se už netopí |
| Spot Gate = ne jen když Spot používáte |
Ze sítě se netopí; cloud to nesmí obejít | Text může doporučit baterii / počkat; ne „top ze sítě“ |
| Záporný / velmi levný Spot + málo slunce jen se Spotem |
Lokální Gate může dovolit síť; cloud jen tip — rozhodnutí Gate | „Levný Spot — Gate může povolit…“ + stav Gate na Spot stránce |
| Cloud / internet vypadl | Topení dál podle lokální AI; cloud text zešedne / Offline | Badge Offline / Neaktuální — provoz jako bez Premium |
| Chybí předpověď (nebo Spot data, pokud Spot používáte) | Kratší text; Weather/Spot ukazují výpadek; řízení z toho, co zbývá | Kratší briefing, bez vymyšlených Wh / Kč |
Kde uživatel uvidí data z cloudové AI BETA
V aplikaci na zařízení se nezobrazuje surový výstup modelu. Uvidíte české texty (briefing / vysvětlení) vedle stávajících čísel z měření a Spotu. V G2 šlo jen o čtení. Od G3 smí cloud mírně (±3 %) korigovat agresivitu lokální AI — Distr., SOC, teploty a Spot Gate zůstávají tvrdé.
| Stránka | Co uvidíte z cloudové AI | Co zůstane jako dnes |
|---|---|---|
/ai-livehlavní místo |
Kompaktní blok AI Cloud / Premium (kvůli RAM krátký): • krátké vysvětlení dne • 1 řádek Spot + 1 řádek počasí • platnost / jistota + tip oken |
PWM návrh / po safety, LUX, režim AI zdarma (SHADOW / ASSIST / AUTO) — stávající AI LIVE |
/weather |
Nejvýše 1 krátký řádek + odkaz na /ai-live |
Teploty, oblačnost, Wh — vždy z weather app / měření |
/spot · /spot-config |
Nejvýše 1 krátký řádek + odkaz na /ai-live |
OTE ceny Kč/MWh, limity Gate, graf — jen z Spot / OTE |
/system-modesnebo Premium nastavení |
Zapnutí AI Cloud (ON/OFF), uložení Gemini API klíče, stav posledního dotazu — bez dlouhého textu | Volba AI zdarma: OFF / SHADOW / ASSIST / AUTO |
| Home (později) | Jen odkaz / malý stav (bez odstavce — šetří paměť Home) | Všechny karty výkonu, teplot, baterie |
| Odhad nákladů (G3b) | Slovní komentář (commentCs) — bez vymyšlených Kč |
Kč spočítá aplikace (import Wh × OTE); bez Spotu = bez čísla |
Ukázka ESP — /ai-live (hlavní)
AI Cloud ON Premium · plán dne
Počasí: Zataženo, odpoledne přeháňky…
Spot: Levnější dopoledne, od 17:00 drahé pásmo…
Proč: Dnes slabší FVE; Spot dražší večer — dopoledne nabít, večer topit z baterie.
Tip: nabíjet 06–11 · síť ne 17–21
Náklady import dnes: 12,4 Kč
Čísla Wh / °C / Kč/MWh → Weather · Spot · Home (ne z tohoto textu)
| PWM | navrženo 42 % · po safety 38 % · systém 38 % |
| Zdroj AI | ASSIST · mqttFresh |
| LUX | 820 lx — jasné |
Ukázka ESP — ostatní stránky (jen krátký řádek)
Dnes 18,5 kWh · zítra 9,2 kWh · T_out 4,2 °C
Poslední poll: OK · 06:12 · bez dlouhého textu zde
Ukázka api.easun.eu — bez limitů ESP
Na serveru Analýzy se ze zařízení sbírají data bez omezení délky UI jako na ESP: plný text plánu, historie dnů, grafy Spot×spotřeba, srovnání, delší vysvětlení. Čísla (W, °C, Kč/MWh) dál pocházejí z telemetrie / OTE / app — cloud jen skládá text a kontext.
strategie: charge_before_high
high okna: 17:00–21:00
cloudBias heat −1 / charge +1
Denní vysvětlení (plná délka — ne ořez jako na ESP)
Dnes je FVE forecast slabší (≈ 9 kWh vs. průměr zařízení), Spot odpoledne stoupá do high pásma. Doporučení: dopoledne nabít baterii v levnějších hodinách, večer topit z baterie a vyhnout se grid-heat po 17:00. Lokální Spot Gate zůstává rozhodující — cloud jen soft tip.
Okna: nabíjet 06:00–11:00 · netopit ze sítě 17:00–21:00 · přebytek 09:00–14:00
Ukázka: graf Spot / spotřeby · kalendář archivů · týdenní shrnutí · vzdálená správa
| Aplikace na ESP | api.easun.eu | |
|---|---|---|
| Text z cloudu | krátký ořez (< ~1 KB) | plný text + historie dnů |
| Grafy | ne (lokální Spot stránka) | ano — Spot, Wh, srovnání |
| Hlavní místo | /ai-live |
Analýza / účet zařízení |
Kdy se text ukáže / skryje
- AI Cloud OFF nebo chybí klíč → cloud blok není / „vypnuto“, žádný dotaz do cloudu.
- AI Cloud ON + platný plán → texty výše; topení dál řídí lokální AI a limity.
- Plán prošlý → text „neaktuální“; nepoužívat jako doporučení.
- Bez WiFi → poslední uložený text do expirace, pak jen AI zdarma.
- Chybí Spot / počasí → kratší text; na Spot/Weather stránkách vidíte lokální výpadek čísel.
Když Gemini / cloud nefunguje — krizové stavy DŮLEŽITÉ
Co se stane v aplikaci (vždy)
- PWM řídí dál lokální AI nebo klasika — jako by Cloud byl vypnutý.
- Žádné „cloudové“ zvýšení/snížení agresivity (bias se nepoužije).
- Na
/ai-liveuvidíte stav: Offline / Limit / Chyba / Neaktuální / Klíč? — ne pád stránky. - Zařízení nezkouší dokola každou vteřinu — počká na další plánovaný pokus.
Přehled výpadků
| Situace | Co uvidíte na ESP | Topení / AI zdarma |
|---|---|---|
| Cloud vypnutý (OFF) | Blok skrytý nebo „Cloud OFF“ | Běží normálně |
| Chybí / špatný API klíč | „Klíč?“ — uložte nový v Režimech | Běží normálně |
| Bez WiFi / internetu | „Offline“ + případně starý text do vypršení | Běží (MQTT v LAN může fungovat) |
| Server api.easun.eu nedostupný | Chyba spojení / proxy — bez nové obnovy plánu | Běží normálně |
| Google Gemini výpadek / chyba 5xx | „Cloud výpadek“ — další pokus později | Běží normálně |
| Překročen Free limit (429) | „Limit 429“ — méně pollů nebo Paid účet | Běží normálně |
| Poškozená / odmítnutá odpověď | „Plán nepřijat“ — starý platný text může zůstat do expirace | Běží; cloud tip ne |
| Plán prošel (čas vypršel) | „Neaktuální“ (zašedlý text) | Běží; cloud tip ne |
| Málo paměti při zobrazení | Jen krátký stav / zkrácený text | Běží normálně |
| Chybí Spot nebo počasí v aplikaci | Kratší cloud text; čísla ukazují výpadek na Spot/Weather | Běží dle dostupných lokálních dat |
| Tarif / Premium odmítnut | Hláška o tarifu / oprávnění | Běží normálně |
Ukázka — chybové stavy na ESP
Offline poslední plán
Proč (staré): Dopoledne nabít, večer topit z baterie…
Limit 429
Free kvóta Google — proč nejede + kroky Free / placené (#free-tier, #paid-tier). Topení řídí lokální AI.
Neaktuální
Starý text může zůstat vidět zašedle.
Uložte platný Gemini klíč. Lokální AI běží dál.
Proč je zobrazení omezené (RAM na ESP) DŮLEŽITÉ
Zařízení EaSun (ESP32 / ESP32-S3) má omezenou operační paměť. Webové stránky se skládají přímo v zařízení. Velký text z cloudu by mohl způsobit nestabilitu (výpadek stránky, restart). Proto je zobrazení cloudové AI záměrně krátké a úsporné.
Jak to bude provedeno
- Server zkrátí odpověď — do zařízení nejde celý výstup modelu, jen malý „snapshot“ pro UI (několik krátkých českých vět + stav).
- Limity délky textu (delší se ořízne tečkami): vysvětlení dne ≈ max. 2–3 věty (~240 znaků), shrnutí Spot / počasí ≈ 1 věta (~120 znaků), tip oken ≈ 1 krátký řádek. Celkem typicky méně než 1 KB textu v zařízení.
- Uložení v SPIFFS — malý soubor na flash, ne velký text držený trvale v RAM. Při otevření stránky se načte jen to potřebné.
-
Plný text jen na
/ai-live— na Weather a Spot maximálně jeden řádek + odkaz „více na AI LIVE“. Home jen malý odkaz / stav (bez odstavců), ať se nepřetíží už velká úvodní stránka. - Nezobrazuje se: surový JSON, hodinové Spot pole, dlouhé seznamy, debug / tokeny — to zůstává na serveru. V prohlížeči na ESP jen srozumitelný text.
- Při nedostatku paměti: zařízení ukáže zkrácenou verzi (např. jen stav + vysvětlení) nebo hlášku, že text byl zkrácen — řízení topení tím není ohroženo (lokální AI a limity běží dál).
| Stránka | Kolik cloud textu (kvůli RAM) |
|---|---|
/ai-live |
Jeden kompaktní blok (několik krátkých řádků) — hlavní místo |
/weather · Spot |
Nejvýše 1 řádek + odkaz na /ai-live |
/system-modes |
Jen ON/OFF, klíč, stav spojení — bez briefing odstavců |
| Home | Jen odkaz / malý stav — bez dlouhého textu |
Doporučení pro testery (Free tier)
- Přihlaste se na aistudio.google.com (Google účet) a přijměte podmínky.
- Vytvořte / zkopírujte API klíč na API keys.
- V Playgroundu ověřte, že model krátce odpoví (Flash-Lite / Flash).
- Klíč uložte do zařízení EaSun (pole Gemini API key → Uložit do SPIFFS).
- Na testy: 1 zařízení, poll 1× denně (nebo max 6×), model Flash-Lite. Billing zapínejte až při častých chybách limitu (429).
- Ověřte: Premium OFF = žádný cloud; Premium ON = text v UI, čísla na Home / Spot dál z aplikace.
- Počkejte 15–60 min (nebo do dalšího dne u denního limitu).
- Neklikejte opakovaně na testy klíče / cloud plánu.
- Nechte poll 1–2× denně — lokální AI topení řídí dál.
- Když Free nestačí → viz placené Gemini níže.
Když Free nestačí (placené Gemini)
- V Google AI Studio zapněte billing / placený účet pro Gemini API.
- Nastavte si rozpočtové upozornění (alert), ať nemáte překvapení ve faktuře.
- Stejný API klíč nechte v zařízení — po aktivaci billingu obvykle stačí počkat několik minut a znovu otestovat cloud plán (1×, ne spam).
- Poll nechte nízký (1–2× denně). Topení i při výpadku cloudu řídí lokální AI.
/system-modes → AI Cloud + Gemini klíč + test u Google / Analýza.
Plný text: /ai-live (včetně aktivního soft bias).
Ověřte field test ASSIST/AUTO; Distr/SOC/Gate musí zůstat tvrdé limity.
Co je hotové — cloud vs. aplikace na zařízení
| Část | Stav | Kde to je |
|---|---|---|
| Chování cloudového AI + testy (scénáře T01–T08) |
HOTOVO (návrh) | §8b · §8c — AI Studio / server, ne ve firmwaru |
| Plán vývoje G1–G4 (backend, ESP, soft bias, vyhodnocení) |
v dokumentu | Technický dokument vývoje — fáze implementace |
| Aplikace na ESP ( /ai-live, klíč, poll, soft bias) |
HOTOVO (G2+G3) | Poll + text G2; soft ΔPWM max ±3 % v ASSIST/AUTO (G3). Safety / Spot Gate beze změny. Field test doporučen. |
Backend api_ai_cloud_plan.php |
HOTOVO (localhost) | Fáze G1 — lokální Analýza (localhost). Gemini klíč jen ze zařízení / dry-run TEST. Produkce api.easun.eu ještě ne. |
| api.easun.eu bohatý cloud panel | JEŠTĚ NE | Po G1/G2; stávající Analýza AI logů běží dál bez Gemini |
G4 — test po dnech (naplnit log → CSV → go/no-go)
- Zapněte odesílání AI logu na api.easun.eu (host AI logu v Režimech). Lokální AI: ASSIST nebo AUTO — po celý test stejný režim.
- Perioda A — 7 dní: AI Cloud vypnuto (bez soft bias). Neměňte Spot / baterii (segment a/b/c musí zůstat stejný).
- Perioda B — 7 dní: AI Cloud zapnuto + platný Gemini klíč (až nebude limit 429). Stejné limity teplot / SOC / Spot Gate.
-
Po každém půlnoci se do logu zapisuje denní souhrn (
G4_DAY). Bez běhu přes půlnoc řádek v CSV nepřibude — proto je potřeba více dní. -
Otevřete G4 HTML (po přihlášení do Analýzy), IP zařízení nahraďte svou:
api_ai_g4_csv.php?device_ip=…&format=html · volitelně stáhněte CSV. - Z denních řádků (import Wh, min SOC, t1Min; se Spotem i highImport / Kč) vyplňte tabulku go/no-go v dokumentu vývoje ai-gemini-placene.html §10. Spot není povinný pro rozhodnutí — hodnotí se v rámci stejného segmentu.
Fáze vývoje (orientačně)
| Fáze | Co se dělá | Dopad na uživatele |
|---|---|---|
| G0 návrh + testy | Návrh chování cloudu + sada T01–T08 (bez Spotu / se Spotem / Gate / bez forecast). Ověření v AI Studio zbývá. | V aplikaci zatím nic — vývoj |
| G1 localhost | Backend stub (plán z telemetrie + weather; Spot volitelně; cache 3 h; dry-run TEST) | Testovací endpoint bez řízení PWM |
| G2 FW | ESP: odeslání dat + zobrazení textu (read-only) | Premium UI — briefing na /ai-live; PWM beze změny |
| G3 FW | Měkký bias do lokální AI (max ±3 % PWM) | Malá korekce agresivity; safety / Gate beze změny |
| G3b FW | Odhad nákladů importu (Wh × OTE) v aplikaci | Řádek Kč na /ai-live; bez Spotu bez čísla; PWM beze změny |
| G4 postup | A/B 14 dní (Cloud OFF vs ON), segmenty a/b/c, CSV z AI run logu | Vyhodnocení přínosu biasu; Spot není povinný pro go/no-go |
| G4 field | 14denní běh + vyplnění tabulky | Rozhodnutí ostré Premium / jen briefing |