Note, BI Fusion v3.0 is out and offers major upgrades, warranting a new thread. A lot of the info in this thread is still good, but I recommend visiting the new one:
Hello all,
Do it all in one app! Blue Iris Fusion combines profile integration with camera triggering so you SmartThings Modes and sensors can update Blue Iris’ profile and trigger it’s cameras to record. You can connect SmartThings to Blue Iris via local IP connection (LAN) or over the normal external cloud connection (WAN).
Simply install the parent app (which has the login info so you don’t have to do it multiple times), setup the Blue Iris Profiles, and then add triggers (it calls the child app) for each camera. As noted, be careful when entering your camera name (it’s the short name in Blue Iris, and is case sensitive), and your URL. If you’re using HTTPS, this works great, but you’ll need a SSL certificate from a Certificate Authority, as self-signed certificates won’t work with SmartThings.
Hope this helps!
Parent App:
https://github.com/flyjmz/jmzSmartThings/tree/master/smartapps/flyjmz/blue-iris-fusion.src
Child App:
https://github.com/flyjmz/jmzSmartThings/tree/master/smartapps/flyjmz/blue-iris-fusion-trigger.src
Plus Now There is a Device Type for Blue Iris!
FAQ:
How do I install it?
In the SmartThings API, Create a new Smartapp, and either do it by code and copy the code from the links above, or add my Github repository to your Github Integration settings:
Owner: flyjmz
Name: jmzSmartThings
Branch: master
You need to add both the parent and the child app to your SmartThings API SmartApps, but I recommend only publishing the Parent App (publishing will put it in the list of “My Apps” when you’re on your phone, only the parent app needs to be ‘installed’ on the phone).
One you’ve added them to the API, open the SmartThings app on your phone, add an automation, and you’ll find the “Blue Iris Fusion” app under the “My Apps” category. Only install the “Blue Iris Fusion” app, do not install the “Blue Iris Fusion - Trigger” app.
Then follow the directions on screen.
What settings are important in Blue Iris?
Go to Blue Iris Options, the Web server tab, under Advanced, make sure Secure only is unchecked and Authentication must be at the least set to Non-LAN only. This enables the login to work, but also uses a less secure method of login. If you are using it LAN only and do not port-forward or otherwise expose your Blue Iris server to the Internet, then there is no need to worry. If you do have it set up for external logins (i.e. to log into the BI server when you’re away), then please make sure you have secured that connection in another way. I recommend two different approaches:
- VPN. You can set up a VPN server on your computer, a network device like a Synology server, or on your router using DD-WRT firmware (which is a relatively simple and doesn’t cost anything if you have a good router already). The VPN will take care of all the security, it’s as if you don’t expose it to the internet but you can still reach the server! I have a how-to, PM me if you want to know more.
- HTTPS. Blue Iris has stunnel integration. it’s not to difficult to set this up either. You port forward the BI server but secure the connection so you login and viewing are all encrypted. I have a extensive how-to at the bottom of this post for reference.
Can this work the other way? Can I use it to trigger SmartThings actions when the camera detects motion (e.g. to trigger a light to turn on)?
No, it only transmits to BI, it doesn’t receive. You have some good options though:
- I use a virtual motion sensor DTH and create a device for each camera in SmartThings
- Then in IFTTT I use the maker channel for Blue Iris Alerts to send a GET command (Alerts tab for each camera’s settings):
- Enter the IFTTT Maker address in the first box (don’t include the http:// or https:// since it’s in the dropbox)
- Ignore the POST text field, and check the “Request again when trigger is reset” for the “motion off” commands. This is an additional maker channel. For example, you could have kitchenMotionOn and kitchenMotionOff for the virtual motion sensor’s “active”/'not active" status updates.
- Finally I have two applets in IFTTT for each camera, one that has the maker channel receiving the camera motion alert turn on the virtual motion SmartThings device I created for the camera, and the other that turns off the virtual motion.
- Those virtual motion sensors then can be used as normal sensors in any other SmartThings automation.
Or: Use a purpose-built smart app that “listens” for BI motion alerts:
- Blue Iris motion detection to activate smart app
- Blue Iris camera trigger from smart things
- Do the same thing both of these smartapps do in WebCORE (it’s just a HTTP endpoint)
I ultimately used the IFTTT option because every time you open the settings on one of those smartapps the web address regenerates, forcing you to retype it into Blue Iris. I think if you did it via webcore it’d be a lot simpler, especially because you can just copy and paste from the browser to Blue Iris, and because you may be able to modify the webcore piston without it changing the address.
What is the difference between WAN and LAN?
LAN = Local area network, WAN = Wide area network. For BI Fusion setup, LAN specifically means all traffic will stay on your home network, nothing out to the cloud (the SmartThings hub sends commands directly to the computer running Blue Iris). The WAN setup differs by having the SmartThings cloud send the commands to your Blue Iris computer.
The only functional differences are that the WAN option provides feedback if Blue Iris didn’t actually receive the command (no way to make this happen within this app alone when using LAN), and the WAN setup requires opening a port so the cloud can reach your Blue Iris computer.
I can think of few situations that WAN would be a better fit, primarily if you have your SmartThings hub on a different network than your Blue Iris computer. I would imagine most people would use LAN.
Updates:
-
Version 2.6 (2.5 for trigger) uploaded to Github. Added contact closing and switch turning off to trigger options.
-
Version 2.6 (2.4 for trigger) uploaded to Github. Corrected Null error for profile naming within notificaitons when using in LAN (local) mode. Thanks @Zaxxon!
-
Version 2.5 (2.4 for trigger) uploaded to Github. Slight tweak to notifications to give more control to what kind of notifications show.
-
Version 2.4 (2.3 for trigger) updated in GitHub, long awaited notifications support for triggers added!! You can now set up separate notifications for each trigger app and the profile changer. Be sure to update your app and open up preferences to set what you want!
-
Version 2.3 added to Github. Added a setting in preferences to turn debug logging on or off (defaults off). Good idea to have it off once it’s working because it logs your password in the debug log while it’s on (which is secured by your Smartthings login but might as well stay safe!)
-
Version 2.2 adds a note in setup to ensure your Blue Iris Webserver setting for “Secure Only” is unchecked if you want to run it locally.
-
MAJOR RELEASE! Version 2.1 combines Blue Iris Profile integration and camera triggering in this one app, and now it also can work via a local connection instead of just external. Also added time-based conditions for triggering cameras as well (e.g. trigger camera only during a certain time period and/or days of the week). Name changed.
-
Version 1.2 for child app, added alarm device type trigger. Added new link for integration app, now points to my mod’d version. Fixed the link for the child app.
HTTPS/SSL/STUNNEL How-To
stunnel:
- Download and install stunnel
- Once installed, follow the SSL Certificate Generation Steps to complete setup.
SSL Certificate Generation
- Setup your host on no-ip.com. (Or other services)
a) Create an account, and sign up for the “No-IP Plus” service level (enhanced might work), no need for registering a domain name unless you want your own, just use one of their included domains (e.g. mydomain.ddns.net).
b) Set up your hostname: Host Type - “DNS Host (A)”, IP address will auto populate, Assign Group – No Group, Enable Wildcard off. - Go to: zerossl.com > click on Online Tools > Click on Start for the Free SSL Certificate Wizard
- Enter Email Address, check DNS Verification box, check both terms of service boxes to agree
- For New setups:
a) In “Domains…”, type in your domain name (e.g. mydomain.com or mydomain.ddns.net).
b) Leave the “Paste your Let’s Encrypt Key…” and “Paste your CSR…” fields blank.
c) It’ll ask if you want to include the www version (if yes, you’ll get it for www.mydomain.ddns.net as well). Click next.
d) It’ll generate the domain-csr.txt file, then generate the Key (account-key.txt). Be sure to save both files and put in a secure location.
e) Then it’ll take to you the verification step, use the DNS verification (not http, which has you put specific stuff on your server, which you can’t do in blue iris).
f) Log into your No-ip.com account > manage domains > Modify > Advanced Records > TXT, and copy the TXT record into it and click update
g) Wait 15-30 minutes (per directions), and click verify. When it’s good, it’ll take you to your last step.
h) Download the domain-crt.txt and domain-key.txt files, and save your account ID. Keep all the files in a safe place!
i) Delete the TXT records from your hostnames on your no-IP.com account. - For Renewals:
a) Leave “Domains…” blank
b) In “Paste your Let’s Encrypt Key…”, copy the “account-key.txt” file contents so you can skip verification.
c) In “Paste your CSR…”, copy in your “domain-csr.txt” file contents you created the first time you set it up.
d) Click Next.
e) As long as it wasn’t expired (so create a reminder somewhere to renew this before it expires each time), it’ll take you straight to a new certificate (domain-crt.txt). Download, save a copy in a safe place. - Configure Stunnel, first stop the stunnel service and make sure the GUI is closed.
- For new setups:
a) Edit the stunnel.conf file to read:
[Blue-Iris]
accept = xxx.xxx.xxx.xxx:xxxx
connect = xxx.xxx.xxx.xxx:xxxx
cert = blueiris.pem
TIMEOUTclose = 0
b) Save stunnel.conf and close it. Save a backup copy to a safe place.
c) Create a new .txt file and call it “blueiris.pem” this is your new certificate file to replace the default stunnel.pem.
d) Open the blueiris.pem file you just created and paste the contents of domain-key.txt into it. After the domain-key.txt contents, paste the contents of domain-crt.txt and save the file. Save a backup copy to a safe place. - For Renewals:
a) Open the blueiris.pem file and delete the old certificate (so everything after “-----END PRIVATE KEY-----“)
b) Paste the new certificate to the end (all of the new domain-crt.txt you just downloaded)
c) Save the file and close it. Save a backup copy to a safe place. - Start the Stunnel service, then open the Stunnel GUI and reload configuration. Test it out!
a) There are several stunnel links in start menu, if you choose to run as a service it’ll just open a service and not have a GUI or anything running. You can go to Windows Processes and find the stunnel service and make it auto-start on computer boot so that even after restarts you don’t ever have to start stunnel again.
Blue Iris HTTPS Setup
- In the Web Server tab within Blue Iris Options, enable HTTPS and fill out the other settings based on your Stunnel.conf settings above and how you would like it to operate. The Blue Iris help files are pretty good for this topic.