Passive BLE Monitor integration

Oh thats great news, no rush in this case, I can wait until next Wednesday for the release :grimacing: thank you!

I think for now I‘ll just hold back with BLE momitor, will investigate further if required.

I have a linptech ble presence sensor that shows up
In xiaomi gateway. But when i connect xiaomi gateway to homeassistant the ble devices doesn’t show up. Am i missing something?

Is the sensor supported by ble monitor, and if yew, did you enter the encryption key?


I have an idea to use the Xiaomi Scale 2 scale to weigh objects. I need to activate the scale with the object on top (it doesn’t do that).

However, through the Zepp Life app, there is an option that, when marked, turns on and weighs the object.

I’m suffering here, I don’t find any way to do this through BLE. I discovered that clicking on the option changes the code, but I don’t know how I can send it to the scale.

Clicking again:

I’m using BLE Monitor, I only have these sensors, I don’t see a way to implement this option

Is there any way to write on the scale? Or any other alternative that can activate it with the above object remotely?

Note: sorry for my English

I’m trying to install new Xiaomi thermometers but fail to do so.
I took the new thermometer, do activation, flash custom FW and add to passive BLE
The temperature does not show, even though I see in the logs that it was received…

2024-05-13 15:07:31.233 DEBUG (MainThread) [custom_components.ble_monitor.sensor] Data measuring sensor received: {'packet': 68, 'battery': 100, 'temperature': 24.94, 'humidity': 45.35, 'rssi': -69, 'mac': 'A4C138ED3D87', 'type': 'BTHome', 'firmware': 'BTHome V2', 'data': True}

I have setup the integration as “Active scan”.

I have 3 old (same) thermometers working on the same setup.

Fixed by reinstalling the integration

Hi I have a number of BLE devices that beacon out a Eddystone TLM, and other Manufacture specific data. I have been working to add them to the BLE Monitor which all seem to be working fine. Apart from the TLM packets that only have the MAC address, battery, voltage, and temperature, there is no device name. And I cannot deduce the type from the BLE message.

This mean when I create the sensor_data the type is not defined, therefore it does not add the data to the already identified sensor.

Is there some configuration I can do to make a MAC address = a type? or get the type from a previous message from the same MAC address.

Any suggestions at this time would be helpful.

Bluetooth mac address lookup
Not sure if this is what you’re looking for.

Sorry no that is not what I am looking for but thank you.
I’m creating code to add another manufacturer to the Passive BLE Monitor and the issue is the devices send Eddystone TLM messages, which can only be tied to the device through the MAC address. And when I pass the data back from the parser it drops it as there is no local_ name, as I’m new to HA, I was wondering if I can get the previous local_name from some data structure / config using the MAC address which I do have?

I’ve followed these steps to remove an existing device and entities from HA so that I can add them via a BLE Proxy, but struggling to execute the last step.

2024-06-11 18:02:50.082 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Executing step call service
2024-06-11 18:02:50.083 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Unexpected error for call_service at pos 1: 'EntityRegistry' object has no attribute 'async_entries_for_device'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/", line 526, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/", line 763, in _async_call_service_step
    response_data = await self._async_run_long_action(
  File "/usr/src/homeassistant/homeassistant/helpers/", line 726, in _async_run_long_action
    return await long_task
  File "/usr/src/homeassistant/homeassistant/", line 2741, in async_call
    response_data = await coro
  File "/usr/src/homeassistant/homeassistant/", line 2784, in _execute_service
    return await target(service_call)
  File "/config/custom_components/ble_monitor/", line 144, in service_cleanup_entries
    await async_cleanup_entries_service(hass, service_data)
  File "/config/custom_components/ble_monitor/", line 415, in async_cleanup_entries_service
    if len(ent_registry.async_entries_for_device(ent_registry, device_id)) == 0:

Any ideas what I’m doing wrong, device and entity are removed from HA, but device isn’t rediscovered by the BLE Proxy.


Thanks for reporting, fixed in 12.11.3, which should be available any minute now

Thanks for the quick fix, and can confirm it resolved the error, but not my issue.

Does the clean script just need the device/entities removed, or does the dashboard also need to be clear of the deleted devices ?

You can delete devices in the BLE monitor configure menu. Select the MAC address in the pull down menu, click submit and in the new window, select the option to delete the device.

Pictures are in Dutch, but I assume you get the idea.



Thanks Ernst, I have removed the devices this way, and run the clean up service, but the device is still not showing up via the BLE Proxy.

I have checked that the BLE Proxy is working, with a new BLE device that hasn’t previously been added to HA via the Passive BLE Monitor.

Please check this page. BLE monitor does not work with a BLE Bluetooth Proxy. Bluetooth Proxy is forwarding data to the Bluetooth integration, not to BLE monitor. BLE monitor is not using the Bluetooth integration, it is using its own package (aioblescan) to collect BLE data. You can use ESPHome BLE Gateway to forward data from an ESPHome device to BLE monitor

In short, the possible data flows are

ESPHome Bluetooth Proxy → Bluetooth integration → Xiaomi BLE/Govee/Qingping integration (etc)

ESPHome BLE Gateway → BLE Monitor