Passive BLE Monitor integration

I was just kidding :sweat_smile:
Btw it doesn’t show up. I can see it sending the data, but HA doesn’t see it. My mi flora and temperature/humidity sensors work as expected and added immediately.
Any idea?

:grinning_face_with_smiling_eyes:

If it doesn’t show up, there is something wrong :sleepy: Its best to create an issue on github, preferably with some data collected with the “report unknown devices” option of BLE monitor, like for a new sensor request. If you can collect some BLE advertisements, I can check where things go wrong.

ok, I will do it later when I go back at home. Thanks.

Hello! Just because I am wondering. Is there any reason to migrate to this integration for my MiFlora sensors? They work fine with the stock Xiaomi BLE integration. Is this any better? :slight_smile:

BLE monitor is much older than the HA integration. We are moving BLE monitor to HA BLE integrations, so you can stick to the Xiaomi-ble integration.

So what do you suggest nowadays to write an integration for a new (unsupported) BLE device that supplies data in the advertisement message?

I would like to try to create a bunch of sensors from a Hormann garage door (status “open”/“closed” and %, see my post here) but I don’t know where to start. What do you suggest as a template code? And how should the files be placed for HA to pick them up? Do they work like normal integrations that can be placed in the custom_components folder?

You have two options. Option one is to create an official HA integration. Just copy one of the examples, like govee_ble, xiaomi_ble, bthome_ble, etc. You will need to create a pypi package as well that decodes the data, most can be found on Bluetooth Devices · GitHub. Developing an integration for HA is explained here Starting with Development | Home Assistant Developer Docs.

If you don’t have much experience in programming, it might be easier to first add it to BLE monitor, as BLE monitor has most of the framework build in. You only have to add the parser code. Just have a look here on how to collect the data New sensor request | Passive BLE Monitor integration

1 Like

Hello!

I’ve tried BLE Monitor integration with Jaalee but there’s something wrong.

First the UUID and MAC of sensor keeps changing if enable more than one sensor of same model (seems that different sensors/MAC with same UUID). Screenshot from Bluetooth LE Scanner app:

Then the measurements from a sensor are odd, like 57 °C or something way different from Jaalee app (RH is a little close):

image

Got it

Apparently shared MAC and UUID are common on these BLE sensors.

Yes, it turns out that the MAC rotates. I’ll need to create a fix for the jaalee, will look into that soon. Jaalee is sending both manufacturer specific data as well as iBeacon data, which is a bit weird (why would you send you two different formats?)

Edit: found out that tempeature humidity can actually be calculated with (almost) the same formula as in the iBeacon parser.

1 Like

Jaalee should be using the UUID in stead of the MAC address in BLE monitor 11.3.2. You might have to delete your old devices. I also updated the formulas.

1 Like

Great!

Now, this might be a newbie question, but how do I differentiate between my various sensors in the HA, since it’s the same entity/same UUID with rotating MAC?

And the values are still odd. Maybe it’s calculating a mean from distinct sensors values:

image

Don’t you have a normal temperature sensor? You should not look at the cypress temperature sensor, but only look at the normal temperature sensor. Same for humidity. Cypress temperature can be neglected. If you only have cypress sensors, it is only broadcasting in iBeacon format. Perhaps this can be changed in the app?

Are you saying that different sensors have the same uuid?

It’s a Jaalee JHT.

There’s only cypress sensors in the BLE Monitor panel.

Configurações-–-Home-Assistant-Google-Chrome-2023-01-15-16-24-29

And seems to be the same UUID for all devices or some kind of rotating MAC.

I don’t find any broadcast config in app. But by Bluetooth LE Scanner, they are broadcasting Manuf and iBeacon data.

Device Name: null
Device Address: D3:35:02:E5:FA:DC

Services:--------------------------
GAP (00001800-0000-1000-8000-00805f9b34fb)
 Device Name (00002a00-0000-1000-8000-00805f9b34fb)
 Appearance (00002a01-0000-1000-8000-00805f9b34fb)
 Peripheral Preferred Connection Parameters (00002a04-0000-1000-8000-00805f9b34fb)


GATT (00001801-0000-1000-8000-00805f9b34fb)
 Service Changed (00002a05-0000-1000-8000-00805f9b34fb)


Device Information (0000180a-0000-1000-8000-00805f9b34fb)
 Manufacturer Name String (00002a29-0000-1000-8000-00805f9b34fb)
 Model Number String (00002a24-0000-1000-8000-00805f9b34fb)
 Firmware Revision String (00002a26-0000-1000-8000-00805f9b34fb)
 System ID (00002a23-0000-1000-8000-00805f9b34fb)


Unknown service (0000fff0-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff1-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff2-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff3-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff4-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff5-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff6-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff7-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000fff8-0000-1000-8000-00805f9b34fb)


Unknown service (0000ff70-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (00002a80-0000-1000-8000-00805f9b34fb)


IMMEDIATE_ALERT (00001802-0000-1000-8000-00805f9b34fb)
 Alert Level (00002a06-0000-1000-8000-00805f9b34fb)


Unknown service (0000ffb0-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000ffb1-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000ffb2-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000ffb3-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000ffb4-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (0000ffb5-0000-1000-8000-00805f9b34fb)


Unknown service (0000ff30-0000-1000-8000-00805f9b34fb)
 Ringer Control Point (00002a40-0000-1000-8000-00805f9b34fb)


Unknown service (0000ff60-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (00002a70-0000-1000-8000-00805f9b34fb)


TX_POWER (00001804-0000-1000-8000-00805f9b34fb)
 Tx Power Level (00002a07-0000-1000-8000-00805f9b34fb)


Unknown service (0000ff80-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (00002a90-0000-1000-8000-00805f9b34fb)


Unknown service (0000ff50-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (00002a60-0000-1000-8000-00805f9b34fb)


Unknown service (0000ff40-0000-1000-8000-00805f9b34fb)
 PNPID (00002a50-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (00002a51-0000-1000-8000-00805f9b34fb)


Unknown service (0000180f-0000-1000-8000-00805f9b34fb)
 Unknown characteristic (00002a19-0000-1000-8000-00805f9b34fb)


--------------------------

Hmmm, I don’t understand yet how someone can distinguish between sensors, all have the same UUID, and each individual sensor is rotating its MAC address, so not fixed. How on earth can an app than know which sensor is which…

Anyway, I’ll first try to understand why you don’t get the temperature sensor.

Still not sure why you don’t see the temperature sensor. Your BLE message should return 'temperature': 27.57, 'humidity': 73.8, 'battery': 96,

image

Did you delete the device from the BLE monitor settings, after you updated BLE monitor?

Yes. Btw it’s a fresh RPi HA install I’m using for tests.

I noted my Device Info section on left shows:

iBeacon
By Apple

Firmware: iBeacon

And no info with Jaalee brand. Maybe my sensor device are a fake one or needs a new firmware?

@kroma Lets continue this discussion about this issue on github in this issue

1 Like

Hi Kroma,

Try looking for an app called eBeacon by Jaalee (the iPhone version of the app has a lowercase letter e in the logo). You might be able to use that to change the UUIDs to make each device unique. (UUID means “Universal Unique Identifier”, right? :laughing:)

Another option is an app called CheckBlue by a company called MeeBlue. It might also be able to use it to adjust the UUID on your device.

I think that Jaalee and MeeBlue are basically the same company. Sometimes they also use the name Ankhmaway. No idea though why they are always switching names.

FYI, it’s normal for manufacturers to send out all small orders of beacons with the same UUID at the start; it’s the best way to be able to give new users instructions how to use the beacon (i.e. the instructions will include the correct UUID of the brand new beacon). But they will usually also offer free config apps for adjusting the UUIDs for users of multiple beacons.

As for rotating MACs, that really is weird! I would tend to say that there is no way that is happening with these simple devices. But maybe they added this “feature” for some sort of security reason?

1 Like

Jaalee sensors are now working correctly in BLE monitor 11.4.1. Had some trouble adding it, but it should now work fine.