Tapo D225 doorbell, triggers for doorbell press

I have a Tapo D225 doorbell integrated with Home Assistant with using Tapo: Cameras Control. I am running Home Assistant 2025.5.3 in a docker container. Cameras work. Motion sensors work. So far so good.

I however can’t find a way to trigger an action when the doorbell button is pressed.

What am I missing?
Is there a entity somewhere that is the doorbell?

It is sort of the basic purpose of a doorbell.

Did you figure this out? I have the D235 and there is also no trigger for doorbell pressed.

I have not found anything. I am thinking of having the doorbell trigger something else in the Tapo app that I can monitor in HA to indicate that it was rung, such as setting an LED to a color.

I have the D235 and there is no sensor in the custom integration for home assistant. It is really a stupid decision by Tapo since it’s the main reason you get a doorbell. Event the notification on the phone is not very fast and dysplaying a call from the doorbell takes some time and I pick up too late. I have found the Ring doorbell working better in this regard. I don’t know what your thoughts are on this.
Anyway, there are some workarounds for the button press:
if you have the amazon echos, which needs to be on, you can use the EMULATED HUE integration from HA to expose a binary sensor which gets triggered when the doorbell is pressed. You need to add the doorbell to alexa of course and then create a routine in alexa to trigger that sensor.
Secondly, on android, and that’s what i’m using at the moment, have your phone or a different device that stays on all the time get the TAPO notifications. Have tasker catch that notification and then send a message through the HA API or a webhook to trigger your routine in HA.
Thirdly … activate a tapo light bulb as you said which might be the fastest way.
Cheers

The Tapo Android App can make automation and has the press event.
But it cannot be forwared to anything else a Tapo device or a Tapo shortcut.
So may be create a unused shortcut like “Enable Tamper detection” on any Cam in the app and then make an automation on that trigger “Enable Tamper detection” when doorbell is pressed. Then you will have the Tamper detection event that is well received in HA and consider this event to be a doorbell press :wink:
EDIT : Arff it seems there is no shortcut to enable Tamper detection but you see the idea. May be Tapo plug could do the relay for this.

I bought a tapo light bulb to test this out and it works well enough, no events missed so far.
So I integrated the light bulb in home assistant with the official tp link intégration. In the tapo app I’ve setup an automation to turn on the lightbulb when the doorbell gets pressed and then I catch the lightbulb turning on in home assistant. Works reliably and without delay. You can even trigger different events this way. For instance on motion, vehicle or person detected you can trigger a different light preset. This preset is easily checked in an automation in home assistant so you know which event took place.
I prefer this right now as opposed to the ONVIF local motion sensors as they are very unreliable and get stuck in ‘detected’ state easily

Really hope there is a way to see pressed event in HA

A bit late to the party here, but if anyone else has the same issue, I hope this helps.

I created a virtual light using SmartLife and ensured Alexa picked it up as a device.

I then created an automation in Alexa to switch the virtual light on when the doorbell is pressed.

I could then create automations within HA with that light as a trigger (making sure to switch the virtual light on at the end of the automation!).

Ditto this suggestion for anyone else looking to capture actions from Tapo doorbells.
I have a wired D225 and battery powered D210 and tried both the HACS Tapo camera controls and the built in TP-Link integration but couldn’t get motion sensors to show up in HA.
So I got a cheap Tapo bulb and using the Tapo automation to change color settings on the light I can use the 1 light bulb to capture motion, package and people detections from both doorbells in HA.
Next I’ll attempt live camera feed and/or moving the video files from the SD cards in the doorbells to my HA storage but that’s a different topic.

Hi everyone,
It has been a while since someone posted an update on this topic. Today, I discovered a trigger in the code for the D225.
Below is the code I am currently using for the doorbell trigger

alias: Doorbell notification
trigger:
  - platform: state
    entity_id: binary_sensor.YOUR_DOORBELL_SENSOR
    to: "on"
action:
  - service: notify.mobile_app_YOUR_DEVICE_NAME
    data:
      title: "Doorbell"
      message: "Someone is at the door"
      data:
        image: "/api/camera_proxy/camera.YOUR_DOORBELL_CAMERA"
        push:
          category: doorbell

you can also test if you have these sensors by testing it in the developer section on hass by using this code

Current status: {{ states('binary_sensor.YOUR_DOORBELL_SENSOR') }}

Last changed: {{ states.binary_sensor.YOUR_DOORBELL_SENSOR.last_changed }}
Last updated: {{ states.binary_sensor.YOUR_DOORBELL_SENSOR.last_updated }}

Is the doorbell currently pressed (state = on)?
{{ is_state('binary_sensor.YOUR_DOORBELL_SENSOR', 'on') }}

Seconds since the last state change:
{{ (now() - states.binary_sensor.YOUR_DOORBELL_SENSOR.last_changed).total_seconds() | round(0) }} seconds

Camera snapshot URL the notification would use:
/api/camera_proxy/camera.YOUR_DOORBELL_CAMERA

Just replace YOUR_DOORBELL_SENSOR and YOUR_DOORBELL_CAMERA with your own entity names, paste it into Developer Tools → Template, and you’ll immediately see whether the sensor is reporting correctly.

To simulate a doorbell press without actually pressing the button: go to Developer Tools → States, find your binary_sensor.YOUR_DOORBELL_SENSOR, manually set its state to on, and hit Set State. Then re-check the template tab you should see is_state(…) = True and the seconds counter at 0.

extra edit:
This entity isn’t something Home Assistant invents on its own, it comes directly from the Tapo integration (tapo_control), which communicates with the firmware on the doorbell camera itself. When someone presses the physical button, the camera’s firmware sends that signal to the integration, which translates it into this binary_sensor and briefly flips it to “on” (in my history I can see it switching to “on” for about 2 seconds and then back to “off” every time the button was pressed).

Worth noting: if your doorbell is also connected through a second, separate integration (in my case Onvif), that one typically only exposes motion/person detection, not a dedicated button-press sensor. So for a doorbell-press automation specifically, make sure you’re using the entity from the integration that actually reports the physical button press, not just motion in front of the camera.