Snapshot URL Unreachable by Server When Using WYZE Bridge

What is the problem?

I recently followed the instructions to use my WYZE camera with octoprint, and while the video stream works sucessfully, I cannot get the snapshot URL to work no matter which URL I provide, I have tried numerous combinations.

http://localhost:5001/snapshot/3d-printer.jpg
http://192.168.X.X/snapshot/3d-printer.jpg

When I access http://localhost:5001/snapshot/3d-printer.jpg from my browser directily, it works, however when I plug into octoprint and test it says I cannot retrieve the snapshot URL.

Any thought's on why this isn't working?

ALSO, I recently struggled through a huge re-install of OctoPi all because updating it through the plugins manager broke the server, so I really wouldn't like to have to go through that as a proposed solution. Everything is a clean install and works otherwise aside from the snapshot ability.

Any advice would be appreciated thanks :slight_smile:

What did you already try to solve it?

I have tried using different port numbers through all the availble ports in the wyze-bridge.

I read that sometimes your DNS cannot resolve hostname, so you have to use IP directly, which I did with no avail.

Have you tried running in safe mode?

No

Did running in safe mode solve the problem?

N/A

Systeminfo Bundle

octoprint-systeminfo-20231129095701.zip (74.6 KB)

Additional information about your setup

OctoPrint Version 1.9.3, OctoPi Version 1.0.0, Ender 3V2, Jyers Custom Firmware

Just to geht this right - the localhost url works when the cam is plugged into your pc via USB?

The cam is a standalone Wyze Cam V3 and is connected to my network over WIFI, the same WIFI network that my OctoPi server is connected to.

This is the guide I followed:

If you've followed that guide then it sounds like your laptop is working as the bridge between the camera. So your laptop is taking in the stream and re-streaming it so OctoPrint can access. That makes sense as to why localhost:5001 works. Localhost refers to 'this device', so it definitely won't work on your Pi as it will be referring to the Pi itself which is not where your camera is streaming from.

You need to use the IP address of the camera. In your post you've missed out including the port when you said you tried it, it should still have it like http://192.168.X.X:5001/snapshot/3d-printer.jpg.

I didn't mention that IP address specifically in my original post, however I did already try that one with no luck.

I tried performing a ping or curl command on all of these as a quick test when SSH into my raspberry pi, however none of them can be reached by the pi.

Actually I stand corrected, the IP address of my WYZE camera is reachable by the pi, as I just executed a ping command and did successfully receive packets back.

pi@octopi:~ $ ping 192.168.xx.xxx
PING 192.168.xx.xxx (192.168.xx.xxx) 56(84) bytes of data.
64 bytes from 192.168.xx.xxx: icmp_seq=1 ttl=64 time=8.30 ms
64 bytes from 192.168.xx.xxx: icmp_seq=2 ttl=64 time=8.28 ms
64 bytes from 192.168.xx.xxx: icmp_seq=3 ttl=64 time=9.30 ms
64 bytes from 192.168.xx.xxx: icmp_seq=4 ttl=64 time=7.67 ms
64 bytes from 192.168.xx.xxx: icmp_seq=5 ttl=64 time=9.17 ms
64 bytes from 192.168.xx.xxx: icmp_seq=6 ttl=64 time=13.3 ms
64 bytes from 192.168.xx.xxx: icmp_seq=7 ttl=64 time=9.06 ms
64 bytes from 192.168.xx.xxx: icmp_seq=8 ttl=64 time=8.94 ms
64 bytes from 192.168.xx.xxx: icmp_seq=9 ttl=64 time=9.22 ms
64 bytes from 192.168.xx.xxx: icmp_seq=10 ttl=64 time=7.73 ms
64 bytes from 192.168.xx.xxx: icmp_seq=11 ttl=64 time=8.05 ms
64 bytes from 192.168.xx.xxx: icmp_seq=12 ttl=64 time=8.94 ms
64 bytes from 192.168.xx.xxx: icmp_seq=13 ttl=64 time=8.33 ms
64 bytes from 192.168.xx.xxx: icmp_seq=14 ttl=64 time=4.91 ms

64 bytes from 192.168.xx.xxx: icmp_seq=15 ttl=64 time=8.68 ms
64 bytes from 192.168.xx.xxx: icmp_seq=16 ttl=64 time=10.6 ms
64 bytes from 192.168.xx.xxx: icmp_seq=17 ttl=64 time=8.97 ms
64 bytes from 192.168.xx.xxx: icmp_seq=18 ttl=64 time=7.91 ms
64 bytes from 192.168.xx.xxx: icmp_seq=19 ttl=64 time=8.33 ms
64 bytes from 192.168.xx.xxx: icmp_seq=20 ttl=64 time=8.27 ms
64 bytes from 192.168.xx.xxx: icmp_seq=21 ttl=64 time=8.37 ms
64 bytes from 192.168.xx.xxx: icmp_seq=22 ttl=64 time=8.35 ms
q64 bytes from 192.168.xx.xxx: icmp_seq=23 ttl=64 time=8.12 ms
64 bytes from 192.168.xx.xxx: icmp_seq=24 ttl=64 time=8.12 ms
^C
--- 192.168.xx.xxx ping statistics ---
24 packets transmitted, 24 received, 0% packet loss, time 23034ms
rtt min/avg/max/mdev = 4.905/8.619/13.281/1.365 ms
pi@octopi:~ $ curl http://192.168.xx.xxx
curl: (7) Failed to connect to 192.168.xx.xxx port 80: Connection refused
pi@octopi:~ $ curl http://192.168.xx.xxx:5001
curl: (7) Failed to connect to 192.168.xx.xxx port 5001: Connection refused
pi@octopi:~ $ curl http://192.168.xx.xxx:8485
curl: (7) Failed to connect to 192.168.xx.xxx port 8485: Connection refused
pi@octopi:~ $ curl http://192.168.xx.xxx:5000
curl: (7) Failed to connect to 192.168.xx.xxx port 5000: Connection refused
pi@octopi:~ $ curl http://192.168.xx.xxx:8888
curl: (7) Failed to connect to 192.168.xx.xxx port 8888: Connection refused
pi@octopi:~ $ curl https://192.168.xx.xxx:8888
curl: (7) Failed to connect to 192.168.xx.xxx port 8888: Connection refused
pi@octopi:~ $ sudo curl 192.168.xx.xxx:8888
[sudo] password for pi:
curl: (7) Failed to connect to 192.168.xx.xxx port 8888: Connection refused
pi@octopi:~ $

Sorry, I've remembered completely how it works now. Since you are using your laptop to convert the stream, you don't want to be accessing the wyze cam in OctoPrint but you want the IP or your laptop doing the conversion. So use the IP of your laptop in the format I set out above.

While this does make sense, unfortunately this doesn't work either :confused:.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.