Working: Headless Scheduled Web Page Screen Shots as a Blue Iris 5 Camera

gklimo

n3wb
Joined
Sep 13, 2018
Messages
2
Reaction score
2
Location
Virginia
Thought I'd post a solution I came up with to automatically take headless scheduled screen shots of a web page, and display the most current version of the screen shot as a Blue Iris 5 camera. I looked for an existing Blue Iris based solution for my particular need but couldn't find one. After some experimenting, I found the following works extremely well.

Background
My overall goal was to display personal weather station data as a Blue Iris camera. I wanted to see recent home weather data cycle within Blue Iris along with my cameras.

I personally use a WeatherFlow Tempest weather station at my home. Real-time weather data is accessible via the WeatherFlow mobile app or via the Internet by accessing Tempest. The trailing ##### shown in the URL would normally be the station number of my particular home weather station.

Based on my research, it appeared Blue Iris does not normally support displaying HTML based content as a camera. As a result, I needed to come up with an alternate method.

My Environment & Solution
Blue Iris is running on a PC with Windows 10. That PC also has a web server running on it. I happen to be using IIS, but any preferred web server would will work. I used IIS simply out of convenience.

An instance of Google Chrome browser is also installed on that PC. A very nice feature of Chrome is it can perform headless functions in the background. Meaning, no user interface is seen or user intervention is involved. Another nice Chrome capability is it can take a headless screen shot and save the resulting screen shot to a file.

Theory of Operation
I scheduled a task on Windows to run the command that follows every 5-minutes. This scheduled command takes an updated screen shot (called weather.png) of my current weather station data and places the file my C:\inetpub\wwwroot\weather\ folder. Each newer screen shot automatically overwrites the older version. This ensures the screen shot to be displayed within Blue Iris is no more than 5-minutes old.

Scheduled Command
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --headless --hide-scrollbars --ignore-certificate-errors --disable-gpu --screenshot=C:\inetpub\wwwroot\weather\weather.png --window-size=800,1000 Tempest

Again, the ##### reflected in the above command is normally my actual weather station number. The key point is any URL can be specified that you want to create scheduled headless screen shots of. Simply adjust the --window-size= setting to capture the screen as desired.

Once the command constructed was confirmed to work, I created a Weather website within IIS on port 84 that allows that website.png screen shot file to be viewed. In my particular case, the Weather website is not exposed externally. But the screen shot is locally accessible on the Blue Iris PC via .

Blue Iris Camera Configuration
I then created a Network IP camera within Blue Iris called Weather as follows. I realize some of the settings listed are irrelevant, but they are as currently defined and listed here for completeness.

  • Video tab Network IP:
  • Make: Generic ONVIF
  • Media/video/RTSP port: 554
  • Model: JPEG/GIF/etc. image requests
  • Discovery/ONVIF port: 8999
  • Cam#: 1
  • Stream Profiles Main & Sub: /weather.png.
  • Receive buffer (MB): 6.0
  • Skip initial HTTP DNS and reachability tests is checked
  • Use RTSP/stream timemout is checked
  • All other entries blank or unchecked

I now have a recent screen shot of my weather station data cycling with my actual cameras. I hope some of you find this information useful.
 
Last edited:
Joined
May 15, 2016
Messages
12
Reaction score
3
Nice solution. I ended up using OBS and a RTSP plugin. I was injecting my Weewx weather station but have recently switched over to FlightTracker with BI tools plopping my weather data in as an overlay.


1613405413626.png
 
Top