Smartrules vs Rule machine

Thanks for the input Ken. While it doesn’t work exactly as you described, I think our upcoming “and stays that way” feature might solve the same problem in a slightly different way. With this new feature, you can add a time to your trigger, to check if it stays in the given state for some number of minutes, then take action. For example:

if this happens:
  Living Room Motion Ends and stays that way for 5 minutes
then do this:
  Turn Off Living Room Lights
1 Like

Yes that will do the trick. When will it be released?

I’m hoping to send it out for approvals from Apple and SmartThings by the end of this week.

1 Like

@obycode Any update on when your android version is expected to be released? :slight_smile:

1 Like

So I’m just now reading up on iBeacons and what they are and what they can do. I can’t believe that I haven’t been paying attention to this technology. Before I dive in further, I thought I would ask to make sure I am understanding it right. This is a Bluetooth based low power beacon that is sent out that can be read by any iOS device. So if I understand it right, a smart rule could be written to act upon a specific cell phone entering into an area with a registered beacon. Do I have that right? And also, am I right to say that the beacon does nothing unless a cell phone is there to read it? And finally, does the beacon have to be configured to work with a specific reader and in our case it would be tuned to the BeaconThings code? Wow I love learning about new stuff…

Not yet. It is progressing, slower than I’d hoped, but iOS still gets top priority. I’ll update when there’s news.

1 Like


1 Like

Ken, yes, you’ve got the idea of beacons down correctly! Each iBeacon has three parameters that you can set, the UUID, the major id and the minor id. BeaconThings looks for a certain UUID (which you can change in the settings), and then allows you to create a presence sensor device for each major and minor.

Not yet, but that is ultimately the goal. Right now, its quite simple; that’s why I recently decided to make it free for now. For now, it will only work correctly if you are just using BeaconThings with one device and each beacon just reports present or not present. Later, we will add the functionality to support multiple devices and have each virtual beacon device report a specific device that is in range.

Essentially. It’s always broadcasting, but if nothing is reading it then its kind of like a tree falling in the woods with no one to hear it :slight_smile:.

As I mentioned before, you do have to set the UUID on the beacon and the UUID in the app to match, but there’s no reason that you couldn’t also have another app that is listening for the same UUID, so its not limited to only working with one app.

Does that answer all of your questions?

It’s easy to get confused about what Ibeacons are, because they’re sort of the opposite of what we’re used to dealing with sensors. But once you get the basic concept, everything else gets a lot clearer.

The Lighthouse Analogy

The usual example is to think of an IBeacon as a lighthouse. All it does is send out its light in a particular pattern. The lighthouse itself doesn’t know whether there are any ships nearby or not. And it doesn’t care if there any ships nearby or not. :wink: The lighthouse will not change its behavior based on whether a particular ship is nearby. It just does the same thing, over and over, all the time.

That’s the ibeacon. All it does is send out a little signal that identifies the IBeacon itself, over and over. No matter what other devices are nearby.

So the passing ship is a cellphone app

So in order to make use of this, you need a “receiving station” app. That has to be running on a Device with a Bluetooth antenna. So the receiving station detects the IBeacon’s signal when it is physically close enough to do so, and it is the receiving station app that can be programmed to do something differently based on which I Beacon it just detected. The IBeacon behavior never changes, but the receiving station app might well do different things for different Ibeacons.

So back to the lighthouse analogy, the receiving station app is the ship. The ship detects the beam from the lighthouse and makes its own decision as to whether it will go closer or farther away or turn around or whatever. Or use its own radio to send a message to someone else that it has now come within range of that particular lighthouse. :sailboat:

Different receiving station apps will have different features in terms of what they can do when they detect a particular IBeacon. Some can send a text, some can tweet, some can do a HTTP post, some run their own particular program logic, etc.

The receiving station is a mobile app and it can do pretty much anything a mobile app can do, include contacting a cloud service, it just depends what the program has built-in. But note that just as the ship doesn’t speak back to the lighthouse, the receiving station app isn’t talking back to the Beacon. It’s just using the fact that it saw that particular lighthouse to then make decisions about what actions it should take.

So the IBeacon sends out a one-way message, over and over, whether anyone is there to receive it or not.

The receiving station app detects Ibeacons in its immediate vicinity, and based on the Beacon ID that it receives, it then triggers its own activities.

Same app, different phone

So in order for the same receiving station app installed on two different phones to behave differently when they each detect the same I beacon, it’s the receiving station app that has to have logic that that can store preferences and act on those preferences. Not only does the beacon not know the difference between one cell phone and the other, it doesn’t even know the difference between no cell phones in the area and some cell phones in the area. The beacon just keeps broadcasting its little “I am here” message over and over. Everything else is up to the receiving station app.

very short broadcast range

Strangely, the biggest advantage to Ibeacons for particular use cases is the fact that they have a very short broadcast range. some receiving station apps can be set to only act if and IBeacon is within about 4 inches. The maximum is about 30 feet. And there’s a useful range setting at about 10 feet.

This can let you solve the same kinds of problems as motion sensors. You can detect in a pretty confined area.

The difference is that a motion sensor is an active party. It detects something came into range and it is the sensor that then sends out a notification that it has detected something. But it doesn’t know just which something that is.

An ibeacon is a passive party. It sends out the same signal whether anything is nearby or not. But the receiving station app can recognize the specific Ibeacon that it just came within range of, and act differently based on that beacon’s ID. It’s not the Beacon detecting the phone and then doing something. It’s the phone app detecting the beacon and then doing something based on the specific Beacon that it detected.

The bus stop problem

So for example at my house, I want the front door to unlock for me and only me and only when I get to the base of the wheelchair ramp at my front door. But I don’t want it to unlock while I’m still on the bus. And I don’t want it to unlock for anyone else.

Obviously a motion detector could detect that someone was on the ramp, but it wouldn’t know it was me. And the SmartThings arrival sensor knew it was me, but was triggering while I was still waiting on the bus for the bus driver to operate the wheelchair lift.

The IBeacon broadcast range can be limited to a small enough area that my phone does not detect it until I actually get to the ramp. And because I have an app running on my phone that has my specific information stored in it, the door won’t unlock for anyone else. The receiving station app on my phone recognizes that I beacon, and it then sends a message to my home automation system to unlock the door.

So you can see how this is useful for many different needs. It’s not always quite as good as motion sensors once you’re inside the house, because the IBeacon signal goes through walls. So it’s pretty hard to define a “room” because you pick up the same signal in both the kitchen and the living room since it goes right through the wall. There are ways to deal with that, but they require more equipment and much more complicated receiving station apps.

But as far as zone detection, like Charlie just arrived in this particular area, the IBeacon can give you more range flexibility than most other technologies. :sunglasses:

But the Beacon itself is a very low power, very stupid passive device that just sends out its own ID over and over. Almost all the intelligence is in the receiving station app.


Thanks man - appreciate the tutorial


@obycode I own SmartRules and BeconThings, and It running both well…but one thing it bother me a lot and Obycode seem not yet provide the solution regarding the ibeacon for multi-iPhone when nearby… For example, I have ibeacon in Living Room and BedRoom, and I want to BeconThings and SmartRules to detect my Phone to decide turn on the Light in each area , but if My wife go to Living Room or BedRoom, She can not do that, as now BeconThings just support 1 user and its phone. and only my phone can be detect, therefore I have to think a different way to make it combine with other motion detection…May I know when BeconThings support multiple user ?

Yes, that multi-user support is definitely needed. We’ve been focusing on SmartRules for a while, but now we’ve just submitted version 2.0 to SmartThings and Apple. Now that that is complete, we will pivot back to some quick improvements to BeaconThings, then on to some major changes to obything.


Could this be solved by installing a pair of beacons at each location and pair one to your phone and the other to your wife’s phone? It would be expensive but in comparison to a professionally installed smart home just about anything we do here is still very reasonable. I am curious if this would work because I haven’t installed BeaconThings yet and will only want to do so if I can make it work for two people like this. For example, I would want my wife’s phone and mine to unlock our door upon approaching it.

1 Like

Good point Ken. I think that should work, but I’d like to test it before definitely saying that it will. I’ll get back to you on that. If anyone wants to try it out in the meantime and let us know, please, feel free.

I just tested this and it works fine. If you’ve got extra beacons, it will work as a workaround until the app is updated.

1 Like

Aside from having to constantly carry your phone around from room to room in order to operate your ‘smart’ house, of course. I can definitely see the utility of an entry/exit scene for the whole house or something, but there’s no way I’m taking my phone into the shower to get the right lighting and preferential water temperature :smiley:

Yeah, that’s definitely a limitation of beacons. I’m really hoping that Apple opens up bluetooth on the Apple Watch so this could run directly on there. I know a lot of us already have our phones on us 24/7 anyway though.

In other news, SmartRules sees a huge influx of new users for some reason, certainly made the decision easier! :smile:

For the users without an iPhone SmartRules still isn’t an option however…


Oh, we can not get SmartRules with iPhone?