Voice Announcment Specific To Last Known Movement

Hello All

Ive had an idea and want to know if it is possible to create or possibly a bit to over the top . . .

I now have 3 UBI’s / 1 DLNA AV Receiver linked to surround sound / 2 Tvs which support DLNA / 1 sonos . . . and all of them can receive notifications and sounds from the smartthings app using the " GENERIC MEDIA RENDERER & SONOS SMART APPS " . . . however im looking to set up a doorbell system with a MIMOLITE and dont really want the doorbell to only ever announce that it has been pressed to one speaker or even worse all of them, as i may not be in range to hear it or i may hear it repeated on several devices . . .

So the idea for a smartapp, if i can explain it well enough, is:

When the MIMOLITE detects it has been pressed (closed in sensor terms) it will then check all of my motion sensors and work out where in my home there was last presence detected, and if it detects im in my home office it would then push the notification to the office ubi . . . or if it detected i was last in the bedroom it would push the voice notification to the bedroom ubi . . . if it detected i was in the living room it would push to the living room speakers or sonos etc . . .

Granted this could get confusing for a multiple occupancy home where several people may be moving around the home at the same time . . . Howeverrrrr, in theory if someone is the last detected “mover” in the house, then they are more likely to be the one who is already up and able to answer the door . . . so i think this is a very small issue . . .

even better you could make this mode specific, so if mode is AWAY then dont send voice notification, but instead send push notification to users phone or via text . . . and if in HOME mode then push voice notification to the room that last registered movement . . . and if in SLEEP mode then dont push to bedrooms only the room that last had movement excluding bedrooms etc etc

does this seem possible to the smartapp geniuses on here ?



Most things are possible but whether it makes sense to do it given the Mesh structure of smartthings and the available programming tools is a whole other issue.

I approach this rather differently, and have my gate notification ring on my smartwatch. Very, very simple to implement, works perfectly.

As for the approach you described, the only person I’ve seen attempting anything similar is @Kristopher 's “wasp in a box.” That’s a microlocation system. But his “simple” version is pretty complicated, and it requires a significant investment in sensors to establish last location. Plus, you have to be able to rely on the person carrying the phone around all the time. Or adopting a detectable wearable, of which there are not many.

Anyway he is interested in projects of the kind you described, so perhaps he’ll have more to suggest.

1 Like

Cheers @JDRoberts . . .

As for the presence aspects im not so bothered about that, i deal with my presence situation similar to you now since reading your solution . . . im just really interested in having the doorbell notification only play through the speaker that is relevant to an attached motion sensor for that room if it was the last one to receive motion in the system.

i can see how the two subjects definitely cross over in ways, but i dont want other people who read this to get it confused as another need for a micro location thread… im simply looking for a way to make certain notifications be played only in the last room motion was detected as to eliminate 7 different speakers in the house repeating the same message all at different times (our of sync) or even more annoying one at the opposite side of the house to where i may be at that times from reading it out and me missing it :slight_smile: as they appear to be the only options so far as a pose to a smarter option that can actually hazard a guess as which room you may be in due to the last location it detected movement, then process’s the notification to the speaker in that room.

cheers kyle

it will take some serious logic in your code and good UI design so it won’t be confusing… but yes i think its totally possible.

Once you say " The last room where motion was detected" you are into micro location, and it’s really complicated.

It’s also not anything that smartthings is set up for.

Remember the smartthings mostly uses mesh. Zigbee and Zwave. These are not intended for constant monitoring situations. For that you would use Wi-Fi or hardwired systems.

Instead, they are event reporting systems. Something happens, and SmartThings is set up to trigger something else. And most of the sensors are “sampling” sensors which only check to see if something happened every few minutes.

There also isn’t any forced sequencing. Messages can bounce around the mesh awhile. It’s entirely possible that if you walk out of your office and cross the hallway into your bedroom, that the system might receive the motion report from the bedroom before it receives the motion report from the office.

There isn’t anything in a basic SmartThings system that finds the last motion sensor that went off.

Just solving that piece of the puzzle: figuring out what the last motion sensor was that went off, would require a whole lot of code and devices that don’t naturally fit a realtime “event reporting” model. You’re trying to look backwards and make judgments based on things that happened in the past, in many cases things that happened many events ago across multiple devices. It’s just not what smartthings is structured for.

So again, not impossible. But again, really really complicated given the programming tools provided.

This is one of those things where it’s going to work just fine on your initial test case, and it’s going to keep breaking over and over and over in real life. And the Debug and correction process is going to be very complicated. And time-consuming.

These cases are also going to be very complicated. You assume that the last person who moved is the one who should go answer the doorbell. But if my housemate has been playing video games for the last three hours, and his girlfriend is coming over after work, and I’ve just gone to bed, I guarantee you I do not want the voice announcement of her arrival at the door to come on the speaker in my room.

There are going to be a lot of cases like that. One person’s been sitting on the couch watching television, another person is cooking in the kitchen and moving around, and the doorbell rings. Again, the busy in motion person, the cook in the kitchen, is probably not the one who’s supposed to go to the door.

i think this bit answers my question . . .

Not impossible but pointless as wount be 110% reliable even when created . . . hmmm thats a real shame . . . hmm

You can fix the reliability with zone detection, but seriously it’s going to take multiple sensors in every room, and a lot of work. Again look at what @Kristopher has already done.

1 Like

How about just sending the notification to any speaker associated with a motion detector that is currently detecting motion, and if none are, then play it everywhere. This would be easier than figuring out the last one to have motion, and is more likely to be correct if there is still movement. So in the app, you would select your speakers and for each speaker, pair one or more motion detectors. Seems easy enough.


This could also be a fun use case for BeaconThings once we’ve got the additional functionality we’ve been discussing. Associate each beacon with a speaker, and play the sound on any speakers that have a person nearby. I will definitely play around with this this weekend!

1 Like

sounds too complicated.

1 Like

i like this, simplify s it alot, good thinking :slight_smile: also good point on been a great function for beaconthings :slight_smile: which i need to uterlise im going to download it and get me some beacons asap :slight_smile: . . . im going to run it like @JDRoberts with my tablet as the hub and beacons as presence tags running alongside ST Presence tags, so each covers the others arse and gives an overall more reliable solution than when ST ones drop off the map unexpected.


What about setting modes based on where the motion is and directing the announcements to particular speakers based on the mode? It doesn’t fix some of the inherent issues mentioned here and it would probably result in the creation of many modes, especially if you use modes for other purposes, but it wouldn’t require a special app to start testing it.

Is that app an option for the describe situation?