Skip to content

v1.0.7

Choose a tag to compare

@github-actions github-actions released this 20 Apr 09:43
54c4a36

Added

  • Overview card box customisation: show/hide, reorder, relabel, and re-icon boxes (solar, house, grid, battery) via the card editor or YAML boxes config. Responsive grid adapts layout for 1, 3, or 4 visible boxes.
  • Overview card click-to-history: tapping any energy flow node opens the HA entity history dialog. Sub-details (cell temperature, PV strings, grid voltage/frequency, residual energy) are individually clickable for granular history access.
  • Cold-temperature BMS charge curtailment: when BMS battery temperature is below 16°C, the maximum charge power is capped at 80A × live battery voltage (~4kW at 50V). The BMS physically limits charge current — the system now anticipates this to avoid over-requesting. Exposed via charge_effective_max_power_w sensor attribute.
  • BMS temperature on overview card: shows "Cell 15.5°C · Inv 25.3°C" in the battery node, clearly distinguishing BMS cell temperature from the inverter sensor temperature.
  • Two-tier circuit breaker (C-024): 3 consecutive adapter errors open the circuit breaker and hold position; 5 more ticks without recovery abort the session to self-use.
  • Automatic session replay after outage: when the circuit breaker aborts a session and the time window is still open, the integration probes the API every 5 minutes and restarts on recovery (up to 6 attempts).
  • Proactive schedule conflict detection: periodic check warns about unmanaged schedule modes (e.g. Backup) before they block a session start.
  • Forecast chart card (foxess-forecast-card): SVG-based card showing projected SoC trajectory with actual history overlay, target/min SoC markers.
  • Session history timeline card (foxess-history-card): 24h horizontal timeline with coloured session bars and SoC trace overlay.
  • Action buttons on control card: cancel (with double-tap confirmation), charge, and discharge buttons with inline parameter forms.
  • Visual card editors: both control and overview cards support HA's visual card editor.
  • Init debug log sensor (sensor.foxess_init_debug_log): non-wrapping buffer preserving the first 75 log messages after startup, complementing the rolling debug log.
  • INFO-level rolling log sensor (sensor.foxess_info_log): captures only INFO+ messages in a rolling buffer of 75 entries, retaining operational context much longer than the DEBUG log.
  • BMS battery temperature sensor (sensor.foxess_bms_battery_temperature): exposes the min cell temperature from the BMS via the FoxESS web portal API.
  • Troubleshooting guide, Contributing guide, and FAQ documentation.
  • Performance regression gate: CI job testing algorithm calculation time and AST scan for sync I/O in async functions.

Fixed

  • BMS temperature reliability: resolved multiple issues preventing BMS temperature from working — correct endpoint discovery (GET /dew/v0/device/detail), compound battery ID persistence, web session token handling, fetch timing during WebSocket operation, and value preservation on transient server failures.
  • Discharge power sensor oscillates: get_actual_discharge_power_w now correctly returns 0 when the battery isn't discharging (solar > load) instead of falling back to the target power.
  • Discharge target_power_w missing until first tick: attribute now set at session creation and deferred start.
  • Control card form inputs reset during typing: state updates triggered full card re-renders, clearing user input. Now uses real-time input event listeners with post-render DOM restore.
  • Discharge circuit breaker unreliable: pacing loop now calls the adapter every tick, matching the charge path, so the circuit breaker can detect steady-state failures.
  • Log sensor entities unnamed: added explicit _attr_name so entities register with correct names.
  • Blocking I/O on event loop: WASM bytes pre-read at module import time; Module constructed from memory.
  • Web session token expiry: async_get and async_post detect auth errors (errno 41808/41809) and retry once after re-authenticating.

Improved

  • HA Integration Quality Scale: Bronze 18/18, Silver 10/10, Gold 19/21, Platinum 3/3. Includes ConfigEntryNotReady, repair issues, diagnostics, entity categories, display precision, reauthentication, icons.json, entry.runtime_data, and py.typed.
  • Typed runtime data: entry.runtime_data stores FoxESSEntryData instead of untyped dict. FoxESSControlData bridge layer preserves backward compatibility.
  • HA-managed aiohttp session: web portal operations use HA's shared HTTP session for proper SSL, proxy, and lifecycle management.
  • E2E test infrastructure: deterministic waits replace all sleeps, robust page reload, expanded cloud/entity parametrization, fault recovery tests, 796 total tests (670 unit + 126 E2E).
  • Migration guide rewritten: recommends clean install with guidance for cleaning up orphaned entities.