Unable to send snapshots nor video stream remotely


#1

What is the problem?
Octopi works fine, I can see camera stream and control printer locally. But I'm unable to see camera stream nor snapshot remotely.

What did you already try to solve it?

  1. OctoPrint Anywhere - can control printer, can't see video
  2. Polar Cloud - can't control printer, can't see video
  3. OctoSlack - can control printer, can't see video
  4. Astroprint plugin - can control printer, can't see video (camera error in both iOS app and Cloud app)
  5. Astroprint (AstroBox) - can't control printer, can't see video (afaik works only with USB cameras)
    I've tried http access and VPN, but the realized I dont have public IP, so it's not possible

Additional information about your setup
Local network is setup around 3G/4G router with no public IP.
RPi camera module (without USB)
Prusa i3 MK2S

I see common pattern - video works locally, but not remotely, no matter what plugin I use, so perhaps there is something wrong with OctoPi setup itself. Any ideas?


#2

How is this an actual problem?

"When I'm in the bank's safe deposit room I can access the bonds and stashes of money which I keep there. But when I'm in some dark alley in town I notice that I can't get to my safe deposit box. There must be a problem with the bank, right?"

You're talking about basic Internet security and Firewalls 101. You don't want other people to be able to see your home remotely from a webcam.


The webcam service mjpg_streamer isn't technically part of OctoPrint itself. So all those plugins don't assume that something else exists like your webcam setup.

All that said, you might try searching here on the forum next time. Here is a thread which appears to solve this but in a safe way.


#3

Thanks @OutsourcedGuru I've investigated the problem further:

  1. I've tested my setup on 2 other local networks and the plugins were able to send snapshots remotely
  2. I've looked into octopi.log and, every time the error was caused by timeout

OctoSlack:

octoprint.plugins.Octoslack - ERROR - Slack API message send error: ('Connection aborted.', timeout())

Octoprint Anywhere

tornado.access - WARNING - 403 POST /api/plugin/anywhere (::ffff:192.168.1.101) 39.91ms
anywhere.mjpeg_stream - ERROR - timed out

This is not a security/firewall problem, as I don't have public IP, so even if I want, there is no way to connect to my network from the outside


#4

When I read this, it makes me think of that scene in Mission Impossible where the protagonist was trying to hack a computer which was inside the NSA/CIA or something like that because it was simply not connected to other networks. That computer network "wouldn't have a public IP on its router/firewall".

If you're trying to use five different remote solutions to get to your instance of OctoPrint, this seems to run counter to your assertion that you don't have a public IP.

Can you describe what you mean when you suggest that your router doesn't have a public IP? The "cloud" in Polar Cloud implies the Internet, as does Astroprint. OctoSlack's endpoint is a slack channel... in the cloud. OctoPrint Anywhere's endpoint is getanywhere.io... in the cloud.

A 3G/4G router is essentially a cellphone with mobile data and a hotspot for wi-fi. Connect to your router and visit the page http://whatismyip.host to see your public IP address. Don't publish it here.

Can you describe where you are when you're trying to control your computer remotely? (If you're on your mobile phone and it's disconnected from your home's wi-fi and using its own cellular data, then it is remote to your local network, btw.) If you're trying to test this from a cafe-which-isn't-Starbucks then this is indeed remote.

You suggest that there's no way to connect to your network from the outside but all five of the products you've listed do just that.


It's entirely possible that your 3G/4G router device will not allow ports other than 80/443. Or perhaps it doesn't allow IPSEC or whatever. In theory, this is the cause for your troubles.


#5

All plugins that I use are cloud based, and therefore it's not necessary for them to connect to my public IP (directly to me), because OctoPrint simply sends snapshot (through a plugin) to the cloud, and on other computer on other network I'm too, connected to the same cloud - and so I can see the snapshot.
That is in theory, because in practice I can only control printer and don't see any snapshots. As a cause I spotted timeout errors in log, when plugins are tying to upload it to the cloud.

Still investigating - will let you know, but as you wrote, I'm almost certain the problem is in my router configuration.

As for http://whatismyip.host it's simply showing IP of some larger group (network) of users - confirmed that with my ISP.


#6

Remember, you're talking to someone who's been in I.T. like forever. If you successfully had a plugin push a snapshot into the cloud, by definition a public IP address was involved. Even if you jumped into a time machine and used AOL back in the '80s, eventually there's a public IP address which is used.

I myself used a MetroPCS 4G device for a period of about six months when working with one client. They're limited in what they can do. But they usually work well with the two ports I mentioned.