Abstract
Ring cameras no longer provide a binary sensor for motion detection, only an event, which is not recognised by Alarmo. This article demonstrates a solution that works, but I see as a ‘bodge’. I invite readers to suggest better solutions, and I have several questions for the authors of the Home Assistant Ring integration.
Background
Using the motion sensors on outdoor or indoor cameras to trigger an Alarmo (or any other) Home Assistant alarm system is very useful feature - perhaps the most useful feature of a camera after the actual picture. Until October 2024 it was very easy: the HA Ring integration produced a binary_sensor
with device type motion
, which was recognised by Alarmo, so could be directly added to the Sensors list.
For reasons unknown to this author, Ring, or at least the authors of the Ring integration (I have no way of telling which) withdrew this sensor. There was no deprecation notice or other warning. The documentation, under the title Binary Sensor says “The binary sensor is being replaced with the event entity, and you should migrate any automations to the event entity by release 2025.4.0.” However, the binary sensor already disappeared after an earlier software upgrade (I think it was October 2024?). This caused several bug reports to be raised (see the list at the foot of this page).
Why withdraw these binary sensor(s)? Ring cameras typically have Sensors (depending on the model) for Last activity (time), Live view (the video feed), and Last recording (with a Ring subscription that includes recording). They typically have controls for: motion detection on/off, lights on/off, siren on/off and volume. There is also an event
sensor (which is very similar to ‘Last activity’), as mentioned in the documentation quoted above, but little detail on how to use it. The documentation just says “The event entity captures events like doorbell rings, motion alerts, and intercom unlocking”, then goes into some very technical troubleshooting steps (which I did not need).
Questions for the authors of the HA Ring integration
- Why did you withdraw the
binary_sensor
for motion detection? Please put it back! - How does the event sensor work exactly? What event types are there and how can they be used to trigger automations? The documentation mentions Doorbell rings, Motion alerts, and Intercom unlocking; are these event types? I tried to trigger on event type ‘motion’ but the automation never triggered. I am now triggering on any event and assuming that it is motion as I never saw any other type.
- In particular, is there an event for ‘Motion no longer detected’? I never saw one. By experiment I found that Ring camera motion events are not repeated until the lights go off, about 3 minutes after triggering. My routine therefore sets motion detected ‘on’ for 1 minute after the event and ‘off’ for a further minute before waiting for a new trigger.
My solution (bodge)
The solution before October 2024 was simple:
… but the red explosion symbol shows the link that is broken since October 2024.
We therefore need a new solution:
I do not like it, but it does work. If anyone has a more elegant or robust solution please post it in the comments!
The solution has several parts (making it rather fragile to change):
- An
input_boolean
helper that will hold the detected motion state (on/off) - An automation (from a blueprint) that is triggered by the Ring event and sets the helper on for one minute and then off for one minute before ‘listening’ again.
- A template binary sensor that converts the helper state into a binary sensor with device type motion, that is recognised by Alarmo.
I am pasting the yaml
code for the blueprint and the template binary sensor here so that you can comment on or improve them:
Blueprint code (automation to convert event
to input_helper
)
blueprint:
name: Motion event to input boolean
description: Detects a motion event and turns on a boolean helper for 5 seconds, then off again
domain: automation
input:
motion_event:
name: Motion Event
description: Motion event to trigger this automation
selector:
entity:
filter:
domain: event
device_class: motion
multiple: false
helper_input_boolean:
name: Motion helper
description: Input boolean helper to be operated by this automation
selector:
entity:
filter:
domain: input_boolean
multiple: false
mode: single
max_exceeded: silent
triggers:
- trigger: state
entity_id: !input motion_event
conditions: []
actions:
- action: input_boolean.turn_on
target:
entity_id: !input helper_input_boolean
data: {}
- delay:
hours: 0
minutes: 1
seconds: 0
- action: input_boolean.turn_off
target:
entity_id: !input helper_input_boolean
data: {}
- delay:
hours: 0
minutes: 1
seconds: 0
Example template sensor for camera ‘Back Gate’ (converts input_helper
to binary_sensor
)
- binary_sensor:
- name: Back Gate camera motion
unique_id: back_gate_motion
icon: mdi:motion-sensor
device_class: motion
state: >
{{ states('input_boolean.back_gate_motion_detected') }}
A Note on Naming
All these parts tend to end up with similar names, like “xxx motion”, so you need a convention to avoid confusion. I use the following, which you can take as a guide, or invent your own – as long as it is clear to you!:
- Example: a Ring camera named ‘Back Gate’ in the app …
- Produces a (default) event entity called “event.back_gate_motion” (I do not change that)
- I name the corresponding helper “Back Gate motion detected”, so it gets an entity name of “input_boolean.back_gate_motion_detected”
- I name the automation “Ring motion detection - Back Gate camera”. (Starting with the same phrase, Ring motion detection’, means they all come together when sorted by name).
- I name the template “Back Gate camera motion”, so its entity name is “binary_sensor.back_gate_camera_motion”. Insertion of the word “camera” makes it clearer in Alarmo, distinguishing camera motion sensors from other types of motion sensor.
Installation procedure
A. Preparation
- As always, make a Home Assistant backup before making any changes
- Make sure you have named your cameras appropriately in your Ring app, as this is now going to be more difficult to change later
- If you already had Ring and Alarmo installed, I suggest deleting them both and installing from scratch to eliminate ‘unavallable’ or unknown’ entities left behind by the older version
- Install the blueprint. For the moment you can paste the code above. I will publish it properly on Github later.
- If you do not already have a
templates.yaml
file:
a) create one in /CONFIG
b) inconfiguration.yaml
insert the line
template: !include templates.yaml
B. For each camera …
The following is for an example camera called “Back Gate”; replace with one of your camera names, and repeat for all your cameras.
- Create the Toggle helper “Back Gate motion detected”. It will create the entity
input_boolean.back_gate_motion_detected
- Create an automation, using the blueprint
motion_event_to_input_boolean
.
a) Enter the event ‘Back Gate Motion’ as input
b) Enter the helper “Back Gate motion detected” as output parameter.
c) Save and name it something like “Ring motion detection - Back Gate camera”. - Create a template sensor by pasting the example code above for “Back Gate” into your
templates.yaml
file, and adapting the entity names as you chose them.
You do not need to repeat the- binary_sensor:
header after the first one, start each further camera at at- name:
with the appropriate indent.
C. Set up in Alarmo
- After completing stages A and B, restart Home Assistant.
- In Alarmo, select the “SENSORS” page. You should now see all your cameras’ motion sensors as “Back Gate camera motion” etc., with entity names
binary_sensor.back_gate_camera_motion
etc. and device typemotion
. You can set them up as motion sensors in the usual way. - Test every camera’s motion sensor, to make sure you have not broken the chain with a typo! You can do this by standing near the camera, arming Alarmo and then moving.
Good luck!
Comment below on how you get on, stating what type of cameras you are using.
__
If you find the ideas and code in this article useful, please Buy Me a Coffee
__
References
Documentation
Current HA Ring integration documentation:
Ring Binary Sensor documentation (but only for doorbells)
Issues and feature requests
My issue on the Home Assistant Community Forum
My Github feature request to reinstate the binary sensors
Orginally raised as an issue – please comment on it to support it!
Other bug reports, questions and feature requests apparently related to this issue (in no particular order)
Note: I am not using the older MQTT solution and have not included issues with that.