Blue Iris Integration Tutorial

Make sure To try this new custom component:

3 Likes

I switched just because I had added so many cameras to MotionEye that it was bogging down my i3 NUC. With all the camera streams running it was affecting Home Assistant performance because they were running on the same machine. Blue Iris runs on Windows so I have it running on my i7 PC w/ 1080ti graphics card. It uses less than 20% of the CPU on that machine, and now my Nuc is back to running just HA and the other add-ons.
Blue Iris does have A LOT more features than Motion Eye. I haven’t even scratched the surface of what it can do. If you have a lot of cameras and a strong Windows PC that is always on, then I would recommend Blue Iris. If you just have a few cameras and your HA machine is decently powerful then you’d be fine to just use MotionEye.
That’s my 2 cents :slight_smile:

1 Like

Or any machine that can run a vm. I’m running Blue Iris in a virtual Win10 installation on unRaid.

1 Like

true. You could do it in a VM also. Just make sure the machine you’re running it on is fairly strong w/ CPU/GPU. My i3 Nuc wasn’t up to the task.

Ha, we have almost the same setup. I’ve got 5-6 Hikvision PoE cameras streaming to BI in HD. Alerts are synced to Google Drive and a dedicated HDD stores about 2 weeks of footage. I’ve flipped back and forth between triggered and continuous recording. Triggered is nice because I can sync the full clips to Google Drive, but continuous has the advantage of seeing everything regardless of the alerts. Too large for Google Drive though.

Part of me wants to duplicate the cameras so I can do both, but that’d be a pain to manage. I’ll have to get around to submitting that as a FR at some point.

Is there a way to call PTZ presets from HA? I’d like to be able to adjust my PTZ camera from within HA without logging into BI or the BI web interface.

FYI - I’ve also reached out to support from BI to see if they can call PTZ presets through MQTT.

Hi all,

I’m trying to figure out if it’s possible to trigger a recording action to a BlueIris Camera from another device… for example: If a switch/sensor is turned of then HASSIO would trigger MQTT msg to BlueIris to start recording. Is it possible ?

I’ve never done it thru BI but I use command line switches to move my camera’s between two preset points. Turning the switch on moves the camera to one preset and turning it off moves it to another preset.

Has anyone been able to do the following automation with Phillips Hue & BlueIris (Hikvision cameras - lets call them a, b, c, d & e):

If time is between dusk and dawn (as per the HUE bridge setting)
and camera a, b or e have a motion trigger
then turn on light bulb x / room x (from within the HUE software) after a 15 second delay

Getting pretty complex at this point, but basically I want to be able to mimic someone being woken up at night time and putting on a light as if they heard something, but in actual fact it was due to the motion sensor and I might not even be at home at all.

Thanks
Carl

That should be pretty simple in Node-RED. I’ve got something similar:

@TaperCrimp any ideas for this ??

It wouldn’t be through MQTT since BI only pushes events and does not listen for them. You’d likely have to mess with the BI API to make an HTTP call from Home Assistant that triggers recording.

Making a web call to BI to trigger the camera is possible. This works for me.

http://X.X.X.X:Y/admin?camera=CameraName&trigger&user=BI_Username&pw=user_password

Where X.X.X.X:Y is the IP address and port for your BI instance

I’m currently sending this from NodeMCU-based motion detectors and it works just fine. It is on my workstack to change this to a call from HASS but I have not done this yet.

1 Like

Thats not hard i do something simular to know which camera had motion and flash a color . Not exactly what you wanted but close enough that you should get the concept. https://github.com/Vasiley/Home-Assistant-Main/blob/4c7a5c6f674f64695f04e57b7a2fddab953a9f78/packages/blue_iris.yaml

Fun fact: You can use Index as the camera name and get a view showing all cameras in one feed (Useful for notifications!)
eg:

  - platform: mjpeg
    mjpeg_url: http://172.16.0.110:81/mjpg/Index
    name: Index

9 Likes

Is there a way to get the snapshot of the camera 3 secs after trigger instead of the first frame captured once triggered?

It can be done in BI 4.xxx. I have not yet upgraded to 5 so I can’t say if the same applies, but it likely does. Can’t see why Ken would remove the ability to do that.

shell_command:
  ptz_firepit: 'curl  "http://192.168.1.105:81/admin?camera=Cam2&preset=3"'

You will have to substitute your blue iris URL, camera name and preset number of course.
Also take a look here for adding it on a lovelace card:

1 Like

This is the perfect thread for my latest project, thanks for the integration info!

One question.
I’m trying to have HA enable/disable some indoor dog cams when we leave/arrive.
The preset is one part of the system (aim the camera at a corner when we’re home to show it’s not active)
The other part I’d like is to enable/disable the camera entirely to save clutter on the web interface and avoid any issues of listening in.
Anyone know the magic curl to disable a camera?

Have a look here. I don’t believe you can disable the camera directly, but you could create a profile and switch to that.

I’ve been doing a bit of hunting and found a couple of things.
First: GitHub - magapp/blueiriscmd: Python cmd tool that talk with Blue Iris Camera surveillance software
A python script that chats to BI and gives commands, can eliminate the curl commands. (and doesn’t need user/password after a quick edit)

$ bin/blueiris.py --host 192.168.1.8:81
Connected to 'Home'
Profile 'Profile 1' is active
Schedule 'Default' is active
Signal is green

$ bin/blueiris.py --host 192.168.1.8:81  --help
usage: blueiris [-h] [--version] --host HOST [--user USER]
                [--password PASSWORD] [--debug] [--list-profiles]
                [--set-profile profile-name] [--set-schedule schedule-name]
                [--set-signal signal-name] [--trigger camera-short-name]
                [--ptzbutton ptz-button-name] [--ptzcam ptz-cam-name]

Second, from JSON interface

camconfig

Get (and optionally set) the state of many camera properties:

reset:true reset the camera

enable :true or false enable or disable the camera


So, looks like it can be done, just need to sort out the format of the command (or modify the python script)