On this week’s IoT Podcast, we got a great voicemail question from Keith. He wants to know if an Amazon Echo can notify him of external events based on other smart devices in his home. For example, if a webcam sees movement, can Alexa tell him?
There’s no native functionality to make this happen, but the Notify Me Alexa skill works for this. Just keep in mind that the setup isn’t quite a simple process and it does require an external service, such as IFTTT.
Using the webcam motion detection example, here are the steps to make this work. You can adjust them accordingly for whatever smart device you want to use as a trigger event, of course.
First, enable the Notify Me skill found on the Amazon Alexa Skills site, or in your Alexa app.
Note that you’ll have to approve the Alexa Notifications permission for this. Once enabled with the proper permissions, you should receive an email that includes a unique Notify Me access code. This is tied to your Amazon account and is required for the service to work.
If you want to test the skill at this point, there’s also a link in the email to generate a notification to your Echo devices; click it and Alexa should make a sound or light up to inform you of a new notification. Say “Alexa, play notifications” and she should say “Hello world,” which is the test message.
Now it’s time to set up the skill with IFTTT, using the lengthy access code. I chose to create an IFTTT recipe using a Nest Cam in this example.
Step 2 is to choose the appropriate Nest Cam; I have two and for this example, I’ll use the camera that faces our driveway and select the “New Motion Event” option as the trigger. Once you’ve selected the appropriate device, click the “Create Trigger” button.
With the trigger event configured, it’s time to tell IFTTT what to do when that event occurs by clicking the “+that” selection and searching for Webhooks. The reason? We want IFTTT to send a web command to the Notify Me skill.
Here’s where the process gets marginally tricky, but trust me, you can do it! Choose the only option you’ll see for Webhooks, which is the “Make a web request” selection. Then you’ll see four fields to configure the webhook. Use the following information to fill in the first three:
- URL: https://api.notifymyecho.com/v1/NotifyMe
- Method: POST
- Content Type: application/json
This is what the first three fields should look like once you’ve completed this input:
The fourth and final field, Body, is where you’ll create a custom notification based on this format: {“notification”: “Hello World!”, “accessCode”:“ACCESS_CODE”}.
You may want to paste the above line (including the curly braces) right into the body because you’re only going to modify what I’ve put in italics. You can replace “Hello World!” with your custom notification; this is what Alexa will say when she sees motion from my Nest Cam. I’ll use, “I see movement in the driveway” for this implementation.
Finally, replace the italicized “ACCESS_CODE” part with your unique access code, making sure that you put quotes around it. Here’s what it should look like in my example, although I didn’t paste a real access code and my fake code is shorter than the real one.
Once all of the fields are properly filled in, just tap “Create action” to enable your new Alexa notification. That’s it!
In this particular case, Alexa receives a notification whenever my driveway Nest Cam senses movement. Just to reiterate, Alexa won’t simply speak the notification when she receives it: You’ll have to ask her to read the notification aloud, which is how Amazon has implemented notifications.
And there’s one more thing you should know. Regardless of what smart home device you use as a trigger event, Amazon limits the Notification API: Trigger events can only create notifications up to five times in a five minute period. After that, Amazon puts you in a bit of a time-out. I wouldn’t think you’d want notifications every minute but it’s worth a mention if you use the skill several times over a few minutes during the setup or test process.
Thanks to the Notify Me skill, you can have Alexa notify you of any external events triggered by a sensor, camera or any other smart device supported by IFTTT. Notify Me isn’t limited to IFTTT as it also works with ISY, Indigo, HomeSeer and Tasker, but I chose IFTTT for this example since it’s relatively simple and many people are familiar with it.
If you’d rather hear our response to this question, you can hit the play button below to start the podcast right at our IoT Podcast Hotline section:
And remember, you can always leave us your question by calling the IoT Podcast Hotline at 512-623-7424!
Hey Kevin and Stacey,
Of note: you can use a ring doorbell as the source “device” to automatically have Alexa “say” a phrase (e.g. “Motion at Door”) Natively. After you select the ring doorbell you can choose “motion” or “ring” as the trigger. I assume this works for other Amazon cameras/devices but have not tested. This would be much simpler than the method outlined. I confirmed it does not currently work with a Wyze cam so must just be Amazon devices.
Thank you for this. Works great. I have a SmartThings door sensor and when the door is open I get a Notification: “Sliding Door is open, either close it or shut off the Air Conditioning.” I have a few Ecobee Switch+’s (built-in Alexa) and I get get the Green Notification light and I then ask Alexa to Open Notifications. Too bad it does not ‘say’ it by itself, but it’s a great start – super nerdy I’ll admit though. Still working hard on WAF! (Wife Acceptance Factor)
I am desperate for a skill that would let me use the Alexa Announcement feature to make her say a specific phrase, when queued by a certain trigger. I have a few of these “Knocki” devices, and am trying to have knocki when triggered by someone knocking at the back door, trigger IFTTT to trigger Alexa to use the Announce feature, to say something like “There is someone at your back door!”.
You could do this with an echo button. I have IFTTT trigger alexa by first triggering a sonoff 4 channel switch (in inching mode) which I have connected to a echo button by soldering to first and third header pins under the battery. This effectively “pushes” the echo button, triggering the announcement. Works well!
You can also do it with certain sonos speakers and a simplecommands.com trigger notification. A sonos beam or sonos One ( not 1 ) will say anything you want it to.
You could use this the “Doorbell skill” available from https://www.ijpuk.com
You create as many virtual doorbells as you like, then when activated can be used to either make alexa chime like a real doorbell or make an announcement of your choosing.
are you speculating that this is possible? or have you actually made it work (it doesn’t for me). guidance would be appreciated
Providing your device works your IFTTT you can make this work. I have helped others to do just this. You create a virtual doorbell on https://www.ijpuk.com once the doorbell is shown in the Alexa app (on your phone) then you create an Alexa routine that uses this doorbell as a trigger. This routine can be set to make an announcement or play music – You decide.
You can test all this for free. When you want to use it with IFTTT Web hooks then you need a premium subscription (Yearly £20 – Free 7 days to trial it), this helps to pay for the developers who worked hard on providing this feature.
I’m looking for an Alexa skill that can respond to the state or read/query the state of another skill (such as an Alarm System) and then trigger another skill command. Such as If “SimpliSafe Alarm” then “Set all Hue Lights Red”.
This skill would eliminate the need for “Work With…” development between 2 IoT smart systems after they integrate with Alexa. Any Trigger that can be spoken to Alexa can execute another skills Action (as if it was spoken).
Just wanted you to know this article is still helping folks. It’s not a particularly important thing, but I used it to set up an Alexa notification when my WeMo Insight plug showed my washing machine stopped. Helpful…thank you.
Good article but if I want Alexa to do some other action, how do I find the correct API for it? I am in technology so I know roughly what I’m doing given some reference material but can’t seem to find any list of possible APIs. Specifically, I want to call “Set Thermometer” skill remotely
This will be a quick post and credit for the idea goes to Stacey Higgenbotham and her post from last year, “How to trigger custom Alexa notifications from a smart home event” .
ApparentlyOne year one and still an excellent article. Two items to note now that I’ve played with this a bit…
1. Beware of copying and pasting the Body field example from the article above. I blame HTML in that it created “curly” quotation marks in the Body example, which the REST API can’t understand. Instead, use this:
{“notification”: “Hello World!”, “accessCode”: “ACCESS_CODE”}
If you look closely, you’ll see a difference in the appearance of the quotation marks between this and the one in the article.
2. If you want to make Alexa simply speak aloud without prompting (or make her play a song, launch a skill, and so on), try the new Virtual Buttons skill. It is made by the same developer as Notify Me and uses a similar API.
What is the “access code” for a Blink camera?
I know this is ancient, but it is simply the 4 digit disarm code that you set in the Blink app
One year one and Still an excellent article. Two items to note now that I’ve played with this a bit…
1. Beware of copying and pasting the Body field example from the article above. I blame HTML in that it created “curly” quotation marks in the Body example, which the REST API can’t understand. Instead. Those curly quotation marks must be replace with the type created by a standard text editor.
2. If you want to make Alexa simply speak aloud without prompting (or make her play a song, launch a skill, and so on), try the new Virtual Buttons skill. It is made by the same developer as Notify Me and uses a similar API.
Just in case it wasn’t clear above, to get your ACCESS_CODE, you’ll need to say “Alexa, open Notify Me,” after you install the Notify Me skill in the Alexa app. You’ll then receive an email with your access code, which you can copy and paste into the appropriate spot in the Body section (as shown above). Hope that helps. It took me a bit to figure all of that out.
Thanks for this 🙂
Can we get directions on using the buttons site so she will automatically speak?
This doesn’t work. It’s set up and tested. But when I went to try making motion at my camera , no notification was sent to my echo. Help please. Thanks
I set up this up exactly as described in IFTT and it did send a notification to Alexa Show when my camera had a motion detection however it only had a notufucation sound. Alexa did did not say what I put in quotations to announce when my Wyze camera has a motion alert? Anyone know why or what I need to enable?
What is the acces code?? Is it the password of amazon???????
See my post from 12/12/19.
For the life of me, I couldn’t get this to work and spent all day yesterday trying to get it to work. I tried everything. I tried putting the parameters in the URL and used the GET method, I tried changing the order of the arguments in the URL, I tried using a different action to see if my trigger was working (and it was). I tried a simpler notification just in case my notification included characters that NotifyMe didn’t like. Couldn’t get it to work.
One of the first things I found out was that I should’ve typed the JSON format in manually and not cut and paste. I found this out only after I ran the JSON through jsonlint. I found out that the quotes in the article are not proper quotes at all. At least not quotes that work in JSON. I’d encountered this in the past but it didn’t occur to me yesterday.
Lastly, as I was at the point of throwing in the towel for lack of any more ideas to try, I added the port to the URL. I kept seeing it in the instructions but it said “If required” and I assumed it wasn’t because https does use port 443 by default. But lo and behold, after I added the port it worked!
So anyone out there following these instructions, this is a well-written article but those are the things I did to finally get this to work.
Now that IFTTT is subscription, does anyone know of an off the shelf Alexa Skill that can send a custom URL as an action in an Alexa Routine? This would allow getting IFTTT out of the loop entirely.