One of my all-time favorite groov features is the Video Camera gadget.
The gadget is pretty interesting as it's simply an image placeholder. Just point the gadget at a URL that resolves in an image and the gadget will display it and update it.
Of course, for an IP video camera, this usually means a JPG image. The groov user's guide has a nice section down the back that will help you get your camera showing up in groov, so be sure to check it out.
If you're interested in some other uses for the gadget, then read on and let's have some fun!
JPG, BMP, PNG or GIF:
As mentioned, the groov Video Camera gadget is a placeholder that simply marks a place on the groov-generated web page where an image will be inserted and refreshed.
This is important to keep in mind. groov itself is not making the image, it is simply fetching it.
Under the options in Build mode you can see a project-wide refresh rate. Each video gadget has an option to override that global setting and refresh the image either faster or slower.
The other important thing to keep in mind is that the image must be located at a URL. In other words, you must be able to type a URL, or web address, into a web browser and the only thing that comes back must be an image. The gadget cannot find an image on your hard drive, for example.
Note that the video camera gadget is NOT an iFrame. You cannot use it to embed another website. Remember, it must come back as a .jpg, .bmp, .png or .gif
Ok, now that we have all the rules and regulations out of the way, let's have some fun...
If you are not using one of the cameras mentioned in the groov user's guide, how do you find the URL for the image from it?
There are two methods that I have used. Firstly, you can Google the camera make and model and the word "snaphot". Often someone else out on the web has had the same challenge and has dug into the camera and put the magic URL on the web to help us all out.
The second option is to pull up the camera (most IP cameras have web servers built into them) in a browser and then start digging into the code to find the URL that serves up a single image. Again, it's important that you find the URL that shows a single image in the web browser. The Video Camera gadget does not (yet) support streaming video.
So what else can we show?
Any URL that results in a single image... for example, we have a weather station at Opto 22. We upload its data to WeatherUnderground, but we also store the weather images on a test PC. Since this PC is on the web, we can enter a URL that results in a weather-related image. For example, here's a nice image that displays the current weather conditions on some dials: http://internetio.com/weather/Opto22dial.gif
This image is refreshed every 5 minutes, so there is no point in pushing the groov video gadget to update it any faster than this rate.
Here is an example page from the groov running at my house:
You can see how I have used some images from different places to build an overview of the weather. The forecast is via an API call from a subroutine that Mary wrote; it runs on the controller at my house. (Download the chart from the Opto 22 forums). The other two images are from different URLs. The one on the right is a JPG generated by my own weather station, and the one on the left is a GIF from the NEXTRAD radar in Southern California.
The trend, of course, is done by groov from analog inputs at my house (ICTD sensors mounted on my roof—as you do).
Another slightly odd use is based around a Raspberry Pi computer running at my house (more on this in another blog). That computer runs a web server that reports different system information in the form of graphs. Since it's a web server, it has an IP address, so a URL results in each graph.
At the top of this screen shot is a regular groov Trend Gadget showing the Raspberry Pi CPU temperature.
Below that is a sample of the graphs from the Pi monitoring software
So for example, on my local network, I can put in http://192.168.1.100/monitorix/imgs/systemCPU1z.png to my browser (when I am at home on my network, or VPNed in) and up comes the CPU graph. The IP address belongs to the Pi and the path points to the image. Remember, groov does not care where the URL is, as long as it is on the same network and can return an image. In this case, both the groov and Pi are on my local network.
This then leads to the last really cool function of the groov Video Camera gadget—proxy!
To see this CPU graph from outside my network, I would have to add a port forward rule on my router to allow internet traffic to hit the Raspberry Pi....Not sure I want to do that from a traffic point of view. (Remember, the gadget is just a placeholder, so you need to be able to see the URL image from the same browser with which you are viewing groov).
Not only that but also I am already running a web server on port 80 at my house, so we would either have to configure the Pi to serve those charts on a different port, or I would have to set up a rule on my router to take a different port and translate it to the Pi's port 80. Messy.
By simply ticking the Proxy control in the groov video gadget, we're asking the groov to get and store the image. The groov then serves up that image as if it came from the groov along with the rest of its webpage.
This means I have just one port forward rule on my router, that is port 443 to the groov. Now everything on the groov page comes via that secure port and that includes my Raspberry Pi charts.
groov Video Camera gadget - Love it I do:
I think you can start to get a feel now why I really like this gadget. It's a great way of showing all sorts of visual information.
Yes, it was built for IP video cameras, but with a little nudge it can easily display all sorts of images and update them automatically.
Try it for yourself. Head over to https://demo.groov.com and log in with a username of "trial" and a password of "opto22". Check out the pages with camera feeds on them.
Once you are done there, visit http://groov.com/free-trial/ and download the free trial. You can get started viewing all sorts of images with groov and all you need is a URL!
Till next time. Cheers Mate.