Skip to content

docs: Add Hanchu iESS Local BLE inverter setup documentation - #5262

Open
upton68 wants to merge 6 commits into
springfall2008:mainfrom
upton68:docs/hanchu-ble-inverter-setup
Open

upton68 wants to merge 6 commits into
springfall2008:mainfrom
upton68:docs/hanchu-ble-inverter-setup

Conversation

@upton68

@upton68 upton68 commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

Adds a second Hanchu iESS setup path alongside the existing cloud-based
one, using the local Bluetooth (BLE) integration
(https://github.com/upton68/hanchu-ess-ble) instead of the cloud
integration — control happens entirely over BLE with no dependency on
Hanchu cloud connectivity.

New:

  • templates/hanchu_ble.yaml — apps.yaml template for the BLE setup
  • New "Hanchu iESS (Local BLE)" section in inverter-setup.md, covering
    prerequisites, helpers, the bridge script and mid-window automation,
    the derived daily-energy helpers (import/export/load/PV aren't
    natively exposed over BLE, unlike the cloud version), and apps.yaml
    configuration
  • New table row linking the two together

The BLE write path differs from the cloud integration's single-call
iotSet/device_control API — it stages the affected time-slot
entities via standard time.set_value calls, then flushes them in one
BLE connection via a new hanchu_ess_ble.confirm_write service (added
in hanchu-ess-ble v1.4.0, released alongside this documentation).

This has been validated on real hardware, including live overnight
charge/discharge cycles driven entirely by Predbat via this setup,
following several days of confirmed stable BLE signal.

upton68 and others added 5 commits September 27, 2026 08:38
Updated Hanchu iESS documentation to include Local BLE setup and prerequisites, and clarified integration steps for both Local BLE and Cloud versions.
This file contains the Predbat configuration for the Hanchu iESS, detailing setup instructions, inverter definitions, and energy management settings.
…equire hanchu-ess-ble 1.4.1

Predbat writes charge_rate/discharge_rate directly, outside the bridge
script. On BLE those writes are only staged and get flushed by the next
confirm_write, so the inverter's power limits changed on timing alone
(e.g. discharge limit left at 0 after a Hold for car). Point both at
input_number placeholders and document why. Also require hanchu-ess-ble
1.4.1, which fixes confirm_write reporting success for overlapping
flushes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jvw8sZCm3W3cs7Qvp2Zum9
@upton68

upton68 commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

Updated following live testing on my own system:

templates/hanchu_ble.yaml: charge_rate/discharge_rate now point at two placeholder input_number helpers instead of the integration's charge/discharge power limit entities. Predbat writes those rates directly, outside the bridge script. On BLE a direct write is only staged, so it got flushed by whichever confirm_write ran next. That left the inverter's discharge limit stuck at 0 after a "Hold for car". The new helpers are in Step 1, and the trade-off is explained in the Notes.
Prerequisites: now require hanchu-ess-ble v1.4.1 (released today). It fixes a race where overlapping confirm_write calls could report success without writing, which occasionally left a charge slot unapplied at charge/discharge handovers.

No changes to the cloud section. Happy to adjust anything if you'd like it structured differently.

Predbat writes charge_rate/discharge_rate directly. The cloud integration
only stages those writes and the bridge script's device_control sends just
the time-slot keys, so Predbat's rate never applies on its own but stays
pending until the next Write Settings press flushes it. Point both at
input_number placeholders, add them to Step 1 and explain in the Notes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jvw8sZCm3W3cs7Qvp2Zum9
@upton68

upton68 commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

Also applied the same change to the cloud section: templates/hanchu_cloud.yaml now maps charge_rate/discharge_rate to placeholder helpers (added to cloud Step 1, explained in the Notes). On the cloud integration, Predbat's direct rate writes are only staged and never sent by the bridge script, so they'd sit pending until someone next pressed Write Settings.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants