Skip to content

Add Solarbank 3 E2700 Pro support - #47

Draft
MrChurch wants to merge 1 commit into
flip-dots:mainfrom
MrChurch:agent/solarbank3-e2700-pro
Draft

Add Solarbank 3 E2700 Pro support#47
MrChurch wants to merge 1 commit into
flip-dots:mainfrom
MrChurch:agent/solarbank3-e2700-pro

Conversation

@MrChurch

Copy link
Copy Markdown

Summary

Add direct BLE support for the Solarbank 3 E2700 Pro (A17C5), tested with firmware 1.0.7.1.

This PR intentionally covers the device library only. It does not add Home Assistant entities, system-level Solarbank aggregation, cloud metadata handling, or other integration-specific behavior.

What changed

  • Add the Solarbank 3 secure-conference protocol helpers:
    • dynamic secp256r1 ECDH per connection
    • session AES-GCM authentication with the captured AAD
    • authenticated 4022 account authentication
    • authenticated 4027 client-security authentication
    • encrypted 4040 telemetry request
  • Add Solarbank 3 telemetry decoding for the observed A17C5 fields, including typed float values.
  • Add device-level controls:
    • set_schedule(power_w): seven-day 405e schedule, 0-1200 W in 50 W steps
    • set_max_load(max_load_w): 4080 values 350, 600, 800 and 1200 W
  • Accept the 03000f encrypted session packet pattern used by the Solarbank 3.
  • Document the required explicit Anker account ID constructor argument.
  • Add protocol, telemetry mapping and mock end-to-end authentication tests.

Validation

  • 10 targeted tests pass (tests/test_solarbank3.py and tests/test_prime.py).
  • Targeted Ruff F/E checks pass for all changed Python files.
  • Python bytecode compilation passes for SolixBLE and tests.
  • The device-level protocol was verified against an A17C5 running firmware 1.0.7.1.

The full existing test suite still has two timing-sensitive automatic reconnect failures in the pre-existing C300/Prime tests; they reproduce independently of the Solarbank 3 tests and are unrelated to this change.

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.

1 participant