My printer is in the attic, while my workplace is on the ground floor. This means running up and down two flights of stairs to start prints and checking on the progress. Luckily, there is a great solution for remote controlling and watching your 3D printer: Octoprint. It is a Linux-based server with web interface that can talk to most printers and stream video from an attached webcam.
Most people seem to run it on a Raspberry Pi, for which a pre-configured distribution (OctoPi) is available. I however had an old Asus Netbook lying around that runs Lubuntu, which luckily has a built-in webcam (and a bit more processing power than a Raspberry Pi). I then followed the installation instructions for Raspbian.
Installation was pretty straightforward. I had to manually install the packages python-dev, gcc, and g++. The configuration is done in /etc/default/octoprint. All settings are by default for a Raspberry Pi (user pi etc.), these need to be modified to whatever paths and users you have on your system. The user that runs the octoprint server also needs to be added to the dialout group, as described in the instructions. After a reboot, Octoprint should then be started automatically as a service.
The Prusa i3 is connected via USB. After logging into the web interface, you can upload gcode files (either to the memory of the server running Octoprint, or the printer’s SD card), start prints, and monitor progress via the webcam (which to me is the most useful functionality). Octoprint supports plugins e.g. for slicing, but I prefer doing the slicing on my (much faster) laptop.
All things considered, I find Octoprint to be very useful. Going upstairs is now required only for removing finished prints or changing filament.