Passive BLE Monitor integration

Your ble dongle seems to work ok (no errors in your log), it just isn’t receiving any data. I suspect an reception issue, check the faq for tips how to improve this. Do you have a SSD connected to your HA machine, this can block the signals.

Yes I have SSD, but it is a linux server, with raid5, etc. I have both zigbee module an bluetooth module on different usb 2.0 ports and each on own shielded 3m long usb cable. I have this setup for 2 years already.

As you can see, hcitool lescan see BLE devices, but integration not. Is there a way how to manually initiate scan from CLI ? Some python commands, etc ?

You could create a python script with aioblescan. This is what ble monitor is using to collect the data. Parsing is being done with (a copy of) bleparser, but that is only making the translation from the BLE advertisement to something readable.

I’m not sure what the issue is in your case, but most likely some software is missing or rights are not correct anymore. Not sure.

Hello, I’m trying to install BLE Monitor on the fresh Home Assistant core installed on the latest Debian Bullseye on my Raspberry Pi 1 b+ (armv6). But as soon I click on the “Add” button, HA crashes with “illegal instruction” error. This is most probably because some of the system libs in Debian are compiled with the wrong architecture, but I can’ t find what is causing this error? Is there a way to narrow down the piece of code that causing it? I’ve already switched logger to “debug” level but still can’t find the root cause? Any suggestions?

I have no idea. Make sure you have all Bluetooth related packages installed, see step 2 in this article in the FAQ.

hello,

I have just installed HACS and then right away Passive BLE Monitor Integration because I have a Xiaomi Honeywell Smoke Detector Sensor…

my steps:

  1. Added the sensor to the Mi Home app
  2. Home assistant auto discovered the new device with three entities:
    • ble button - status unknown
    • ble battery - status unknown
    • ble rssi - status unknown
  3. launched the token_extractor.exe application to get the encryption key
  4. added encryption key to the device and then 1 extra entity appeared:
    • ble smoke detector - status Clear

everything seems ok beside the status of the entities:
- ble button - status unknown
- ble battery - status unknown
- ble rssi - status unknown
- ble smoke detector - status Clear

adding the encryption just showed a new entity, but did not provide clear data from the other threes…

is this ok, or amI doin something wrong?

thank you all

How long did you wait? Battery sensor can take some hours to show up. Button status will only show up after the first press.

RSSI is strange, this one should update on each advertisement though.

Please allow it a couple of hours to see if they show up.

1 Like

Just migrated from a pi 3b+ to pi 4b, and getting the below errors.
I’m pretty sure it’s saying the old configured bluetooth MAC doesn’t match that of the new pi, just not sure how to update the old configuration to the new pi’s MAC.

Thoughts?

Server Logs:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 313, in async_setup
    result = await component.async_setup_entry(hass, self)  # type: ignore
  File "/config/custom_components/ble_monitor/__init__.py", line 281, in async_setup_entry
    list(BT_INTERFACES.values()).index(bt_mac)
ValueError: 'B8:27:EB:AF:FD:13' is not in list

And when I try configure it:

User input malformed: B8:27:EB:AF:FD:13 is not a valid option for dictionary value @ data['bt_interface']

Update: Updated the MAC address in config.storage\core.config_entries to the new one. resolved it

3 Likes

waited the nigh, restarted and baammm all working :slight_smile: thank you

downside is that it picked up an Oral-b toothbrush… probably the neighbor… can I start it for fun!!! LOL

You can’t start it, you can only see if he brushes his teeth twice a day (or not).

1 Like

what is the best way to “extend” the Passive BLE Monitor to the upper floor (for example) where the Raspberry Pi BT signal is not available?

how do I built a BT meshed network that works with Home Assistant?

I would recommend ESPHome to extend your range. ESPHome can either be used directly (It only supports a smaller amount of sensor brands however). If you brand is not supported directly, you can also use BLE gateway. This is an extension to ESPHome that forwards the BLE advertisements over ethernet to HA, where it is processed further with BLE monitor in the usual way.

1 Like

You can use “BLE gateway” from this repository: github://myhomeiot/esphome-components
I’m currently using this for 16 MiFlora units that I have placed outdoors. It works very well.

1 Like

thank you both for the suggestion :slight_smile:

the problem is that I an not so much technical and I am not sure how to start… is there a step by step guide?

starting form HW, SW and finally configurations? (sorry to ask here… if OT, I will open a new topic :slight_smile:

1 Like

For hardware you will need an ESP8266 or ESP32 device. Something like the Wemos D1 Mini (ESP8266) should work fine and will cost you maybe 2 USD.
Sorry didn’t think. You will need an ESP32, the ESP8266 does not support BLE. Then searching for something like “ESP32 WROOM” should point you to the correct device, there are several variants - just get one with a USB port. The price will be less than USD 4.

They are programmed and get power from USB, so no extra hardware is needed.

For software you will need ESPHome, which integrates nicely with HASS - as described here:

1 Like

Found out the issue. it was pycryptodomex lib. Version 3.12.0 crashes on armv6 "Illegal instruction" on armv6l / RaspberryPI Zero · Issue #585 · Legrandin/pycryptodome · GitHub

great! now I get it :stuck_out_tongue:

last question, how do you enclose it? 3d printing? or how?

A 3d printer is useful for an enclosure, yes. :slight_smile:

thank you!

last question, and I promise I will not bother anymore for this topic :stuck_out_tongue: is:

my configuration has:

  • Xiaomi Honeywell BT smoke detector
    - one in kitchen - next to the Raspberry Pi
    - one in upper flor - the one I would need to connect with ESPhome/BLE Gateway

  • Switch Bot BT button (using SwitchBot Integration)
    - one in kitchen - next to the Raspberry Pi
    - one in upper flor whcih is not connected at the moment because the BT signal does not get there)

While the Passive BLE Monitor integration will fix the Xiaomi Honeywell BT smoke detector in upper floor, it seems that I would need to have another ESP 32 for the SwithcBot - I have found the following integration/project to extend SwithcBot Range:

Question:

is there any way I can use only one ESP32 or I need to have two of them? (not about the price, but I am keen to have a "klean infra/setting/configuration :slight_smile: )

thank you all!

You can combine several different integrations in the same ESPHome device, but currently there is no native Switchbot integration in ESPHome.

I see that this is discussed in this thread. There is also an example on how to integrate a Switchbot thermo-/hygrometer using the template/lambda functionality in ESPHome.

At the moment you would probably be better off with two ESP32 devices.

1 Like