TEDAPI Fallback, v1r Diagnostics, and Firmware Version Improvements
- feat(proxy): TEDAPI SolarOnly fallback mode — when TEDAPI connectivity is lost, the proxy automatically continues serving solar data without interruption. Enabled via
PW_TEDAPI_RECOVERY=yes. (#361)- Background probe/recovery thread polls every
PW_TEDAPI_PROBE_INTERVALseconds (default 30, minimum 5); after 3 consecutive failures the proxy enters SolarOnly fallback - Automatic recovery with exponential backoff (60s → 300s max); hardware-verified: fallback triggered at ~T+165s, recovered in 60s on first attempt against live PW3+follower
/healthand/statsnow include afallback_modeblock (is_fallback_mode,reason,entered_at,recovery_attempts,last_recovery_attempt)POST /health/resetresets fallback state and triggers an immediate recovery attempt
- Background probe/recovery thread polls every
- fix(v1r):
PENDING_VERIFICATIONandUNKNOWN_KEY_IDauth warnings now surface at normal log level — previously requiredPW_DEBUG=yes, leaving users with no indication of key enrollment problems. (#355) - feat(tedapi):
get_firmware_version()refactored onto a unified_get_system_info()/SystemInfomodel — consistent output acrossV2024_06andV2026_06query sets and across basic/v1r transports. (#356) - fix(tedapi): v1r WiFi-fallback responses normalized at the transport boundary — fixes silently empty/incorrect data (e.g. blank firmware version) when LAN→WiFi fallback fires. (#356)
- BREAKING (approved exception):
get_firmware_version(details=True)renamessystem.five→system.systemUpdateandsystem.six→system.deviceType. No known downstream consumers affected. (#356) - fix(proxy): Docker
HEALTHCHECKnow usescurl— priorwget-based check always failed silently on Alpine. (#357) - fix(cli):
Ctrl-Cexits cleanly instead of printing a traceback - Proxy BUILD
t97· Library0.16.2
Contributors
Thanks to the community members who made this release possible:
- @Nexarian — authored the firmware version refactor (#356), bringing
get_firmware_version()to theV2026_06API and unifying theSystemInfomodel across query sets - @cstout1 — reported the Docker
wget: not foundhealthcheck failure (#346) that led to thecurlfix in PR #357 - @jasonacox — coded the v1r WiFi-fallback normalization fix in PR #356, drove the code review on PR #361, and requested the hardware validation run against the live PW3+follower