I’m seeing lots of tips for different uses of Wyze with IFTTT or with webhooks but very little that uses everything in in a way that is simple enough to be done by anyone and from your phone. So here’s my take. There are a lot of screen shots in here since I find seeing exactly how it’s done and being able to compare makes life way easier. This can also all be done from your PC which makes all the app switching and copy/pasting a whole lot easier. I hope this helps some more people get more out of their Wyze sensors.
I had a problem this morning. We went out to breakfast and I got a notification from the camera in my garage. I check the camera and see I left the door open. So what I need is to have the system notify me when I’m driving away that the door is still open.
For this I need to know a few things:
- Garage door status. Open or closed?
- My location. Home or away?
- Some logic to check those and alert me if the door is open AND I’m leaving home.
- Notifications on my phone.
The Wyze app and IFTTT don’t do logic. They’re pretty simple, can only handle a single interaction and can’t check the state of a sensor. For this you can use apilio.io. Apilio lets you define variables, the conditions for those variables, and some simple logic to check them.
So here we go.
This is my current setup:
All I really care about for this is the ‘Garage door’ contact sensor.
We can get logged into https://apilio.io and create some variables. I kept mine simple:
For the garage door status I set the value as ‘False’, we’ll see why later:
Next we create conditions for our variables:
The important part here is the ‘Required state’. We’ll be checking if that door is open:
IsHome is set up the same way but with the default variable value being true and the condition required state being false.
The Logicblock is where it all comes together. We will check our door state and our location state then take an action if the door is open and we’re away from home.
The reason I set my variables as I did was to make this part as simple as possible. The logic here gives us 4 possible status:
- The door is closed and I’m home.
- The door is open and I’m home.
- The door is closed and I’m away.
- The door is open and I’m away.
For this event we only want a notification to trigger if the door is open and I’m away. To make this check as easy as possible we want to fulfill the basic condition checking in apilio that checks if selected conditions are TRUE. Check the two boxes instead of writing out a more complex condition statement.
Next because we will have a positive result we can set a positive IFTTT action. The service event name matters and we’ll be using it in the last step:
You don’t need the values here but I like to use them later in my notification.
Finally I’m goiong to check the ‘Automatic evaluation check box’ to let apilio catch when the variables change so that I don’t have to keep track of that.
That’s all the tricky stuff done. All that’s left now is to set up our triggers in IFTTT. Make sure you click the ‘Tutorials’ link in apilio and run through the tutorial to set up the link to IFTTT. There’s nothing I can add to that, it’s numbered steps and very straight forward.
On to IFTTT. Don’t close apilio yet as we’ll be using some webhooks and we’ll need to copy and paste from there.
We’ll be creating 5 triggers:
Triggers 1 & 2, Setting the garage door state.
Triggers 3 & 4, setting our location state.
Trigger 5, the notification.
Edit: I just discovered that the location service doesn’t update as quickly as I first thought. It looks like it could take up to an hour. For this reason I’m switching to when I connect/disconnect to my home wifi by using an IF trigger of ‘Android device: Disconnects from a specific network’.
Create a new applet in IFTTT to set the CLOSE state of the door:
Your IF will be the Wyze sensor…
Your THEN will be a Webhook.
At this point you will want to switch back to apilio, go to your conditions, and click the ‘Show’ button. You’ll be presented with 3 URLs. These are used to set the status of the variable. Grab the FALSE one:
My unique key obsficated for obvious reasons!
Copy this URL into the Webhook URL field.
Method is GET.
Content Type is JSON.
Save your trigger.
Now do this again for the OPEN/TRUE state of the door.
For the location everything you need comes with IFTTT. You may need to grant permissions for it to access your location.
Create a new applet and use ‘Location’ and ‘When you exit an area’ for the IF:
You can pinch to zoom and get the circle pretty small. Mine covers the corner plot my house sits on.
Your THEN is another Webhook the same as for the door sensor.
Create a second applet for entering the area so we can tell apilio when we’re home.
Trigger 5. The last step.
Thanks to all the setup you’ve already done the last part is super simple. Create an applet, IF is a Webhook. The event name is the Webhooks service event name on your logicblock positive action. Remember I noted that we’d use it in the last step?
Your THEN is the notification you’ll see on your phone. This is where I used the values from the service event but you can write in any message you want.
And that’s it. Lots of fiddly pieces but it all comes together in the end.
Want to test? Go to your conditions in apilio and click the links you used to set the variables in IFTTT. You should see a note that the variable has been updated and as soon as the door is OPEN and you are AWAY you should get the notification on your phone.
I’m pretty sure that I’ll streamline this in the future, perhaps write my own code to manage everything. But for now and the reason for this post is that this can all be done without any coding knowledge, using totally free apps, and all from your phone while you’re sitting having breakfast! This should also give you everything you need to set up your own processes if you’ve been putting off diving in for fear of complexity. =)
Gallery of images here: Wyze notification - forgotten garage door. - Album on Imgur
Mods - feel free to clean up the formatting so this isn’t 15 pages long. The links automatically resolved into the images.