Wyze Cam V3 - RTSP works!

to those who are interested - I was able to get my Wyze Cam V3 to be viewable in HA with RTSP streams using this wyze bridge. I am running it as a service on a separate linux server on my home network.

cheers :beers:

10 Likes

awesome. will give it a try and provide feedback :slight_smile:

Confirmed working - thanks so much mrlt8 !

Could you post a quick tutorial? I tried using the minimal instructions on GitHub to no avail
Ran docker-wye in detached mode with LAN_ONLY=True
can’t connect through any urls provided by the GitHub page ex:
http://localhost:8888/camera-nickname

Try port 8554 - thats where the docker image publishes all the RTSP streams. Here is a full tutorial:

I added the following code in my docker-compose.yml file (I have a bunch of other things in there too, so this is just an excerpt) :slight_smile:

  wyze-bridge:
    container_name: wyzebridge
    restart: unless-stopped
    network_mode: host
    image: mrlt8/wyze-bridge:latest
    environment:
        - WYZE_EMAIL=...
        - WYZE_PASSWORD=...

And then ran “docker-compose pull && docker-compose up -d” to get the docker image downloaded and running (you can use that same bit of code every so often to automatically check for and download new versions, and it will restart the container with the new version, retaining all your old settings etc).

Then I added the cameras into MotionEye using the RTSP URLs on port 8554, eg

rtsp://localhost:8554/front
rtsp://localhost:8554/backyard
rtsp://localhost:8554/driveway

(I also integrated into HomeAssistant so whenever MotionEye detects motion it takes a snapshot to disk and sends a WebHook command to HomeAssistant such as http://localhost:8123/api/webhook/FrontCamOn which then triggers an automation that passes the snapshotted image to DeepStack to do person detection, and if there is a positive detection then DeepStack saves the person detection image to disk. I then have another automation that uses folder_watcher to look for that 2nd snapshot and send me a message to my Telegram bot on my mobile phone that a person has been detected and attaches the image. Took a bit of time to setup but its all working great now).

Just an FYI - this is all new so its not 100% stable, I have to restart the docker image every so often when it loses connection.

Any other questions gimme a shout and I’ll help as much as I can :smiley:

2 Likes

(have to edit since I’m limited to 3 replies :confused: )
I appreciate the quick response! I think it’s due to mfa?
Following the GitHub guide, I’m not sure how to mount the tokens volume. I used the echo command but it returned with nothing. I also don’t know what token I would enter or where to find it.
2021/08/02 23:15:19 I [0/0] rtsp-simple-server v0.16.4

2021/08/02 23:15:19 I [0/0] [RTSP] UDP/RTP listener opened on :8000

2021/08/02 23:15:19 I [0/0] [RTSP] UDP/RTCP listener opened on :8001

2021/08/02 23:15:19 I [0/0] [RTSP] TCP listener opened on :8554

2021/08/02 23:15:19 I [0/0] [RTMP] listener opened on :1935

2021/08/02 23:15:19 I [0/0] ERR: listen tcp :8888: bind: address already in use

STARTING DOCKER-WYZE-BRIDGE v0.4.3

Could not find local cache for user

Could not find local cache for auth

Fetching auth from wyze api…

2021/08/02 23:15:20 I [0/0] rtsp-simple-server v0.16.4

2021/08/02 23:15:20 I [0/0] [RTSP] UDP/RTP listener opened on :8000

2021/08/02 23:15:20 I [0/0] [RTSP] UDP/RTCP listener opened on :8001

2021/08/02 23:15:20 I [0/0] [RTSP] TCP listener opened on :8554

2021/08/02 23:15:20 I [0/0] [RTMP] listener opened on :1935

2021/08/02 23:15:20 I [0/0] ERR: listen tcp :8888: bind: address already in use

MFA Token Required

Add token to /tokens/mfa_token

2021/08/02 23:15:22 I [0/0] rtsp-simple-server v0.16.4

2021/08/02 23:15:22 I [0/0] [RTSP] UDP/RTP listener opened on :8000

2021/08/02 23:15:22 I [0/0] [RTSP] UDP/RTCP listener opened on :8001

2021/08/02 23:15:22 I [0/0] [RTSP] TCP listener opened on :8554

2021/08/02 23:15:22 I [0/0] [RTMP] listener opened on :1935

2021/08/02 23:15:22 I [0/0] ERR: listen tcp :8888: bind: address already in use

2021/08/02 23:15:24 I [0/0] rtsp-simple-server v0.16.4

2021/08/02 23:15:24 I [0/0] [RTSP] UDP/RTP listener opened on :8000

2021/08/02 23:15:24 I [0/0] [RTSP] UDP/RTCP listener opened on :8001

2021/08/02 23:15:24 I [0/0] [RTSP] TCP listener opened on :8554

2021/08/02 23:15:24 I [0/0] [RTMP] listener opened on :1935

2021/08/02 23:15:24 I [0/0] ERR: listen tcp :8888: bind: address already in use

2021/08/02 23:15:27 I [0/0] rtsp-simple-server v0.16.4

2021/08/02 23:15:27 I [0/0] [RTSP] UDP/RTP listener opened on :8000

2021/08/02 23:15:27 I [0/0] [RTSP] UDP/RTCP listener opened on :8001

2021/08/02 23:15:27 I [0/0] [RTSP] TCP listener opened on :8554

2021/08/02 23:15:27 I [0/0] [RTMP] listener opened on :1935

2021/08/02 23:15:27 I [0/0] ERR: listen tcp :8888: bind: address already in use

I assume your indenting got messed up when you pasted? Without the proper indents yaml files don’t work.

Have you checked the logs for the docker image? You should see something like:

2021/08/02 23:45:32 [Backyard] Starting HD 120kb/s Stream for WyzeCam V2 (WYZEC1-JZ) in “LAN mode” FW: 4.28.4.49 IP: 10.0.0.34 WiFi: 67%
2021/08/02 23:45:32 [Front] Starting HD 120kb/s Stream for WyzeCam V3 (WYZE_CAKP2JFUS) in “LAN mode” FW: 4.36.2.5 IP: 10.0.0.40 WiFi: 75%
2021/08/02 23:45:32 [Driveway] Starting HD 120kb/s Stream for WyzeCam V3 (WYZE_CAKP2JFUS) in “LAN mode” FW: 4.36.2.5 IP: 10.0.0.32 WiFi: 66%

2021/08/02 23:45:37 I [0/0] [RTSP] [conn 127.0.0.1:56264] opened
2021/08/02 23:45:37 I [0/0] [RTSP] [session 2080570733] opened by 127.0.0.1:56264
2021/08/02 23:45:37 I [1/0] [RTSP] [session 2080570733] is publishing to path ‘backyard’, 1 track with UDP
2021/08/02 23:45:37 I [1/0] [RTSP] [conn 127.0.0.1:56266] opened
2021/08/02 23:45:37 I [1/0] [RTSP] [session 685882834] opened by 127.0.0.1:56266
2021/08/02 23:45:37 I [2/0] [RTSP] [session 685882834] is publishing to path ‘front’, 1 track with UDP
2021/08/02 23:45:38 I [2/0] [RTSP] [conn 127.0.0.1:56268] opened
2021/08/02 23:45:38 I [2/0] [RTSP] [session 3375203331] opened by 127.0.0.1:56268
2021/08/02 23:45:38 I [3/0] [RTSP] [session 3375203331] is publishing to path ‘driveway’, 1 track with UDP

2021/08/02 23:45:39 I [4/0] [RTSP] [conn [::1]:53990] opened
2021/08/02 23:45:39 I [4/0] [RTSP] [session 1203900256] opened by [::1]:53990
2021/08/02 23:45:39 I [4/1] [RTSP] [session 1203900256] is reading from path ‘driveway’, 1 track with TCP
2021/08/02 23:45:40 I [4/1] [RTSP] [conn [::1]:53992] opened
2021/08/02 23:45:40 I [4/1] [RTSP] [session 3873540740] opened by [::1]:53992
2021/08/02 23:45:40 I [4/2] [RTSP] [session 3873540740] is reading from path ‘front’, 1 track with TCP

(You can check the logs in Portainer if you dont want to mess around with command-line)

FYI when it loses connection you’ll see something like this in the logs:

2021/08/02 23:43:59 I [1/1] [RTSP] [conn [::1]:53414] opened
2021/08/02 23:43:59 I [1/1] [RTSP] [conn [::1]:53414] ERR: no one is publishing to path ‘front’
2021/08/02 23:43:59 I [1/1] [RTSP] [conn [::1]:53414] closed

1 Like

I assume if I’m using Supervised or Hassio, this won’t work?

In theory you should be able to get the docker running on Hassio/Supervised by using Portainer to install any docker, but you sortof need to know what you’re doing. If anyone tries this, I’d be very interested to know - I’m really impressed with the V3 cams and am interested in adding a couple V3s to my system, but only if I know for sure I can add them to Home Assistant.

Wyze, are you listening? :grin:

Hey i made it works with Portainer :
In Portainer, go to Stacks, Add stack, and past this in the ‘Web editor’.

version: '2'
services:
    wyze-bridge:
        container_name: wyze-bridge
        restart: always
        ports:
            - 1935:1935
            - 8554:8554
            - 8888:8888
        image: mrlt8/wyze-bridge:latest
        environment:
            - QUALITY=HD120
            - LAN_ONLY=True
            - WYZE_EMAIL=YOUR_WYZE_EMAIL
            - WYZE_PASSWORD=YOUR_WYZE_PASSWORD

then Deploy the stack at the bottom.
Then go check your new stack, and find the logs of it :

2021/08/22 15:34:03 I [0/0] rtsp-simple-server v0.17.2

2021/08/22 15:34:03 I [0/0] [RTSP] TCP listener opened on :8554

2021/08/22 15:34:03 I [0/0] [RTMP] listener opened on :1935

2021/08/22 15:34:03 I [0/0] [HLS] listener opened on :8888

🚀 STARTING DOCKER-WYZE-BRIDGE v0.5.11

2021/08/22 15:34:04 [MainThread] 🔍 Could not find local cache for 'user'

2021/08/22 15:34:04 [MainThread] 🔍 Could not find local cache for 'auth'

2021/08/22 15:34:04 [MainThread] 🌎 Fetching 'auth' from the Wyze API...

2021/08/22 15:34:05 [MainThread] 💾 Saving 'auth' to local cache...

2021/08/22 15:34:05 [MainThread] 🌎 Fetching 'user' from the Wyze API...

2021/08/22 15:34:06 [MainThread] 💾 Saving 'user' to local cache...

2021/08/22 15:34:06 [MainThread] 🔍 Could not find local cache for 'cameras'

2021/08/22 15:34:06 [MainThread] 🌎 Fetching 'cameras' from the Wyze API...

2021/08/22 15:34:06 [MainThread] 💾 Saving 'cameras' to local cache...

🏁 STARTING ALL 1 CAMERAS

2021/08/22 15:34:09 [Front Porch Cam] 🎉 Starting 1080p 120kb/s Stream for WyzeCam V3 (WYZE_CAKP2JFUS) in "LAN mode" FW: 4.36.2.5 IP: 192.168.1.47 WiFi: 98%

2021/08/22 15:34:14 I [0/0] [RTSP] [conn 127.0.0.1:55192] opened

2021/08/22 15:34:14 I [0/0] [RTSP] [session 855588698] opened by 127.0.0.1:55192

2021/08/22 15:34:14 I [0/0] [path front-porch-cam] created

2021/08/22 15:34:14 I [1/0] [RTSP] [session 855588698] is publishing to path 'front-porch-cam', 1 track with TCP
2 Likes

Awesome. Got it up

Just don’t know how to apply, like how do I get it on my dashboard.
I used file editor and have this for my wyze v2 rstp

""Platform: generic
Name: wyze cam
Still image url : xxxxx
Stream source:rstp://Username:password@IPaddress/live “”

[[ Username and password created in wyze app rstp ]]

Then I use picture entity…

I see portainer shows the wyze v3 cam name IP and conn 127.0.0.1:39018 open

Just don’t know how to add it to file editor

Thank you much

+1 Working on V3 via docker in windows

Also installed HA Add-On - Works great. 2 Cameras 8-12% CPU 2-3% RAM on HA Blue

Installed the HA addon. I have added the camera to blue iris. Camera has been running for 24 hours now with no issue.

Just to note; this works for V2s as well without RTSP custom firmware from wyze, so your v2s can go stock and use this. I’m going to test a few and compare. This is a gamechanger… until wyze shuts it down?

1 Like

Check out this page:

I added Wyze Bridge from HA as a add-on and set my configuration with username and password but the logs keep showing this:

2021/09/07 08:40:56 [MainThread] :cloud: Fetching ‘auth’ from the Wyze API…
2021/09/07 08:40:56 [MainThread] HTTPSConnectionPool(host=‘auth-prod.api.wyze.com’, port=443): Max retries exceeded with url: /user/login (Caused by NewConnectionError(’<urllib3.connection.HTTPSConnection object at 0x7f2351dd5c40>: Failed to establish a new connection: [Errno -2] Name or service not known’))

After reading this thread i though its about time that there was a way around getting the rstp stream to work, so i decided to order a Wyze V3 and go through this implementation, as i got fed up waiting on wyze to do what they said they would do about implementing the RSTP for v3 and i’m still waiting.

Anyway i ordered a Wyze V3 and went through the motions and voila it works as stated after a few permutations in my config to get it working…phew… but i did try it on a Wyze Cam v2 first to see if it works and it did.

Anyway i ordered a Wyze cam 3 (uk) and it came within 48 hrs and after playing around with the configs in all sorts of different ways to get a pic in VLC etc i have it working, also in Blue iris and HA but i cant seem to get this working with Frigate.

Dose anyone no what the correct path is to get the video to show in frigate ? as stated i have tried a whole heap of different permutations, all i get is a green screen and i have tried different resolutions to no avail, just cant get it to show the view of the cam picture.

I have now finally been able to input a username / password for the wyze Bridge to put in the url path using the below, but still the same results connecting via vlc etc but cannot connect via frigate using this path below…
rtsp://username:password@unraidserverip:8554/front-garden-v3

This is for the wyze cam v3, the wyze cam v2 connects fine in frigate using the wyze rtsp firmware, If anyone can give me any pointers that would be great

Update…
Due to i was using Unraid / docker app for frigate and it would not detect / display the V3 cam, as stated previously i have tried a lot of permutations to get it to show the V3 cam to no avail.

i decided to try the home assistant frigate add on and voila it worked after a bit of fine turning, i believe there must be a network issue with the docker container trying to grab the image, but all is sorted now with frigate displaying my Wyze V2 and V3 cams…Happy days :slight_smile:

version: '2'
services:
    wyze-bridge:
        container_name: Wyze-Bridge
        restart: always
        ports:
            - 1935:1935
            - 8554:8554
            - 8888:8888
        image: mrlt8/wyze-bridge:latest
        environment:
            - QUALITY=HD120
            - LAN_ONLY=True
            - [email protected]
            - WYZE_PASSWORD=xxxxxxxxxx
            - FILTER_MODELS=v3

Thank you for the add-on!

I’ve updated my config files as directed. When i try to load open the picture element card in UI, the video is just spinning; I’m assuming the URL isn’t isn’t appropriately configured. Can some one please help with the trouble shooting steps please?

No errors in my config as HA starts fine. Excerpt from my config.yaml:

stream:
camera:

UPDATE: I’m able to view the RTSP feed on a VLC player from an iPad. So the configuration works, just not sure why Home Assistant wont load the stream n Lovelace.

FINAL UPDATE: I was able to make it work guys. Everything in the configuration was fine. I just had to replace homeassistant.local in the URL wth <my_actual_ip> and it WORKED!

Hope this helps some one.