[Deprecated] BI Control - Local Blue Iris control

So question-- how difficult would it be to make the delay specific to the profile. For example, a 5 second delay when switching to profile 2, but no delay when switching to profile 1?

My use case is that I have lights turning on/off tied to mode changes. When I leave, all lights turn off and I switch BI to a profile that sends alerts on motion. But sometimes the lights going off triggers an alert. If I can delay the BI profile by several seconds this would avoid it.

But I also have lights turn on when I get home. So I'd like no BI profile delay when I switch to the no-alert profile.

I can also take a stab at making these changes and do a pull request.

Are you not making different child apps for each scenario?

This would be one child app.

This would be a second child app.


Each child app would specify a different delay or no delay at all. This way the delay will work with any/all options rather than just profiles.

1 Like

One child app using the mode control to map all my Hubitat modes to BI profiles. Am I doing it wrong?

Edit: just made another child app for my second profile. Works perfectly! Don't know why this didn't occur to me. Thanks again!!

1 Like

I am new to trying out this app and also new to BI. I have a question on the authentication. In the app instructions, it states "Ensure 'Use secure session keys and login page' is not checked. Disable authentication, select β€œNon-LAN only” (preferred) or β€œNo” to disable authentication altogether."

But I see the app also asks for our connection credentials. So my question is, do we really need to disable secure session and authentication? I would really rather not disable authentication, even within my LAN.

BTW... Here is a screen capture of these options for the latest BI v5.

Thank You

Well, if you want it to work I'd suggest following the instructions.

If not, you could always try different combinations and see if any others might work. Who knows, something might. Let us know how it works out.

I turned off 'Use secure session keys and login page', since that still allowed me to use/enforce basic auth on BI. I can confirm this app worked to set profiles.

I now have a question...I noticed the absence of Profile 0 (Inactive) being available. Was that left out for any specific reason?

@bptworld - If you don't mind, I may also look at adding the lock options ("...set the lock=y, 0=run, 1=temp, 2=hold") for profile settings.

Thank You

Does this app work to stream to the dashboard or just control? I'm looking to stream. Thanks.

Just control

Just want to share a tip for those setting up manual recording. I could not get the recording to last longer then 30 seconds. After a face palm moment I figured out that in the global Blue Iris settings > Cameras >" Limit manual recording time to 30 secs" was set.

After changing this value I could then record for a defined time. In my case my interior cameras that DONT continuously record will now record for X minutes when BI Control triggers them.

This ability was something I moved off a large Arlo system for when they dropped the Smartthings integration.

Thank you so much for your work on this @bptworld. I truly appreciate your dedication to Hubitat apps.

1 Like

@bptworld
I think I found an issue. What do you think?

When setting up a switch to trigger Camera_Snapshot I think the URL you are constructing for the GET to is formatted incorrectly.

From logs I see: sending GET to URL http://192.168.1.246:443/admin?camera=Front_Yard/snapshot&user=XXXXX&pw=XXXXX

That does not seem to work for me and in Postman I see the response is: camera=NULL

Formatting the GET as:
http://192.168.1.246:443/admin?camera=Front_Yard&snapshot&user=XXXXX&pw=XXXXX

Where camera=Front_Yard&snapshot instead of camera=Front_Yard/snapshot. This reliably triggers the snapshot on my BI 5.0.8.1 server.

Thoughts?

Edit:
Looks like its a typo as the comment is actually correct in the code.

if(triggerMode == "Camera_Snapshot") {
if(logEnable) log.debug "I'm in Camera_Snapshot"
biRawCommand = "/admin?camera=${biCamera}/snapshot&user=${parent.biUser}&pw=${parent.biPass}"
// /admin?camera=x&snapshot

Hey sorry im new coming over from the smartthings scene, i see its mentioned that this app has "Google Home" control. Does that mean i can set it up so i can say "Ok Google show me the ... Camera"?

No, this means you could tell Google to 'Take a snapshot' or 'change to profile 1'. This app controls Blue Iris, not the camera's directly.

and "Welcome to Hubitat!"

Just setting up BI Control for the first time. Awesome concept, Bryan. Thank you!

My use case is to trigger a snapshot for a given camera when certain conditions in HE are met. I added the parent and then one child app, and keep getting the below error in the HE log. I've triple checked BlueIris IP address and port, as well as camera shortname. No image shows up in my folders. Any ideas?

app:23472020-02-15 08:11:07.655 pm errorError: groovyx.net.http.ResponseParseException: Not Found

app:23472020-02-15 08:11:07.377 pm infoParent Installed OK

app:23472020-02-15 08:10:38.599 pm errorError: groovyx.net.http.ResponseParseException: Not Found

app:23472020-02-15 08:10:38.297 pm infoParent Installed OK

app:23472020-02-15 08:10:20.835 pm infoThere are 0 child apps

app:23472020-02-15 08:10:20.815 pm debugUpdated with settings: [biPort:81, biPass:PASSWORD_REDACTED, biServer:10.0.0.6, biUser:Admin]

app:23472020-02-15 08:10:02.542 pm errorError: groovyx.net.http.ResponseParseException: Not Found

app:23472020-02-15 08:10:01.926 pm infoParent Installed OK

app:23472020-02-15 08:09:42.202 pm infoThere are 0 child apps

app:23472020-02-15 08:09:42.193 pm debugInstalled with settings: [:]

Thanks, did you make the changes to Blue Iris noted in the Instructions?

Yeah sorry I should've said that. I unchecked "Use secure session keys and login page". And authentication is set to "Non-LAN Only". And, FWIW, the login credentials I'm using is for a user with admin privileges. Hope that helps.

The only thing that jumps out is that you said that you created a child app. According to the logs, 'There are 0 child apps'. I would suggest deleting the child and parent app and starting over.

Other than that I would suggest to double check the password.

I've honestly never seen that error before so I'm kinda at a loss as to what it means.

Hmm I tried that. I deleted the child and reinstalled. No joy. Then I deleted both the parent & child and reinstalled both. Same error. I think I just copied the log at the wrong moment. That error message keeps occurring.

Anybody know what it means?

I'd try changing your password to eliminate special characters to see if that has anything to do with it.

appreciate the idea -- but I have no special characters

@bptworld, just spoke to BI support. They asked if we could show them the web request that your app fires to request the snapshot so they could troubleshoot the problem. Can you point me to a line in the code, or?

EDIT: Actually, belay that. I have a theory. And I'll preface this by saying that I'm absolutely not a Groovy developer, but I am a hopeless tinkerer.

On line 497 of the BI child app, the code is:
biRawCommand = "/admin?camera=${biCamera}/snapshot&user=${parent.biUser}&pw=${parent.biPass}"

Is it possible it should be this (the slash before "snapshot" changed to an ampersand):
biRawCommand = "/admin?camera=${biCamera}&snapshot&user=${parent.biUser}&pw=${parent.biPass}"

I tried it and it worked. Wonder if it's just a simple typo?