Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Support Vigi Cameras from TP-link #743

Closed
MiAutomations opened this issue Dec 12, 2024 · 15 comments
Closed

Feature Request: Support Vigi Cameras from TP-link #743

MiAutomations opened this issue Dec 12, 2024 · 15 comments
Assignees
Labels
Wontfix This will not be worked on

Comments

@MiAutomations
Copy link

Is your feature request related to a problem? Please describe.
No this Feature Request is not related to a problem

Describe the solution you'd like
The solution needed is a integration like this one available for the tapo but for the Vigi Cameras that is branded by the TP-link as well

Describe alternatives you've considered
Probably we can use the ONVIF but is not available all the other entities as available on this integration

Additional context

Hello Team

It is possible to add support for the "new" Vigi TP-Link cameras to this integration in a future?

https://www.vigi.com/en/business-networking/vigi-network-camera/

Thank you and best regards

@JurajNyiri
Copy link
Owner

Does integration work currently with those cameras? Do they use the same API?

@MiAutomations
Copy link
Author

Does integration work currently with those cameras? Do they use the same API?

I already try to use and in this menu of the actual integration I'm able to logon with the local account

image

But on the next menu:

image

I try to use the cloud password without success...

Regarding the API, I'm not I am not sure, once I don't find any information about sorry ...

Thank you

@JurajNyiri
Copy link
Owner

without success

What is the exact error?

@MiAutomations
Copy link
Author

without success

What is the exact error?

image

@JurajNyiri
Copy link
Owner

JurajNyiri commented Dec 12, 2024

Please enable debug logs and post them here when trying to add the camera

@PetePeter
Copy link

Gday.
I have a Vigi camera if you want to play connect :)

@MiAutomations
Copy link
Author

Please enable debug logs and post them here when trying to add the camera

2024-12-12 11:56:49.378 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][192.168.2.XXX] Verifying cloud password.
2024-12-12 11:56:49.379 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] Refreshing stok...
2024-12-12 11:56:49.380 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] New request:
2024-12-12 11:56:49.380 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] {'data': {'method': 'login', 'params': {'encrypt_type': '3', 'username': 'admin'}}, 'headers': {'Host': 'REDACTED', 'Referer': 'REDACTED', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Tapo CameraClient Android', 'Connection': 'close', 'requestByApp': 'true', 'Content-Type': 'application/json; charset=UTF-8'}, 'verify': False}
2024-12-12 11:56:49.430 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] 200
2024-12-12 11:56:49.431 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] {'error_code': -40105}
2024-12-12 11:56:49.431 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] Connection is insecure.
2024-12-12 11:56:49.431 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] New request:
2024-12-12 11:56:49.431 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] {'data': {'method': 'login', 'params': {'hashed': True, 'password': 'REDACTED', 'username': 'admin'}}, 'headers': {'Host': 'REDACTED', 'Referer': 'REDACTED', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Tapo CameraClient Android', 'Connection': 'close', 'requestByApp': 'true', 'Content-Type': 'application/json; charset=UTF-8'}, 'verify': False}
2024-12-12 11:56:49.494 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] 200
2024-12-12 11:56:49.494 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] {'error_code': -40105}
2024-12-12 11:56:49.494 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] Status code: 200
2024-12-12 11:56:49.495 DEBUG (SyncWorker_46) [custom_components.tapo_control] [pytapo] Unexpected response, raising Exception.
2024-12-12 11:56:49.495 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][192.168.2.147] Invalid cloud password provided.
2024-12-12 11:56:49.495 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][192.168.2.147] Showing config flow for cloud password.

@PetePeter
Copy link

Same for me

2024-12-12 23:03:14.753 DEBUG (MainThread) [custom_components.tapo_control] Finished fetching Tapo resource status data in 0.922 seconds (success: True)
2024-12-12 23:03:15.603 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Verifying Camera Account.
2024-12-12 23:03:15.603 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Verifying ports all required camera ports.
2024-12-12 23:03:15.608 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] All camera ports are opened.
2024-12-12 23:03:15.608 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Testing RTSP stream.
2024-12-12 23:03:15.608 DEBUG (MainThread) [custom_components.tapo_control] [isRtspStreamWorking][10.98.1.145] Testing RTSP stream.
2024-12-12 23:03:15.608 DEBUG (MainThread) [custom_components.tapo_control] [isRtspStreamWorking][10.98.1.145] Creating image frame.
2024-12-12 23:03:15.608 DEBUG (MainThread) [custom_components.tapo_control] [isRtspStreamWorking][10.98.1.145] Encoding username and password.
2024-12-12 23:03:15.608 DEBUG (MainThread) [custom_components.tapo_control] [isRtspStreamWorking][10.98.1.145] Getting image from rtsp://HIDDEN_USERNAME:[email protected]:554/stream1.
2024-12-12 23:03:17.407 DEBUG (MainThread) [custom_components.tapo_control] [isRtspStreamWorking][10.98.1.145] Image data received.
2024-12-12 23:03:17.407 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] RTSP stream works.
2024-12-12 23:03:17.407 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Testing control of camera using Camera Account.
2024-12-12 23:03:17.408 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] Refreshing stok...
2024-12-12 23:03:17.409 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] New request:
2024-12-12 23:03:17.409 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] {'data': {'method': 'login', 'params': {'encrypt_type': '3', 'username': 'admin'}}, 'headers': {'Host': 'REDACTED', 'Referer': 'REDACTED', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Tapo CameraClient Android', 'Connection': 'close', 'requestByApp': 'true', 'Content-Type': 'application/json; charset=UTF-8'}, 'verify': False}
2024-12-12 23:03:17.474 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] 200
2024-12-12 23:03:17.474 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] {'error_code': -40105}
2024-12-12 23:03:17.474 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] Connection is insecure.
2024-12-12 23:03:17.475 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] New request:
2024-12-12 23:03:17.475 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] {'data': {'method': 'login', 'params': {'hashed': True, 'password': 'REDACTED', 'username': 'admin'}}, 'headers': {'Host': 'REDACTED', 'Referer': 'REDACTED', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Tapo CameraClient Android', 'Connection': 'close', 'requestByApp': 'true', 'Content-Type': 'application/json; charset=UTF-8'}, 'verify': False}
2024-12-12 23:03:17.525 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] 200
2024-12-12 23:03:17.525 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] {'error_code': -40105}
2024-12-12 23:03:17.525 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] Status code: 200
2024-12-12 23:03:17.525 DEBUG (SyncWorker_13) [custom_components.tapo_control] [pytapo] Unexpected response, raising Exception.
2024-12-12 23:03:17.526 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Camera Account does not work for control, requesting cloud password.
2024-12-12 23:03:17.526 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Showing config flow for cloud password.
2024-12-12 23:03:19.792 ERROR (MainThread) [custom_components.tuya_local.device] Failed to fetch device status for LumyPorchLight
2024-12-12 23:03:27.022 ERROR (MainThread) [custom_components.tuya_local.device] Failed to fetch device status for LaundryLight
2024-12-12 23:03:27.225 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Verifying cloud password.
2024-12-12 23:03:27.232 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] Refreshing stok...
2024-12-12 23:03:27.235 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] New request:
2024-12-12 23:03:27.235 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] {'data': {'method': 'login', 'params': {'encrypt_type': '3', 'username': 'admin'}}, 'headers': {'Host': 'REDACTED', 'Referer': 'REDACTED', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Tapo CameraClient Android', 'Connection': 'close', 'requestByApp': 'true', 'Content-Type': 'application/json; charset=UTF-8'}, 'verify': False}
2024-12-12 23:03:27.316 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] 200
2024-12-12 23:03:27.317 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] {'error_code': -40105}
2024-12-12 23:03:27.318 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] Connection is insecure.
2024-12-12 23:03:27.321 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] New request:
2024-12-12 23:03:27.322 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] {'data': {'method': 'login', 'params': {'hashed': True, 'password': 'REDACTED', 'username': 'admin'}}, 'headers': {'Host': 'REDACTED', 'Referer': 'REDACTED', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Tapo CameraClient Android', 'Connection': 'close', 'requestByApp': 'true', 'Content-Type': 'application/json; charset=UTF-8'}, 'verify': False}
2024-12-12 23:03:27.396 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] 200
2024-12-12 23:03:27.397 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] {'error_code': -40105}
2024-12-12 23:03:27.397 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] Status code: 200
2024-12-12 23:03:27.398 DEBUG (SyncWorker_9) [custom_components.tapo_control] [pytapo] Unexpected response, raising Exception.
2024-12-12 23:03:27.400 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Invalid cloud password provided.
2024-12-12 23:03:27.400 DEBUG (MainThread) [custom_components.tapo_control] [ADD DEVICE][10.98.1.145] Showing config flow for cloud password.

@PetePeter
Copy link

PetePeter commented Dec 12, 2024

Unlike Tapo app, Vigi app does NOT work if you connect when Vigi cam is blocked from Internet.
Unlike Tapo cameras, Vigi lets you connect to it via the webbrowser to access its settings locally, without any stuffing about, direct to the camera on a webbrowser.

eg:
image

@JurajNyiri
Copy link
Owner

JurajNyiri commented Dec 12, 2024

Interesting, that does look similar to API to what tapo has. If you can port forward or provide more call examples we might see if there is an overlap and possibility of adding the support here, or if a new integration will need to be created.

@JurajNyiri
Copy link
Owner

I inspected the communication and the API is different enough to not be in scope of this integration.
It should be really easy to develop an integration though thanks to camera being exposed via browser and the ease of seeing the requests / responses.

I do not own this camera so I will not proceed in creating a new integration to support it.

@JurajNyiri JurajNyiri added the Wontfix This will not be worked on label Dec 12, 2024
@MiAutomations
Copy link
Author

I inspected the communication and the API is different enough to not be in scope of this integration. It should be really easy to develop an integration though thanks to camera being exposed via browser and the ease of seeing the requests / responses.

I do not own this camera so I will not proceed in creating a new integration to support it.

Ok Thank you for your time.

It Is Understandable. I will try investigate by myself, nonetheless I find the API Document an will share it here if anyone is also interested or if some one can try to developing something...

Thank you

VIGI-API.docx

@PetePeter
Copy link

@MiAutomations
As per AlexxIT/go2rtc#1470, it seems to be out of date.
that URL seems that some people are working on stuff there for Vigi.

@PetePeter
Copy link

@MiAutomations haha! we both referred to the same URL at the same time :D

@fllash333
Copy link

fllash333 commented Dec 13, 2024

I noted in the go2rtc issue but TPLink advised that not all Vigi cameras support the API yet. That is probably (one reason at least) why we're having issues. Timeframe for support to be added:

  • C540: Update in two weeks
  • C540s: Update next April
  • C240: Update next April.

I've also asked for clarification about whether the API doc is up to date (and just not working because they haven't enabled the API yet...sneaky). Will report back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

4 participants