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

Does Two way audio still work with new Tapo cameras? #1494

Open
scorpion870 opened this issue Dec 2, 2024 · 3 comments
Open

Does Two way audio still work with new Tapo cameras? #1494

scorpion870 opened this issue Dec 2, 2024 · 3 comments
Labels
question Further information is requested

Comments

@scorpion870
Copy link

Hello,
I am trying hard to get my Tapo C200 to produce two way audio using Tapo protocol, but no combination of admin:TapoCloudpass (md5 or sha256 or plain) seem to work. I specially bought TpLink cameras after looking at some YT videos of people using two way audio with Tapo C110 camera with home assistant, but mine just doesn't seem to work.

(tried to follow this post: #1464)

But considering most home-assistant guides and videos are like 1 year old, did TpLink change something drastically in the firmware that blocks using tapo protocol of Go2RTC?

The month and year of my camera manufacture : Sep 2024 (i hope they did not put some funky firmware on it)
(The bottom of box says, Model: Tapo C200 Ver 5.8)

I ask this because, after week of reading many posts here and reddit, for tapo two way, i came across this post, that made me worry
Invalid cloud password on firmware build 230921 and higher
/JurajNyiri/HomeAssistant-Tapo-Control/issues/551
_
So what do you say? should i upgrade the firmware as my tapo app suggests? And then try tapo protocol of Go2RTC again?
_
Current Firmware Version: 1.0.12
Asking Firmware Version : 1.0.17 Build 240806 Rel.39518n
_
Or should i just do a darn factory reset of the camera, then try again in some other way?
(or will even a hard reset wont work? as even factory firmware of new device is not good?)
_
Or should i actually downgrade the firmware like mentioned here?
_
JurajNyiri/HomeAssistant-Tapo-Control#625
(unfortunately, it doesn't show a downgrade path for Tapo C200 ver 5! Only till version 4, ahh.. seems i am just few months late? wish i had older versions)
_
Or am i missing something? (i must be... right?)
_
And just to help you help me, here are some ground facts: (kindly bare with me, i am not a IT person, started from ground for home lab + privacy concern):
_
My Setup:
_
a) I am running Go2Rtc are part of Frigate, and my frigate is running as a docker on a Debian 12 host that runs on true bare metal hardware, as recommended by frigate docs. (Please note: i have no interest in home assistant at this point, want to keep things simple, light)
_
b) After month of daily study and struggle, i have been able to get Nginx reverse proxy working, and i have setup SSL certificate using my purchased domain name, that i pointed using cloud-flare to local ip for my Nginx-frigate instance, and i can access frigate on https. (used Wolfgang yt video, just to produce a SSL, still using my setup locally only, I am in learning testing mode, security authentication next step)
_
c) In testing mode, i have opened up ports 1984 for Go2RTC in the docker-compose for frigate, so yes, i can access Go2RTC also on https. (i put that also behind Nginx, with a subdomain)
_
d) My first two cameras, are Tapo Vigi 340 (outdoor poe camera), again i bought them for advertised Two way audio, but now i have learnt nobody has got those to work with two way on Go2RTC yet due to TpLink proprietary codecs (every company wants to be next apple, making you slave of their ecosystem and subscriptions, pssshh), so i am fine running them as just audio video input capture device for now, this is to establish, that yes, Frigate is running fine, all recording detection etc work)
_
e) But my 3rd Camera, Tapo C200 is something i bought after one month of research, after watching lots of tapo guides/videos, specifically for two way audio use with frigate. And since i am privacy focused, i had to first plan a minimal internet access time for TpLink Camera and mobile app activation step, so i only activated with mobile for like 5 mins max on a different subnet from my home router (and then a trick method to use the wifi camera without giving it internet access, since these cameras don't have ethernet rj45 jack)
_
To Use Tp Link Tapo camera privately locally without internet access:
_
(it is like, i temporarily changed my main home router IP range to say 192.168."""20""".xxx, then connect another old wifi router/access point as extender, and then connect both mobile and new Tapo C200 camera using to the old wifi-router/ap on the 20 subnet, activated camera, installed Android Tplink app, checked to see if all is working, yes, the two way audio worked, fine. And then i quickly assigned fixed IPs on that subnet for Camera and mobile, setup camera rtsp password, and yes logged into tapo cloud account on phone also, after all was done, i just took out wan cable of old router from main router, so now both Mobiile and Tapo camera can connect to a same network on old wifi-router, and whenever camera powers up, it auto connects to that old router but ofcourse it has NO internet access, it has never had internet more than first 5 mins, i also keep my TpLink app in mobile blocked, when i need to test, i can just temporarily unblock tplink app and connect mobile connect to old router SSID, and then also my TPLink Android apps totally works with the camera, i can do two way audio, pan tilt etc. Please excuse, i know this method has been a little primitive, it could have been smarter with VLAN and device block all, but unfortunately i need to use ISP home router for now, which is not as smart as Pfsense or OPN sense, that will be next step after i get CCTV sorted)
_
Note: My Frigate-Nvr Debian host machine, actually has 4 LAN interfaces (it is one of those fan less PC that people use just for Pfsense), so the old wif router is connected to 2nd interface, and it literally acts as a switch (other two Tp Link Vigi Camera connect to it, plus it can connect 3rd c200 Wifi Camera, or any other cameras in its range also), so yes, i am able to access Tapo C200 camera wirelessly using frigate. (and making sure that cameras have NO internet access, there is no bridge on my Debian host lan interfaces for it)
_
But, the whole reason i am doing all this, is to get two way audio! After month of trying, i am pretty beat, so finally posting it here as last resort... i have spent over 200 hours trying to learn to get this to work, and sometimes i am like dang it! i would just spent 200 dollars more on a camera that actually has native ONVIF profile T support, or is atleast confirmed by Alexx of Go2RTC that it will provide two way audio, but please, privacy and control over network is a non negotiable, education on this is priceless, that is the main reason why i am taking so much time effort pain for this).
_
So please suggest, what can i do? Can i get two way audio working with this Camera? Has anyone done it? (technically all Tapo wifi cameras should use same method, right?) Or should i just buy some other camera? (also unfortunately, many famous brands like reolink etc, are extremely expensive in my country, we literally have to pay 3 times the price with export and all)
_
Here my Go2RTC settings within the frigate configuration:
_
go2rtc:
webrtc:
candidates:
- 192.168.xxx.xxx:8555 #<--- frigate server local ip
- stun:8555
streams:
camera1_main: #<----------------------- This is Tapo Vigi 340
- rtsp://Cam1_User:Cam1_Pswd@192.168.aaa.bbb:554/stream1
- ffmpeg:camera1_main#video=copy#audio=aac

camera2_main (same as as camera 1)

camera3_main: #<------------------------------------------------- This is Tapo C200
  - rtsp://_Cam3_User_:[email protected]:554/stream1
  - tapo://_((TpCloudPas))[email protected] #<-------------------- 1_PlaneTextCloudPass_@CamIP
  - tapo://_((TpLoginEmail))_:_((TpCloudPas))[email protected] #<- 2_PlaneTestTpLogin_nCloudpass_@CamIP
  - tapo://admin:_((TpCloudPas))[email protected] #<----------- 3_admin:PlaneTextCloudPass_@CamIP
  - tapo://admin:_((TpCloudPas_MD5))[email protected] #<------- 4_admin:MD5CloudPass_@CamIP
  - tapo://admin:_((TpCloudPas_SHA256))[email protected] #<----- 5_admin:SHA256_@CamIP
  - ffmpeg:camera3_main#video=copy#audio=aac#audio=opus

Configure cameras
cameras:
camera3:
enabled: true
ffmpeg:
output_args:
record: preset-record-generic-audio-copy
inputs:
- path: rtsp://127.0.0.1:8554/camera3_main
input_args: preset-rtsp-restream
roles:
- record
- detect
- audio
__
__
Go2RTC Logs from Frigate Web Interface: (no errors)
_
2024-12-03 01:29:56.812727959 [INFO] Preparing new go2rtc config...
2024-12-03 01:29:57.161855915 [INFO] Not injecting WebRTC candidates into go2rtc config as it has been set manually
2024-12-03 01:29:57.215235695 [INFO] Starting go2rtc...
2024-12-03 01:29:57.336108037 01:29:57.333 INF go2rtc platform=linux/amd64 revision=b2399f3 version=1.9.2
2024-12-03 01:29:57.336113360 01:29:57.334 INF config path=/dev/shm/go2rtc.yaml
2024-12-03 01:29:57.336118181 01:29:57.335 INF [rtsp] listen addr=:8554
2024-12-03 01:29:57.336120211 01:29:57.335 INF [webrtc] listen addr=:8555
2024-12-03 01:29:57.336301462 01:29:57.336 INF [api] listen addr=:1984
2024-12-03 01:30:06.808861614 [INFO] Starting go2rtc healthcheck service...
__
__
Here is the Camera3 (Tapo C200), probe from the Go2RTC page at 1984 port:
__
__
{
"producers": [
{
"type": "RTSP active producer",
"url": "rtsp://192.168.ccc.ddd:554/stream1/",
"remote_addr": "192.168.ccc.ddd:554",
"user_agent": "go2rtc/1.9.2",
"sdp": "v=0\r\no=- 14665860 31787219 1 IP4 192.168.ccc.ddd\r\ns=Session streamed by "TP-LINK RTSP Server"\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\nc=IN IP4 0.0.0.0\r\nb=AS:4096\r\na=range:npt=0-\r\na=control:track1\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1; profile-level-id=640028; sprop-parameter-sets=Z2QAKKw7UDwBE/LCAAADAAIAAAMAPQg=,aO484QBCQgCEhARMUhuTxXyfk/k/J8nm5MkkLCJCkJyeT6/J/X5PrycmpMA=\r\nm=audio 0 RTP/AVP 8\r\na=rtpmap:8 PCMA/8000\r\na=control:track2\r\n",
"medias": [
"video, recvonly, H.264 High 4.0",
"audio, recvonly, PCMA/8000"
],
"receivers": [
"96 H264, bytes=237077631, senders=3",
"8 PCMA/8000, bytes=15736800, senders=2"
],
"recv": 255585427
},
{
"url": "tapo://admin:((TpCloudPas_SHA256))@192.168.ccc.ddd" #<----------- (Absolutely nothing under this header! :(
},
{
"type": "RTSP passive producer",
"url": "rtsp://127.0.0.1:8554/90a1817f11229462bd30aa89b001cbb1",
"remote_addr": "127.0.0.1:44628",
"user_agent": "ffmpeg/go2rtc",
"sdp": "v=0\r\no=- 0 0 IN IP4 127.0.0.1\r\ns=go2rtc/1.9.2\r\nc=IN IP4 127.0.0.1\r\nt=0 0\r\na=tool:libavformat LIBAVFORMAT_VERSION\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAKKw7UDwBE/LCAAADAAIAAAMAPQg=,aO484QBCQgCEhARMUhuTxXyfk/k/J8nm5MkkLCJCkJyeT6/J/X5PrycmpMA=; profile-level-id=640028\r\na=control:streamid=0\r\nm=audio 0 RTP/AVP 97\r\nb=AS:48\r\na=rtpmap:97 MPEG4-GENERIC/8000/1\r\na=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=158856E500\r\na=control:streamid=1\r\nm=audio 0 RTP/AVP 98\r\nb=AS:64\r\na=rtpmap:98 opus/48000/2\r\na=control:streamid=2\r\n",
"medias": [
"video, recvonly, H.264 High 4.0",
"audio, recvonly, MPEG4-GENERIC/8000",
"audio, recvonly, OPUS/48000/2"
],
"receivers": [
"96 H264, bytes=236830459, senders=1",
"97 MPEG4-GENERIC/8000, bytes=563630, senders=2",
"98 OPUS/48000/2, bytes=336725, senders=1"
],
"recv": 241123282
}
],
"consumers": [
{
"type": "RTSP passive consumer",
"url": "rtsp://127.0.0.1:8554/camera3_main?video\u0026audio",
"remote_addr": "127.0.0.1:44606",
"user_agent": "go2rtc/ffmpeg",
"sdp": "v=0\r\no=- 1 1 IN IP4 0.0.0.0\r\ns=go2rtc/1.9.2\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1; profile-level-id=640028; sprop-parameter-sets=Z2QAKKw7UDwBE/LCAAADAAIAAAMAPQg=,aO484QBCQgCEhARMUhuTxXyfk/k/J8nm5MkkLCJCkJyeT6/J/X5PrycmpMA=\r\na=control:trackID=0\r\nm=audio 0 RTP/AVP 97\r\na=rtpmap:97 PCMA/8000\r\na=control:trackID=1\r\n",
"medias": [
"video, sendonly, ANY",
"audio, sendonly, ANY"
],
"senders": [
"96 H264, bytes=237077631, receivers=1",
"97 PCMA/8000, bytes=15736800, receivers=1"
],
"send": 256097135
},
{
"type": "RTSP passive consumer",
"url": "rtsp://127.0.0.1:8554/camera3_main",
"remote_addr": "127.0.0.1:44588",
"user_agent": "FFmpeg Frigate/0.14.1-f4f3cfa",
"sdp": "v=0\r\no=- 1 1 IN IP4 0.0.0.0\r\ns=go2rtc/1.9.2\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1; profile-level-id=640028; sprop-parameter-sets=Z2QAKKw7UDwBE/LCAAADAAIAAAMAPQg=,aO484QBCQgCEhARMUhuTxXyfk/k/J8nm5MkkLCJCkJyeT6/J/X5PrycmpMA=\r\na=control:trackID=0\r\nm=audio 0 RTP/AVP 97\r\na=rtpmap:97 MPEG4-GENERIC/8000\r\na=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=158856E500\r\na=control:trackID=1\r\n",
"medias": [
"video, sendonly, H264, H265",
"audio, sendonly, MPEG4-GENERIC"
],
"senders": [
"96 H264, bytes=237077631, receivers=1",
"97 MPEG4-GENERIC/8000, bytes=563630, receivers=1"
],
"send": 240410031
},
{
"type": "probe",
"remote_addr": "192.168.eee.fff, 172.19.ggg.hhh:44598",
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"medias": [
"audio, sendonly, ALL",
"video, sendonly, ALL",
"audio, recvonly, ANY"
],
"senders": [
"8 PCMA/8000, bytes=0, receivers=1",
"97 MPEG4-GENERIC/8000, bytes=0, receivers=1",
"98 OPUS/48000/2, bytes=0, receivers=1",
"96 H264, bytes=0, receivers=1",
"96 H264, bytes=0, receivers=1"
]
}
]
}
_
_
When i access the link for WebRTC,
_
https://go2rtc.MY_DOMAIN.com_/webrtc.html?src=camera3_main&media=video+audio+microphone
The browser doesn ask for mic permission, that i grant, but the mic doesnt work (since tapo protocol URL not showing any producers to send)
_
That's where it is for now, any and every help is highly appreciated. And thanks for all the wonderful work you do.
Thanks and Regards.

@AlexxIT AlexxIT added the question Further information is requested label Dec 3, 2024
@AlexxIT
Copy link
Owner

AlexxIT commented Dec 3, 2024

Two way never broke down on my test Tapo camera. That's because I have a habit of not updating the firmware of my devices.

@scorpion870
Copy link
Author

Thanks for taking time to read my post and your reply @AlexxIT
_
Trust me, you are my last resort, but please let me say again, i have "Not" updated the firmware of my Tapo C200 v5.8 Camera, infact this camera (and my android tp link app) have never had internet access more than first 5 mins of mobile app pairing, it came with Firmware Version: 1.0.12, and it is still at Firmware Version: 1.0.12. (although it does ask time and again for update, because it must have sniffed in those 5 mins, but but i have disable any updates, and i always connect to it only on a wifi network without any WAN). Unfortunately, I just purchased this camera last month, so it already came with a newer version and firmware.
_
So kindly let me know, what steps do you suggest from here?
_
Should i try and downgrade the firmware like so many homeassistant users have been trying? (i am kinda afraid that might brick my device, as older firmware for my exact Tapo C200 version 5.8 with older firmware is not listed, i will just have to try and force version 4 or 3 maybe and hope it works)
_
Or do you have some other cameras that you may suggest?
_
(Psss: btw, if you have a Tapo C200 camera, may i know how old it is? And what Version and firmware are you on? I will try and forcefully flash the same firmware on mine i guess. Thanks!)

@AlexxIT
Copy link
Owner

AlexxIT commented Dec 4, 2024

I don't have any suggestions. I haven't looked into the issue of firmware updates on Tapo cameras. It requires a significant waste of time. There are other ways to spend time more usefully.

I have TC60, hardware v2.0, software v1.3.9.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants