Viewing RTSP Wyze Cams Remotely

I have 6 Wyze Cam V3’s and they’ve all received the RTSP firmware. They all work within Home Assistant, but only while I’m on my home WiFi. As soon as I switch to LTE on my phone, they fail to stream.

They’re all set up as Generic Cameras and I’m using the picture entity card. According to the Generic Camera Page, they should be viewable remotely.

Unfortunately I can’t find anything to help me figure out why they don’t work (BTW I subscribe to Nabu Casa if that helps). The only thing I can see that makes reference is this, on that page:

Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is /api/camera_proxy/camera.[name] .

But that’s it. There are no other references about the endpoint, where to put it, or how to make this work. I’m missing something stupidly simple.

I’ve been trying to make them work remotely for weeks… I finally broke down and posted here, hoping someone has the answer.

Thank you in advance for helping a brother out!

Anybody else using Wyze v3 (with RTSP firmware) cams with Home Assistant? Maybe I need to change to a different brand…

image

I realize this is an old thread, but there’s not a lot of info on this topic out there.

I’m a networking noob, so take this with a grain of salt. I believe Home Assistant tells your device, “Hey, you can find this camera stream at rtsp://[address].” Your device goes, “Oh, thanks, I’ll connect to that stream.” When you are not on your local network, the same exchange goes down, except your device goes “Wait - I can’t find rtsp://[address]”, because that address is specific to your network and only accessible from your network.

To give your device access to the stream from outside your network, I’m aware of a single good option. If you have a router that supports it (I use pfSense installed on an old PC), it’s pretty easy to set up a VPN so that you can remotely connect to your local network. When the VPN is on, your device has access to everything on your network, including the camera streams, so all is well.

However, I don’t know how many consumer routers support OpenVPN, and it’s a bit of a hassle to have to toggle the VPN all the time. I’m currently looking for a better solution - wonder if the HA machine could somehow act as an intermediary to forward the stream to a device outside the network.

Finally got an answer! Been after this for for like a year, and I guess I finally typed the right combo of words into Google. Looks like there are two options:

  1. WebRTC, a custom HACS integration. I won’t pretend to understand the specifics, but it uses a protocol called WebRTC to serve the stream locally, and it uses one called MSE (Media Source Extensions) to stream it externally via JavaScript. I just installed this, and it works perfectly. In fact, the local stream is MUCH better than with a Picture Entity Card (my previous method). Previously, there was a 3-4s lag, but with WebRTC it’s nearly instant. Heck, the external stream is more responsive than the Picture Entity Card was. Cannot recommend this enough.
  2. RTSPtoWeb, another HACS integration. Honestly not sure the benefit of this, and the developer insisted there was little reason to switch to this from WebRTC. It seems like this one might not support MSE, thereby disallowing external access without a lot of hoops.

It should go without saying that being able to access camera streams remotely is a double-edged sword. While you can access them remotely, other people could potentially do so as well. I would not want to risk this without a long, random password.

Edit: Found another option - motionEye has no problem forwarding streams out of your local network. Particularly if you can have a use for the features of motionEye (primarily motion detection and recording), this seems the best option.

#2 is a bit different – it’s an Add-on, and core integration, not a HACS integration. It does support remote access if you configure a stun server in the configuration options in the integration. What I was probably saying is if you’re already happy, don’t switch. The goal was meant to make it easier to setup since it doesn’t require custom cards, etc.

go2rtc also looks interesting!

The man himself! Thanks for the explanation. Sounds like a much cleaner option without having to go through HACS, set up custom cards with YAML, etc. For the networking-challenged like myself, how involved is setting up a STUN server? From a quick google search I got the impression it would require a VPS or the like.

There are existing stun servers you can use like Google’s, which I use.