payload
payload copied to clipboard
docs: fix typo in Collections.mdx
fixed small typo
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.
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!)
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.
You may need to enable this feature:
To activate this feature, simply go to your Tapo App (version 3.8.103 and later) and then click on: Me > Tapo Lab > Third-Party Compatibility > On.
See: https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/releases/tag/6.0.0
I have not tested 2 way audio specifically yet but after enabling that feature I stopped getting 401 errors on my cameras using the tapo SHA256 protocol and auth below:
- 2x C110 HW 2.0 - Firmware version v1.4.3 Build 240919 Rel.70035n
- C320WS HW 2.0 - Firmware version v1.1.15 Build 240605 Rel.49436n
- C325WB HW 1.0 - Firmware version v1.2.2 Build 240723 Rel.54710n
- C520WS HW 1.0 - Firmware version v1.2.8 Build 240606 Rel.39146n
It is also possible you will need to allow internet access from the cameras after you have enabled that feature. I had previously attempted this after enabling that feature and continued to receive 401 errors but the tapo protocol began to work with the SHA256 auth through go2rtc after allowing internet access through a temporary firewall rule and connecting manually to the cameras within the app. I am not sure if my app communicated to it or if the cloud heath check enabled the feature they had previously disabled but that was an extra step that I needed to do.
Edit: I actually just tested it out on the C110 and C320WS cameras using the go2rtc send audio option within the links section and I was able to push audio to both. The other 3 cameras are in more public areas but it is probably safe to assume it works there as well.
Woh! Thanks for the tip @JohnNeville , sorry i was out for a month due to back injury, but earlier my Tapo app did not have the Tapo Labs feature, _ Old Tapo App on Android : Version 3.7.811 New Tapo App on Android : Version 3.8.508 _ And as i updated, boom! first time i saw the Tap Labs feature, (As you suggested : Me > Tapo Lab > Third-Party Compatibility > On.) _ For first trial, i kept the Go2RTC setting in frigate config file as same as before (tapo:admin:SHA256password) But two way did not work... Then i finally took a risk and updated my cameras firmware (opposite of what i had planned), _ Camera : Tapo C200, Hardware Ver 5.8 Old Firmware: 1.0.12 New Firmware: 1.0.17 Build 240806 Rel 39518n _ And this time, i kept temporarily changed frigate machine IP to Cameras Network (and gave it internet access via firewall) And then boom! For first time in my life, i saw the mic option in Frigate! I tested in web browser on laptop and chrome in mobile, two audio worked. After that, i removed the internet access, and i can still use Two access on Tapo C200 Camera. So yes, lets save this as a confirmed working Two way audio camera configuration: _ Camera : Tapo C200, Hardware Ver 5.8 Tapo App on Android : Version 3.8.508 Firmware: 1.0.17 Build 240806 Rel 39518n Go2Rtc Version: 1.9.2 Frigate Version: 0.14.1-f4f3cfa _ Actually, i felt so excited, i just bought another camera for front door. Tapo C320WS , Hardware Ver 2.28, upgraded Firmware 1.1.8 Build 231211 Rel. 70767n, to Firmware: 1.1.15 Build 240605 Rel. 49436n. _ (strangely, the way audio works in Go2RTC, but not in frigate? Anyways, lets hope i can figure the small annoying obstacle soon), but again, Thanks a lot man, you are a God Send! I marking this as solved, (also, Alexx, do u have a buy me a coffee link somewhere? : )
Support links in github profile.
I've been in a similar boat as @scorpion870. I've been troubleshooting a few days now. I haven't been able to get two-way audio to work. I do know it's getting authenticated because I see video without RTSP config param. I can also hear audio and control pan/tilt.
I am running it in an isolated VLAN which contains Frigate running as a docker container in Unraid and the camera. I want to eventually lock down the cameras so they're only accessible within the LAN, but for the moment, they can access internet.
Camera:
Model: C210
HW Ver: 2.0
FW Ver: 1.4.4 Build 241211 Rel.42339n
Python basic info:
from pytapo import Tapo
tapo = Tapo(host, user, password)
print(tapo.getBasicInfo())
{
'device_info':
{
'basic_info':
{
'device_type': 'SMART.IPCAMERA',
'device_info': 'C210 2.0 IPC',
'features': 3,
'barcode': '',
'device_model': 'C210',
'sw_version': '1.4.4 Build 241211 Rel.42339n',
'device_name': 'C210 2.0',
'hw_version': '2.0',
'device_alias': 'Boys Cam',
'mobile_access': '0',
'mac': 'AA-BB-CC-DD-EE-FF',
'dev_id': '8021C305F4D4155A0324F4105524D9A423429764',
'hw_id': '5FAAA6EC6A1A74A8B50B0C3302FB26FD',
'oem_id': '78DF2A27E30026BF16341B6B56D164B9',
'hw_desc': '00000000000000000000000000000000',
'manufacturer_name': 'TP-LINK',
'region': 'US',
'ffs': False,
'is_cal': True,
'avatar': 'camera c212',
'has_set_location_info': 1,
'longitude': -XXXXXX,
'latitude': XXXXXX
}
}
}
Here is my config:
version: 0.15-1
logger:
default: info
logs:
frigate.event: info
go2rtc:
log:
level: trace
api: trace
exec: trace
ngrok: trace
rtsp: trace
streams: trace
webrtc: trace
streams:
boys_cam:
- tapo://admin:<cloud-pass-hashed-SHA256>@<cam-ip>
- ffmpeg:boys_cam#video=copy#audio=aac
cameras:
boys_cam:
enabled: true
live:
stream_name: boys_cam
ffmpeg:
output_args:
record: preset-record-generic-audio-copy
inputs:
- path: rtsp://127.0.0.1:8554/boys_cam
input_args: preset-rtsp-restream
roles:
- record
- audio
hwaccel_args: preset-nvidia
onvif:
host: <cam-ip>
port: 2020
user: <cam-user>
password: <cam-pass>
Here is go2rtc trace log: go2rtc-logs.txt
Any ideas as to why I can't use 2way audio?
Thanks in advance.
Two way audio can be tried on a separate go2rtc installation. In the go2rtc web interface. Mandatory with HTTPS.
Hello @Jpereyra316 , although i am a total noob myself, but i believe i can help with some basic steps (and its least we can do to help alex who has helped us so much)
I would suggest a step-wise approach to troubleshoot your problem (as i had to struggle with this for a month!):
First, make sure your Tapo App on mobile is updated and the tapo c210 firmware is updated.
Second, make sure you can actually use two way talk using the mobile app itself (this will atleast confirm there is no hardware or software failure) . And like my case above, do enable the third party support for camera in the mobile app. Once this is confirmed, i believe the camera does not need any internet access to WAN (atleast did not need in my case, with any Tapo camera, i have used 3).
Third, i would even suggest resetting your network settings once. (just a different static ip and gateway, different username password, although this not a must, but just for a peace of mind, knowing you are doing everything step-wise from a clean slate).
Fourth, now while reinstalling frigate docker, this time make sure you open port 1984 for Go2rtc access in the docker compose yaml. And for nginx, it needs port 80, 81, 443.
Fifth, now make sure you have way to put go2rtc and frigate behind SSL (or atleast self signed certificate, or else mozilla brave chrome.. no browser allows mic use. i used nginx reverse proxy, but since you are using frigate latest, i believe the 8971 port self signed certificate can work, but for step-wise troubleshooting, i do suggest you install a reverse proxy with SSL, its easier to just make a docker compose with both frigate and nginx reverse proxy together.
Here, for your ease, i am adding a hint from my own docker compose:
services:
nginxproxymanager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginxproxymanager
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- /home/_$user_/nginx/data:/data
- /home/_$user_/nginx/letsencrypt:/etc/letsencrypt
frigate:
container_name: frigate
privileged: true #____better to use in test run
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: "256mb" #__update for your cameras based on calculation
devices:
- /dev/apex_0:/dev/apex_0 # passes a PCIe Coral,
- /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, if you have nvidia, use that
volumes:
- /etc/localtime:/etc/localtime:ro
- /home/_$usr_/frigate/config:/config/ #____frigate NVR config
- /mnt/_$usrfolder_ /frigate_nvr/storage:/media/frigate # ____recordings & snapshot storage
- /home/_$usr_/frigate/db:/db #___frigate database folder
- type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "1984:1984" #Go2rtcAPI
- "8971:8971" #Authenticated UI and API access without TLS.
- "5000:5000" #Internal unauthenticated access. Expose only in test run.
- "8554:8554" # RTSP feeds
- "8555:8555/tcp" # WebRTC over tcp
- "8555:8555/udp" # WebRTC over udp
(btw, i have found the easiest way to do this is, if you have a domain, then in your DNS settings at regitrar, just make an A Record pointing to your local ip (yes, local IP, the actual instance where you installed frigate.. sth like 192.168.16.8 etc, this machine should ideally have both Frigate Docker and Nginx revse proxy docker), then just use DNS 101 challenge of Nginx reverse proxy, generate ssl, and simply make separate instance for go2rtc and frigate (or any other services on that server). This method relies on internet for DNS resolving, so will work (if u want offline access, you need to make a DNS override entery in your Firewall like pfsense or any other router, or PieHole etc, whatever you use for DNS resolving)
Sixth, after this, you can use your same frigate config format (which looks alright, but in your boys cam section, i dont see the actual rtsp entry? Maybe you mistypes, but it should be something like this:
go2rtc:
# api:
# enabled: true
webrtc:
candidates:
- Frigate_IP: 8555
- stun:8555
streams:
boys_cam:
- rtsp://admin: Cam_pass @ Cam_IP:554/stream1
- tapo://admin:SHA256TpCloudpass @ Cam_IP
- ffmpeg:camera1_main#video=copy#audio=aac
Seventh, then first go to Go2rtc page behind SSL (must be HTTPS access), click the camera, and test the producers in Go2rtc probe, in the producers section, under tapo protocol, you must see the aud, send. (This is the MAIN thing!) And once you do see producers, then you can even test the 2 way audio there itself.
Finally, when this is confirmed, then you can move on to test in actual frigate live page.
Try this for now, and let us know how far you have progressed, if stuck at any step, we can try to further zoom in investigate, i do believe you will get this working soon enough. (Also TpLink has become more friendly since allowing 3rd party option in its mobile app, also after a threat from US to ban its routers that are in over 50% american houses! Compliance. hehe). Anyways, good luck.
Thank you very much for the detailed response @scorpion870. I will attempt this.
5 sounds promising. I have been accessing internally so haven't bothered with SSL yet. I'll setup HA Proxy on my pfSense and give that a shot first. If no luck, I'll continue troubleshooting following your suggestions.
Thanks!
Success!
Access through SSL/HTTPS is a must for 2way audio. I'm surprised I haven't seen that in my research before. Did it miss it in documentation or is it something that should be added?
Anyways, I'm glad I didn't have to go much deeper into this.
Thanks @scorpion870!
https://github.com/AlexxIT/go2rtc?tab=readme-ov-file#two-way-audio
Two way audio can be used in browser with WebRTC technology. The browser will give access to the microphone only for HTTPS sites (read more).