-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create nimble_distance component #128
Conversation
…put in a value object called NimbleTrackerEvent
Let the nimble_tracker with nimble_distance for an Apple Watch for over an hour without any problem 🎉. |
I've been following along with this project for a few days now and would love to help with testing, but I keep getting an error when trying to install this on my esp-wroom-32 chips. This is an epic project and could really help out with bridging the gap between espresense and esphome. great work @mvgijssel !! Tool Manager: Installing platformio/toolchain-esp32ulp @ ~1.22851.0 I've tried quite a few things but not really finding any help on the web. wanted to reach out and see if you noticed this during your testing. |
@jsnyde30 Yeah ran into this exact issue trying to run the esphome compile from within my VScode devcontainer running on my m1 MacBook. macOS amd64, macOS arm64 and Linux amd64 all work, only Linux arm64 (aarch64) seems to have a problem with that particular library. This should be a temporary problem I think, newer versions of ESPhome will use newer libraries which will also work on Linux amd64. So for now you’ll have to run it on Mac or Linux amd64! Let me know if that helps :) |
@mvgijssel thanks man! I've been pulling my hair out for 2 days now lol. I'll try the old trust macbook out. |
@mvgijssel I had to set up a 2nd esphome instance on my NAS, but I was able to install, set up a sensor for my android phone with IRK and it's working!! I have an old iphone I can test with for multi-device tracking, then there's only 2 things left to figure out; multiple sensors in different rooms, and how to make regular ibeacons work. Great job on this project! It would be epic if I could replace all 9 of my espresense devices with ESPHomes because sensors seem to be way more reliable with the later. If you need help or testing for this project, feel free to reach out. |
Sorry for the late reply 🤦♂️.
Great to hear! 💪
I'm about to add a second Apple Watch to the setup, so will let you know how that works!
I think adding iBeacon (or any other device for that matter) support should not be too hard, though note I'm a big c++ n00b 🙈. I've built the BTW if you are investigating room occupancy using BLE devices as well, after finding mqtt_room and ad-espresense-ips too noisy, I'm now trying find3 in #153 with some good results so far! |
ref #115
The
nimble_distance
component will implement the same logic for distance calculation as ESPresence does https://github.com/ESPresense/ESPresense/blob/master/lib/BleFingerprint/BleFingerprint.cpp#L489-L496. Currently ESPhome supports filters on sensor components, but this is not advanced enough just yet to really replicate the behaviour from ESPresence which is very accurate. Maybe in the future this can be implemented in a more general way instead of needing a separate component.The idea behind the design is that the
NimbleDeviceListener
will figure out if there is a match with a passed inadvertised_device
. If there is a match then a virtual methodupdate_state
will be called which needs to be implemented by thenimble_rssi
andnimble_distance
components.TODO
internal: true
)ble_distance
sensor triggers sending a message for themqtt_room
componentnot_home
after running for ~20 minutes. Does NimBLE stop scanning? Could be due to the limit on known devices! Can we somehow prune this list?ble_distance
component (so it's not inferred from the advertised device)