Změny mezi ESP32-Grid-Load-Vypočet300.ino a ESP32-Grid-Load-Vypočet302.ino

Přehled významných úprav v jednom souboru .ino (řádkový rozsah cca 13 476 → 13 674).

Část chování může záviset i na hlavičkách / modulech (např. implementace espNowLuxAggregateformatSolarApiTestResultHtmlnastaveniPruvodceRegistrujKrok6Routes). Tento dokument popisuje změny zjištěné přímo v porovnání obou .ino souborů.

1. Verze firmwaru

  • Řetězec verze: S3.0300 → S3.0302 (firmwareV).

 

2. Průvodce nastavením – kalibrace SSR (krok 6)

  • Nová globální proměnná volatile int gSsrWizardCalibrateLogicalPct (fixní „logické“ PWM při kalibraci ssr_eff_min).
  • Při registraci webových endpointů se volá nastaveniPruvodceRegistrujKrok6Routes() (před server.onNotFound).
  • V režimu průvodce (gNastaveniPruvodceRezim): čtení PZEM (napětí, proud, výkon odběru) s ošetřením NaN / nesmyslného napětí, krátký poll MQTT, a pokud gSsrWizardCalibrateLogicalPct >= 0, volá se OvladaniPwmSSR().

 

3. ESP-NOW LUX a stránka AI Live

  • Nová pomocná funkce aiLiveLuxSenderCountPhrase(int n) – gramaticky správné vyjádření počtu vysílačů pro texty v UI.
  • LUX se nebere jen z „nejnovějšího“ vysílače v cyklu, ale agreguje se funkcí espNowLuxAggregate(...) (průměr z čerstvých vysílačů, konzistentně s AI a exportem).
  • Na /ai-live: podrobnější řádky o průměru, stáří paketu, okně čerstvosti (ESPNOW_LUX_MAX_AGE_MS) a limitu MAX_TEMP_SENDERS; doplněn vysvětlující řádek o vztahu LUX ↔ řízení.
  • Řádek „Poslední AI akce“ je v HTML zakomentován.
  • Nápověda pod tabulkou je přepsána z jednoduché tabulky na strukturovaný text (MQTT, průměr LUX z více vysílačů, forecast, historie/server, fallback, chování u režimu Distr.Ne).
  • Drobné CSS: třídy .ailive-navod.ailive-muted.

 

4. Horní navigace (webové menu)

  • Přeskupení odkazů: např. WiFi je v jiné pozici vůči Web a Režimy; v 302 odpadá duplicitní řádek s odkazem WiFi v původním bloku.
  • V 302 zůstává zakomentovaný odkaz RTC; blok s AI Live v menu zůstává v komentáři (jako ve 300).

 

5. Šablony a proměnné Solar

  • V processoru šablon přibyla větev pro solar_last_update (čtení /solar_last_update.ea, fallback text typu „zatím bez záznamu“).
  • Stránka Solar využívá placeholder %solar_last_update% v informačním boxu.

 

6. JSON API a hlavní stránka

  • Nová funkce jsonFinite(float v, int decimals) – pro JSON nahrazuje neplatné float hodnoty (NaNinf) řetězcem "0", aby se nerozbíjelo JSON.parse v prohlížeči.
  • /api/status: řada numerických polí přepnuta na jsonFinite(...); přidáno pole aiFinalPwm.
  • Odpověď /api/status má hlavičky Cache-Control: no-store, ... a Pragma: no-cache.
  • Na hlavní stránce: hodnota AI PWM v <span data-ai-final-pwm>; JavaScript ji aktualizuje z pole aiFinalPwm (včetně zvýraznění změny).
  • fetch pro stav používá cache-busting query ?t=' + Date.now() a { cache: 'no-store' }.

 

7. Stránka Reset a SPIFFS

  • Hlavní reset stránka: přechod na css_minimal, společné odkazy, formulář na /action, výraznější varovný box a přehlednější sekce SPIFFS s tlačítky pro navigaci (Hlavní, WiFi, Restart); patička přes form2down1adown3.
  • Detail seznamu souborů (?showfiles=1): nový layout, stylované mazání souborů, závěr stránky rozšířen o down1a / down3.

 

8. Solar – formulář, potvrzení uložení, data, test, aktualizace

  • Formulář /getsolar: rozšířený vzhled (boxy, typografie, inline styly u tabulky a vstupů), sekce „Rychlé odkazy“ včetně /solar_update a /solar_history_manage, graf v rámečku.
  • Po uložení (redirect HTML): escapování uživatelských řetězců pro bezpečné vložení do HTML; tabulka uložených hodnot; zobrazení odvozené URL API; sjednocení stylu s ostatními stránkami.
  • /solar_data: escapování dynamických textů; nová struktura stránky (shrnutí cache, tabulka stavu, vysvětlení typů řádků CSV: wattswatt_hours_periodwatt_hourswatt_hours_day); lepší styly pro <pre> a hlášky při chybějícím souboru; navigace dole.
  • /solar_test: barevné shrnutí výsledku podle obsahu výsledku testu; tělo zpracováno přes formatSolarApiTestResultHtml(testResult); odkazy včetně /solar_data.
  • /solar_update: oprava logiky – dříve se používal pevný text bez slova o úspěchu a stránka mohla falešně ukazovat chybu; nyní se správně řadí asynchronní úloha do smyčky, zobrazí se informativní „zelená“ stránka s vysvětlením čekání; ukládání denní historie je přesunuto do dokončení stahování v processSolarApiData() (komentář v kódu).

 

9. Potvrzení změny režimu systému (BatOpt / system-modes)

  • Při neplatném režimu se název režimu před vložením do HTML escapuje (smSafe).
  • Stránka potvrzení převedena z jednoduché tabulky na layout s boxy (úspěch / chyba), žlutý box s návodem, spodní navigační tlačítka, doplněn down1a.

 

 

 

16 zobrazení

Diskuze

Zatím žádný příspěvek. Buďte první, kdo se k článku vyjádří.

Přidat příspěvek

Příspěvek se zobrazí po schválení.