Graesen Arnoff

View Original

[Off Topic] Reducing Delayed Notifications for Ring and Other Smart Home Devices

I’ve had a Ring doorbell for a couple of years now and I was always annoyed by the delay in notifications from it. A smart doorbell with a camera isn’t exactly doing it’s job if the motion detection goes off after the person is already gone or the doorbell rings your phone after you’ve already answered the door. It was also annoying to hear my wife’s phone receive the Ring notification before (or sometimes after) I did. Since owning the Ring doorbell, I have periodically looked for a reason or solution to the delayed notifications, but the only solution I could find I had already done.

I finally found a real solution and for your sake, I’m going to keep it simple — achieving them may not be so easy, however. All you need to do is (in no particular order):

  • (For Android) Remove battery optimizations

  • Set your Ring doorbell on a static IP address

For both tasks, please look for guides in doing this for your specific phone and router as the steps will vary from device to device. Google changes the steps to access battery optimizations in different versions of Android and each manufacturer may have their own changes to the software as well. Similarly, how to set a static IP address will vary between routers and some may restrict you from doing this at all. I can’t provide directions for all possible devices. What I can do is explain both Android battery optimizations and static IP addresses for those interested in learning more.

Android battery optimizations

Earlier versions of Android had no control over how or when apps operated on phones. This impacted battery life in a big way as each app would start up in the background randomly to run specific tasks, and each one would do it on their own schedule. These tasks apps would run could be anything from updating the weather information to tracking your location for advertisements. And one app could start running just as another finished, In a nutshell, your phone might have gotten very little downtime known as sleep mode. When your phone is in sleep mode, virtually nothing runs and the most battery is conserved.

When Android 6.0 Marshmallow released, Google added a new feature called Doze. This new feature prevents apps from running wild in the background as I described. In fact, as Doze evolved with newer releases of Android, it forced apps to operate on sort of a schedule where similar tasks would operate simultaneously. The idea is to both allow apps to perform their necessary tasks, but also maximize your phone’s sleep time to conserve battery. This is why you might find some apps not working as well as you’d like. For instance, you might not get your Facebook or email notifications immediately when they’re sent. Rather, you might get bombarded with notifications from multiple apps the moment you pick up your phone. That’s Doze keeping your phone asleep until you actively use it.

For this reason, you should absolutely remove “battery optimizations” from the Ring app on your Android phone. To keep things simple for consumers, Doze is referred to as “battery optimizations” inside the Android settings. By removing battery optimizations from the Ring app, you allow Ring to run in the background as the app feels necessary. Keeping battery optimizations enabled means the Ring app would run less frequently, which results in notifications being delayed. In fact, you may not receive a single Ring notification until you pick up your phone if battery optimizations are left enabled.

Removing battery optimizations from the Ring app, as well as other apps that I rely on for immediate action, is one of the first things I do when I install the app. This includes smart watch apps, smart home apps, messaging apps, etc.

Putting Ring on a Static IP Address

I must admit, this one makes a little less sense to me than I’d like to admit, but it’s working. After some searching on the web for an answer to why my notifications are still delayed, despite already having removed battery optimizations, I found someone suggest putting the doorbell on a static IP address. The logic is that the Ring sees motion or the doorbell is pressed and chimes, then it sends that information to the cloud, which then sends it to your phone. Well… when it communicates with the cloud, it uses the IP address to identify which Ring device it is and who it’s sending a notification to. With a static IP address, it’s faster to verify.

That’s all fine and it works, but… IP addresses don’t change that often. Even if the IP address did change, it’s the same for long enough time to not delay notifications the way Ring does. But perhaps this is one subject I’m not so familiar with and my understanding of it is limited - and that’s OK. My professional experience is not in IT/networking and I can’t be an expert in everything.

The reason why this works is irrelevant. I decided to try the advice by logging into my router, using my router’s DHCP settings to reserve an IP address specifically for my Ring doorbell (and my other smart home devices while I was at it), and hoping for some improvement. Almost immediately, I noticed faster (maybe not perfect) notifications from my Ring. First of all, I noticed that both my phone and my wife’s phone received notifications simultaneously multiple times throughout the day — something that has never happened. Secondly, notifications were received seemingly sooner than I was used to, but I’m still not confident in saying they were immediate.

I can’t say for certain if this will help other smart devices respond, but it won’t hurt either. With regards to Android and Google’s products/services, Google has it’s own push notification system which most apps utilize for Android devices. It’s likely more efficient or faster at sending notifications out. I’m not sure if Ring uses Google’s notification system or if Amazon might have implemented their own since purchasing Ring. If Ring is using a notification system Amazon has developed, it might explain why it’s not as fast to notify customers about activity.