Releases: jasonacox/Powerwall-Dashboard
Releases · jasonacox/Powerwall-Dashboard
v5.0.3 - Grid Outage Fix
What's Changed
- Update to v5.0.3: Fix grid outage handling in pyPowerwall by @jasonacox in #742
pyPowerwall Update
- Update pypowerwall to v0.14.9 - TEDAPI voltage calculation fix for grid outage scenarios - addresses #683
- Fix
compute_LL_voltage()function to handleNonevoltage values when grid is down - Added
Nonevalue handling in three-phase voltage calculations to preventTypeErrorexceptions - Prevents crashes in
/api/meters/aggregatesendpoint when grid is offline and voltage readings are unavailable - Converts
Nonevoltage parameters to0before performing arithmetic operations - Resolves issue where power flow stats were not displayed during real grid outages (Note: "Go off grid" via app did not trigger this issue)
- Added comprehensive unit tests to verify None handling behavior for all voltage scenarios
- Fix
Full Changelog: v5.0.2...v5.0.3
v5.0.2 - Dashboard Enhancements
What's Changed
- Add dynamic color and text to Current State panel by @caubert in #734
- Current State panel now displays descriptive text indicating the flow of power (e.g., "Grid Import", "Grid Export", "Charging Battery", etc.).
- Panel background color dynamically changes based on power flow state for improved visual feedback.
Bug Fixes
- Fix false alarm in
upgrade.shthat incorrectly reported "Grafana environmental settings are outdated" after upgrading to v5.0.0+.
New Contributors
Full Changelog: v5.0.1...v5.0.2
v5.0.1 - Firmware 25.42.2+ Support
What's Changed
- v5.0.1 - Firmware 25.42.2+ Support by @jasonacox in #730
pyPowerwall Update
- Update pypowerwall to v0.14.6 - Firmware 25.42.2+ support for gzip-compressed TEDAPI responses.
- Add gzip decompression support for firmware 25.42.2+ TEDAPI responses - Fix by @bolagnaise in jasonacox/pypowerwall#251
- Gateway firmware 25.42.2 and later returns gzip-compressed responses for DIN and other TEDAPI endpoints
- Added
decompress_response()helper function to handle both compressed and uncompressed responses transparently - Updated all TEDAPI methods (
get_din(),get_config(),get_status(),get_device_controller(),get_firmware_version(),get_components(),get_battery_block()) to decompress responses - Added error handling for UnicodeDecodeError in DIN decode operation to gracefully handle corrupted or invalid responses
- Maintains backward compatibility with older firmware versions that return uncompressed responses
Full Changelog: v5.0.0...v5.0.1
v5.0.0 - Grafana Upgrade
What's Changed
Major Updates
- Grafana Upgrade to v12.3: Major version upgrade from Grafana 9.1.2 to 12.3.1, bringing significant improvements in performance, security, and features.
- Enhanced data source proxy with improved connection handling (hopefully no more random panel errors)
- Better query performance and visualization capabilities
- Updated dashboard compatibility and new visualization options
- Improved security with latest upstream patches
- PR initiated by @NikolayActionEngine in #596
Breaking Changes
Dashboards
- There is a new dashboard.json with this release. It will need to be imported as part of this upgrade to Grafana 12. The new dashboard will adjust the appearance to look similar to the Grafana 9 setup, including centered panel titles, a revised cost savings barchart and a replaced current state panel (the old one is deprecated and will not work with Grafana 12).
- Customized and existing dashboard panels will likely need updates for compatibility with Grafana 12.
New Contributors
- @NikolayActionEngine made their first contribution in #596
Full Changelog: v4.9.0...v5.0.0
v4.9.0 - Performance Improvements
What's Changed
- v4.9.0 - Performance Improvements by @jasonacox in #721
Proxy t86 (20 Dec 2025)
This version introduces the pypowerwall proxy t86 based on pypowerwall v0.14.5. Optimizations are added for TEDAPI and should help with stability and performance for Powerwall 3 owners.
- Performance Caching System:
- Added comprehensive performance caching layer for high-impact API routes
- Implemented
cached_route_handler()pattern for consistent cache management across endpoints - Added performance caching to:
/aggregates,/api/meters/aggregates,/vitals,/strings,/temps/pw,/alerts/pw,/freq,/pod,/json,/csv,/csv/v2endpoints - Shared cache optimization:
/aggregatesand/api/meters/aggregatesuse same cache key for identical payloads - Optimized
/csvand/jsonendpoints from 9 API calls to 6 calls (33% reduction) using aggregates consolidation - Eliminated 400-600ms overhead from redundant
get_components()fallback calls - Typical performance improvements: 99.6% faster cached responses (764ms → 2.9ms for
/aggregates) - Cache memory monitoring added to
/statsendpoint with detailed memory usage breakdown - Average overall response time improvement: 58% reduction (165.7ms → 70.2ms)
Performance Metrics Comparison:
| API Route | Before (ms) | After (ms) | Improvement | Usage Count | Impact Reduction |
|---|---|---|---|---|---|
/api/meters/aggregates |
821.5 | 151.3 | 81.6% ⚡ | 7,992 | 5,355 seconds saved |
/aggregates |
764.8 | 150.7 | 80.3% ⚡ | 3,880 | 2,383 seconds saved |
/strings |
545.7 | 37.3 | 93.2% ⚡ | 3,945 | 2,006 seconds saved |
/vitals |
339.3 | 33.9 | 90.0% ⚡ | 3,946 | 1,205 seconds saved |
/alerts/pw |
382.9 | 87.8 | 77.1% 🚀 | 3,881 | 1,145 seconds saved |
/temps/pw |
266.0 | 253.6 | 4.7% ✅ | 3,880 | 48 seconds saved |
Total Impact Reduction: ~12,142 seconds (3.4 hours) of response time saved per 8-hour period
-
Performance Testing Tool:
- Added perf_test.py script for comprehensive API performance testing and analysis
- Tests 27 production API routes with impact scoring (response_time × usage_frequency)
- Provides min/max/average response times with color-coded performance indicators
-
Bug Fixes:
- Fixed undefined variable
cache_ttl_secondserror in graceful degradation system - Fixed TypeError in
/csv/v2endpoint: removed invalidforce=Falseparameter fromlevel(),grid_status(), andget_reserve()calls - Fixed variable shadowing bug in
grid_status()method wheretypeparameter shadowed Python's built-intype()function - Renamed
typeparameter tooutput_typethroughout codebase for consistency and correctness
- Fixed undefined variable
-
Code Quality & Maintainability:
- Centralized cache logic in reusable helper functions for improved consistency
- Improved error handling and logging in
safe_pw_call()wrapper - Added unit tests for CSV endpoints (
TestCSVEndpointsclass with 7 test cases) - Enhanced error tracking with network error summaries and endpoint statistics
- Enhanced documentation with comprehensive performance testing guide
Full Changelog: v4.8.8...v4.9.0
v4.8.8 - Tesla-History Fix
What's Changed
- Revise tesla-history script backup event history retrieval due to Tesla API changes by @mcbirse in #717 - addresses #714
- Update tesla-history to use embedded TeslaPy component of pypowerwall (now required) - install by running
pip install pypowerwall - Revise location detection in setup and weather script for improved error handling
Full Changelog: v4.8.7...v4.8.8
v4.8.7 - PW3 Expansion Pack Fix
What's Changed
- Update pvoutput.py to Handle Null Weather Data by @cwagz in #709
- v4.8.7 - PW3 Expansion Pack Fix by @jasonacox in #712
- Update pypowerwall to v0.14.4 - See updates: https://github.com/jasonacox/pypowerwall/releases/tag/v0.14.4 with Powerwall 3 expansion pack energy data fixes and battery degradation metrics.
- Fix expansion pack energy data by processing all BMS components in TEDAPI responses - improves data accuracy for systems with PW3 expansion packs by @rlerdorf in jasonacox/pypowerwall#239
- Add Powerwall battery degradation (capacity loss) tracking and visualization to dashboard.
- Enhanced timezone validation in
setup.shwith improved POSIX TZ string detection to reject invalid inputs like single digits. - Add timezone browsing feature with filtering support for easier timezone selection during setup.
Full Changelog: v4.8.6...v4.8.7
v4.8.6 - File-Limit Fixes
What's Changed
- Add ulimits configuration to InfluxDB service to resolve "too many open files" errors by setting soft and hard limits to 65536 by @cwagz in #705
- Add enhanced timezone validation with interactive browse feature (
?at prompt) supporting filters and multi-level IANA zones (e.g.,America/Argentina/Buenos_Aires) and POSIX TZ strings (e.g.,GMT+5). - Add
timezone-test.shstandalone test script for timezone validation with interactive and non-interactive modes. - Minor configuration file changes by @BuongiornoTexas in #706
- Quote GF_INSTALL_PLUGINS value in grafana.env.sample by @rlerdorf in #703
New Contributors
Full Changelog: v4.8.5...v4.8.6
v4.8.5 - Setup and Verify
What's Changed
- Add switch-mode tool and configuration files for Powerwall automation by @goodoldme in #674 and tools README by @goodoldme in #676
- Updates to
setupandverifyfor v4.8.5 by @jasonacox in #681:- Add enhanced log display options to
verify.sh: supports--logsand--no-logsflags to control log output, and interactive prompt for log viewing. Log output is now cleaner and only shown when requested. - Add input validation for timezone entry in
setup.shto prevent invalid/corrupt values in configuration files. Timezone is now checked against system zoneinfo and format before acceptance. - Update pypowerwall to v0.14.1 - See updates: https://github.com/jasonacox/pypowerwall/releases/tag/v0.14.1 for error handling updates.
- Add enhanced log display options to
New Contributors
- @goodoldme made their first contribution in #674
Full Changelog: v4.8.4...v4.8.5
v4.8.4 - Cloud and FleetAPI Updates
What's Changed
- Cloud and FleetAPI Updates by @jasonacox in #671
- Update pypowerwall to v0.14.0 - See updates: https://github.com/jasonacox/pypowerwall/releases/tag/v0.14.0 with Cloud updates to accommodate Tesla API changes (embedded TeslaPy patch) and fix a bug in FleetAPI for multi-site installations.
Full Changelog: v4.8.3...v4.8.4