[Custom Component] Tapo: Cameras Control

Anybody could share a code for PTZ buttons on picture-glance card?

Will your integration work if I put the cameraā€™s in a vlan with no internet access?

If you configure vlan well in regards to ports, yes.

That is excellent news :slight_smile:

I think that should be doable to setup the ports and I assume it is the ones mentioned in your description?

Yes that is correct.

Hi @JurajNyiri , same ā€œInvalid cloud passwordā€ here with two C110, firmware v1.3.0 .
I have a C210 already working with the Tapo Camera Control integration, Iā€™ve been using this integration since the earlier versions, without any (known) issue.
All my Tapo cams are online in the same LAN of the HA server and viewable with the Tapo cloud app.
All credentials are correct, and work with the Tapo Cloud service.
I integrated successfully the same C110 before, but now Iā€™m stuck at the cloud account password, Iā€™m not jet a subscriber.

What do you mean? I tried disabling motion and person detection, but no luck. There arenā€™t other LAN services contacting the camera, other than occasionally the Tapo Android app.

Any idea?
Thank you,
Piero

1 Like

Hi, Iā€™m using Tapo C420 cameras too, but Iā€™m experiencing a significant memory leak with the integration (cpu and memory usage keep growing without end), so I had to disable it, hoping that it will be fixed. Have you noticed anything similar?

Iā€™m using this service for more that 2 years but recently my automations with alarms stopped working.
Did we miss some services integrations with latest updates?
I was using this one:
tapo_control.set_alarm_mode
Is there any alternative for this?

Yes, new select entity. Always read breaking changes when updating.

1 Like

Hi and thanks for a great component.

Trying to call presets on my C200 but only the first one (id 1) works.
The others generate a error message, here are the last lines.

File "/usr/src/homeassistant/homeassistant/components/select/__init__.py", line 56, in async_select_option
await entity.async_select_option(option)
File "/config/custom_components/tapo_control/select.py", line 311, in async_select_option
await self.hass.async_add_executor_job(self._controller.setPreset, foundKey)
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.10/site-packages/pytapo/__init__.py", line 607, in setPreset
raise Exception("Preset {} is not set in the app".format(str(presetID)))
Exception: Preset 2 is not set in the app

Trying to call:

service: select.select_option
data:
  option: left
target:
  entity_id: select.c200_uteplats_move_to_preset

and entity have these attributes:

presets:
  '1': Center
  '2': left
  '3': right

Also removed all presets from the app and added them again. Same error.

Any suggestions whatā€™s wrong?

I have the same problem.
Copy yours attributes and solve the problem.
Thanks

Hi ,
How can we do the continuous recording of sd stream(for C200 in HA ) with file chunks of 10 minutes or 15 minutes?I do not want to use the sd card.
I have been able to mount a nfs share as a volume of HA docker but the main problems are:

  1. How to make the automation run continuously so that I can use the camera service
    2)How to configure the service parameters(camera.record) so that the continuous recording can be stored in 10 or 15 minutes chunk?

Regards
Manas

Hello,

Home Assistant is not NVR, it is better to use a dedicated NVR for it rather than try to hack it together in HA.

Some good options are Frigate, Synology NVR, Shinobiā€¦

Make sure to use correct uppercase and lowercase letters.

Hi! Awesome component. Took me less than 30 minutes to set everything up. Iā€™m a bit confused though regarding how the motion detection works. Is it supposed to use the Activity Zones specified in the Tapo app or does it not follow that at all? Asking because the added binary sensor triggers more than the app for me.

Using Tapo C200.

Thanks!

Hey, glad to hear you like it!

It uses onvif motion events generated by the camera.

Iā€™m trying to use this in a card with move and preset icons. Example:

camera_view: auto
type: picture-glance
entities:
  - entity: camera.living_room_camera_hd_stream
    tap_action:
      action: call-service
      service: button.press
      service_data:
        entity_id: button.living_room_camera_move_left
    icon: mdi:arrow-left
    show_icon: true
  - entity: camera.living_room_camera_hd_stream
    tap_action:
      action: call-service
      service: select
      service_data:
        entity_id: select.living_room_camera_move_to_preset
    icon: mdi:arrow-decision
    show_icon: true
camera_image: camera.living_room_camera_hd_stream

The left movement arrow works, but not the preset selector. What did I do wrong?

im not sure , but what you want i guess is " move cam to preset " when ā€œtab_actionā€ service: button.press, or ?

EdIt: I also see that you call your camera twice, does that means you have 2 streams, views of same cam in that card ?

Try with a simple Card, with just the Cam , then build on from there ā€¦ i know some Examples can look difficult, but if you start by choosing a card "

picture-glance

there you enter the entity for your cam ā€¦ done , if that works for you start by adding a ā€œbuttonā€ meny, i.e move-left move right ā€¦ done if it works so far, you start to get an idea of how the card is ā€œbuild upā€, the you can start with ā€œcalling servicesā€ etc

Thanks for the prompt response. I am making some progress now with using the webrtc card and your controls, after examining the yaml using call service. This code puts buttons on the camera that move to presets 1 and 2:

type: custom:webrtc-camera
entity: camera.living_room_camera_hd_stream
shortcuts:
  - name: Preset 1
    icon: mdi:numeric-1-box
    service: select.select_option
    service_data:
      option: '1'
      entity_id: select.living_room_camera_move_to_preset
  - name: Preset 2
    icon: mdi:numeric-2-box
    service: select.select_option
    service_data:
      option: '2'
      entity_id: select.living_room_camera_move_to_preset

Now if I can figure out how to move the buttons to the bottom!

type: custom:stack-in-card
cards:
  - type: custom:webrtc-camera
    entity: camera.living_room_camera_hd_stream  # This is your Cam 
  - type: horizontal-stack
    cards: # this is whats beneath you Cam ( or the bottom-part )
      - type: b******

etc. etcā€¦

Iā€™ve never heard of " shortcuts: " , thou iā€™ve heard about C***GPT

And i notice you are phenomenal in solving your ā€œproblemsā€

1 Like