Wyze v4: Docker-Wyze Bridge IOTC_ER_TIMEOUT + 401 Client Error

Issue: Wyze Cam v4 no longer working in Wyze-Bridge docker container, has been stable for several years.

Firmware: 4.52.9.4188 | DWB: mrlt8/wyze-bridge:latest (Also tried IDisposable/docker-wyze-bridge)

Past Issues: Typically required re-pairing cameras, downgrading firmware, etc. All resolved.

Hello all, I cannot for the life of me get my Wyze Cam v4 working with docker-wyze-bridge to feed into my Frigate instance. It is refusing to play nice, and despite firmware changes, firewall triple checks, switching container maintainers, updating my API key, verifying the cameras are active on the Wyze proprietary web app, etc. I cannot get the cameras back online. Can anyone help me?

[[ A workaround was found to get streams back at 640x360@10FPS using go2rtc, details below ]]

You’ll need to downgrade the firmware manually and turn off auto updates until Wyze Bridge makes the necessary changes (obviously it is up to them if/when they do that). A new security protocol has been implemented, and they need to implement it to match. As far as I know, Tiny Cam Pro is the only one so far to have made the update in the latest version.

I believe the last working firmware version for many apps is 4.52.9.4188 but you may need to go back further to the one prior to the one that added “verified view”.

Or maybe I’m misunderstanding, are you saying it worked fine on 4188 before? If so maybe something is going on with the API right now, or maybe something updated on your Docker instance or Wyze Bridge? I suppose the question is - what changed at the time it broke?

It’s been working just fine on that firmware, which I flashed to following a similar event in February. However, it has stopped working – I made no changes to the configuration and the cameras have not auto-updated since. There have been no changes to anything that I can find that would have caused a shift in behavior, but alas.

[[ Spoiler: Wyze server-side change that broke TUTK P2P ]]

If you’re certain there were no updates to docker or wyze bridge or anything else in your setup then it would point to some connectivity issue, perhaps something blocking the connection to the Wyze API (or that API just having problems right now).

Is this the only cam you have or do you have others that are still working?

Both cameras are down. One camera went down and the other went down after I selected “reconnect” in the Wyze-Bridge UI.

I agree with the connectivity issue, but it would seem to be a change on the Wyze side – I haven’t touched camera connectivity firewall rules or anything of that nature.

Could also be ISP or router related, sometimes they push out a new ruleset to their malware protection that starts having false positives on something, or a routing issue in their network.

Maybe try some tests to https://auth-prod.api.wyze.com/api/user/login or just auth-prod.api.wyze.com and see if it is reachable from within your docker. You should probably get a 405 response if you just try to browse to the URL. Though I suppose it could appear to be reachable but when the actual code/JSON gets sent through something triggers and blocks it, that would be a malware protection type issue.

If you’re using a router with that sort of filtering in it, maybe try disabling it temporarily.

I can reach both of those endpoints from my machine on the same network.

Edit: hit → reach

Not sure what you mean by “hit”. Pinging them or something more involved?

You would also want to test from the actual device, another device isn’t really a good test. Maybe install a docker with some basic network tools.

I curl’d them and got responses.

Right now I’m trying to simply login via the API with my credentials. It’s rejecting every attempt. I changed my password and API key/ID. Not getting through.

My script for attempting to do so is:

[[Edit: working script below]]

If the password is getting rejected then obviously that’s the issue then. I’m assuming you’ve been using this page for info https://support.wyze.com/hc/en-us/articles/16129834216731-Creating-an-API-Key

I’m not good enough with code to compare yours to theirs, theirs seems simpler with just nesting the MD5 3 times but no idea if that’s the same or not.

Maybe try their code exactly (with your credentials)?

Excellent, finally managed to get in. Didn’t like my strings. An updated script to check Wyze API login for anyone else stumbling on this conversation is as follows:

import hashlib, os, uuid, requests

email = os.environ["WYZE_EMAIL"]
password = os.environ["WYZE_PASSWORD"]
keyid = os.environ["API_ID"]
apikey = os.environ["API_KEY"]

def wyze_login(email, password, api_key, key_id):
    # Triple MD5 the password
    hashed = password
    for _ in range(3):
        hashed = hashlib.md5(hashed.encode("ascii")).hexdigest()

    phone_id = str(uuid.uuid4())

    resp = requests.post(
        "https://auth-prod.api.wyze.com/api/user/login",
        json={"email": email, "password": hashed},
        headers={
            "apikey": api_key,
            "keyid": key_id,
            "user-agent": "docker-wyze-bridge",
        },
    )

    # Parse the response body BEFORE raise_for_status so we can see
    # the actual error message from Wyze on 4xx responses.
    resp_json = resp.json()
    print(f"Status: {resp.status_code}")
    print(f"Response: {resp_json}")

    resp_code = str(resp_json.get("code", resp_json.get("errorCode", 0)))
    if resp_code not in {"1", "0"}:
        msg = resp_json.get("msg", resp_json.get("description", resp_code))
        raise Exception(f"Wyze API error: code={resp_code} msg={msg}")

    data = resp_json.get("data", resp_json)
    data["phone_id"] = phone_id
    return data  # contains access_token, refresh_token, user_id

if __name__ == "__main__":
    print(wyze_login(email, password, apikey, keyid))
1 Like

Unfortunately, this only confirms that I can access the Wyze API properly from my network, and from the device which I’ve been using to access the cameras (from within the docker-wyze-bridge container itself).

Well you’ve at least confirmed the API is up and running and accepting your login.

Can you install a docker where you can run that same test from within docker? Off the top of my head I can’t remember the name of the various web tools for linux but there are several and I’m sure there is a docker version of many of them.

If that works, then the challenge becomes determining if it is the incoming stream that is having the issue, or maybe if wyze bridge is having some sort of issue with some update wyze may have made.

Does wyze bridge have logging you can enable? I haven’t used it.

Tagging @carverofchoice as he’s the guru on this, I believe @seapup is probably pretty familiar too.

Also worth noting that they mention a rate limit on the API, maybe all the testing has just locked you out for a while, but I would think your test above wouldn’t even get a response in that case, but I don’t know.

I tested it from the exact wyze-bridge container, it’s working. I also do have logging, here are my logs with the issue(s):

2026-04-08T03:44:07.794754000Z
2026-04-08T03:44:07.795246000Z 🚀 DOCKER-WYZE-BRIDGE v3.12.3 X86_64
2026-04-08T03:44:07.795320000Z
2026-04-08T03:44:07.795394000Z [WyzeBridge] [MTX] Setting up default RECORD_PATTERN='/media/wyze/recordings/{cam_name}/%Y/%m/%d/%Y-%m-%d-%H-%M-%S'
2026-04-08T03:44:07.795467000Z [WyzeBridge] [MTX] The computed record_path: '/media/wyze/recordings/{cam_name}/%Y/%m/%d/%Y-%m-%d-%H-%M-%S' IS VALID
2026-04-08T03:44:07.894068000Z [WyzeBridge] 🔍 Could not find local cache for 'auth'
2026-04-08T03:44:07.894288000Z [WyzeBridge] ☁️ Fetching 'auth' from the Wyze API...
2026-04-08T03:44:07.897361000Z  * Serving Flask app 'frontend'
2026-04-08T03:44:07.897498000Z  * Debug mode: off
2026-04-08T03:44:07.904135000Z  * Running on all addresses (0.0.0.0)
2026-04-08T03:44:07.904184000Z  * Running on http://127.0.0.1:5000
2026-04-08T03:44:07.904227000Z  * Running on http://<REDACTED_IP>:5000
2026-04-08T03:44:07.904266000Z [WyzeBridge] [33mPress CTRL+C to quit[0m
2026-04-08T03:44:08.133237000Z [WyzeBridge] [API] [WyzeAPIError] code='1000' msg='Invalid credentials, please check username, password, keyid or apikey' method=POST path=/api/user/login
2026-04-08T03:44:08.133391000Z [WyzeBridge] [API] Clearing credentials. Please try again.
2026-04-08T03:44:08.133444000Z [WyzeBridge] [API] Cool down for 20s before trying again.
2026-04-08T03:44:28.640333000Z [WyzeBridge] 💾 Saving 'auth' to local cache...
2026-04-08T03:44:28.641224000Z [WyzeBridge] 🔍 Could not find local cache for 'user'
2026-04-08T03:44:28.641281000Z [WyzeBridge] ☁️ Fetching 'user' from the Wyze API...
2026-04-08T03:44:28.802087000Z [WyzeBridge] 💾 Saving 'user' to local cache...
2026-04-08T03:44:28.802236000Z [WyzeBridge] [AUTH] WB_AUTH=False
2026-04-08T03:44:28.861415000Z [WyzeBridge] 🔍 Could not find local cache for 'cameras'
2026-04-08T03:44:28.861565000Z [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2026-04-08T03:44:29.047546000Z [WyzeBridge] [API] Fetched [2] cameras
2026-04-08T03:44:29.047743000Z [WyzeBridge] 💾 Saving 'cameras' to local cache...
2026-04-08T03:44:29.047875000Z [WyzeBridge] [+] Adding LivingRoom [HL_CAM4] at livingroom
2026-04-08T03:44:29.083788000Z [WyzeBridge] [+] Adding Office [HL_CAM4] at office
2026-04-08T03:44:29.110772000Z [WyzeBridge] [MTX] starting MediaMTX 1.12.3
2026-04-08T03:44:29.111211000Z [WyzeBridge] 🎬 2 streams enabled
2026-04-08T03:44:29.118459000Z 2026/04/08 03:44:29 INF MediaMTX v1.12.3
2026-04-08T03:44:29.118605000Z 2026/04/08 03:44:29 INF configuration loaded from /app/mediamtx.yml
2026-04-08T03:44:29.118757000Z 2026/04/08 03:44:29 INF [path livingroom] runOnInit command started
2026-04-08T03:44:29.118856000Z 2026/04/08 03:44:29 INF [path office] runOnInit command started
2026-04-08T03:44:29.118915000Z 2026/04/08 03:44:29 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2026-04-08T03:44:29.118958000Z 2026/04/08 03:44:29 INF [RTMP] listener opened on :1935
2026-04-08T03:44:29.119003000Z 2026/04/08 03:44:29 INF [HLS] listener opened on :8888
2026-04-08T03:44:29.119761000Z 2026/04/08 03:44:29 INF [WebRTC] listener opened on :8889 (HTTP), :8189 (ICE/UDP)
2026-04-08T03:44:29.119941000Z 2026/04/08 03:44:29 INF [SRT] listener opened on :8890 (UDP)
2026-04-08T03:44:29.126643000Z [WyzeBridge] 📥 Received event: Init for livingroom
2026-04-08T03:44:29.126769000Z [WyzeBridge] 🪄 MediaMTX Initializing WyzeCam V4 - LivingRoom on <REDACTED_CAM_IP_1>
2026-04-08T03:44:29.126831000Z [WyzeBridge] 📥 Received event: Init for office
2026-04-08T03:44:29.126881000Z [WyzeBridge] 🪄 MediaMTX Initializing WyzeCam V4 - Office on <REDACTED_CAM_IP_2>

--- First connection attempt ---

2026-04-08T03:44:29.410174000Z 2026/04/08 03:44:29 INF [path office] runOnDemand command started
2026-04-08T03:44:29.411572000Z [WyzeBridge] 📥 Received event: start for office
2026-04-08T03:44:29.411693000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - Office on <REDACTED_CAM_IP_2>
2026-04-08T03:44:29.981614000Z 2026/04/08 03:44:29 INF [path livingroom] runOnDemand command started
2026-04-08T03:44:29.983205000Z [WyzeBridge] 📥 Received event: start for livingroom
2026-04-08T03:44:29.983386000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - LivingRoom on <REDACTED_CAM_IP_1>

2026-04-08T03:44:48.197331000Z [WyzeBridge] ❗ [livingroom] Snapshot timed out
2026-04-08T03:44:48.200475000Z [WyzeBridge] ❗ [office] Snapshot timed out
2026-04-08T03:44:48.341979000Z [WyzeBridge] [API] Error pulling thumbnail: [HTTPError] 401 Client Error:  for url: https://prod-sight-safe-auth.wyze.com/resource/<REDACTED_DEVICE_ID>/...?st=<REDACTED>&kid=<REDACTED>&nonce=<REDACTED>
2026-04-08T03:44:48.354356000Z [WyzeBridge] [API] Error pulling thumbnail: [HTTPError] 401 Client Error:  for url: https://prod-sight-safe-auth.wyze.com/resource/<REDACTED_DEVICE_ID>/...?st=<REDACTED>&kid=<REDACTED>&nonce=<REDACTED>

2026-04-08T03:44:50.004400000Z [WyzeBridge] ⏰ Timed out connecting to LivingRoom.
2026-04-08T03:44:55.009294000Z [WyzeBridge] ⏰ Timed out connecting to Office.

--- First retry cycle (representative of all subsequent cycles) ---

2026-04-08T03:44:59.411087000Z 2026/04/08 03:44:59 INF [path office] runOnDemand command stopped: timed out
2026-04-08T03:44:59.411726000Z 2026/04/08 03:44:59 INF [path office] runOnUnDemand command launched
2026-04-08T03:44:59.411857000Z 2026/04/08 03:44:59 INF [RTSP] [conn ...] closed: source of path 'office' has timed out
2026-04-08T03:44:59.412005000Z [in#0 @ 0x77bc669c9180] Error opening input: Server returned 400 Bad Request
2026-04-08T03:44:59.412051000Z Error opening input file rtsp://0.0.0.0:8554/office.
2026-04-08T03:44:59.412095000Z Error opening input files: Server returned 400 Bad Request
2026-04-08T03:44:59.594698000Z [WyzeBridge] [API] Error pulling thumbnail: [HTTPError] 401 Client Error:  for url: https://prod-sight-safe-auth.wyze.com/resource/<REDACTED_DEVICE_ID>/...?st=<REDACTED>&kid=<REDACTED>&nonce=<REDACTED>

2026-04-08T03:44:59.982963000Z 2026/04/08 03:44:59 INF [path livingroom] runOnDemand command stopped: timed out
2026-04-08T03:44:59.983219000Z 2026/04/08 03:44:59 INF [path livingroom] runOnUnDemand command launched
2026-04-08T03:44:59.983342000Z 2026/04/08 03:44:59 INF [RTSP] [conn ...] closed: source of path 'livingroom' has timed out
2026-04-08T03:44:59.983699000Z [in#0 @ 0x7b6cfe420180] Error opening input: Server returned 400 Bad Request
2026-04-08T03:44:59.983771000Z Error opening input file rtsp://0.0.0.0:8554/livingroom.
2026-04-08T03:44:59.983842000Z Error opening input files: Server returned 400 Bad Request
2026-04-08T03:45:00.153293000Z [WyzeBridge] [API] Error pulling thumbnail: [HTTPError] 401 Client Error:  for url: https://prod-sight-safe-auth.wyze.com/resource/<REDACTED_DEVICE_ID>/...?st=<REDACTED>&kid=<REDACTED>&nonce=<REDACTED>

2026-04-08T03:45:03.673611000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - LivingRoom on <REDACTED_CAM_IP_1>
2026-04-08T03:45:03.678926000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - Office on <REDACTED_CAM_IP_2>

2026-04-08T03:45:23.708129000Z [WyzeBridge] ⏰ Timed out connecting to LivingRoom.
2026-04-08T03:45:28.713097000Z [WyzeBridge] ⏰ Timed out connecting to Office.
2026-04-08T03:45:29.001512000Z [office] [STREAM] Stopping 2 streams
2026-04-08T03:45:29.001842000Z [livingroom] [STREAM] Stopping 2 streams
2026-04-08T03:45:29.002063000Z [office] 👋 goodbye!
2026-04-08T03:45:29.513526000Z [livingroom] 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process

--- TUTK errors begin appearing ---

2026-04-08T03:46:03.509812000Z [office] 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process
2026-04-08T03:46:34.514683000Z [livingroom] 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process
2026-04-08T03:46:34.517864000Z [office] 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process

--- Camera API re-fetch during retries (fetched 3x in rapid succession) ---

2026-04-08T03:46:34.342315000Z [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2026-04-08T03:46:34.342612000Z [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2026-04-08T03:46:34.520576000Z [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2026-04-08T03:46:34.535866000Z [WyzeBridge] [API] Fetched [2] cameras
2026-04-08T03:46:34.536034000Z [WyzeBridge] 💾 Saving 'cameras' to local cache...
2026-04-08T03:46:34.542054000Z [WyzeBridge] [API] Fetched [2] cameras
2026-04-08T03:46:34.542222000Z [WyzeBridge] 💾 Saving 'cameras' to local cache...
2026-04-08T03:46:34.717553000Z [WyzeBridge] [API] Fetched [2] cameras
2026-04-08T03:46:34.717647000Z [WyzeBridge] 💾 Saving 'cameras' to local cache...

--- Another camera re-fetch ---

2026-04-08T03:48:38.510768000Z [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2026-04-08T03:48:38.698191000Z [WyzeBridge] 💾 Saving 'cameras' to local cache...

=== REPEATING PATTERN (from 03:44:59 to 03:50:39, ~6.5 minutes) ===
The following cycle repeated continuously for both cameras (office and livingroom):
  1. 🎉 Connecting to WyzeCam V4 - <camera> on <ip>
  2. ⏰ Timed out connecting / ❗ Snapshot timed out
  3. RTSP path runOnDemand command stopped: timed out
  4. RTSP connections closed: source of path has timed out
  5. Error opening input file rtsp://0.0.0.0:8554/<camera> - Server returned 400 Bad Request
  6. [API] Error pulling thumbnail: [HTTPError] 401 Client Error
  7. 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process
  8. [STREAM] Stopping 2 streams
  9. Retry from step 1
=== END REPEATING PATTERN ===

--- IOTC_ER_TIMEOUT errors appear later in the log ---

2026-04-08T03:49:44.092527000Z [livingroom] 𓁈‼️ [TUTK] [-13] IOTC_ER_TIMEOUT
2026-04-08T03:49:44.515300000Z [livingroom] 𓁈‼️ [TUTK] [-13] IOTC_ER_TIMEOUT
2026-04-08T03:50:09.512515000Z [office] 𓁈‼️ [TUTK] [-13] IOTC_ER_TIMEOUT

--- Final entries before log ends ---

2026-04-08T03:50:14.004038000Z [livingroom] [STREAM] Stopping 2 streams
2026-04-08T03:50:14.004486000Z [office] [STREAM] Stopping 2 streams
2026-04-08T03:50:14.506804000Z [office] 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process
2026-04-08T03:50:14.530919000Z [livingroom] 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process
2026-04-08T03:50:15.162271000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - LivingRoom on <REDACTED_CAM_IP_1>
2026-04-08T03:50:15.166267000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - Office on <REDACTED_CAM_IP_2>
2026-04-08T03:50:19.003704000Z [office] [STREAM] Stopping 2 streams
2026-04-08T03:50:19.511970000Z [office] 𓁈‼️ [TUTK] Exception: [AssertionError] can only test a child process
2026-04-08T03:50:24.294323000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - LivingRoom on <REDACTED_CAM_IP_1>
2026-04-08T03:50:24.296509000Z [WyzeBridge] 🎉 Connecting to WyzeCam V4 - Office on <REDACTED_CAM_IP_2>
2026-04-08T03:50:30.167498000Z [WyzeBridge] ❗ [livingroom] Snapshot timed out
2026-04-08T03:50:30.170743000Z [WyzeBridge] ❗ [office] Snapshot timed out
2026-04-08T03:50:30.318565000Z [WyzeBridge] [API] Error pulling thumbnail: [HTTPError] 401 Client Error:  for url: https://prod-sight-safe-auth.wyze.com/resource/<REDACTED_DEVICE_ID>/...?st=<REDACTED>&kid=<REDACTED>&nonce=<REDACTED>
2026-04-08T03:50:30.318896000Z [WyzeBridge] [API] Error pulling thumbnail: [HTTPError] 401 Client Error:  for url: https://prod-sight-safe-auth.wyze.com/resource/<REDACTED_DEVICE_ID>/...?st=<REDACTED>&kid=<REDACTED>&nonce=<REDACTED>

Looks like it finds the cameras fine but fails pulling the video stream and even the thumbnail. Do you see anything in your firewall logs?

Edit: Please note this is not a fix for the problem, it is a temporary workaround.

Alright, so after an extensive search and rabbit hole, I have a bandage (not a fix) for getting the stream back up and running. So, Wyze must have made a server-side change that broke TUTK P2P for HL_CAM4 models. The cameras’ TUTK services simply don’t respond. I tried using nickdnj’s v4fix fork of Docker Wyze Bridge, but it did not work.

That being said, I found a workaround, which is to bypass TUTK entirely and pull streams through Wyze’s AWS Kinesis Video Streams (KVS) WebRTC, which still works. Wyze-Bridge even exposes this already at /signaling/<camera_name>/?kvs. So you can add go2rtc alongside your DWB container with the configuration below. Then you can update the configuration downstream (HASS, Frigate, whatever) to use this go2rtc instance. Note the streams are all 640x360 @10FPS and that this cannot be changed.

go2rtc config:

streams:
  <camera_name>: webrtc:http://<DWB_IP>:5000/signaling/<camera_name>?kvs#format=wyze
  ...

rtsp:
  listen: ":8561"

webrtc:
  listen: ":8555"

api:
  listen: ":1984"

Updated Docker Compose:

services:
    wyze-bridge:
        container_name: wyze-bridge
        restart: unless-stopped
        image: mrlt8/wyze-bridge:latest
        network_mode: host
        ports:
            - 1935:1935
            - 8554:8554
            - 8888:8888
            - 8889:8889
            - 8189:8189/udp
            - 5000:5000
        environment:
            - WYZE_EMAIL=
            - WYZE_PASSWORD=
            - API_ID=
            - API_KEY=
            - WB_IP=
            - WB_AUTH=
            - WB_USERNAME=
            - WB_PASSWORD=

    go2rtc:
        container_name: go2rtc
        restart: unless-stopped
        image: ghcr.io/alexxit/go2rtc
        network_mode: host
        volumes:
            - /path/to/go2rtc.yaml:/config/go2rtc.yaml:ro
        depends_on:
            - wyze-bridge
1 Like

You’d think if the TUTK was broken it would be impacting a lot of other stuff. Maybe just via the API, in which case hopefully they’ll fix it soon so you aren’t stuck with 640x360. I’ll tag @carverofchoice again as he’s probably interested to see this when he’s back online.

I wonder what the webRTC at that resolution is usually used for. Maybe alexa/google displays or something.

1 Like

I also think that, and I wonder why I haven’t really seen anyone else complaining anywhere on Reddit, Github, or here. I definitely hope that there is a better fix that allows me to access the HD stream again soon.

As for why, it might be the previews that show in the app before you click on a stream.

Thank you very much for your assistance by the way, I really appreciate it.

1 Like

Pretty sure you figured it out yourself, I was just along for the ride. I haven’t had a need to use the API or any of the 3rd party software (I do have them connected to my fire TV stick just for the heck of it but that’s all natively supported).

I see carver is online now so he’s probably interrogating it himself right now…..

Looking forward to RTSP being released for v4 and Panv4 hopefully this summer. That will make things easier on a lot of people that want to use their own in-home solution. Basically 0 reliance on wyze servers, API, etc. Just streams direct from the cam with a local username and password you create.

I’m suspecting that they’re giving RTSP back due to all the additional security they’ve been adding. We may see the API go away once all the cams have RTSP.

2 Likes

I can confirm that I am also seeing Wyze changed their TUTK protocol in some cameras that used to use it. I noticed this on my network logs weeks ago. I have been waiting for someone else to bring it up (thank you @jmesches for posting about this, and @dave27 for tagging me). I would like Wyze to comment on this publicly, but so far they have not done so. I believe this change is partially responsible for multiple 3rd party connectivity breakages and some seeming connectivity issues. I’d like them to elaborate on the change.

For what it’s worth, docker Wyze bridge was entirely dependent on TUTK and never worked with Gwell based cameras that used the lotvid SDK instead of TUTK for authentication, so there was a forked Cryze project for those other cameras… but it appears that recently some cameras that used to used to use TUTK no longer do, and this is why they stopped functioning in docker Wyze bridge which only supports TUTK. I knew it was only a matter of time before someone else noticed, figured out the issue and publicly posted about this. Well done. Now if we can just get Wyze to post something publicly about this issue. :crossed_fingers:

3 Likes