Really nice stuff! Using the app to POST to SmartThings is definitely the best method. I have a strong feeling that ST will have some beacon integration inside the app in the near future as ST already has the Bluetooth permission, at least for Android.
Some brain dump comments below:
Good
- iBeacons should be both fast and reliable for geofence detection in small ranges. Excellent for “car in the driveway,” “person at the front door,” or “person in the living room.” And with Beecon+, you can define a custom distance as well.
The custom distance thing is really a big deal. I have been working (on Android) to map my home with overlapping beacons to triangulate each room. I am using the Geohopper USB warts, which I just plug into outlets I’ve converted for USB 5V. Ideally, I am shooting for knowing what room a cell phone is in, in every room in my house. Thus far it has been very accurate - but I have not glued the multi-beacon sensing together yet in Tasker.
- they don’t toggle for distances other than “out of range.” You could certainly have your lights come up when you to the house and turn off again when you leave. But if you want to use them for Very Close switches, you need one for on and one for off. Or have a metal box to drop over it to force it “out of range.”
I have lobbied Tasker and some of the plugin guys to allow RSSI detection inside BTNear and some of the other Tasker methods. There was a lot of interest, so hopefully you’ll be able to cut out the app and use Tasker directly to do this.
- They don’t work great with Android. iOS detects iBeacons at the operating system level, which is both easier on the battery and means the receiving station app can be set to work even when it’s closed. Android’s native functionality requires that the receiving station app be open in order to detect the beacons. I don’t know what other options there are for this, but it’s no coincidence that Beecon is only available for iOS.
Android has really been a chore to get up and running. There are far fewer beacon Apps for Android, and as you mentioned the OS doesn’t handle BLE as well. I believe Android is going to add Bluetooth to its location services – that is the logical thing for them to do – and there are several folks out there mapping BLE infrastructure. Tasker also seems to be interested in using Bluetooth in its “Fused Location” component. The big thing is battery. On Android you can pair to the GeoHopper beacons to cut down battery. I’ve been messing with dead reconning on my Tango tablet to get a high resolution GPS signal at the beacons, and then take a BLE measurement only occasionally. This is really efficient but way far away from production code. I’m pretty confident in 2-3 years this will be the “normal” way micropresence is done though.
- unlike a motion sensor, an iBeacon has an actual “exiting” event. So you don’t have to worry about the off event triggering too soon. It’s not based on time, it’s based on you actually moving out of range of one iBeacon (or into range of another).
One of the things I’ve made my ST do is reset the motion to inactive on adjoining sensors. I.e., Hallway motion, then Bedroom motion, immediately set Hallway motion to inactive. This is a simple tweak (requires a custom device) that dramatically improves motion detection reliance. Combined with beacon technology, I think I can get this even better.
Bad
- every use case depends on you either bringing the phone near the iBeacon or bringing the iBeacon near the detector (which could be a tablet). So it’s definitely not as good as a regular proximity switch for the “Very Close” distance use cases. If you forget your phone in the living room, it won’t trigger the iBeacon in the bedroom. And your phone has to have been set up with the receiving station app first, so it’s unlikely that iBeacons will work well for visitors.
This “split presence” case is nasty and very hard to deal with. I’ve experimented a bit with monitoring Wifi and having APs in every room – this is OK if your guest has your Wifi. I’ve also toyed around with monitoring cell repeaters in the house which works well but you need one per carrier and you have to root the repeater. And those solutions only incrementally help as well. Right now in my house if I can’t match virtual presence to a device / person, I just consider it an intruder Lots of fun WAF there…
- they don’t toggle for distances other than “out of range.” You could certainly have your lights come up when you to the house and turn off again when you leave. But if you want to use them for Very Close switches, you need one for on and one for off. Or have a metal box to drop over it to force it “out of range.”
I think the solution you really want to try here is NFC. Its sort of the “fifth pillar” of location services. It only works at the inch or so level, but its probably more consistent than the metal box. Just put a $1 NFC tag on the table and when you put your phone on that tag, make Tasker turn your switch off. You can also accomplish the inverse pretty well.
- If your phone goes completely dead and is then recharged, it will be treated as an Arrived in Range event. Just something to be aware of.
I’ve been working on a SmartApp (Wasp in a box) that creates a virtual presence device per phone per room, and then also creates nested devices (Home -> Upstairs -> Bedroom -> Closet). This generates about a hundred virtual presence sensors in my house (which has its own set of fun challenges) that make it easier for me to associate motion with occupancy and presence. So if I forgot to charge my phone last night, the last known presence sensor was on my bedside table and there was no motion outside of my bedroom, so the presence sensor knows the phone is still there. In the long run, this is almost definitely how microlocation will work at some level – though all the various error correcting is a beast (phone died, motion sensor failed to report, someone exited via a window, etc).
- They’re not cheap. If it takes two to handle the on and off conditions, that’s fifty or sixty dollars. Since I’m quadriparetic, there are a lot of use cases where that’s worth it to me, but for many people, the primary justifiable use will be at the geofence border for arriving home/leaving home use cases where you’ll only need one.
The BOM on the Geohopper device, minus the power supply, is about 80 cents. Its very conceivable in the next year or two that these will be so cheap that it will probably be easier to litter your house with beacons than motion sensors. (But ideally both). Being an early adopter is never cheap but its also regularly profitable.
- As of this writing, May 2015, they aren’t detectable by smart watches, only phones and tablets. The Beecon+ app does have an apple watch version, but while it lets you launch actions manually, the watch itself doesn’t have the receiving station. So the range is always relative to where the paired phone is, not the watch itself.
From what I can tell my Moto 360 seems to detect the Geohopper beacons just fine. I haven’t messed with any detection stuff yet - but it looks like this is one aspect where Android is further along than iOS. Not sure where Tizen is…
Random
Go into any retail store like a Walmart or Target and turn a Bluetooth scanner on. Its shocking to me how many beacons are already out there.