Skip to content

v9.6.3

Choose a tag to compare

@johanzander johanzander released this 25 Jun 20:38
· 298 commits to main since this release
8a9a712

Fixed

  • Dashboard hourly view returned 500_aggregate_quarterly_to_hourly was never updated when observedIntent was added to APIDashboardHourlyData in 9.6.2, so every call to GET /api/dashboard?resolution=hourly crashed with a missing required argument.
  • Inverter platform badge always showed "SolaX Modbus"InverterStatusDashboard.tsx compared platform against legacy short strings (growatt_min, growatt_sph, solax) that never matched the actual API values (growatt_server_min, growatt_server_sph, etc.), so every user fell through to the else branch and saw "SolaX Modbus". String matching is updated to the current API values. (#60)
  • Growatt SPH TOU intervals rendered "Segment #undefined"GrowattSphController.build_schedule built tou_intervals without segment_id or is_default fields. The frontend template assumed both were always present, causing isDefault to render as falsy and the segment label to show as undefined. Both fields are now included. (#60)
  • AI Analyst returned 404 errors on deprecated model IDs — The AI Analyst feature used claude-sonnet-4-20250514 and claude-opus-4-20250514, the Claude 4.0 launch IDs from May 2025. Anthropic deprecated these IDs (retirement date June 15 2026), causing 404 errors for all users. Updated to claude-sonnet-4-6 and claude-opus-4-8. (#180)
  • EnergyFlowCards and SystemStatusCard stayed frozen between refreshes — Both components called useDashboardData() without a refresh interval, so they fetched only on mount. The main dashboard page polls every 60 s but the cards remained stale. Both now pass a 60 s interval, staying in sync with the dashboard cadence. (#179)
  • Energy Prediction health check validates active consumption strategy — The health check was hardcoded to validate get_estimated_consumption (the sensor strategy sensor) regardless of which strategy was configured, producing false-positive warnings for users running fixed, influxdb_7d_avg, or ha_statistics. The check now only validates get_estimated_consumption when sensor is the active strategy; solar forecast validation is unchanged. (#160)
  • Nord Pool HACS continental areas mapped to Norway — The entity-id regex in _parse_nordpool_area_from_entity_id only matched original Nord Pool members (SE/NO/DK/FI/EE/LT/LV). HACS users with continental area codes (NL, BE, DE, DE-LU, FR, AT, PL) got None from the parser; the raw.upper() fallback produced a long string starting with "NO", so _hints_from_nordpool_area read the "NO" prefix and returned Norwegian krone instead of the correct currency. The regex is extended to cover all continental areas. (#171)
  • Nord Pool Currency field always read-only in UI — Both Nord Pool provider variants rendered the Currency input with readOnly: true unconditionally, preventing users from correcting a wrong auto-detected currency. The field is now editable when area or currency detection has not produced a value. (#171)
  • Next-day schedule timestamps stamped with today's date — The prepare_next_day path set optimization_period=0 and then called period_index_to_timestamp(0..95), which anchors index 0 to today. Period timestamps in the next-day schedule were therefore labeled YYYY-MM-DD (today) HH:MM instead of YYYY-MM-DD (tomorrow) HH:MM. _add_timestamps_to_period_data now accepts a next_day flag that offsets the period index by today's period count before timestamp conversion, so all periods resolve to tomorrow's date. (#155)

Refactored

  • Unified prepare_next_day and extended-horizon data paths_gather_optimization_data previously had two independent branches that each fetched tomorrow's solar forecast and the consumption forecast separately. Any bug had to be fixed twice. The two branches now share a single fetch stage (_fetch_tomorrow_solar_forecast helper + cache-first consumption fetch) before diverging only for array-building. The 23:55 next-day publish and the rolling hourly run behave identically to before; only the duplication is removed. (#157)