Issue with external tapo integration

I have a Tapo C260 camera that works fine and I can retrieve the image with the internal camera integration

But with the Tapo integration I see nothing:

I’m looking at a Tapo doorbell and I’m pleasantly surprised by Rufus’ (Amazon) response :face_with_raised_eyebrow:

@Chris75 For local control, you need to enter the IP address

@mutmut is the doorbell battery-powered?

Yes, 180 days of autonomy.
I’m considering a Reolink with PoE, 2.5 times more expensive, but I can’t figure out if it’s cloud and/or local.

ok, the image was captured correctly:

But it doesn’t display
Screenshot 2026-08-11 221241

You need to add a camera widget

If you can, take POE, it’s more of a hassle to install because you have to pull a cable, but if you want a video stream, it’s better.
Because on battery when you do video streaming, the autonomy drops very quickly.
By the way, I found it, finally Claude, to have the video stream for the battery cameras that have RTSP blocked, but in the integration I did not allow the live stream. Only snapshots

Now I don’t understand: the « camera Â» widget already worked very well with the internal « camera Â» integration where I had put the RTSP stream. So what does the external tapo integration add?

Nothing more today, well almost, there is a function to retrieve images from a battery-powered camera that doesn’t have RTSP, for example.
Afterwards, it allows you to fill in the RTSP address for those who don’t know how and only know the IP.

But be patient, as there are features coming soon with the next updates. ONVIF PTZ support, to control the camera position, if motorized, from Gladys.

ok, I’m really looking forward to these very interesting new features!

@Will_71 I just tested the new version (on a TAPO C260 camera) and I have the following minor issues:
Device update:

Motion detection doesn’t work and there’s an issue with the interface:


Directional arrows, they are reversed for me: the left arrow (<-) makes the camera turn to the right, the right arrow (->) makes the camera turn to the left, the up arrow (^) makes the camera turn down and the down arrow (v) makes the camera turn up!

Can you share the integration logs? Thanks.

For the other points:

  • for the interface, create a dedicated topic as this doesn’t concern Gladys directly
  • for the arrows, I have 2 cameras that work well so I’m a bit annoyed because if TAPO doesn’t have the same data for all these cameras, we’ll have to handle them case by case. I’m thinking about a solution and I’ll let you know.

ok, but how do I share them with you? as plain text?

ok but in which category do I create the topic?

my bad, I did the tests on a « placed Â» camera and not on the ceiling: so all maneuvers are reversed, so no problem it works!

So the only issue left is motion detection, which works well on the tapo app

I’ll collect the text from the forum and if necessary, I’ll format your message.

For motion detection, it worked on the test image but not on v4.86. Strange, but I’m on it because I have the same issue.

Logs

[2026-08-14T15:17:19.408Z] [INFO] Starting the Tapo integration...
[2026-08-14T15:17:19.678Z] [INFO] [gladys-sdk] connected to Gladys (http://172.30.0.1:80)
[2026-08-14T15:17:20.080Z] [INFO] Connected to the TP-Link cloud
[2026-08-14T15:17:20.301Z] [INFO] 1 Tapo camera(s) found in the cloud
[2026-08-14T15:17:26.172Z] [WARN] "Tapo C260" rejected the Tapo password on its local API: no privacy switch. This camera does not open its local API to Gladys; its other features are unaffected.
[2026-08-14T15:17:26.611Z] [INFO] "Tapo C260" declares no doorbell topic: no button feature created
[2026-08-14T15:17:26.619Z] [INFO] "Tapo C260" supports PTZ (4 movements, 3 presets)
[2026-08-14T15:17:26.619Z] [INFO] "Tapo C260" (192.168.1.23) will be captured over rtsp
[2026-08-14T15:17:26.664Z] [INFO] Watching the Tapo events every 20s
[2026-08-14T15:17:26.665Z] [INFO] Refreshing the camera images every 60s (battery cameras: every 900s)
[2026-08-14T16:25:10.542Z] [INFO] onSetValue <- move 2 on "tapo-c260-2"
[2026-08-14T16:25:10.547Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:25:14.457Z] [INFO] onSetValue <- move 2 on "tapo-c260-2"
[2026-08-14T16:25:14.606Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:25:18.455Z] [INFO] onSetValue <- move 1 on "tapo-c260-2"
[2026-08-14T16:25:18.465Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:25:20.643Z] [INFO] onSetValue <- move 2 on "tapo-c260-2"
[2026-08-14T16:25:20.669Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:25:25.725Z] [INFO] onSetValue <- preset 1 on "tapo-c260-2"
[2026-08-14T16:25:27.317Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:25:35.349Z] [INFO] onSetValue <- preset 0 on "tapo-c260-2"
[2026-08-14T16:26:00.913Z] [INFO] onSetValue <- move 1 on "tapo-c260-2"
[2026-08-14T16:26:00.981Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:06.182Z] [INFO] onSetValue <- move 1 on "tapo-c260-2"
[2026-08-14T16:26:06.293Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:18.621Z] [INFO] onSetValue <- move 4 on "tapo-c260-2"
[2026-08-14T16:26:18.631Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:19.433Z] [INFO] onSetValue <- move 4 on "tapo-c260-2"
[2026-08-14T16:26:19.535Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:23.723Z] [INFO] onSetValue <- move 4 on "tapo-c260-2"
[2026-08-14T16:26:23.851Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:27.311Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:26:27.479Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:26:27.488Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:32.467Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:26:32.561Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:39.437Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:26:39.628Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:47.440Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:26:47.549Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:26:51.274Z] [INFO] onSetValue <- move 1 on "tapo-c260-2"
[2026-08-14T16:26:51.293Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:28:27.300Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:28:40.691Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:28:40.754Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:28:52.329Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:28:52.437Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:29:27.316Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:30:17.542Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:30:17.640Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:30:27.336Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:30:30.828Z] [INFO] onSetValue <- preset 0 on "tapo-c260-2"
[2026-08-14T16:30:39.395Z] [INFO] onSetValue <- preset 2 on "tapo-c260-2"
[2026-08-14T16:32:27.388Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:34:27.380Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:36:20.805Z] [INFO] onSetValue <- move 1 on "tapo-c260-2"
[2026-08-14T16:36:20.935Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:36:27.397Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:46:27.451Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:54:59.968Z] [INFO] onSetValue <- move 2 on "tapo-c260-2"
[2026-08-14T16:55:00.031Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:08.843Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:25.363Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:55:25.495Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:27.373Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:55:29.045Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:35.489Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:55:35.613Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:35.882Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:55:35.977Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:47.292Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:56.658Z] [INFO] onSetValue <- move 4 on "tapo-c260-2"
[2026-08-14T16:55:56.809Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:57.426Z] [INFO] onSetValue <- move 4 on "tapo-c260-2"
[2026-08-14T16:55:57.590Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:58.298Z] [INFO] onSetValue <- move 4 on "tapo-c260-2"
[2026-08-14T16:55:58.468Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:55:59.163Z] [INFO] onSetValue <- move 4 on "tapo-c260-2"
[2026-08-14T16:56:00.553Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:56:07.010Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:56:12.155Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:56:12.276Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:56:12.776Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:56:12.923Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:56:27.369Z] [INFO] onSetValue <- move 3 on "tapo-c260-2"
[2026-08-14T16:56:27.456Z] [INFO] onSetValue <- stop on "tapo-c260-2"
[2026-08-14T16:56:27.495Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T16:57:27.526Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T17:00:27.533Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted
[2026-08-14T17:59:28.015Z] [WARN] Refreshing the image of "Tapo C260" failed: TAPO_NO_IMAGE_CAPTURED: Error opening input files: Operation not permitted

@Chris75 I’ve made progress on the integration fixes but I can’t test. As soon as I can (within 2 days), I’ll run the tests and publish the update.

Ok, no worries!

@Will_71 I just tested version 1.2.1 and on my end the issues are resolved:

  • motion detection works
  • device backup no longer causes an error

Let me know if there are any more bugs because these cameras are very temperamental.
It was a bit complicated, I spent more time than expected.