Pre-release 1.4.0-pre1 π
Pre-release
Pre-release
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_bypassper 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_plusin 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 ornone-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_socon the Zendure Manager: weighted SOC across all online devices.delta_voltageper battery: max cell voltage minus min cell voltage. A sustained value above ~0.15 V over an extended period may indicate cell imbalance.roundtrip_efficiencyper device: lifetimeaggrDischarge / aggrCharge Γ 100.
π οΈ Other fixes and improvements
- Credit charge-group homeInput only up to the battery's accepted input by @ahocevar in #1379
- Fix power charge logic by @harrymayr in #1359
- Fix Zendure initialization logic in api.py by @harrymayr in #1339
- Revert charge kickstart to 50 W by @zoic21 in #1396
- Fixes startup issue by @zaubara in #1399
- Correct typo
optinsβoptionsby @devTechi in #1393 - Fix typo in comment by @zoic21 in #1425
π Translations
- Polish translations by @igosoft in #1402
- Update output limit translation in German by @panzli in #1429
π§ 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
- @ahocevar made their first contribution in #1379
- @devTechi made their first contribution in #1392
- @igosoft made their first contribution in #1402
- @panzli made their first contribution in #1429
Full Changelog: 1.3.1...1.4.0-pre1