Skip to content

Pre-release 1.4.0-pre1 🌞

Pre-release
Pre-release

Choose a tag to compare

@FireSon FireSon released this 30 Jun 00:02

Pre-release 1.4.0-pre1 🌞

New device support for the SolarFlow 4000 AC+, three new sensors (global SOC, battery voltage delta, round-trip efficiency), and a batch of bug fixes accumulated since 1.3.1. Please test before the stable 1.4.0 tag goes out.

πŸ†• New device

  • SolarFlow 4000 AC+ support added.

⚠️ Notes for users

  • SF2400AC and SF2400AC+ in the same setup: this release resolves the unique_id collision that silently dropped the second device's entities when both kept their Zendure-default names. Existing entities for the SF2400AC+ will be replaced with new ones using a ..._plus_... slug after upgrade; the previous entries stay in the registry with their history intact but stop updating. You can safely delete the orphaned old entities from the entity registry.
  • Multi-device setups with SOCFULL bypass: PR #1422 fixes a regression where one SOCFULL device trickling a few watts to home caused an actively-charging sibling to cycle between 0 W and full power every ~60 s. If you experienced this pattern, please confirm it is resolved.

🩹 Critical fixes

  • Cap discharge_bypass per device by @zoic21 in #1422 β€” fixes the charge cycling regression of the #1151 fix.
  • SF2400AC+ no-start fix (kickstart walk introduced in 192bf64, charge-side completed by @zoic21 in #1434) β€” when the device fails to latch on the first start command, the integration walks the input/output limit by 4 W per tick (capped at 2 Γ— POWER_START) until the device starts drawing power. Replaces the random-jitter approach proposed in #1363.
  • Keep AC relay in input mode when smart_charging has no surplus by @zoic21 in #1427 β€” eliminates AC relay flap between input and output on every positive P1 fluctuation while charging.
  • Substitute + with _plus in snakecase (c603722) β€” prevents unique_id collision between SF2400AC and SF2400AC+ devices.
  • Fix p1 matching when SOCFULL and grid reverse disabled by @zaubara in #1296
  • Hub and ACE fixes by @harrymayr in #1287 β€” removes AC charge capability from HUB family (which doesn't support it), adds UPS pack_state for ACE 1500.
  • Register battery entities immediately on first packData by @devTechi in #1392 β€” batteries appearing on first HTTP-failed poll are no longer invisible until the next 60-second cycle.
  • Entity registry self-healing (eec95df) β€” stale entries with the wrong domain or none-typed entries are now cleaned up automatically on integration startup, no manual migration needed.

✨ New sensors

  • Global SOC, battery voltage delta, round-trip efficiency by @zoic21 in #1426
    • global_soc on the Zendure Manager: weighted SOC across all online devices.
    • delta_voltage per battery: max cell voltage minus min cell voltage. A sustained value above ~0.15 V over an extended period may indicate cell imbalance.
    • roundtrip_efficiency per device: lifetime aggrDischarge / aggrCharge Γ— 100.

πŸ› οΈ Other fixes and improvements

🌐 Translations

πŸ”§ Build / dependencies

  • Bump ruff from 0.15.12 to 0.15.13 (#1384)
  • Bump ruff from 0.15.13 to 0.15.14 (#1401)
  • Bump ruff from 0.15.14 to 0.15.20 (#1462)
  • Update bleak-retry-connector requirement (#1400)
  • Bump actions/checkout from 6 to 7 (#1448)
  • Update pip requirement (#1367)

πŸ‘‹ New contributors

Full Changelog: 1.3.1...1.4.0-pre1