BMS_BLE-HA icon indicating copy to clipboard operation
BMS_BLE-HA copied to clipboard

Add new DCHOUSE pattern

Open GG71 opened this issue 2 months ago • 9 comments

Hi all,

I bought a new DC HOUSE 12V 100Ah battery. The BMS has BT and temperature management.

However, the device name does not match the search pattern "DCHOUSE":

{"name":"DCH19A1","address":"F2:C2:95:6E:19:A1","rssi":-78,"manufacturer_data":{"49906":"956e19a1"},"service_data":{},"service_uuids":["0000ff00-0000-1000-8000-00805f9b34fb","00000001-0000-1000-8000-00805f9b34fb"],"source":"D8:3A:DD:36:92:E4","connectable":true,"time":1762076220.8153749,"tx_power":null,"raw":"020106030200ff0303010007fff2c2956e19a1080944434831394131"}

Is it possible to extend the device list? Thanks!

Additional context

Home Assistant

Installation method Home Assistant OS Core 2025.10.4 Supervisor 2025.10.0 Operating System 15.0 Frontend 20251001.4

BLE Battery Management System (BMS) update

Up-to-date Installed version 2.0.0 Latest version 2.0.0

2 connected BT devices (Raspberry Pi max 5): Image VE.Direct Smart is also BT-LE connecton by Victron Energy HACS.

GG71 avatar Nov 02 '25 09:11 GG71

service_uuid: "0000ff00-0000-1000-8000-00805f9b34fb" seems to be already supported:

Image

Is that enough?

The readme says about supported devices:

DCHOUSE batteries (show up as DCHOUSE…)

and my device name is DCH19A1.

GG71 avatar Nov 02 '25 11:11 GG71

Is that enough?

No, please install the branch linked to this issue (see column on the right under development) via manual install and see if it fixes the issue? If you could provide me a debug log for final check it would be very helpful.

Thanks, Patrick

patman15 avatar Nov 02 '25 19:11 patman15

Hi Patrick,

I installed the latest pre-releas "2.0.1-beta.2" and applied the changes from the branch:

...
"requirements": [
  "aiobmsble @ git+https://github.com/patman15/aiobmsble.git@feat-super-b"
]
...

After a reboot the debug log contains some sensor-specific errors, but nothing from bms_ble.

Do you have any other recommendations?

Thanks, George

config_entry-hacs-01JPTN7774X30X71VVVRZ2YPEF.json home-assistant_hacs_2025-11-02T20-41-28.649Z.log

GG71 avatar Nov 02 '25 21:11 GG71

Do you have any other recommendations?

Well as mention in my previous message, please install the branch https://github.com/patman15/BMS_BLE-HA/tree/531-add-new-dchouse-pattern via manual install.

patman15 avatar Nov 02 '25 23:11 patman15

Hi Patrick,

I had trouble transferring the files, but I figured it out. After re-install and reboot:

Image

Unfortunately, the logs are lost. I will try to record them again.

GG71 avatar Nov 03 '25 21:11 GG71


2025-11-03 22:21:21.757 ERROR (MainThread) [custom_components.bms_ble] Unexpected error fetching DCH19A1 data
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/bleak_retry_connector/__init__.py", line 474, in establish_connection
    await client.connect(
    ...<2 lines>...
    )
  File "/usr/local/lib/python3.13/site-packages/habluetooth/wrappers.py", line 310, in connect
    wrapped_backend = self._async_get_best_available_backend_and_device(manager)
  File "/usr/local/lib/python3.13/site-packages/habluetooth/wrappers.py", line 501, in _async_get_best_available_backend_and_device
    raise BleakError(
    ...<2 lines>...
    )
bleak.exc.BleakError: No backend with an available connection slot that can reach address F2:C2:95:6E:19:A1 was found
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 331, in __wrap_async_setup
    await self._async_setup()
  File "/config/custom_components/bms_ble/coordinator.py", line 114, in _async_setup
    bms_info: Final[BMSInfo] = await self._device.device_info()
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiobmsble/basebms.py", line 153, in device_info
    await self._connect()
  File "/usr/local/lib/python3.13/site-packages/aiobmsble/basebms.py", line 338, in _connect
    self._client = await establish_connection(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/bleak_retry_connector/__init__.py", line 582, in establish_connection
    _raise_if_needed(name, device.address, exc)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/bleak_retry_connector/__init__.py", line 433, in _raise_if_needed
    raise BleakOutOfConnectionSlotsError(
        f"{msg}: {OUT_OF_SLOTS_ADVICE}"
    ) from exc
bleak_retry_connector.BleakOutOfConnectionSlotsError: F2:C2:95:6E:19:A1 - F2:C2:95:6E:19:A1: Failed to connect after 10 attempt(s): No backend with an available connection slot that can reach address F2:C2:95:6E:19:A1 was found: The proxy/adapter is out of connection slots or the device is no longer reachable; Add additional proxies (https://esphome.github.io/bluetooth-proxies/) near this device
Connected
DDisconnectSDisable Autoscroll^KClear Console

GG71 avatar Nov 03 '25 21:11 GG71


  File "/usr/local/lib/python3.13/site-packages/bleak/__init__.py", line 773, in start_notify
    characteristic = _resolve_characteristic(char_specifier, self.services)
  File "/usr/local/lib/python3.13/site-packages/bleak/__init__.py", line 391, in _resolve_characteristic
    raise BleakCharacteristicNotFoundError(char_specifier)
bleak.exc.BleakCharacteristicNotFoundError: Characteristic ff01 was not found!
2025-11-03 22:56:16.012 ERROR (MainThread) [custom_components.bms_ble] Unexpected error fetching DCH19A1 data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 331, in __wrap_async_setup
    await self._async_setup()
  File "/config/custom_components/bms_ble/coordinator.py", line 114, in _async_setup
    bms_info: Final[BMSInfo] = await self._device.device_info()
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiobmsble/basebms.py", line 153, in device_info
    await self._connect()
  File "/usr/local/lib/python3.13/site-packages/aiobmsble/basebms.py", line 347, in _connect
    await self._init_connection()
  File "/usr/local/lib/python3.13/site-packages/aiobmsble/basebms.py", line 318, in _init_connection
    await self._client.start_notify(
        char_notify or self.uuid_rx(), getattr(self, "_notification_handler")
    )
  File "/usr/local/lib/python3.13/site-packages/bleak/__init__.py", line 773, in start_notify
    characteristic = _resolve_characteristic(char_specifier, self.services)
  File "/usr/local/lib/python3.13/site-packages/bleak/__init__.py", line 391, in _resolve_characteristic
    raise BleakCharacteristicNotFoundError(char_specifier)
bleak.exc.BleakCharacteristicNotFoundError: Characteristic ff01 was not found!
Connected
DDisconnectSDisable Autoscroll^KClear Console

GG71 avatar Nov 03 '25 21:11 GG71

That looks like they changed the BMS in the battery again ...

Could you please

  • provide the information from the service explorer script or use something like nRF connect to identify the services or
  • see if you are able to capture the Bluetooth traffic on Android or iOS while using the vendor app with the battery.

patman15 avatar Nov 03 '25 22:11 patman15