agittins / agittins/bermuda

Implement trilateration of devices

Aperta
#21 38 commenti 19 reazioni 1 assegnatario Rivendicata da @agittins Vedi su GitHub
discussion enhancement
Lingua principale
Python
Stelle
2k
Fork
70
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

This is the primary goal of this integration, but the first milestones to hit are:

- [x] Sensors to state the `Area` of a device, based on the `Area` of the closest bluetooth receiver
- [x] Implement the `device_tracker_ble` functionality of providing `home|not_home` state for Person entities.
- [x] UI for configuring device selections and options

The milestones for this feature are:
- [x] ~~Improve filtering of distance estimates for accuracy and stability. Currently thinking [Extended Kalman Filters](https://en.wikipedia.org/wiki/Extended_Kalman_filter) with [FilterPy](https://filterpy.readthedocs.io/en/latest/kalman/ExtendedKalmanFilter.html)? I wonder if [Wouter](https://www.wouterbulten.nl/posts/kalman-filters-explained-removing-noise-from-rssi-signals/) is looking for projects :)~~ (current filtering seems reasonably stable while also responsive. I don't think Kalman is well-suited to the noise distribution, so this is "good enough" for now).
- [ ] Using beacon-receiver distances, "solve" all receiver-receiver distances using [Triangle Inequality](https://en.wikipedia.org/wiki/Triangle_inequality)
- [ ] Using those solved "edges", estimate solutions for a 2D plane with all devices
- [ ] UI/Config Flow:
- [ ] Allow user to choose an "origin" beacon and a vector beacon to place the solution in a constrained space.
- [ ] Allow entry of 1-metre rssi calibration offsets for both receivers and devices.
- [ ] Create new sensors to provide location data (also lat/long?)

Extension goals:
- [ ] Solve for 3D space (some peeps have multiple floors, and as of HA 2024.4 floors are now a "thing")
- [ ] Smarter solutions.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.