HA expects translations at custom_components/<domain>/translations/en.json
not at the repo root.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Use write_gatt_char with response=True (Write With Response) — many BMS
firmwares ignore Write Without Response packets
- Add 0.5s delay after start_notify before sending first command to avoid
race where BMS hasn't registered the notification subscription yet
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Don't connect eagerly in async_setup — let the first coordinator poll
handle it. If the BMS is out of range at startup, UpdateFailed becomes
ConfigEntryNotReady and HA retries automatically instead of crashing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use async_ble_device_from_address() to resolve the BMS through whichever
adapter (local or ESPHome proxy) can reach it, instead of connecting by
raw MAC address directly. BleakClient now receives a BLEDevice object.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>