I’m currently using owntracks in MQTT mode to detect my location and trigger actions when I leave or arrive at my home. However, unless my movements are large (I am a mile away) owntracks will not push my new location.
I was hoping someone could suggest a cheap and reliable proximity beacon that I could use to make owntracks more responsive. Ideally, I’d like to buy many beacons that could detect when I enter or leave different rooms.
Just bought 3 USB ibeacons to try the owntracks zoning ~ 11 USD each … only slightly more than buying bluetooth 4 modules and running them from an arduino.
I found this blog post this morning from Google describing their new Eddystone-EID Open Beacon Format. It has a list of beacon suppliers near the bottom as well as some cool use cases. Don’t download their app though, it ties in to the Google Developer Platform and you have to sign in and select an existing project of yours before you can do anything useful.
Looking forward to the Owntracks & iBeacons blog post!
Does anyone have any updated recommendations for iBeacons?
I did by some bluetooth modules, but have decided that the faff of soldering (was a bit of a disaster!) and creating an enclosure etc isn’t really worth it!
I’ve bought two http://www.avvel.co.uk/shop/long-range-ibeacon which I’ve tried using with a pluggable usb-bt4le to scan for their presence. However, I wasn’t able to pick up the signal from more than 2.5m with a 25cm brick wall in between the bt4le and the ibeacon.
Currently, I’m awaiting delivery for 2 raspberry pi 3’s which I’ll attempt to use for scanning the beacons and submit to mqtt when the beacons are close. (I’ll place them near entrance doors or something).
I’ll probably post here if I have any success
So, the two raspberry pi’s have arrived and I’ve managed to squeeze some time into this issue. I have a raspberry pi on each house door entrance, and combined, they seem to cover the whole house, meaning that there are no dead zones in any of the rooms.
I have made an init script on each pi which runs the beaconreport.py from here: https://github.com/olimpiurob/beaconreport . beaconreport connects to the MQTT and publishes a json payload to: scanner1/data/ble/[beacon_mac_address]. It will also keep track of what beacons have been active and it will also update scanner1/data/ble/[beacon_mac_address]/state with ‘home’/‘not_home’ string based on the beacon activity. If the beacon has not been seen for 2 minutes, the state will change to ‘not_home’.
I could’ve done this on a single topic, but I thought that maybe I could later use the information in the json payload.
In home-assistant I have added a mqtt device tracker for each of the scanners and each beacon with the topic set to state. This way, home-assistante keeps track of the home/not_home states.
This is not really ideal and it would be problematic in case the scanner goes down, leaving the state unchanged. I would’ve preferred to be able to check the json payload timestamp and do a timedelta in a template in order to set home/not_home, but this does not appear possible without a custom component.
I’m open to suggestions on how this should be improved or reimplemented.
I’m using blescan and as reported by others, it seems to randomly hang on some platforms, which seems to be my case also. I these cases, In have to restart beaconreport.
The issue happened because there was no timeout setting in the blescan, so if no beacons were in proximity, nothing would get updated. Fixed the issue and now it seems to work reliably, even though it seems to be too noisy currently :).
I created my own iBeacon using an HM10 Bluetooth module for about $6-$8. It’s extremely easy. The only issue is own tracks keep oscillating between leaving home and entering home everytime it loses connection and makes a connection to the module.
There should be a way to set this timeout value in own tracks.