Skip to content

Releases: jasonacox/Powerwall-Dashboard

v5.0.3 - Grid Outage Fix

24 Jan 06:22
471f6c6

Choose a tag to compare

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 handle None voltage values when grid is down
    • Added None value handling in three-phase voltage calculations to prevent TypeError exceptions
    • Prevents crashes in /api/meters/aggregates endpoint when grid is offline and voltage readings are unavailable
    • Converts None voltage parameters to 0 before 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

Full Changelog: v5.0.2...v5.0.3

v5.0.2 - Dashboard Enhancements

09 Jan 05:25
9dbcf4b

Choose a tag to compare

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.sh that 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

07 Jan 06:44
29dc38f

Choose a tag to compare

What's Changed

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

30 Dec 07:23

Choose a tag to compare

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.
image

New Contributors

Full Changelog: v4.9.0...v5.0.0

v4.9.0 - Performance Improvements

22 Dec 21:02
4fa1e43

Choose a tag to compare

What's Changed

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/v2 endpoints
    • Shared cache optimization: /aggregates and /api/meters/aggregates use same cache key for identical payloads
    • Optimized /csv and /json endpoints 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 /stats endpoint 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_seconds error in graceful degradation system
    • Fixed TypeError in /csv/v2 endpoint: removed invalid force=False parameter from level(), grid_status(), and get_reserve() calls
    • Fixed variable shadowing bug in grid_status() method where type parameter shadowed Python's built-in type() function
    • Renamed type parameter to output_type throughout codebase for consistency and correctness
  • 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 (TestCSVEndpoints class 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

20 Dec 05:08
2386105

Choose a tag to compare

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

04 Dec 06:10
3710e67

Choose a tag to compare

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.sh with 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

18 Nov 04:06
d9221f6

Choose a tag to compare

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.sh standalone 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

10 Aug 02:24
338f92e

Choose a tag to compare

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 setup and verify for v4.8.5 by @jasonacox in #681:
    • Add enhanced log display options to verify.sh: supports --logs and --no-logs flags 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.sh to 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.

New Contributors

Full Changelog: v4.8.4...v4.8.5

v4.8.4 - Cloud and FleetAPI Updates

27 Jul 18:06
00a8b05

Choose a tag to compare

What's Changed

Full Changelog: v4.8.3...v4.8.4