Skip to content

Releases

v2.8.2

Choose a tag to compare

@aistuartai aistuartai released this 25 Oct 10:51

⚠️ Important fixes

  • Peak Control was switched the wrong way round. Confirming Peak Control "enabled" from Home Assistant turned it off on the inverter (and "disabled" turned it on). Peak and Load Control use 0 = on, the opposite of the TOU switches; this is now correct and confirmed on a Cygni. If you confirmed Peak Control from HA with an earlier version, check it in the Dyness app. Load Control follows the same documented convention but has not been verified on hardware.
  • TOU power is limited to 2,000 W. Dyness now rejects TOU group power above 2,000 W ("Request parameter exception") — the limit in their API documentation, now enforced on their side. The power slider stops at 2,000 W, Stage reports values that are too high (including ones saved by earlier versions), and the error message explains the cause. Set faster charge rates in the Dyness app. Automations that set TOU power above 2,000 W will fail — keep them at or below 2,000 W.

Other

  • The set_tou_schedule action description documents the HH:mm and 2,000 W rules.
  • README updated.

v2.8.1

Choose a tag to compare

@aistuartai aistuartai released this 23 Oct 02:12

Fixes

  • Grid Status shows "Off Grid" during a grid outage. The inverter reports status code 2 when the grid is lost; it was shown as a bare "2".

Documentation

  • README rewritten: it now starts with what the integration does, supported devices (monitoring vs control), requirements, installation, configuration, every control, the set_tou_schedule action, tips and troubleshooting.

No other changes from 2.8.0. If you are coming from 2.7.x, read the 2.8.0 release notes first — Home Assistant 2025.2 or newer is required.

v2.8.0

Choose a tag to compare

@aistuartai aistuartai released this 22 Oct 23:51

Requires Home Assistant 2025.2 or newer.

Fixes

  • Peak Control / Load Control sliders now work. Changing Peak Trigger SOC, Peak Power, Relay Close/Open SOC or PV Threshold in the UI usually had no effect on what Confirm sent (the settings were registered on two platforms and the wrong copy was read). Re-check those values before your next Confirm.
  • Nine duplicate entities removed automatically — nameless number.<device>[_2-4] and time.<device>[_2-5] entities older versions created on the wrong platform. Check dashboards/automations if you referenced them.
  • No more periodic "unavailable". Each API request now times out after 20 s; a slow Dyness endpoint only skips its own data for that cycle instead of failing the whole update.
  • BMS Communication Status now reads Normal on a healthy battery (it was inverted).
  • Battery Module Count includes every cluster (e.g. 8 on a 2 × 4 Cygni, was 4).
  • Meter Type 0 now shows Not Connected.
  • "Power Limit Active" is now "Export Limit" (Enabled / Disabled — whether the export limit is switched on). Existing installs keep their entity id.
  • Peak Control power can be set in 10 W steps (was 100 W).

Improvements

  • Drift detection: the on/off-grid discharge depth settings show what the inverter actually reports (inverter_value, in_sync), and the Battery Stage preview flags values changed in the Dyness app.
  • set_tou_schedule is registered once, accepts an optional config_entry_id (only needed with more than one device) and rejects times that are not HH:mm.
  • Moved off deprecated Home Assistant APIs (async_timeout, hass.data, FlowResult); manifest cleaned up for hassfest.

Under the hood

  • New automated test suite (pytest-homeassistant-custom-component) with real, de-identified API fixtures and synthetic data for every supported Dyness model; GitHub Actions runs tests, ruff, hassfest and HACS validation on every push.
  • Integration split into api, payloads, parsers and const modules with no behaviour change (verified by full data snapshots).

v2.7.3

Choose a tag to compare

@aistuartai aistuartai released this 06 Jul 05:55

v2.7.3

  • Fixed hardcoded repo URLs (README, manifest documentation/issue_tracker) after the repo was renamed to Dyness-Inverter-Control
  • New icon matching Dyness's brand style (gradient "D" mark)

v2.7.2

Choose a tag to compare

@aistuartai aistuartai released this 05 Jul 23:05

v2.7.2

  • TOU Depth of Discharge and Max Charge SOC number entities now step by 1% (was 5%)
  • Renamed to Dyness Inverter Control (was "Dyness Battery - Cygni Control")
  • Manifest documentation/issue tracker now point at this repo instead of upstream
  • Refreshed TOU and Settings dashboard screenshots

v2.7.1 Interval fix

Choose a tag to compare

@aistuartai aistuartai released this 21 Jun 01:38

Fix for update inteval

v2.7.0 — Configurable Polling Interval

Choose a tag to compare

@aistuartai aistuartai released this 21 Jun 01:27

v2.7.0 — Configurable Polling Interval
What's new
Polling interval is now configurable — set how often HA polls the Dyness cloud API at setup, or change it any time via Settings → Integrations → Dyness Battery → Configure (no HA restart needed).

Interval Notes
2 min Aggressive — monitor logs for 429 errors
3 min Recommended for 1 module
5 min Default — no change from previous versions
10 min Conservative
15 min Minimum recommended for 3+ modules
With 3+ battery modules the interval is automatically raised to 10 or 15 min regardless of your setting, to stay within the Dyness API rate limit (~60 calls/hour).

Upgrading from v2.6.x
No action required. Default remains 5 minutes — existing installs are unaffected. To use a faster interval, go to Settings → Integrations → Dyness Battery → Configure after updating.

v2.6.1 - TOU power limit fix

Choose a tag to compare

@aistuartai aistuartai released this 18 Jun 03:12
  • Fix TOU power max from 2000W to 10000W (supports 10kW inverters)

v2.6.0 - Battery & Advanced Settings

Choose a tag to compare

@aistuartai aistuartai released this 18 Jun 02:38

New Settings Entities

Battery Settings (SetBatterySetting)

  • On-Grid Discharge Depth
  • Off-Grid Discharge Depth
  • On-Grid Charge Limit
  • Off-Grid Charge Limit

Peak Control (SetPeakControlSetting) — enable via 'Peak Control Supported' switch

  • Enable/disable peak shaving
  • Trigger SOC, time window, power limit

Load Control (SetLoadControlSetting) — enable via 'Load Control Supported' switch

  • Load relay switch, force close schedule, SOC thresholds, PV threshold

Generator — 'Generator Connected' switch placeholder for future use

All use the same two-step Stage and Confirm pattern. Feature-gated sections are blocked unless the relevant Supported switch is enabled.

v2.5.7

Choose a tag to compare

@aistuartai aistuartai released this 18 Jun 01:34

Allow staging and applying a TOU schedule with all groups disabled.