EaSun · ESP32 Grid-Load · dokumentace vývoje firmwaru
Porovnání firmwaru EaSun ESP32-Grid-Load-Vypocet 601 až 900
Podrobné porovnání větví
ESP32-Grid-Load-Vypocet601,
604,
620,
700,
800
až
ESP32-Grid-Load-Vypocet900
(aktuálně S3.0910 / 32.0910): Spot Gate, ESP-NOW, AI Cloud, onboarding V900, diagramy a seznam funkcí.
Oficiální návod:
easun.eu/navod.
Ukončení podpory desek ESP32 Dev Module
Dual-board build (ESP32 Dev + ESP32-S3) historicky umožňoval stejný kód na obou čipech. Od V800/V900 je zátěž webu, AI, OTA a diagnostiky taková, že klasický ESP32 Dev Module bez PSRAM už není dlouhodobě udržitelný.
- Proč končí podpora: malý vnitřní heap (~desítky–stovky KB po WiFi), absence PSRAM, pomalejší CPU oproti S3, riziko WDT/OOM při OTA, Solar Sim, AI Cloud a velkých HTML stránkách.
- Co už V900 dělá:
board_ram.hdetekuje Dev vs S3/N16R8, na Dev zkracuje buffery, tlačí OTE přes SPIFFS a omezuje HTML cache — to je nouzový režim, ne plný produktový cíl. - Doporučená platforma: ESP32-S3, ideálně 16 MB Flash + 8 MB PSRAM (N16R8) — velké HTML a JSON jdou do SPIRAM, OTA je stabilnější.
- Legacy 32.xxxx: string
32.0910ještě existuje pro přechod; nové funkce (Solar Sim, AI Cloud, ESP-NOW coop, ZIP/AES) se ladí primárně na S3. Další major větve počítají jen se S3. - Migrace: záloha SPIFFS/ZIP ze stejného čipu, flash S3, obnova cfg, stejné ID API. Viz 1b. Obnova SPIFFS · 15. Záloha / OTA.
Shrnutí: nekupujte a neplánujte nová nasazení na ESP32 Dev. Pro stávající Dev desky zvažte upgrade na ESP32-S3 dříve, než přestanou projít OTA nebo dojde paměť při AI / Solar Sim.
Architektonická osa
601 klasická aplikace + lokální AI →
604 Spot Gate podle přebytku FVE + průvodce Provoz →
620 forms-map, odkazy na návod, TSSR přepínač →
700 monolit /easun.cfg (AES) + spolupráce EaSun přes ESP-NOW, pryč weather/solar apps →
800 cloudové AI (Gemini) + Jednoduchý/Expert + ECO →
900 bootstrap jen WiFi + ID API, AI-first setup, PSRAM-aware RAM, odlehčený display.
Uživatelský start ve V900: 1. První spuštění · 1a. AP EASUN a WiFi · 4. ID API klíč.
Mapování složka ↔ string FW
| Složka projektu | FW string | Řádky .ino | Hlavičky .h | Poznámka |
|---|---|---|---|---|
| ESP32-Grid-Load-Vypocet601 | S3.0603 / 32.0603 | ~13 400 | 14 | baseline |
| ESP32-Grid-Load-Vypocet604 | S3.0620 / 32.0620 | ~14 900 | 15 | název složky ≠ číslo FW |
| ESP32-Grid-Load-Vypocet620 | S3.0626 / 32.0626 | ~16 000 | 16 | + forms_map, NAVOD |
| ESP32-Grid-Load-Vypocet700 | S3.0703 / 32.0703 | ~16 400 | 15 | AES cfg + ESP-NOW coop |
| ESP32-Grid-Load-Vypocet800 | S3.0812 / 32.0812 | ~17 500 | 19 | AI Cloud, UI mode |
| ESP32-Grid-Load-Vypocet900 | S3.0910 / 32.0910 | ~18 300 | 20 | aktuální větev |
Časová osa vývoje
MQTT · Spot cena · lokální AI · teplotní ESP-NOW · weather/solar apps · dlouhý SETUP_KROK
Spot Gate FVE surplus · /provoz1–5 · remote AI logy · /diag /logs
forms_map API · odkazy na navod · tssrEnabled · remote standby
easun.cfg AES · /easun-now · pryč weather/solar · SPIFFS purge
Gemini cloud AI · Jednoduchý/Expert · setup1–6 · /eco
SETUP_BOOT WiFi+API · AI setup · board_ram · /barva · solar-sim
Diagram: onboarding (V800 vs V900)
V800 míchal WiFi, MQTT, teploty, SSR a AI do jednoho dlouhého zámku. V900 odděluje „musí jít online“ od doladění — viz kap. 1 a kap. 3.
V800 — dlouhý zámek
V900 — Fáze 0 + brána
Diagram: vrstvy řízení a AI
Hard limity teploty a SOC vždy vítězí. Soft bias cloudu je max ±3 % PWM. Detail: 11. Režimy · 11a. SHADOW/ASSIST/AUTO · 21. Cloud AI · T2 pipeline.
Diagram: vznik modulů podle verzí
V601 — baseline (S3.0603)
- Dual board ESP32 / ESP32-S3 (compile-time piny, RGB na S3).
- Klasický stack: MQTT, Spot (OTE), PWM/SSR, teploty, LCD + OLED/U8g2.
- Lokální AI zdarma: OFF / SHADOW / ASSIST / AUTO — stránky
/system-modes,/ai-live. - Spot Gate jen cenová — bez prahu FVE přebytku.
- ESP-NOW jen teplotní vysílače (
teploty-esp-now.h), ne EaSun↔EaSun. - Weather + Solar API aplikace (
weather_*.h,solar_aplikace.h). - Nastavení jako fyzické soubory
*.eave SPIFFS. - OTA
.binz/reset→/firmware-update; ZIP záloha SPIFFS. - Dlouhý onboarding SETUP_KROK /
/nastaveni-krok*.
V604 — Spot Gate + provoz (S3.0620)
provoz_pruvodce.h: tenký průvodce/provoz…/provoz5(profil Spot / Distr / FVE).- Spot Gate + FVE surplus:
Spot_fveSurplusMin(−1 = jen cena; ≥0 = zákaz sítě při přebytku). - Event log SPIFFS + důvod resetu.
- AI provozní logy na vzdálený server (
/ai-run-log,/ai-shadow-log). - Diagnostika:
/diag,/logs,/logs-clear,/mereni-help. - Stále weather/solar stack a oddělené
*.ea.
V620 — forms / NAVOD / TSSR (S3.0626)
forms_map.h+ API/api/forms-map,/api/config-values(sync s Analýzou).- Systematické odkazy
NAVOD_*→ kapitoly na easun.eu/navod. - TSSR:
tssrEnabled— zap/vyp bez mazání peer URL; normalizace na/tssr. - Vzdálená pohotovost:
/remote-resume,/remote-status. - Sync nastavení zařízení na server (
api_device_settings_sync.php).
V700 — config AES + ESP-NOW coop (S3.0703)
config_store.h: jedno šifrované/easun.cfg(AES-128-CBC vázané na MAC); logické cesty*.ea.easun_esp_now.h: spolupráce EaSun↔EaSun (discover, status, most, primary/secondary) — UI/easun-now*.- Odstraněno:
solar_aplikace.h,weather_aplikace.h,weather_solar.h. - SPIFFS purge odpadu; ZIP export streamovaný (méně WDT).
- Silnější WDT diagnostika; AI logy jen remote (SPIFFS AI logy legacy mazány).
6a. ESP-NOW spolupráce 15. Záloha, reset, diagnostika 1b. Obnova ze zálohy
V800 — AI Cloud + UI režimy (S3.0812)
ai_cloud.h: cloudové AI (Gemini proxy) — denní plán, soft bias ±3 % PWM; LITE na klasickém ESP32.ui_mode.h: Jednoduchý / Expert —/ui-mode,/expert.setup_pruvodce.h: jednoduchý setup/setup…/setup6(AI → PWM → teploty → baterie → FVE/ECO).- Po dokončení dlouhého SETUP_KROK → výběr UI režimu.
- ECO Load-Following: stránka
/eco. /weatherjen jako minimální stub (ne plné weather API).- Oddělená menu Expert vs Jednoduchý; OTA-fit ořez flash na klasickém ESP32.
V900 — boot WiFi+API (S3.0910)
boot_setup.h: Fáze 0 = jen WiFi + ID API (SETUP_BOOT0/1/2); zámek webu →/wifi,/boot-api.- Místo
setup_pruvodce:setup_ai.h—/setup…/setup4(AI → Gemini → MQTT volitelně → hotovo). board_ram.h: runtime profil Flash/PSRAM, bezpečné alokace velkých bufferů (OTA).- Dlouhý wizard
nastaveni-krok*pryč;SETUP_KROKjen legacy migrace. - Po BOOT=2 →
/ui-mode(Jednoduchý → AI setup; Expert → hub). Bez AppSetup zámku V800. /barvanahrazuje OLED nastavení;/oled→ redirect. Odstraněny SSD1306/U8g2.- Nové:
/solar-sim+ API simulace FVE/PWM; důraz na lokální TSSR. - Platforma: doporučen ESP32-S3 (+PSRAM); ESP32 Dev Module — ukončení podpory (výkon/RAM). Viz EOL Dev.
- Zachováno: AI Cloud, ESP-NOW coop, config_store, provoz, Spot FVE Gate.
1. První spuštění 15. Soft / factory reset 11a. AI režimy 6a. Now Solar Sim Demo v prohlížeči
Solar Sim — emulátor provozu v aplikaci (/solar-sim)
Od V900 má EaSun vestavěnou stránku /solar-sim (menu Sim).
Slouží k testu PWM podle režimu řízení bez závislosti na reálném slunci:
přepíše provozní hodnoty FVE (volitelně load / síť / baterie) a nechá běžet stejný výpočet jako v ostrém provozu.
Interaktivní emulátor (bez MQTT, bez ESP32): https://easun.eu/navod/solar-sim-demo.html — zjednodušená surplus logika pro výuku. Na zařízení běží plný stack (SSR, AI, Spot Gate, Amax…).
Jak to funguje v aplikaci (ESP32)
- Zapnutí simulace — checkbox na
/solar-simnastavígSolarSimOn. Ruční webové/pwmse při tom vypne. - Override MQTT —
applySolarSimOverride()přepíšesolarW(a volitelněloadW,cezW,solarV, baterii). Proud FVE = W÷V. - Stejný výpočet PWM — běží klasická / AI větev (
vypocet01/ AI), limitycezWMax, soft/hard Amax, batt cut, teploty SSR. - Bez topení (výchozí) — „Přidávat na topení“ vypnuto: cíl PWM se počítá, ale pin = 0 (žádný odběr od distributora). Zapnuto = fyzický PWM / spotřeba.
- Virtuální odběr — při mute režimu
odberWatt ≈ heatMaxW × PWM%pro surplus logiku domu. - Skoky sítě — dočasný
cezJump(mikrovlnka) na N sekund, pak návrat na základ. - Vypnutí sim — PWM ihned na 0 a ~8 s hold, ať realita hned nevytáhne simulovaných 100 %.
- API —
/api/solar-sim(stav),/api/solar-sim-set(zápis),/api/solar-sim-log(CSV). Konfigurace: SPIFFS/solar-sim.cfg.
Co stránka v aplikaci obsahuje
- ŘÍZENÍ — zap/vyp sim, režim (Původní / Optimalizace / AI SHADOW·ASSIST·AUTO), rychlost PWM (stejné jako
/pwm). - SOLAR — posuvník FVE W, napětí V, přepsat / nechat MQTT.
- DISTRIBUTOR — load, cez, Min/Max limity, skoky odběru.
- TOPENÍ — max W při 100 %, odhad W/A, mute vs fyzický výstup, ruční PWM.
- BATERIE — test BATT_CHARGE_CUT (W / V / MaxW).
- LIVE — PWM cíl/výstup, cuts, surplus, AI fb→návrh→final, alerty limitů.
- LOG — volitelný CSV průběh PWM v RAM → stažení.
Schématické náhledy rozhraní v aplikaci
Ilustrace layoutu /solar-sim (dvousloupcové ovládání + LIVE). Pro živé hraní otevřete prohlížečové demo.
/solar-sim na ESP32-S3.
Vyzkoušet hned:
https://easun.eu/navod/solar-sim-demo.html
· na zařízení po nastavení WiFi otevřete http://<IP>/solar-sim.
Matice funkcí napříč verzemi
| Funkce | 601 | 604 | 620 | 700 | 800 | 900 |
|---|---|---|---|---|---|---|
| Lokální AI OFF/SHADOW/ASSIST/AUTO | ano | ano | ano | ano | ano | ano |
| Spot Gate — cena | ano | ano | ano | ano | ano | ano |
| Spot Gate — FVE surplus | ne | ano | ano | ano | ano | ano |
| Průvodce /provoz | ne | ano | ano | ano | ano | ano |
| forms_map / Analýza sync | ne | ne | ano | ano | ano | ano |
| tssrEnabled přepínač | ne | ne | ano | ano | ano | ano |
| easun.cfg AES | ne | ne | ne | ano | ano | ano |
| ESP-NOW EaSun coop | ne | ne | ne | ano | ano | ano |
| Weather / Solar apps | ano | ano | ano | ne | stub | stub |
| AI Cloud Gemini | ne | ne | ne | ne | ano | ano |
| Jednoduchý / Expert UI | ne | ne | ne | ne | ano | ano |
| SETUP_BOOT (WiFi+API) | ne | ne | ne | ne | ne | ano |
| board_ram / PSRAM profil | ne | ne | ne | ne | ne | ano |
| OLED / U8g2 | ano | ano | ano | ano | ano | ne |
| /solar-sim (emulátor FVE/PWM) | ne | ne | ne | ne | ne | ano |
| Doporučená deska ESP32-S3 (+PSRAM) | obě | obě | obě | obě | S3 prefer. | S3 · Dev EOL |
Průřezová témata
AI
- 601+: lokální AI zdarma — SHADOW/ASSIST/AUTO
- 604+: remote AI RUN/SHADOW log
- 800+: cloud Gemini plán + soft bias
- 900: AI-first setup (
/setup), klíč Gemini v/setup2 - Laická cesta: OFF → SHADOW → ASSIST → AUTO
Spot · MQTT · Topení
ESP-NOW
- 601–620: jen teplotní TX
- 700+: EaSun most / priorita topení — kap. 6a
- Max. 10 teplotních TX; stejná FW řada v PMK (0900)
Solar Sim · platforma
- V900:
/solar-sim— test PWM s override FVE · popis - Prohlížeč: solar-sim-demo.html
- Deska: ESP32-S3 + PSRAM · Dev Module EOL
- Zapojení: dokumentace pinů v návodu / výrobce
Významná odstranění
| Co | Od verze | Poznámka |
|---|---|---|
| Plné Weather API + Solar forecast | 700 | soubory weather_*, solar_aplikace |
Fyzické stovky *.ea souborů | 700 | nahrazeno /easun.cfg |
Dlouhý setup_pruvodce (6 kroků) | 900 | nahrazeno AI+MQTT setupem |
Dlouhý /nastaveni-krok* | 900 | jen boot WiFi+API |
| OLED / U8g2 stack | 900 | /oled → /barva; LCD zůstává |
| Staré cloud PWM odesílání | 900 | UI: důraz na lokální TSSR |
| Oficiální podpora ESP32 Dev Module | 900+ | ukončeno / dosluhuje — málo RAM a výkonu; cíl = ESP32-S3 + PSRAM. Viz EOL. |
Důležité URL podle prvního výskytu
Od 601
/ · /teplota · /batt · /oled · /mqtt · /wifi · /web · /pwm · /key · /system-modes · /ai-live · /spot · /tssr · /spiffs-* · /firmware-update · /api/status
Od 604
/provoz…5 · /ai-run-log · /ai-shadow-log · /diag · /logs · /mereni-help
Od 620
/api/forms-map · /api/config-values · /remote-resume · /remote-status
Od 700
/easun-now · /easun-now-pair · /easun-now-save · /spiffs-purge
Od 800
/ui-mode · /expert · /setup…6 · /eco · AI Cloud endpoints
Od 900
/boot-api · /boot-getkey · /setup…4 · /barva · /solar-sim · /api/solar-sim* · /api/solar-sim-set · /api/solar-sim-log
Kompletní mapa cest: T1. Přehled URL a SPIFFS. FAQ: 19. FAQ. Demo Solar Sim: solar-sim-demo.html.
Časté otázky (FAQ)
Nejčastější otázky k vývoji firmwaru EaSun Grid-Load — vhodné i při výběru verze k instalaci.
Jaký je nejnovější firmware EaSun Grid-Load?
Aktuální větev je ESP32-Grid-Load-Vypocet900 se stringem S3.0910 (ESP32-S3, doporučeno). String 32.0910 pro klasický ESP32 Dev je legacy — podpora Dev se ukončuje. Start: 1. První spuštění.
Čím se liší onboarding V900 od V800?
V900 má SETUP_BOOT jen s WiFi a ID API. Po restartu volíte Jednoduchý / Expert na /ui-mode a krátký AI setup. V800 míchal WiFi, MQTT, teploty, SSR a AI do jednoho dlouhého zámku — viz kap. 3.
Od které verze je Spot Gate podle přebytku FVE?
Od větve V604 (FW S3.0620) — práh FVE surplus a průvodce /provoz. Detail: Spot Gate — přebytek FVE · kap. 12.
Kdy přibyla spolupráce EaSun přes ESP-NOW?
Od V700 (S3.0703) — modul easun_esp_now.h a stránky /easun-now. Návod: 6a. ESP-NOW spolupráce.
Od které verze je cloudové AI Gemini?
Od V800 (S3.0812) — ai_cloud.h, denní plán a soft bias max ±3 % PWM v ASSIST/AUTO. Ve V900 zůstává. Viz 21. Cloudové AI · 11a. AI režimy.
Co je /solar-sim a k čemu slouží?
Stránka v aplikaci V900 pro test PWM: přepíše FVE (a volitelně load/síť/baterii) a nechá běžet stejný výpočet jako v provozu. Výchozí režim netopí (mute pin). Popis: Solar Sim. Prohlížečové demo bez ESP: solar-sim-demo.html.
Proč končí podpora ESP32 Dev Module?
Kvůli nedostatku výkonu a vnitřní paměti (heap po WiFi/MQTT/OTA/AI). Oficiální směr je ESP32-S3 s PSRAM. Podrobně: Ukončení podpory ESP32 Dev.
Seznam funkcí — ESP32-Grid-Load-Vypocet900 (S3.0910 / 32.0910)
Extrahováno ze zdrojových .ino a .h v kořeni projektu (bez složky build/). Počet: 662 definic. Řádek = přibližný začátek signatury.
Technická mapa URL/SPIFFS: T1. Přehled URL a SPIFFS · AI pipeline: T2 · Formuláře: T3
ESP32-Grid-Load-Vypocet900.ino 283
aiLiveLuxIconPrefix:1547aiLiveLuxSenderCountPhrase:1560aiRunLogAppendEvent:10284aiRunLogAppendLine:10299aiRunLogAppendStateLine:8758aiRunLogBuildCfgText:9967aiRunLogDownloadFilename:9952aiRunLogEnqueueSessionHeader:10109aiRunLogEnsureDay:10170aiRunLogFlushPending:10260aiRunLogIsActive:9886aiRunLogModeLabel:9894aiRunLogNowHms:8684aiRunLogQueueDropOldest:8699aiRunLogQueuePush:8704aiRunLogQueueRestoreFront:8733aiRunLogQueueTakeBatch:8716aiRunLogRemoteBuildUrl:8836aiRunLogRemoteIsConfigured:8809aiRunLogRemoteMarkUnreachable:9799aiRunLogRemoteNormalizeHost:8816aiRunLogRemotePeriodicCheck:9871aiRunLogRemotePostBatch:10181aiRunLogRemoteProbe:9808aiRunLogRemoteWanted:8802aiRunLogSendDownload:8772aiRunLogStartNewSession:10136aiRunLogSyncFile:10159aiShadowLogAppendLine:10345aiShadowLogIsActive:10329aiShadowLogSyncFile:10336appendHtmlFooterNavod:1806appendMereniSubnav:1857applyEcoNavVisibility:6183applyOriginalModeSideEffects:9928applySolarSimOverride:6949applySystemModeByName:7393applyWebUrlSettingsToRam:2855apSestavPrivitaciHtmlProApRezim:5079apSestavWifiFormHtml:5112autoAdjustParameters:10757autoCleanupBeforeMainPage:4967batteryOptimizationTask:11101buildTeplotaPageAndSettings:4091buildWebSettingsHtml:2897calculateAdvancedDynamicBrightness:1367calculateBatteryChargePriority:10626calculateDynamicBrightness:1341clearEventLogs:8522collectSpiffsZipEntries:3167createSpiffsZipSnapshot:3202currentSystemModeId:7435deepSleepIfNight:5475deviceDiagBuildStatusJson:9480deviceDiagJsonEsc:9474deviceEventRemoteEnqueue:8912deviceEventRemoteFlushPending:8936deviceEventRemoteSend:8861deviceEventsRemoteBuildUrl:8854deviceRemoteApplyOutputsOff:9434deviceRemoteCmdTick:9782deviceRemoteEnterStandby:9448deviceRemoteLoadFromSpiffs:9463deviceRemotePullAndApply:9714deviceRemoteReportStatus:9654deviceRemoteResume:9457deviceSettingsAckPush:9330deviceSettingsApplyFieldToRam:9140deviceSettingsApplySectionsJson:9240deviceSettingsPullAndApply:9355deviceSettingsPullTick:9417deviceSettingsShowUserInfo:9123deviceSettingsSyncBuildUrl:8845deviceSettingsSyncFlushNow:9095deviceSettingsSyncPostSnapshot:9037deviceSettingsSyncRequest:9033deviceSettingsSyncTick:9109diagRamLine:6178enforceSystemModeExclusivity:9898enforceTempDoMinOdPlusOne:3756esp_task_wdt_isr_user_handler:1215espNowActiveTxNamesList:11522espNowTxDisplayName:11491espNowTxNameForSsrRow:11503eventLogDateFromName:8397eventLogEnsureToday:8514eventLogMaintain:8508eventLogNowTimeStr:8379eventLogPathForToday:8378eventLogPruneRetention:8467eventLogRollBySpiffsPct:8416eventLogSpiffsUsedPct:8405eventLogTodayKey:8362forEach:2158formatValue:12643formsMapBuildConfigValuesJson:8956FPSTR:5108freeMereniHtmlCachesForOte:4528freeWebPageHtmlCaches:4542generateLogsPageContent:10346generateOTEPricesTable:11245generateOTESpotBarsGraph:5781generateResetPageContent:7991generateSpotPricesTable:11121generateSpotPricesTableCompact:11369generujLuxKartyHome:5599generujSpotKartuHome:5866generujTeplotniKartu:5539getCurrentTimeString:3654getEncryptionTypeString:2503getRecommendedBatteryChargePower:3690handleSpiffsZipExport:3448handleWebUrlSave:2924HlaskaRestart:4580hodnoty:9470hour:3642checkSystemHealth:4928importSpiffsFromZipFile:3487initializeRTC:8180initializeSpotSources:778initRGB:1044jsonFinite:5532logEvent:8550loop:18914manageFallbackAPMode:5006Max:3752media:1638mqttApplyClientTimeouts:6888mqttApplySnapshotToGlobals:6923mqttConnectAndSubscribeRuntime:7519mqttCore0Task:7537mqttDelayWithPoll:7509MqttLCDdata:6619mqttLoadTopicsFromSpiffs:6845mqttRuntimePoll:7451mqttServiceFromLoop:7500mqttSnapSeedFromGlobals:6904mqttSubscribeAllTopics:6861mqttTryStartCore0Worker:7582mqttUpdateRgbFromMode:6893mqttWorkerOwnsClient:6879normalizeTempMinMaxParam:3749normalizeTssrBaseUrl:2782normalizeZipName:3159notFound:4075onMqttMessage:7587optimizeBatteryCharging:10876performMemoryCleanup:4905pohotovost:16135predictiveLoadControl:10969prepareNextLocalHeader:3350prepareZipDirectoryStructures:3311processHealthBasedRestartPolicy:18876processor:3850promennych:1543pwmWebApplyOutputNow:3836pwmWebLoadFromSpiffs:3810pwmWebSaveState:3824quickMemoryDefrag:4979read_file:2535readTempMinMaxOrZero:3740rebuildBarvaPageHtmlOnly:4451rebuildBattPageHtmlOnly:4440rebuildMqttPageHtmlOnly:4464rebuildSerialPageHtmlOnly:4502rebuildTeplotaPageHtmlOnly:4418rebuildWebPageHtmlOnly:4515rebuildWifiPageHtmlOnly:4489refreshTssrExportCode:2844regenerateTemperatureForm:11536requestGetParamValue:2708resetPageVariables:4881resetReasonFromCode:8341resetReasonHumanDetail:8305resetReasonHumanDetailFromCode:8360resetReasonHumanTitle:8288resetReasonHumanTitleFromCode:8356resetReasonToStr:8272roby:3707RTC:8159runBatteryOptimization:11047safeDelayWithWDT:1115safeZipToSpiffsPath:3479send:6175sendHtmlChunkedFromOutput3:6198sendHtmlPageChunked:6242sendHtmlTemplateChunked:6251setRGBAlternate:1231setRGBBlink:1223setRGBBlue:1074setRGBBrightness:1269setRGBColor:1053setRGBCyan:1088setRGBEffect:1242setRGBGreen:1072setRGBLime:1101setRGBMagenta:1113setRGBOrange:1094setRGBPink:1103setRGBPurple:1084setRGBRed:1065setRGBTeal:1109setRGBWhite:1092setRGBYellow:1078setup:11766setupSoftAPForFallback:5124showFirmwareUpdateOnDisplays:1452SkladamHtml:6331solarSimAbortToReal:7349solarSimEnforceHoldIfNeeded:7378solarSimGridVEff:7015solarSimHeatAEst:7036solarSimHeatWEst:7028solarSimLoadCfg:7090solarSimLogAppendLine:7191solarSimLogClear:7184solarSimLogDumpCsv:7201solarSimLogDumpTail:7215solarSimLogFlushToSpiffs:7239solarSimLogTick:7248solarSimMuteHeatIfNeeded:7046solarSimSaveCfg:7052solarSimSaveCfgIfDirty:7087spiffsCleanupNonSettingsJunk:2603spiffsCountFiles:2670spiffsEnsureFreeForSettings:2690spiffsFileCRC32:3145spiffsFreeBytes:2592spiffsZkontrolujAOdlozenyRestart:3626Spot_tryGetRTCDate:10577Spot_updateCurrentValuesFromOTE:840spotOteAppendCompactTableRows:5748spotOteChartMinMax:5740spotOteSeriesMinMax:5722SSRRele:7747StavLCD:6813StavLCD3Radek:6557streamSpiffsZip:3373String:5529swapTemperatures:13573syncRTCWithNTP:8201teplEnsureDefaultGridSolarSpiffs:3783teplotaMereniPlatne:7740TeplotaNaLCD:7699teplSpiffsUnset:3776testRTC:8162TestWiFi:5348tivosti:1265topnavThemeCss:2727touchWebActivity:4535tssrPeerConfigured:2828tssrTrackingOn:2832turnOffRGB:1063updateRGBStatus:1276updateRGBStatusAdvanced:1403updateRGBStatusDynamic:1356updateRGBStatusPulsing:1414updateRGBStatusWithBrightness:1335vypisStartTestCidelMereni:11629wdtBcCopy:1140wdtBreadcrumb:1156wdtBreadcrumbClear:1172wdtBreadcrumbReport:1174webDisplayOrEmpty:2884webDisplayTeplota:5522webHtmlCachesIdleTick:4571webHtmlEscape:2878webTeplotaInvalid:5519wifiVratStrankuUlozenoAPak:4712wifiZkontrolujAOdlozenyRestart:4721write_file:3022write_file2:3064ZapninamRelePodleTeploty:7922zipAppendU16:3100zipAppendU32:3106zipCrc32Update:3091zipReadU16:3131zipReadU32:3135zipWriteU16:3115zipWriteU32:3120zobrazAktualniCasNaDisplejich:10590zobrazRTCCasNaDisplejich:10538zu:9963
boot_setup.h 19
bootSetupAktivni:277bootSetupCilUrl:290bootSetupDoplnSafeDefaults:184bootSetupHtmlKonec:337bootSetupHtmlShell:316bootSetupInitMigrace:238bootSetupMaOverenyKlic:162bootSetupMaWifiUdaje:155bootSetupNactiStav:137bootSetupOverIdApi:344bootSetupPoUlozeniWifi:295bootSetupPridejTopnavCss:308bootSetupRegistrujOmezenouKonfiguraci:440bootSetupSestavIdApiHtml:411bootSetupSouborChybi:167bootSetupUlozStav:145bootSetupUrlEncode:111bootSetupVykresliLcd:301bootSetupZapisDefault:176
ui_mode.h 8
appendOdkazy:86uiModeInstallFirstPickGate:111uiModeIsSimple:49uiModeLoadFromSpiffs:57uiModeNeedsFirstPick:56uiModePageShell:118uiModeRegistrujRoutes:144uiModeSave:76
setup_ai.h 12
off:855SAJS:165setupAiApplyMode:215setupAiAttr:303setupAiCurrentModeValue:277setupAiModeLabel:263setupAiMqttConfigured:315setupAiReadEa:285setupAiRegistrujRoutes:391setupAiShellEnd:381setupAiShellStart:339setupAiWriteParam:325
ai_cloud.h 40
aiCloudApplyPlanJson:731aiCloudBiasActive:222aiCloudBiasLogFragment:332aiCloudBuildPayload:641aiCloudBuildPlanUrl:603aiCloudClearSnapKeepStatus:517aiCloudComputeImportCostToday:164aiCloudCopyTrunc:135aiCloudDeviceApiKey:633aiCloudEffectiveHeatBias:229aiCloudEffectiveChargeBias:235aiCloudEmitG4Day:357aiCloudG4Seg:325aiCloudHasBattery:152aiCloudHasGeminiKey:153aiCloudHtmlEscape:1188aiCloudHtmlFullBlock:1205aiCloudHtmlHomeBadge:1359aiCloudHtmlModesStatus:1374aiCloudHtmlOneLine:1329aiCloudHtmlQuota429Help:293aiCloudImportTick:422aiCloudJsonEscape:611aiCloudLoadSettings:522aiCloudMaskKey:186aiCloudNowInHhMmWindow:241aiCloudPlanFresh:473aiCloudPollOnce:845aiCloudRefreshStatusFromSnap:498aiCloudSaveSnap:575aiCloudSoftPwmDelta:264aiCloudStatusColor:208aiCloudStatusLabel:196aiCloudTestGeminiAtGoogle:1030aiCloudTestKeyNow:1117aiCloudTick:1165aiCloudTruncateInPlace:124dne:362millis:1142okno:267
board_ram.h 16
boardCriticalHeap:97boardFree:65boardFreePsram:40boardHasPsram:36boardHtmlCacheIdleMs:117boardHtmlCopyExtra:101boardIsDev:111boardMallocLarge:52boardMinHealthyHeap:93boardOteHeapMargin:103boardPreferOteSpiffs:107boardRamDetect:125boardRamDiagLine:235boardRamId:121boardRamPrint:205reallocate:77
config_store.h 25
configAesCbcCrypt:300configBeginBatch:510configBuildPlaintext:321configClearRam:248configDecryptBlob:381configDeriveAesKey:259configEndBatch:512configEscapeValue:212configFindKeyIndex:243configGetByPath:500configHasPath:494configKeyCount:257configKeyFromPath:205configLoadFromSpiffs:435configParsePlaintext:331configPathIsEa:197configPkcs7Pad:283configPkcs7Unpad:291configPurgeLegacyEaFiles:565configRemoveByPath:559configRetainOnlyKeys:521configSaveToSpiffs:411configSetByPath:540configUnescapeValue:222configWriteEncryptedBlob:351
easun_esp_now.h 50
easunLuxAvgForControl:253easunLuxIsCollecting:279easunNowAfterEspNowInit:508easunNowAllocPeer:377easunNowApplyPowerFromPeers:947easunNowApplyPriorityToTssr:998easunNowApplyStandbyFromPeers:979easunNowApplyTempsFromPeers:891easunNowBridgeFormSsrRows:1136easunNowBridgeLuxTxAvg:232easunNowBridgeLuxTxCount:220easunNowBridgeLuxTxFresh:217easunNowBridgeLuxTxGet:222easunNowBridgeLuxTxSourceName:286easunNowBridgeTempsFresh:1131easunNowBridgeTempsStatusHtml:1149easunNowBuildPageHtml:1205easunNowEnsureBroadcastPeer:486easunNowEnsureUnicastPeer:473easunNowFillPacket:543easunNowFindPeer:369easunNowIAmPrimary:519easunNowImportRelayed:749easunNowInfoTempsCardHtml:1200easunNowLoadPeers:416easunNowLoadSettings:436easunNowLocalSsrCode:513easunNowMacCmp:354easunNowMacStr:358easunNowMyMac:347easunNowPacketHasName:332easunNowPackTempX10:537easunNowParseMac:363easunNowPeerCountFresh:1120easunNowPingMac:726easunNowPmkFp:337easunNowPmkFpMatch:342easunNowPriorityFresh:1068easunNowSavePeers:404easunNowSaveSettings:456easunNowSendAll:731easunNowSendTo:716easunNowShowNeighborInfoBox:1138easunNowSlotHasData:288easunNowStaChannel:463easunNowStartPairing:1116easunNowStoreBridgeLuxTx:293easunNowTick:1072easunNowTryHandle:797lx:562
teploty-esp-now.h 39
addAllTempSendersAsPeers:569addTemperatureSender:2001addTempSender:529aktualizujMereniTeplotDallas:1216buildTempEspNowWifiVerifyHtml:1344debugTempSendersFile:707deinitTemperatureESPNow:687espNowLuxAggregate:342findTempSenderByMAC:473generateTempSenderList:1480initializeTemperatureSensors:1193initTemperatureESPNow:732initTempSendersArray:310isTemperatureESPNowWorking:698isValidMACForESPNow:505loadPMKKey:432loadTempESPNOWMode:1778loadTempSenders:1870LUX12:1309macToString:424mappingToLabel:306NOW:671onTemperatureDataReceive:942printTemperatureStats:2028refreshEspNowFormSsrRowsFromSenders:879resetTemperatureESPNow:675resolveSenderMappedTemperature:287savePMKKey:450saveTempESPNOWMode:1772saveTempSenders:1835setTimeout:147tempEspnowModeToString:1333tempEspNowPeerIfidx:1312tempEspNowPeerWifiChannel:1328tempParseHexStringToPMK:1441tempPmkKeyToBytesString:1428tempPmkKeyToHexString:1420updateGlobalTemperaturesFromMapping:1802updateGlobalTemperaturesFromSSRMapping:1958
spotove_ceny.h 72
applyCezWMaxPwmLimit:295applySolarAmaxPwmLimit:253begin:1450cz:1499getEffectiveSolarW:230Spot_convertEURtoCZK:3184Spot_fetchActualPrice:485Spot_fetchBothSources:2871Spot_fetchDailyPrices:669Spot_fetchEURCZKRate:2918Spot_fetchOTEData:1503Spot_fetchPriceLevel:494Spot_fetchPriceLevelNumber:497Spot_fetchSpotovaelektrinaData:1413Spot_fetchSpotPrices:458Spot_findMinMaxPrices:775Spot_getCnbDateDDMMYYYY:2724Spot_getCurrentDate:1312Spot_getCurrentPriceCzkPerMWh:3198Spot_getEURCZKRate:3101Spot_getExchangeRateInfo:3293Spot_getFveSurplusW:3220Spot_getTomorrowDate:1792Spot_getUserPriceBand:3282Spot_getYesterdayDate:1721Spot_isFveSurplusAllowingGridHeat:3230Spot_isGridHeatAllowed:3256Spot_isWiFiConnected:445Spot_levelStringToCode:59Spot_loadExchangeRateFromCache:2691Spot_oteBuildChartUrl:1422Spot_oteGraphTitleMatchesDate:1432Spot_oteHttpsGet:1453Spot_oteLoadFloatArray96:2775Spot_oteReadStreamFully:2313Spot_oteReadStringFromSPIFFS:2664Spot_oteRemoveOtePriceCacheFilesOnce:2639Spot_oteSaveFloatArray96:2762Spot_oteStreamBodyToSpiffs:2347Spot_oteWriteStringToSPIFFS:2652Spot_parseDailyPrices:675Spot_parseOTEData_applyFromDoc:1899Spot_parseOTEData:2050Spot_parseOTEDataFromHttp:2434Spot_parseOTEDataTomorrow_applyFromDoc:2207Spot_parseOTEDataTomorrow:2295Spot_parseOTEPricesArray:2066Spot_parseOTEQuarterHourPricesArray:2128Spot_printError:446Spot_saveExchangeRateToCache:2678Spot_saveManualEURCZKRate:2736Spot_saveOTECacheToday:2842Spot_saveOTECacheTomorrow:2855Spot_sendDailyStats:1086Spot_sendDailyStatsForToday:1257Spot_sendHourlyData:1040Spot_sendHourlyDataForToday:1200Spot_sendSpotDataToArchive:1168Spot_sendToArchive:974Spot_setArchiveEnabled:1156Spot_setArchivePath:1162Spot_showSourcesStatus:2168Spot_switchToBackupSource:1688Spot_switchToPrimarySource:1699Spot_testBothSources:2196Spot_tryLoadOTECacheToday:2801Spot_tryLoadOTECacheTomorrow:2829Spot_updateCurrentHourValues:506Spot_updateCurrentQuarterHourValues:578Spot_updateCurrentValues:1709Spot_updateExchangeRate:3111Spot_urlEncode:1127
provoz_pruvodce.h 21
PCJS:95provozAppendMiniDiag:219provozApplyProfile:441provozGetParamFloat:467provozGetParamInt:460provozNeedsDistr:143provozNeedsFve:145provozNeedsSpot:144provozNextAfter:147provozPrevBefore:161provozProfileHint:133provozProfileTitle:131provozPruvodceRegistrujRoutes:474provozReadProfile:120provozSaveDistr:403provozSaveFve:432provozSaveSpotPrices:418provozSendPage:472provozShellEnd:211provozShellStart:175provozWriteProfile:127
vypocet01.h 16
ceil:85constrain:982EasunEnergy:161EasunEnergyPwm:150FinalniUpravyARegulacePwmFunkce:1121limit:348LogikaGridNeboSolarNedostatekFunkce:948LogikaSolarPrebytekFunkce:861OvladaniPwmSSR:170pwmCfgClampStep:113pwmCfgKrokMax:82pwmCfgMaxStepPerCycle:95RegulacePwmPodleBaterieFunkce:1005RegulacePwmPodleDistributoraFunkce:1057solarSurplusOkNow:117VypocetSolarSpotrebaRefactored:294
vypocet02.h 9
aiApplySafetyRules:534aiClampPercent:344aiComputeLocalTargetPwm:428aiIsFiniteNumber:218aiIsKeyPowerDataFresh:241aiLimitPwmStep:356aiParsePwmPayload:396aiSafeNonNegative:335aiSafeNumber:323
forms_map.h 1
formsMapBuildJson:135
nastaveni.h 3
nastaveniPruvodcePoUlozeniWifiZApUlozKrok:90provedSmazaniProvoznichNastaveniKeepWifi:51provedSmazaniVsechDatSPIFFSAPZEM:41
pajo.h 4
hFloat:1hInt:11httpGETRequest:42middle:27
TestRezim_WiFi_AP.h 15
internetu:172TestRezim_AutoRecovery:279TestRezim_BackgroundNetworkCheck:215TestRezim_CompleteNetworkCheck:329TestRezim_fullWiFiAPTest:130TestRezim_checkConnectedClients:115TestRezim_isInCriticalOperation:204TestRezim_NetworkDiagnostics:311TestRezim_QuickDNSTest:194TestRezim_QuickInternetTest:176TestRezim_SetupDNSFallback:300TestRezim_setupWiFiAP:15TestRezim_SimpleNetworkTest:339TestRezim_SmartDataSend:247TestRezim_testWebServerAP:56
testovaci_rezim.h 29
loadStaticConfig:668startTest:845TestRezim_AplikujManualniData:163TestRezim_EasunEnergyPwm:904TestRezim_FinalniUpravyARegulacePwmFunkce:1075TestRezim_GenerateHtmlPage:450TestRezim_Init:146TestRezim_JeAktivni:444TestRezim_LogikaGridNeboSolarNedostatekFunkce:988TestRezim_LogikaSolarPrebytekFunkce:908TestRezim_LogujData:219TestRezim_LogujDoSouboru:346TestRezim_NastavBatterySOC:416TestRezim_NastavBatterySOCMin:426TestRezim_NastavBatteryW:409TestRezim_NastavCezW:438TestRezim_NastavLoadW:430TestRezim_NastavOdberWatt:402TestRezim_NastavSolarW:395TestRezim_NastavVychoziHodnoty:138TestRezim_OvladaniPwmSSR:1144TestRezim_RegulacePwmPodleBaterieFunkce:1025TestRezim_RegulacePwmPodleDistributoraFunkce:1043TestRezim_Reset:376TestRezim_Start:361TestRezim_Stop:372TestRezim_Timer:202TestRezim_VypocetSolarSpotrebaRefactored:1104TestRezim_ZmenRychlost:391