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

BUG: web-rtc not working #1429

Open
Doug411 opened this issue Feb 20, 2025 · 116 comments
Open

BUG: web-rtc not working #1429

Doug411 opened this issue Feb 20, 2025 · 116 comments
Labels
bug Something isn't working

Comments

@Doug411
Copy link

Doug411 commented Feb 20, 2025

Describe the bug

I am running the bridge in docker. I am running the latest qsv build (but have tried non qsv builds, and builds going back several releases. I can get the HLS stream to work in the GUI, but I cant get the web-rtc stream to work in the GUI or the browser. In both cases, I get a spinning circle that lasts indefinitely, and the stream never loads. I have the web-rtc port mapped, and the IP address of the bridge set in my docker compose.

Affected Bridge Version

latest-qsv (although i've tried going back many releases)

Bridge type

Docker Run/Compose

Affected Camera(s)

Wyze version 3,

Affected Camera Firmware

No response

docker-compose or config (if applicable)

services:
  wyze-bridge:
    container_name: wyze-bridge
    restart: unless-stopped
    image: mrlt8/wyze-bridge:latest-qsv
    ports:
      - 1935:1935 # RTMP
      - 8554:8554 # RTSP
      - 8888:8888 # HLS
      - 8889:8889 #WebRTC
      - 8189:8189/udp # WebRTC/ICE
      - 5000:5000 # WEB-UI
    devices:
      - /dev/dri:/dev/dri
    environment:
      - WYZE_EMAIL=${MY_EMAIL}
      - WYZE_PASSWORD=${MY_PASSWORD}
      - API_ID=${WYZE_API_ID}
      - API_KEY=${WYZE_API_KEY}
      - SNAPSHOT=RTSP
      - NET_MODE=LAN
      - LIBVA_DRIVER_NAME=iHD
      - WB_IP=192.168.1.200
      - IMG_DIR=/img/
      - IMG_TYPE=jpg
      - WB_USERNAME=${WB_USERNAME}
      - WB_PASSWORD=${WB_PASSWORD}
      - ENABLE_AUDIO=true
      - WB_API=${WB_API}
    volumes:
      - /opt/docker/wyze-bridge/img:/img
      - /opt/docker/wyze-bridge/tokens:/tokens
networks: {}
@Doug411 Doug411 added the bug Something isn't working label Feb 20, 2025
@delmlund
Copy link

My V3 has also stopped working.

Giving a "[-13] IOTC_ER_TIMEOUT" error in logs.

[baby-cam] [-13] IOTC_ER_TIMEOUT [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:10:14] "GET /snapshot/baby-cam.jpg?1740139813167 HTTP/1.1" 200 - [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] [baby-cam] Snapshot timed out [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:10:30] "GET /snapshot/baby-cam.jpg?1740139813167 HTTP/1.1" 200 - [baby-cam] [-13] IOTC_ER_TIMEOUT [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:10:45] "GET /snapshot/baby-cam.jpg?1740139843167 HTTP/1.1" 200 - [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] [baby-cam] Snapshot timed out [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:11:03] "GET /snapshot/baby-cam.jpg?1740139843167 HTTP/1.1" 304 - [WyzeBridge] ⏰ Timed out connecting to Baby Cam. [baby-cam] [-13] IOTC_ER_TIMEOUT [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:11:18] "GET /snapshot/baby-cam.jpg?1740139873257 HTTP/1.1" 200 - [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] [baby-cam] Snapshot timed out [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API... [WyzeBridge] [API] Fetched [1] cameras [WyzeBridge] 💾 Saving 'cameras' to local cache... [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:11:35] "GET /snapshot/baby-cam.jpg?1740139873257 HTTP/1.1" 200 - [WyzeBridge] ⏰ Timed out connecting to Baby Cam. [baby-cam] [-13] IOTC_ER_TIMEOUT [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:11:49] "GET /snapshot/baby-cam.jpg?1740139903349 HTTP/1.1" 200 - [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] [baby-cam] Snapshot timed out [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:12:05] "GET /snapshot/baby-cam.jpg?1740139903349 HTTP/1.1" 200 - [WyzeBridge] ⏰ Timed out connecting to Baby Cam. [baby-cam] [-13] IOTC_ER_TIMEOUT [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:12:20] "GET /snapshot/baby-cam.jpg?1740139933441 HTTP/1.1" 200 - [WyzeBridge] 🎉 Connecting to WyzeCam V3 - Baby Cam on 192.168.2.139 [WyzeBridge] [baby-cam] Snapshot timed out [WyzeBridge] 192.168.2.160 - - [21/Feb/2025 20:12:36] "GET /snapshot/baby-cam.jpg?1740139933441 HTTP/1.1" 200 - [WyzeBridge] ⏰ Timed out connecting to Baby Cam. [baby-cam] [-13] IOTC_ER_TIMEOUT

Not working on any protocol though.

Working fine with Wyze mobile app and with Scrypted's WYZE plugin.

@wilsonjeff72
Copy link

I started to see the same on all 3 of my v3 cams today. Cam feeds are fine in the Wyze app.

Cam firmware: 4.36.13.0416
Wyze-bridge: 2.10.3

@delmlund
Copy link

Same Firmware and bridge version.

I have auto firmware off on app, but shows my firmware is up to date. I thought I had an available firmware update last I looked months ago.

Wonder if they force pushed a firmware update...

@delmlund
Copy link

Found a fix for mine. Been working fine for years under same settings, but mrlt8 mentioned wyze pushing updates about local networks being more strict.

I run UNRAID, was under a regular bridge connection. I swapped the container to now a br0 connection with dedicated IP. This fixed my camera.

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

Same problem here today. My floodlights, v4, and doorbell cams all went down in the last few hours.

@grinddking
Copy link

long time user just posting to add same IOTC_ER_TIMEOUT as everyone else, started hours ago as well, 4 cameras, all v2 wyze fw 4.36.13.0416

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

I can confirm that moving the docker-wyze-bridge and an affected camera onto the exact same LAN mitigates the issue.

In my case, this required 2 steps:

  1. Set network_mode: host on the docker-compose install of docker-wyze-bridge
  2. Move camera off IoT wifi network onto a server network with a 2.4g only wifi radio

YMMV but this does seem to be related to Wyze locking down access to cameras across network boundaries.

@domeng83
Copy link

I am seeing the same issues as well. I have 1 V2 and 2 V3 all experiencing the sameL

08:42:21 [WARNING][garage-cam] [-13] IOTC_ER_TIMEOUT 08:42:21 [WARNING][front-porch-cam] [-13] IOTC_ER_TIMEOUT 08:42:21 [WARNING][garage-cam-sub] [-13] IOTC_ER_TIMEOUT

my bridge is running as an addon in HA. HA is running on an rpi4b that is on the same LAN as the cameras. restarted addon several times, checked configurations, rebooted entire HA instance multiple times. No result.

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

@domeng83 @grinddking try the workaround that @delmlund pointed out if you can. Move all components onto the same LAN directly.

Also, can anyone else confirm start time around 10:20 UTC today (2/21)? I saw all my cameras go down after that point. I'm curious to know if it affected all users at once or was gradual.

@hodgesp
Copy link

hodgesp commented Feb 21, 2025

Same issue here, IOTC error. I was able to move to the host network setting for the Wyze-Bridge container (as @shawnsi mentioned), rather than a bridged connection. This worked and it is back up and running.

Portainer:2.21.4
Wyze-Bridge:latest
Camera: v2, v3, and Doorbell

@hodgesp
Copy link

hodgesp commented Feb 21, 2025

Just weird they were able to make this change without pushing new firmware. Unless they baked in a environment variable/flag for this a while ago and turned it on last night. Weird.

@delmlund
Copy link

@domeng83 @grinddking try the workaround that @delmlund pointed out if you can. Move all components onto the same LAN directly.

Also, can anyone else confirm start time around 10:20 UTC today (2/21)? I saw all my cameras go down after that point. I'm curious to know if it affected all users at once or was gradual.

Unsure on an exact time. I was notified ~4:40 am Friday (UTC) that stream wasn't working.

@domeng83
Copy link

@domeng83 @grinddking try the workaround that @delmlund pointed out if you can. Move all components onto the same LAN directly.

Also, can anyone else confirm start time around 10:20 UTC today (2/21)? I saw all my cameras go down after that point. I'm curious to know if it affected all users at once or was gradual.

@shawnsi how can we define this configuration if we're running as an HA addon?

Also, looking at my logs in HA I think approximately 10am utc is around when my cameras went down.

@shim895
Copy link

shim895 commented Feb 21, 2025

Bump. Same for my 9 wyze cameras. Starting to diagnose....

@delmlund would you mind giving a bit more details on what you did? TIA

@wilsonjeff72
Copy link

I started to see the same on all 3 of my v3 cams today. Cam feeds are fine in the Wyze app.

Cam firmware: 4.36.13.0416 Wyze-bridge: 2.10.3

It might be worth mentioning 2 things.

  1. When this first started happening today I was on older cam firmware (4.36.11.8391) and Wyze-bridge (2.8.3), after updating both to the latest I am seeing the same issue
  2. I don't have any fancy network setup, everything is on the same LAN and nothing has changed for ages

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

@domeng83 I'm not familiar with running as an HA addon. The key seems to be having docker-wyze-bridge run on a network interface on the same LAN network as the camera(s) you connect to.

@pedromfa
Copy link

Well, guess its time to ditch the last Wyze cam i have. :) Garbage.

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

I am not using Wyze Docker and my camera went blank this morning after the update. They are both on the same network, same account and all and I lost the video feed.

Cam are both on the latest firmware Pan v3 4.50.5.1318 Cam v3 4.36.13.0416

@aodoine what do you mean by "I am not using Wyze Docker"? Are you not using the docker-wyze-bridge software somehow?

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

I started to see the same on all 3 of my v3 cams today. Cam feeds are fine in the Wyze app.
Cam firmware: 4.36.13.0416 Wyze-bridge: 2.10.3

It might be worth mentioning 2 things.

  1. When this first started happening today I was on older cam firmware (4.36.11.8391) and Wyze-bridge (2.8.3), after updating both to the latest I am seeing the same issue
  2. I don't have any fancy network setup, everything is on the same LAN and nothing has changed for ages

@wilsonjeff72 try using docker host mode if you can. It seems that network virtualization in docker alone can result in this camera connectivity problem.

@delmlund
Copy link

I started to see the same on all 3 of my v3 cams today. Cam feeds are fine in the Wyze app.
Cam firmware: 4.36.13.0416 Wyze-bridge: 2.10.3

It might be worth mentioning 2 things.

  1. When this first started happening today I was on older cam firmware (4.36.11.8391) and Wyze-bridge (2.8.3), after updating both to the latest I am seeing the same issue
  2. I don't have any fancy network setup, everything is on the same LAN and nothing has changed for ages

@wilsonjeff72 try using docker host mode if you can. It seems that network virtualization in docker alone can result in this camera connectivity problem.

Can confirm, running in host mode instead of bridge fixed it as well. No need to map to a new dedicated ip. Can still sit behind a server.

@wilsonjeff72
Copy link

@wilsonjeff72 try using docker host mode if you can. It seems that network virtualization in docker alone can result in this camera connectivity problem.

Yeah that did it, thanks :)

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

@mrlt8 there was some sort of change further restricting network sources that can open the wyze cam streams earlier today. If this proves to be an intentional change it may require updates in this project to explain and support the limitation going forward. The change here, at minimum, is docker host network mode is a requirement now.

Edit: to clarify, I don't think host mode is a prescriptive solution (see points below about port conflicts, docker desktop limitations, etc.). Just that it's one way to bypass this new limitation that seems to be affecting wyze cameras. A bridge mode network is another viable option but a little less straightforward for uses unless there is a port conflict at host level already.

@iamle0pard
Copy link

When i add network_mode: host to my docker-compose file, I no longer see the wyze-bridge attempt to connect to my cameras, am I missing something? Here is what my docker-compose looks like:

services:
    wyze-bridge:
        network_mode: host
        container_name: wyze-bridge
        restart: unless-stopped
        image: mrlt8/wyze-bridge:latest
        volumes:
            - ./tokens/:/tokens/
        ports:
            - 1935:1935 # RTMP
            - 8554:8554 # RTSP
            - 8888:8888 # HLS
            - 8889:8889 #WebRTC
            - 8189:8189/udp # WebRTC/ICE
            - 5001:5001 # WEB-UI
        environment:
            - WYZE_EMAIL=##EMAIL_HERE##
            - WYZE_PASSWORD=##PASSWORD_HERE##
            - API_ID=##ID_HERE##
            - API_KEY=##KEY_HERE##
            - WB_AUTH=false
            - ENABLE_AUDIO=True
            - AUDIO_CODEC=AAC

When running the console only has these logs, and nothing more:

2025-02-21 09:12:14 [WyzeBridge] WARNING: invalid escape sequence '\:'
2025-02-21 09:12:14 
2025-02-21 09:12:14 🚀 DOCKER-WYZE-BRIDGE v2.10.3 X86_64
2025-02-21 09:12:14 
2025-02-21 09:12:14 [WyzeBridge] SET WB_IP to allow WEBRTC connections.
2025-02-21 09:12:14  * Serving Flask app 'frontend'
2025-02-21 09:12:14  * Debug mode: off
2025-02-21 09:12:14 [WyzeBridge] 📚 Using 'auth' from local cache...
2025-02-21 09:12:14 [WyzeBridge] 📚 Using 'user' from local cache...
2025-02-21 09:12:14 [WyzeBridge] [AUTH] WB_AUTH=False
2025-02-21 09:12:14 [WyzeBridge] 📚 Using 'cameras' from local cache...
2025-02-21 09:12:14 [WyzeBridge] [+] Adding Front Door Wyze Cam v3 [HL_PAN3]
2025-02-21 09:12:14 [WyzeBridge] [+] Adding Wyze Cam v3  [WYZE_CAKP2JFUS]
2025-02-21 09:12:14 [WyzeBridge] [MTX] starting MediaMTX 1.9.0
2025-02-21 09:12:14 [WyzeBridge] 🎬 2 streams enabled
2025-02-21 09:12:15 [WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
2025-02-21 09:12:15  * Running on all addresses (0.0.0.0)
2025-02-21 09:12:15  * Running on http://127.0.0.1:5000
2025-02-21 09:12:15  * Running on http://192.168.65.3:5000
2025-02-21 09:12:15 [WyzeBridge] Press CTRL+C to quit

Without that setting in my docker-compose file, I at least get the attempt to connect to the camera:

2025-02-21 09:14:33 [WyzeBridge] WARNING: invalid escape sequence '\:'
2025-02-21 09:14:33 
2025-02-21 09:14:33 🚀 DOCKER-WYZE-BRIDGE v2.10.3 X86_64
2025-02-21 09:14:33 
2025-02-21 09:14:33 [WyzeBridge] SET WB_IP to allow WEBRTC connections.
2025-02-21 09:14:33  * Serving Flask app 'frontend'
2025-02-21 09:14:33  * Debug mode: off
2025-02-21 09:14:33 [WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
2025-02-21 09:14:33  * Running on all addresses (0.0.0.0)
2025-02-21 09:14:33  * Running on http://127.0.0.1:5000
2025-02-21 09:14:33  * Running on http://172.19.0.2:5000
2025-02-21 09:14:33 [WyzeBridge] Press CTRL+C to quit
2025-02-21 09:14:33 [WyzeBridge] 📚 Using 'auth' from local cache...
2025-02-21 09:14:33 [WyzeBridge] 📚 Using 'user' from local cache...
2025-02-21 09:14:33 [WyzeBridge] [AUTH] WB_AUTH=False
2025-02-21 09:14:33 [WyzeBridge] 📚 Using 'cameras' from local cache...
2025-02-21 09:14:33 [WyzeBridge] [+] Adding Front Door Wyze Cam v3 [HL_PAN3]
2025-02-21 09:14:33 [WyzeBridge] [+] Adding Wyze Cam v3  [WYZE_CAKP2JFUS]
2025-02-21 09:14:33 [WyzeBridge] [MTX] starting MediaMTX 1.9.0
2025-02-21 09:14:33 [WyzeBridge] 🎬 2 streams enabled
2025-02-21 09:14:59 [WyzeBridge] 🎉 Connecting to WyzeCam Pan V3 - Front Door Wyze Cam v3 on 192.168.4.51
2025-02-21 09:15:19 [front-door-wyze-cam-v3] [-13] IOTC_ER_TIMEOUT
2025-02-21 09:15:19 [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2025-02-21 09:15:19 [WyzeBridge] [API] Fetched [2] cameras
2025-02-21 09:15:19 [WyzeBridge] 💾 Saving 'cameras' to local cache...
2025-02-21 09:15:29 [WyzeBridge] 🎉 Connecting to WyzeCam Pan V3 - Front Door Wyze Cam v3 on 192.168.4.51

Any guidance is appreciated.. thanks!

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

@iamle0pard are your cameras on the same network as the docker-wyze-bridge? That seems to be a requirement which I had to reconfigure for as well. I noticed IPs like 192.168.4.51 for cameras and 192.168.65.3 for the servers which may be different networks technically depending on your own configuration.

@shim895
Copy link

shim895 commented Feb 21, 2025

I can confirm that adding:

network_mode: host

to my docker-compose.yml file took care of it for me as well.

@iamle0pard
Copy link

iamle0pard commented Feb 21, 2025

@iamle0pard are your cameras on the same network as the docker-wyze-bridge? That seems to be a requirement which I had to reconfigure for as well. I noticed IPs like 192.168.4.51 for cameras and 192.168.65.3 for the servers which may be different networks technically depending on your own configuration.

Thanks for the quick reply! Yeah, they are all on the same network from what I can see. I do have the eero Max 7 mesh setup as well as a number of eero 6 devices to extend my WIFI network, but it's all one large mesh. Eero really limits what we're allowed to do in terms of splitting up the network, so I assume it's just one large one.

I wonder if they all have to be within the same CIDR or IP subnet range like 192.168.4.x or something similar

EDIT: My wyze-docker-bridge is on a PC with 192.168.4.104 as the IP and my Wyze Cam V3 Pan has an IP of 196.168.4.51, so I would think they should be fine connectivity wise.

@pedromfa
Copy link

pedromfa commented Feb 21, 2025

I can confirm that adding:

network_mode: host

to my docker-compose.yml file took care of it for me as well.

Where can i find this file to edit? Sorry the newby here. :) Im using HA addon

@shawnsi
Copy link

shawnsi commented Feb 21, 2025

@pedromfa it's an option for docker-compose.yml and is set under the service section for the bridge. Here is a snippet from mine as an example:

    wyze-bridge:
        container_name: wyze-bridge
        restart: unless-stopped
        image: mrlt8/wyze-bridge:2.10.3
        network_mode: host

@pedromfa
Copy link

docker-compose.yml

Ok but were is that file? docker-compose.yml
Cant find it.

@joe2k1
Copy link

joe2k1 commented Feb 23, 2025

I cannot seem to get the fix to work properly. I am using portainer (with docker on a synology). Do I need to remove the existing environment variable:

NET_MODE=LAN (remove this line?)
NET_MODE=HOST (add this line)

This still gives the IOC error.

I also tried to adjust the container within portainer to start up with —network host. This container won’t start.

I also had to update my API keys/ID. Thanks for your help folks!

Edit: Found the Network settings under the advanced section of container.

I am getting this issue now:

WyzeBridge] [MTX] starting MediaMTX 1.9.0
[WyzeBridge] 🎬 6 streams enabled
2025/02/23 09:45:58 ERR listen tcp :1935: bind: address already in use
[WyzeBridge] [MediaMTX] Process exited with 1
[WyzeBridge] [MTX] starting MediaMTX 1.9.0
2025/02/23 09:46:00 ERR listen tcp :1935: bind: address already in use
[WyzeBridge] [MediaMTX] Process exited with 1
[WyzeBridge] [MTX] starting MediaMTX 1.9.0
2025/02/23 09:46:15 ERR listen tcp :1935: bind: address already in use
[WyzeBridge] [MediaMTX] Process exited with 1
[WyzeBridge] [MTX] starting MediaMTX 1.9.0
2025/02/23 09:46:30 ERR listen tcp :1935: bind: address already in use
[WyzeBridge] [MediaMTX] Process exited with 1
[WyzeBridge] [MTX] starting MediaMTX 1.9.0

Any solutions would be greatly appreciated!

Edit 2: Based on a reply It seems that my Synology Surviellance Station uses port 1935. Looks like this solution is not going to work for me or anyone else with my particular setup. Does anyone know any alternatives if this is ever going to be resolved?

@walk0080
Copy link

Mine are all working as of this morning.
No changes made to Docker config or network. I never had the "host" network setting in my docker config.

yup, mine were working this morning... then slowly start dropping off midday. now i'm in same boat as everyone else.

Yep mine were offline this morning as well.

Changed docker config to "host" mode and they are all back again...?

@letrain02
Copy link

Mine are all working as of this morning.
No changes made to Docker config or network. I never had the "host" network setting in my docker config.

yup, mine were working this morning... then slowly start dropping off midday. now i'm in same boat as everyone else.

Yep mine were offline this morning as well.

Changed docker config to "host" mode and they are all back again...?

Leave it lan you have to change network mode to host.

@walk0080
Copy link

Mine are all working as of this morning.
No changes made to Docker config or network. I never had the "host" network setting in my docker config.

yup, mine were working this morning... then slowly start dropping off midday. now i'm in same boat as everyone else.

Yep mine were offline this morning as well.
Changed docker config to "host" mode and they are all back again...?

Leave it lan you have to change network mode to host.

  • Yes - previously did not have network mode = host... it was working fine, while others reported problems.
  • Then a day later, no cameras working... Changed network mode = host, and the cameras were back online.
  • This morning 2 out of 3 cameras are available, but extremely laggy and basically useless as-is. Lots of timed out errors in the logs.

@talormanda
Copy link

I think it's clear at this point that there is no magic fix, and anyone claiming setting to "host" mode or whatever is only temporary and you're lucky you get it functional for the few hours it decides to work again.

@letrain02
Copy link

Between host mode and spinning up go2rtc in a docker I have about 5 seconds delay. Otherwise with how the delay grows until it craps out.

@Ryccoo
Copy link

Ryccoo commented Feb 24, 2025

following for any updates.
I would love to avoid moving my VLANs for my CAMs, as my VLANs are setup like that for security reasons.

@Doug411
Copy link
Author

Doug411 commented Feb 26, 2025

I created a macvlan network with a single IP inside my Wyze Bridge Container and assigned that network to the bridge. I did that within a couple of hours of the issue arising (after seeing reports that it was working with host networking). I've been running error free with the macvlan network for 5 straight days.

I originally created this thread regarding a different issue.... web-rtc was not working for me (I could only stream HLS in the GUI and elsewhere, Webrtc wouldn't open, it would just spin). That was an issue for me prior to the IOTC problem. Once the IOTC problem happened, I lost all connectivity from the cameras to the bridge. However, after creating the macvlan network to solve the IOTC issue, my web-rtc issue resolved as well. Now...if somebody has a trick to make web-rtc work with frigate without throwing a bunch of errors, let me know. I played around with it a little, and its amazing in terms of latency. There's almost no lag at all. Its actually better than my tapo c120 with native rtsp interface to frigate. Less than a second delay. However, it fills my error log with all kinds of issues. I cant rely on it.

@scoob8000
Copy link

Just to comment same, but I've got my cams in a IOT vlan. I don't plan on moving them just to make this work. Hopefully another work around or update can fix it.

@g13092
Copy link

g13092 commented Mar 1, 2025

It's interesting, when I switch to host mode, I lose the web-ui port remapping from 5000 to 5001 that I had set up. i.e. there's no way to see the wyze-bridge web-ui. Then I also get the "ERR listen tcp :1935: bind: address already" in use error in my logs. I never needed to uncomment that RTMP line before, but trying it now didn't help either.

root@G450:~# sudo netstat -pna | grep 1935
tcp        0      0 0.0.0.0:1935            0.0.0.0:*               LISTEN      1237/docker-proxy
tcp6       0      0 :::1935                 :::*                    LISTEN      1246/docker-proxy
root@G450:~#
version: '2.4'
services:
    wyze-bridge:
        container_name: wyze-bridge
        restart: unless-stopped
        image: mrlt8/wyze-bridge:latest
        network_mode: host
        ports:
#            - 1935:1935 # RTMP
            - 8554:8554 # RTSP
            - 8888:8888 # HLS
            - 8889:8889 #WebRTC
            - 8189:8189/udp # WebRTC/ICE
            - 5001:5000 # WEB-UI

Stopped my frigate container, and that freed up 5000 and 1935. The web-ui shows current streams and no IOTC errors

@Doug411
Copy link
Author

Doug411 commented Mar 1, 2025

I think you're misunderstanding how bridge and host networks work in docker. In host mode you can't remap your ports. You can remove all your port mapping in your yaml compose file. However, the required ports need to be open (not used by another service) on your host machine. If they are utilized by another service you will have a conflict. In docker bridge mode you can remap what ports you want open on the host. In order to get the wyze bridge working..... If you can't or don't want to shutdown or remap the other service that is using 1935, you can always create a macvlan network like I did. That will allow you to create an IP address in your subnet (different than your host). You will essentially be running the wyze docker bridge in docker host mode on a new IP address separate from your host IP address (so you won't have a port conflict on your host machine)

@ihatemyisp ihatemyisp mentioned this issue Mar 1, 2025
@ihatemyisp
Copy link

Doing some packet captures, it looks like Wyze has fully shifted to it's new steaming system, AWS Kinesis Video Streams, which wyze-bridge doesn't currently support. @knightzac19 has added support on his fork, https://github.com/knightzac19/docker-wyze-bridge/tree/add-kvs-webrtc-support.

In my testing, host mode or macvlan networking is now required.

I've pulled everything together. See #1446.

@letrain02
Copy link

I got this working based on info from others. And trial and error. Host mode worked to connect to cameras, but not web-rtc. Bridge, ipvlan or macvlan only 2 cameras connect and web-rtc works. Finally custom network comes in. I assigned the container an IP from my network that was available. All cameras connect and web-rtc connect. Odd thing is I have to use my host IP for wb_ip... If I put the actual wyze bridge ip in webrtc does not work...

@N3rd7
Copy link

N3rd7 commented Mar 2, 2025

Doing some packet captures, it looks like Wyze has fully shifted to it's new steaming system, AWS Kinesis Video Streams, which wyze-bridge doesn't currently support. @knightzac19 has added support on his fork, https://github.com/knightzac19/docker-wyze-bridge/tree/add-kvs-webrtc-support.

In my testing, host mode or macvlan networking is now required.

I've pulled everything together. See #1446.

Thank you! Does this branch also include the fix for Home Assistant add-on? I looked quickly ad didn't see the addition of network_mode: host in config.yml, but I might not be looking at the right place. Right now I'm using jdeath's branch and it works great for my system, not sure if I should update?

@Doug411
Copy link
Author

Doug411 commented Mar 2, 2025

[letrain02]....

Strange... Not my experience with macvlan. I had 5 Wyze v3 and pan v2s running on a MacVlan network within docker. Webrtc was working for all cameras since the issue first occured and I spun up the macvlan 9 days ago. No issues whatsoever. I couldn't get Webrtc to work with frigate without generating a lot of errors in the logs, but that's a different and more longstanding issue. The Wyze Bridge GUI worked fine with web-rtc. I'm using past tense... as my MS-01 broke yesterday, and is now en-route back to China :( Also a separate but very unfortunate issue.

@ihatemyisp
Copy link

Doing some packet captures, it looks like Wyze has fully shifted to it's new steaming system, AWS Kinesis Video Streams, which wyze-bridge doesn't currently support. @knightzac19 has added support on his fork, https://github.com/knightzac19/docker-wyze-bridge/tree/add-kvs-webrtc-support.
In my testing, host mode or macvlan networking is now required.
I've pulled everything together. See #1446.

Thank you! Does this branch also include the fix for Home Assistant add-on? I looked quickly ad didn't see the addition of network_mode: host in config.yml, but I might not be looking at the right place. Right now I'm using jdeath's branch and it works great for my system, not sure if I should update?

Honestly, I didn't update the docker-compose templates to include the "network_mode: host" or macvlan because I didn't think about it but one of them is necessary (at least it was for my network).

@cheme75
Copy link

cheme75 commented Mar 3, 2025

For the less techies like me,can we run this branch by modifying the line - image: mrlt8/wyze-bridge:latest? If so to which repo/image?

@g13092
Copy link

g13092 commented Mar 3, 2025

I think you're misunderstanding how bridge and host networks work in docker.

I was, but now I have a much better understanding. Hadn't used host mode anywhere else before. Thanks for the walk through!

@jman9895
Copy link

jman9895 commented Mar 3, 2025 via email

@scoob8000
Copy link

scoob8000 commented Mar 3, 2025 via email

@Doug411
Copy link
Author

Doug411 commented Mar 3, 2025

i have a couple of tapo c120's. They work great. Yes, you can use the phone app and the rtsp stream concurrently (i was using the rtsp stream into Frigate 24X7). I dont know if you are using frigate or not, but the C120's have much less delay than wyze cams/wyze bridge. They are pretty darn close to real time. As I mentioned above, I did experiment with interfacing the wyze bridge to frigate using webrtc, and I actually felt that it might actually be ever so slightly more real time than the tapo c120s using native rtsp. Its unfortunate however, because the wyze-bridge doesnt play nicely with Frigate when using web-rtc. So right now, the C120 wins out, and feature wise, it blows the wyze cams out of the water (local AI detection, native RTSP, etc, etc). They are really good cams for the money. I won't buy any more wyze.

@scoob8000
Copy link

scoob8000 commented Mar 3, 2025 via email

@funkoid
Copy link

funkoid commented Mar 5, 2025

I can confirm that moving the docker-wyze-bridge and an affected camera onto the exact same LAN mitigates the issue.

In my case, this required 2 steps:

  1. Set network_mode: host on the docker-compose install of docker-wyze-bridge
  2. Move camera off IoT wifi network onto a server network with a 2.4g only wifi radio

YMMV but this does seem to be related to Wyze locking down access to cameras across network boundaries.

Read your post then checked my 2 cams. the one that is working is on the same LAN as the docker and the other that's not working is on my IOT. sucks that I need to move it off the IOT lan to make it work.

@ihatemyisp
Copy link

I can confirm that moving the docker-wyze-bridge and an affected camera onto the exact same LAN mitigates the issue.
In my case, this required 2 steps:

  1. Set network_mode: host on the docker-compose install of docker-wyze-bridge
  2. Move camera off IoT wifi network onto a server network with a 2.4g only wifi radio

YMMV but this does seem to be related to Wyze locking down access to cameras across network boundaries.

Read your post then checked my 2 cams. the one that is working is on the same LAN as the docker and the other that's not working is on my IOT. sucks that I need to move it off the IOT lan to make it work.

It also has to do with if your a Cam Plus subscriber. If you are, host mode and network infrastructure changes alone won't reliably fix the issue. Wyze has moved Cam Plus subscribers to another streaming solution that is being worked on with #1420. If I was a betting man, I would bet that they're eventually going to move everything over so that they don't have to keep up with two setups.

@knightzac19
Copy link

@ihatemyisp That's not entirely true, the KVS solution actually is only for peeps who wanna use the web interface to view the cameras. I checked my non-pro cameras and they work with KVS just fine.

@ihatemyisp
Copy link

@ihatemyisp That's not entirely true, the KVS solution actually is only for peeps who wanna use the web interface to view the cameras. I checked my non-pro cameras and they work with KVS just fine.

It's quite odd because all my cams (V2s, V4s, Floodlight V2, V3, OG, Pan V2s) are on my Cam Plus subscription and none of them function reliably without KVS. Sometimes they connect, sometimes they don't (through the direct webrtc feed from non-kvs enabled wyze-bridge). It doesn't matter if it's host name, macvlan, or docker proxy.

Wyze has always been finicky like that though.

@cheme75
Copy link

cheme75 commented Mar 5, 2025

@ihatemyisp That's not entirely true, the KVS solution actually is only for peeps who wanna use the web interface to view the cameras. I checked my non-pro cameras and they work with KVS just fine.

as a noob, how does one apply the kvs solution? I look at your git page and the docker-compose sample looks no different referring to mrlt8's latest? doesn't it need to refer to your fixed version?

@Mizokuiam
Copy link

Hi there @Doug411! It looks like many users are suddenly experiencing connectivity issues with Wyze cameras and the Wyze Bridge, indicated by the IOTC_ER_TIMEOUT error. While this issue was initially reported as a WebRTC problem, the error suggests a more general communication failure affecting other protocols too. It's likely related to recent changes on Wyze's end, potentially stricter network access controls.

The most promising workaround so far is to ensure the Wyze Bridge and your cameras are on the same local network. Several users have resolved the issue by:

  1. Switching to Host Networking: If using Docker, change your docker-compose.yml to use network_mode: host. This puts the bridge container directly on the host's network, eliminating any potential bridge network conflicts.

    network_mode: host 
    # Remove the 'ports' section entirely when using host networking.
  2. Using a Dedicated Bridge Network (if applicable): If you're using a custom bridge network (like br0 in Unraid), ensure your Wyze Bridge container and your camera are connected to that same bridge.

  3. Check Camera and Bridge IPs: Double-check that your WB_IP environment variable in your docker-compose.yml correctly matches your server's IP address on the network shared with the cameras.

If you're running the bridge as a Home Assistant add-on, the add-on likely uses host networking by default. Focus on verifying the camera is on the same LAN as the Home Assistant instance. You might try temporarily connecting the camera to the main WiFi network (if you use a separate IoT network) as a test.

If none of these workarounds help, please provide the following information to help diagnose the issue further:

  • Wyze Camera Firmware Version: You can find this in the Wyze app.
  • Wyze Bridge Version: The exact version you're using (e.g., 2.10.3).
  • Network Topology: Briefly describe your network setup (separate VLANs, IoT network, etc.). This will help identify potential network segmentation issues.

Let's try to pinpoint the root cause and find a more permanent solution.

Hope that resolves your issue!

@Doug411
Copy link
Author

Doug411 commented Mar 6, 2025

Mizokuiam

The issue I was reporting pre-dated the IOTC issue. I was able to connect via the GUI using HLS not webrtc. My post got commandeered by the IOTC issue when it occurred as the IOTC issue occured a half a day after my post. As I've already discussed in the thread, I solved the IOTC issue within a couple hours of it first occuring, by creating a macvlan network and assigning an IP address in my subnet to the Wyze Bridge container. Cooincidently, after I changed over to Macvlan, my web-rtc issue resolved. I've also stated that although web-rtc is working in the GUI, I haven't had a lot of luck using web-rtc to interface to frigate. I have been able to make a connection. Latency is fantastic (much better than RTSP), however it is unstable and produces a lot of errors in the error log. I've seen much older posts that indicated that there is still some re-work that needs to be done to make the integration stable. I found the link for the Wyze Bridge rtc connection in the go2rtc documentation (IP address:5000/signaling/camera (using the web-rtc address from the Wyze Bridge gui didnt work for me at all Has there been any progress on a more stable integration with go2rtc/frigate?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.