agittins / agittins/bermuda

Android Companion App iBeacon is selectable and entities are created, but never receives adverts / stays not_home

Open
#813 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
2k
Forks
70
PR merge metrics
No merged PRs in 30d

Description

## Summary

Home Assistant's built-in iBeacon Tracker detects an Android HA Companion App BLE transmitter through the same local Bluetooth adapter (`hci0`), but Bermuda v0.8.7 does not appear to attach any received advertisements to the selected iBeacon meta-device. Bermuda creates the tracker/area/distance entities after selecting the iBeacon device, but they remain `not_home` / `unknown`, and `bermuda.dump_devices` shows `last_seen: 0` and `adverts: {}` for that iBeacon.

## Environment

- Home Assistant Core: 2026.7.4
- Installation: Home Assistant OS 18.2, x86_64 / ova
- Bermuda: v0.8.7 installed via HACS
- HACS: 2.0.5
- Bluetooth scanner: local HA adapter `hci0` only
- Bermuda scanner count:
- `sensor.bermuda_global_active_proxy_count = 1`
- `sensor.bermuda_global_total_proxy_count = 1`
- Phone: Samsung Galaxy SM-S918N using Home Assistant Companion App BLE Transmitter
- Companion BLE Transmitter entity:
- state: `Transmitting`
- Transmitting power: `high`
- Advertise mode: `balanced`
- id: `11ba986a-02c8-4fd0-b6af-6fa4e7ab45de_100_40004`

## iBeacon Tracker works on the same scanner

Home Assistant's iBeacon Tracker has detected this beacon via the same scanner (`hci0`, MAC redacted here except as shown by HA):

- `device_tracker.11ba986a_02c8_4fd0_b6af_6fa4e7ab45de_100_40004`
- `sensor.11ba986a_02c8_4fd0_b6af_6fa4e7ab45de_100_40004_estimated_distance`
- Source shown by the iBeacon entity: `F4:6A:DD:5A:F4:D8`, which corresponds to Bermuda's `hci0` scanner

This suggests the BLE advertisement is being received by HA's Bluetooth stack and the issue is not basic signal strength or the phone not advertising.

## Bermuda setup and observed behavior

Bermuda was completely removed and reinstalled to rule out a stale install/config problem:

1. Removed the Bermuda integration config entry.
2. Removed HACS repository `agittins/bermuda`.
3. Restarted Home Assistant.
4. Reinstalled Bermuda v0.8.7 from HACS.
5. Restarted Home Assistant again.
6. Added the Bermuda integration again.
7. Selected the device shown in Bermuda's Select Devices dialog:
- `iBeacon: 11ba986a02c84fd0b6af6fa4e7ab45de_100_40004`

After selecting, Bermuda created these entities:

- `device_tracker.bermuda_11ba986a02c84fd0b6af6fa4e7ab45de_100_40004_bermuda_tracker` = `not_home`
- `sensor.bermuda_11ba986a02c84fd0b6af6fa4e7ab45de_100_40004_area` = `unknown`
- `sensor.bermuda_11ba986a02c84fd0b6af6fa4e7ab45de_100_40004_distance` = `unknown`
- `number.bermuda_11ba986a02c84fd0b6af6fa4e7ab45de_100_40004_calibration_ref_power_at_1m_0_for_default` = `0`

## Relevant `bermuda.dump_devices` output

Called with:

```yaml
service: bermuda.dump_devices
data:
addresses: "11ba986a02c84fd0b6af6fa4e7ab45de_100_40004"
configured_devices: true
redact: false
```

Selected portions of the response:

```json
{
"f4:6a:dd:5a:f4:d8": {
"name": "hci0 (F4:6A:DD:5A:F4:D8)",
"address_type": "bd_addr_random_resolvable",
"area_id": "hyeongwan",
"area_name": "현관",
"_is_scanner": true,
"_is_remote_scanner": false,
"options": {
"attenuation": 3.0,
"devtracker_nothome_timeout": 30,
"max_area_radius": 80.0,
"max_velocity": 3.0,
"ref_power": -55.0,
"smoothing_samples": 20,
"update_interval": 10,
"rssi_offsets": {},
"configured_devices": [
"11BA986A02C84FD0B6AF6FA4E7AB45DE_100_40004"
]
},
"last_seen": 781530.2075752406,
"adverts": {}
},
"11ba986a02c84fd0b6af6fa4e7ab45de_100_40004": {
"name": "bermuda_11ba986a02c84fd0b6af6fa4e7ab45de_100_40004",
"address": "11ba986a02c84fd0b6af6fa4e7ab45de_100_40004",
"unique_id": "11ba986a02c84fd0b6af6fa4e7ab45de_100_40004",
"address_type": "addr_type_ibeacon",
"zone": "not_home",
"_is_scanner": false,
"metadevice_type": ["beacon device"],
"metadevice_sources": [],
"beacon_unique_id": "11ba986a02c84fd0b6af6fa4e7ab45de_100_40004",
"beacon_uuid": null,
"beacon_major": null,
"beacon_minor": null,
"beacon_power": null,
"create_sensor": true,
"create_sensor_done": true,
"create_tracker_done": true,
"create_number_done": true,
"create_all_done": true,
"last_seen": 0,
"area_name": null,
"area_rssi": null,
"area_distance": null,
"adverts": {}
}
}
```

## Expected behavior

Since HA's iBeacon Tracker can detect the Android Companion App iBeacon through the same local scanner, Bermuda should eventually attach adverts to the selected iBeacon meta-device and update:

- tracker to `home`
- area to the scanner's area, e.g. `현관`
- distance to a numeric value
- `last_seen` / `adverts` / `area_rssi` / `area_distance`

## Actual behavior

Bermuda creates the selected iBeacon meta-device and entities, but the device remains:

- `zone: not_home`
- `last_seen: 0`
- `adverts: {}`
- `area_rssi: null`
- `area_distance: null`
- area/distance sensors stay `unknown`

## Notes / questions

- The Select Devices UI shows the selected item as something like:
`iBeacon: 11ba986a02c84fd0b6af6fa4e7ab45de_100_40004 11ba986a02c84fd0b6af6fa4e7ab45de_100_40004`
This looks like label + value duplication, not necessarily duplicate registration. The actual configured devices list contains only one value.
- `max_area_radius` was increased from 20 to 80 for testing. This caused the per-device calibration number entity to display `0` instead of unknown, but tracker/area/distance still remain not_home/unknown and dump output still shows no adverts.

Is there a known issue with matching Android Companion App iBeacon advertisements to selected Bermuda iBeacon meta-devices, or is there another diagnostic/service output that would help determine why the selected `addr_type_ibeacon` device has no adverts?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.