Blue Iris UI3

@bob2701 UI3-209 is just released (not delivered in a BI update yet). To improve server CPU usage, UI3-209 changes the max dimension of group streams to 1440px, down from 3000px. This limit is now configurable via UI Settings > Video Player or by right clicking a group video stream and choosing Group Settings.
To install the new UI3-209 update, does it need to be put in a certain folder after unzipping it? Which section of BI do I go to to install it?
 
To install the new UI3-209 update, does it need to be put in a certain folder after unzipping it? Which section of BI do I go to to install it?
And maybe I can answer my own question with assurances I don't royally hose something up when I try it. Do I copy the whole UI3 folder with all files and replace what is currently in my www folder?
 
I'm not home yet to install it, so I can't yet confirm, but it was likely rolled into today's BI update.
I haven't updated my BI copy since I got it a few weeks ago. Trying to get it setup, running fairly smoothly and figure out where everything is before I throw another wrench in the gear works....:lol:
 
Hmm...seems like quite a few changes have been rolled into today's UI-209. @bp2008 is always so modest in announcing them, but it almost looks like we are one step closer to having UI3 become the official "app" for BI, if only it could do the final jump and get push notifications when nominally "closed":) .

It is one of the things I emailed Ken about years ago, but like most things of this nature, I never heard back.

It is relatively little work on my end. 99% of the work would be within Blue Iris. One of the most irritating aspects is that the web push API requires a "secure context" which means an HTTPS connection to the web server. HTTPS is designed for public facing web sites managed by IT persons who can go through the process of registering a domain, setting up DNS, and getting an HTTPS certificate signed and regularly renewed by a trusted signing entity. That is WAY BEYOND the typical BI user's skills. If you don't get a trusted signed certificate then you need to click through a security warning page every time you load the web site, and that is a huge downgrade in the user experience. Really the only way around that for most users would be for Blue Iris to provide a cloud access portal. That means much higher infrastructure costs for BI which means more cost for the end user either in the form of a higher licensing fee or an actual subscription service.




To install the new UI3-209 update, does it need to be put in a certain folder after unzipping it? Which section of BI do I go to to install it?

Installation instructions are at the root of the github project.
 
Is it possible for UI3 to issue an MQTT (or other) command when a particular camera is selected. I have a camera in a delivery box and want to turn on a light to see what is there when it is selected.
 
Is it possible for UI3 to issue an MQTT (or other) command when a particular camera is selected. I have a camera in a delivery box and want to turn on a light to see what is there when it is selected.
Unsure if UI3 actually sends any MQTT, but if the camera picks up an alert from motion or IVS, Blue Iris can send MQTT.
 
Is it possible for UI3 to issue an MQTT (or other) command when a particular camera is selected. I have a camera in a delivery box and want to turn on a light to see what is there when it is selected.
Unsure if UI3 actually sends any MQTT, but if the camera picks up an alert from motion or IVS, Blue Iris can send MQTT.

Web browsers can't use MQTT. There is a slightly hacky way you can achieve this however with some extra button clicks. In Blue Iris you can add "On Call" actions to PTZ presets. So configure the delivery box cam as a PTZ (even if it isn't really PTZ-capable) and customize some of the PTZ presets to send your MQTT commands. To make it nicer in UI3, you can customize the preset button images by going to Blue Iris 5/Cameras/{camera-short-name} and putting in files named preset_1.jpg, preset_2.jpg, etc with the graphics you would like to see in UI3.
 
Web browsers can't use MQTT. There is a slightly hacky way you can achieve this however with some extra button clicks. In Blue Iris you can add "On Call" actions to PTZ presets. So configure the delivery box cam as a PTZ (even if it isn't really PTZ-capable) and customize some of the PTZ presets to send your MQTT commands. To make it nicer in UI3, you can customize the preset button images by going to Blue Iris 5/Cameras/{camera-short-name} and putting in files named preset_1.jpg, preset_2.jpg, etc with the graphics you would like to see in UI3.
Thank you, I will give it a go.
PS I never dreamt of setting up my $10 ESP32 cam as a PTZ!!!!
 
  • Like
Reactions: bp2008
.....and getting an HTTPS certificate signed and regularly renewed by a trusted signing entity. That is WAY BEYOND the typical BI user's skills.

It would be nice if BI would integrate Let's Encrypt support. I already have a wildcard cert for my domain. It would be nice if there was an easy way for BI to use it as well.

Ken could also look into what Plex did to get HTTPS working for their entire user base.
 
It would be nice if BI would integrate Let's Encrypt support. I already have a wildcard cert for my domain. It would be nice if there was an easy way for BI to use it as well.

Nothing I've ever seen Ken do indicates that he knows much about web hosting beyond very basic HTTP protocol implementation, so I suspect he's never even thought about a lot of these things.

There are a lot of optional details that could make the system a lot more robust and easier for users to work with:

Code:
* HTTP and HTTPS traffic should both be accepted on the same TCP port.  Automatic redirect to HTTPS for any HTTP traffic that is not for one of the challenge files for LetsEncrypt authentication.
* LetsEncrypt certificates requested automatically for whatever domain you connect with.
    * LetsEncrypt does rate limiting.
        * so blueirissoftware.com or other web infrastructure run by Ken should verify reachability of the server before allowing the LetsEncrypt cert to be requested or renewed.
        * so BI would need to understand all the different failure messages that LetsEncrypt can send, and deal with them appropriately and not spam the LetsEncrypt service for more certs when they're just going to fail again
* Fallback to user-provided certificate if LetsEncrypt is disabled or its cert is unavailable.
* Fallback to self-signed certificate if no other cert is available.

Ken could also look into what Plex did to get HTTPS working for their entire user base.

I read up on what Plex did, and it seems like it would be asking way too much of Ken. I think there's a pretty low chance of getting more than the most basic HTTPS hosting with separate ports for HTTP and HTTPs, and without any integrated LetsEncrypt support.
 
I read up on what Plex did, and it seems like it would be asking way too much of Ken. I think there's a pretty low chance of getting more than the most basic HTTPS hosting with separate ports for HTTP and HTTPs, and without any integrated LetsEncrypt support.

I already generate my own Let's Encrypt wildcard cert, so I would be happy if BI just had it's own HTTPS service and would allow me to import my own cert. This is what I do for other services I run, ie Emby, Proxmox, etc.

I know this maybe beyond a lot of BI users, but given the number of cookbooks I see out there for setting up reverse proxies to get around this short coming, a lot of BI users have already gone way beyond even this simple process to get HTTPS support. This would greatly simplify the existing process.
 
Yup, I agree. Anything that can be done to reduce the friction to get HTTPS working would be helpful. Many times I have considered writing a basic HTTPS proxy server that could be installed alongside BI to provide these things. I could make it so much easier than it currently is with stunnel or nginx or haproxy or whatever other proxy servers people use. By being built specifically for BI, I could have it look at BI's registry entries to find out what web server port BI is using, and automatically forward the traffic to BI with minimal setup. Just install the proxy service on the BI machine, change their port forwarding rule in their router to forward from ports 80 and 443 to the port that the proxy service listens on, and have instant HTTPS support, with a LetsEncrypt certificate if they happen to be connecting using a public DNS hostname, otherwise something self signed. User-configurable cert could be an optional feature to set up if the automatic behavior is insufficient.

I could do all those things and make it a pretty decent user experience. But it would be loads better for everyone if BI did it all itself.
 
I could do all those things and make it a pretty decent user experience. But it would be loads better for everyone if BI did it all itself.

Yes, it would be, because then the Android and IOS apps, Chromecast, et all, could use it as well.

I don't know why this would be all that hard. I don't know what language BI is written in, but it has to have built in TLS/SSL support these days. Windows has a built in credential store. I'm assuming BI isn't using their own HTTP code and is using whatever libraries the language has. This shouldn't be much harder than adding another box or two for HTTPS configuration and letting the libraries do their thing?
 
BI uses its own HTTP code, and even its own JSON encoder. Pretty sure it is written in C++, given that it uses Visual C++ redistributable libraries that weren't always installed correctly in the past, leading to issues where users had to install them on their own.

So yes, there are tons of 3rd-party libraries BI could be using, but isn't.

We've also had issues in the past because BI decides what Content-Type header to send for specific file types, by looking in the Windows registry. Not everyone's registry has the correct strings in there for certain file types like ".js" so the web interface wouldn't work in some browsers due to the files being served incorrectly. I couldn't even get Ken to hard code the correct mime types, so I'm pretty sure that issue never went away. But fortunately it was really rare.
 
I'm wondering if it would be possible to set the Profiles in UI3 as a drop-down selection, like the Console, so we can see not just the numbers, but also the names of the Profiles.

I recently set up and started using Profiles 2 thru 7 a bit like Groups, where I would pause different combinations of cameras at once. I find the Group option lacking for how I want to use it. Profiles works perfect in this respect. Thanks.

@cferd5

It took me a lot longer than I thought to get around to this, but UI3-210 has replaced the profile selection button grid with a dropdown box like in the local console.