docker-wyze-bridge icon indicating copy to clipboard operation
docker-wyze-bridge copied to clipboard

Wyze Cam OG not working

Open mr-bobdobalina opened this issue 2 years ago • 145 comments

Not seeing the Wyze Cam OG showing up on the bridge. Running docker compose up (without the -d) I don't even see it listed in the initial "Connecting to..." section.

I also did FRESH_DATA=true on my yml.

mr-bobdobalina avatar Jan 18 '23 21:01 mr-bobdobalina

I just got my new Wyze Cam OG going as well and it's not showing up on the bridge either. I am assuming it is not yet supported?

ScottySTL avatar Jan 18 '23 23:01 ScottySTL

Same issue here.

talormanda avatar Jan 19 '23 20:01 talormanda

Same issue here. I have the new Pan v3 also, which worked right away. Wyze Cam OG is not working.

jmluxem avatar Jan 20 '23 04:01 jmluxem

Thanks for the data points! The OG seems to be using a different P2P protocol than all the other cameras (similar to the Doorbell Pro). Currently looking into alternate methods to access the stream.

mrlt8 avatar Jan 20 '23 05:01 mrlt8

Do you think it will be possible to find a way to access the stream via docker at some point in the future?

ScottySTL avatar Jan 20 '23 05:01 ScottySTL

Same here, hopefully something is worked out within the 30 day return window otherwise they are going back :(

adricrist87 avatar Jan 20 '23 23:01 adricrist87

Unfortunately, this could be Wyze purposely finding ways to now allow this kind of access to streams (So they can keep pushing their Cam Plus subscriptions)

ScottySTL avatar Jan 20 '23 23:01 ScottySTL

Unfortunately, this could be Wyze purposely finding ways to now allow this kind of access to streams (So they can keep pushing their Cam Plus subscriptions)

Sadly I tend to agree it may well be wyze intentionally changing for the new hardware to force the subscription. It started to become clear when the lite version was only offered for v2 and v3 cams and the new hardware omitted the lite option. I really don’t need all the extras. For next house I’m considering going with something like amcrest poe cams if I can get some cables run before they drywall it. Or I’ll breakdown and get a couple HomeKit compatible cams since we really won’t need much in new location.

cheme75 avatar Jan 20 '23 23:01 cheme75

I believe the protocol change has more to do with the fact that the OG/3X and the Doorbell Pro seem to be designed and/or produced by "gwell", whereas the other cameras were mostly Hualai cameras.

mrlt8 avatar Jan 21 '23 01:01 mrlt8

I believe the protocol change has more to do with the fact that the OG/3X and the Doorbell Pro seem to be designed and/or produced by "gwell", whereas the other cameras were mostly Hualai cameras.

Hey thanks for getting back to us. Do you anticipate we will eventually be able to bring these OG into the bridge container? Is this work in flight or out of scope at the moment? That would help me decide wether to return these or hold on to them.

Thank you.

adricrist87 avatar Jan 21 '23 02:01 adricrist87

Potentially, but it may be more cloud dependent than our current solution (which could also mean it gets blocked by wyze).

Can you test: http://localhost:5000/webrtc/ogcam-name

mrlt8 avatar Jan 21 '23 03:01 mrlt8

Tried this link http://192.168.2.101:5000/webrtc/Driveway2 and got {"cam":"Driveway2","result":"cam not found"} but if I try a V3 Cam I can pull it up fine.

adricrist87 avatar Jan 21 '23 03:01 adricrist87

Tried this link http://192.168.2.101:5000/webrtc/Driveway2 and got {"cam":"Driveway2","result":"cam not found"} but if I try a Cam V2 or V3 I can pull them up fine.

same

talormanda avatar Jan 21 '23 03:01 talormanda

Here is my docker log, It only picks up the 3 V3 Cams:

2023/01/21 03:56:01 [WyzeBridge] 🚀 STARTING DOCKER-WYZE-BRIDGE v1.11.3

  • Serving Flask app 'frontend'
  • Debug mode: off 2023/01/21 03:56:01 [WyzeBridge] 📚 Using 'user' from local cache... 2023/01/21 03:56:01 [WyzeBridge] ♻️ Refreshing camera data for thumbnails 2023/01/21 03:56:01 [WyzeBridge] 📚 Using 'auth' from local cache... 2023/01/21 03:56:01 [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API... 2023/01/21 03:56:01 [WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
  • Running on all addresses (0.0.0.0)
  • Running on http://127.0.0.1:5000
  • Running on http://172.17.0.4:5000 2023/01/21 03:56:01 [WyzeBridge] Press CTRL+C to quit 2023/01/21 03:56:06 [WyzeBridge] 💾 Saving 'cameras' to local cache... 2023/01/21 03:56:06 [WyzeBridge] 🎬 STARTING ALL 3 CAMERAS 2023/01/21 03:56:12 [WyzeBridge] ☁️ Pulling "Front Door Cam" thumbnail 2023/01/21 03:56:13 [WyzeBridge] 192.168.2.215 - - [21/Jan/2023 03:56:13] "GET /api/sse_status HTTP/1.1" 200 - 2023/01/21 03:56:17 [WyzeBridge] ☁️ Pulling "Driveway Cam" thumbnail 2023/01/21 03:56:23 [WyzeBridge] ☁️ Pulling "Back Yard Cam" thumbnail 2023/01/21 03:56:23 [WyzeBridge] SET WB_IP to allow WEBRTC connections. 2023/01/21 03:56:23 [WyzeBridge] Starting rtsp-simple-server v0.21.1 2023/01/21 03:56:23 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - front-door-cam on 192.168.101.75 (1/3) 2023/01/21 03:56:23 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - driveway-cam on 192.168.101.217 (1/3) 2023/01/21 03:56:23 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - back-yard-cam on 192.168.101.234 (1/3) 2023/01/21 03:56:30 [Back Yard Cam] 📡 Getting 120kb/s HD stream (H264/20fps) via LAN mode (WiFi: 73%) FW: 4.36.9.139 🔒 (DTLS) (2/3) 2023/01/21 03:56:30 [Back Yard Cam] 🔊 Audio Enabled - ALAW/16,000Hz 2023/01/21 03:56:30 [Driveway Cam] 📡 Getting 120kb/s HD stream (H264/20fps) via LAN mode (WiFi: 36%) FW: 4.36.9.139 🔒 (DTLS) (2/3) 2023/01/21 03:56:30 [Driveway Cam] 🔊 Audio Enabled - ALAW/16,000Hz 2023/01/21 03:56:30 [Back Yard Cam] WARNING: Skipping smaller frame at start of stream (frame_size=1) 2023/01/21 03:56:30 [Driveway Cam] WARNING: Skipping smaller frame at start of stream (frame_size=1) 2023/01/21 03:56:30 [Front Door Cam] 📡 Getting 120kb/s HD stream (H264/20fps) via LAN mode (WiFi: 36%) FW: 4.36.9.139 🔒 (DTLS) (2/3) 2023/01/21 03:56:30 [Front Door Cam] 🔊 Audio Enabled - ALAW/16,000Hz 2023/01/21 03:56:30 [Front Door Cam] WARNING: Waiting for keyframe 2023/01/21 03:56:32 [RTSP][FRONT-DOOR-CAM] ✅ '/front-door-cam' stream is UP! (3/3) 2023/01/21 03:56:32 [RTSP][DRIVEWAY-CAM] ✅ '/driveway-cam' stream is UP! (3/3) 2023/01/21 03:56:33 [RTSP][BACK-YARD-CAM] ✅ '/back-yard-cam' stream is UP! (3/3)

adricrist87 avatar Jan 21 '23 03:01 adricrist87

I pushed a new commit to the dev branch. Could you try using that to see if it recognizes the OG in the bridge and lets you access the webrtc endpoint?

mrlt8 avatar Jan 21 '23 05:01 mrlt8

Am I able to test the dev branch using the Home Assistant plugin? If so, I could test right now

jmluxem avatar Jan 21 '23 05:01 jmluxem

You should be able to access the DEV branch using this repo https://github.com/mrlt8/edge-repo

mrlt8 avatar Jan 21 '23 05:01 mrlt8

Thanks, got the edge-repo setup in Home Assistant. Dev branch is still only showing 6 of my 7 cameras - OG is not listed.

jmluxem avatar Jan 21 '23 06:01 jmluxem

and not seeing the OG listed anywhere in logs. Doesn't appear to be detecting it

jmluxem avatar Jan 21 '23 06:01 jmluxem

I tried the same with dev branch and not seeing my new OG camera listed

ScottySTL avatar Jan 21 '23 15:01 ScottySTL

Is there a Discord or other chat room we can use to coordinate testing?

adricrist87 avatar Jan 21 '23 17:01 adricrist87

Still not detected after these latest commits.

{"cam":"og-cam","result":"cam not found"}

2023/01/22 22:49:37 [WyzeBridge] ♻️ FORCED REFRESH - Ignoring local 'user' data
 * Serving Flask app 'frontend'
 * Debug mode: off
2023/01/22 22:49:37 [WyzeBridge] ♻️ FORCED REFRESH - Ignoring local 'auth' data
2023/01/22 22:49:37 [WyzeBridge] ☁️ Fetching 'auth' from the Wyze API...
2023/01/22 22:49:37 [WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://192.168.1.147:5000
2023/01/22 22:49:37 [WyzeBridge] Press CTRL+C to quit
2023/01/22 22:49:38 [WyzeBridge] 💾 Saving 'auth' to local cache...
2023/01/22 22:49:38 [WyzeBridge] ☁️ Fetching 'user' from the Wyze API...
2023/01/22 22:49:38 [WyzeBridge] 💾 Saving 'user' to local cache...
2023/01/22 22:49:38 [WyzeBridge] ♻️ FORCED REFRESH - Ignoring local 'cameras' data
2023/01/22 22:49:38 [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2023/01/22 22:49:39 [WyzeBridge] 💾 Saving 'cameras' to local cache...
2023/01/22 22:49:39 [WyzeBridge] 
🎬 STARTING ALL 7 CAMERAS
2023/01/22 22:49:39 [WyzeBridge] SET WB_IP to allow WEBRTC connections.
2023/01/22 22:49:39 [WyzeBridge] Starting rtsp-simple-server v0.21.1
2023/01/22 22:49:39 [WyzeBridge] 🎉 Connecting to WyzeCam Pan V2 - living-room-cam on 192.168.1.45 (1/3)
2023/01/22 22:49:39 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - mom-driveway on 192.168.2.2 (1/3)
2023/01/22 22:49:39 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - back-yard-cam on 192.168.1.162 (1/3)
2023/01/22 22:49:39 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - mom-porch on 192.168.74.4 (1/3)
2023/01/22 22:49:39 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - mom-backyard on 192.168.74.7 (1/3)
2023/01/22 22:49:39 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - food-cam on 192.168.1.40 (1/3)
2023/01/22 22:49:39 [WyzeBridge] 🎉 Connecting to WyzeCam V3 - bedroom on 192.168.1.43 (1/3)```

camblack avatar Jan 22 '23 23:01 camblack

On 1.11.5 it seems that it's no longer able to fetch cameras

2023/01/24 16:51:46 [WyzeBridge] 🚀 STARTING DOCKER-WYZE-BRIDGE v1.11.5
2023/01/24 16:51:46 [WyzeBridge] 🔍 Could not find local cache for 'user'
 * Serving Flask app 'frontend'
 * Debug mode: off
2023/01/24 16:51:46 [WyzeBridge] 🔍 Could not find local cache for 'auth'
2023/01/24 16:51:46 [WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://192.168.1.147:5000
2023/01/24 16:51:46 [WyzeBridge] ☁️ Fetching 'auth' from the Wyze API...
2023/01/24 16:51:46 [WyzeBridge] Press CTRL+C to quit
2023/01/24 16:51:46 [WyzeBridge] 💾 Saving 'auth' to local cache...
2023/01/24 16:51:46 [WyzeBridge] ☁️ Fetching 'user' from the Wyze API...
2023/01/24 16:51:47 [WyzeBridge] 💾 Saving 'user' to local cache...
2023/01/24 16:51:47 [WyzeBridge] 🔍 Could not find local cache for 'cameras'
2023/01/24 16:51:47 [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2023/01/24 16:51:48 [WyzeBridge] 1 validation error for WyzeCamera
ip
  value is not a valid integer (type=type_error.integer)

camblack avatar Jan 24 '23 17:01 camblack

Wyze Cam OG is being detected in 1.11.6! It shows a recent snapshot but it isn't able to load the WebRTC stream - gives a 404 error for both WebRTC and HLS. All other cams working normally.

jmluxem avatar Jan 24 '23 17:01 jmluxem

So, the OG is at least showing up on the page, but here is the log entry about it 2023/01/24 21:32:40 [WyzeBridge] 🎉 Connecting to WyzeCam OG - carport on (1/3) 2023/01/24 21:32:40 [Carport ] IOTC_ER_UNLICENSE

sguy311 avatar Jan 24 '23 21:01 sguy311

Type validation should be fixed in v1.11.6.

IOTC_ER_UNLICENSE is probably because the camera isn't registered with tutk when it tries to look for it remotely. It may be using Tencent's IoTVideoSdk like the doorbell pro (#276) for NAT punching/p2p.

can someone try the :5000/webrtc/<og-cam-name> endpoint?

mrlt8 avatar Jan 25 '23 02:01 mrlt8

The WebRTC endpoint on v1.11.6 results in an Internal Server Error with this popping up in the log:

2023/01/25 02:38:24 [WyzeBridge] Exception on /webrtc/og-cam [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 72, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 386, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1042, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 358, in connect
    self.sock = conn = self._new_conn()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f2e07471270>: Failed to establish a new connection: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='wyze-mars-service.wyze.com', port=443): Max retries exceeded with url: /signaling/device/GW_GC1_D03F276F3BEF?use_trickle=true (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f2e07471270>: Failed to establish a new connection: [Errno -2] Name or service not known'))
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/app/frontend.py", line 144, in webrtc
    if (webrtc := wb.get_kvs_signal(name)).get("result") == "ok":
  File "/app/wyze_bridge.py", line 566, in get_kvs_signal
    wss = wyzecam.api.get_cam_webrtc(self.auth, cam.mac, mars)
  File "/app/wyzecam/api.py", line 231, in get_cam_webrtc
    resp = requests.get(
  File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='wyze-mars-service.wyze.com', port=443): Max retries exceeded with url: /signaling/device/GW_GC1_D03F276F3BEF?use_trickle=true (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f2e07471270>: Failed to establish a new connection: [Errno -2] Name or service not known'))
2023/01/25 02:38:24 [WyzeBridge] 192.168.1.158 - - [25/Jan/2023 02:38:24] "GET /webrtc/og-cam HTTP/1.1" 500 -
2023/01/25 02:38:25 [WyzeBridge] 🎉 Connecting to WyzeCam OG - og-cam on  (1/3)
2023/01/25 02:38:26 [OG Cam] IOTC_ER_UNLICENSE

camblack avatar Jan 25 '23 02:01 camblack

No change when trying :5000/webrtc/OG

I pulled fresh API data and the OG got a very recent snapshot, but not able to load video from it.

Multiple IOTC_ER_UNLICENSE entries in log at each connection attempt.

jmluxem avatar Jan 25 '23 02:01 jmluxem

Made some tweaks to avoid IOTC_ER_UNLICENSE and swapped back to the default api.

mrlt8 avatar Jan 25 '23 04:01 mrlt8

Dev or Latest branch?

ScottySTL avatar Jan 25 '23 04:01 ScottySTL