[OBSOLETE] ArloPilot - Enhanced Arlo System Integration

Announcing ArloPilot, the auto-pilot for the SmartThings to Arlo integration. With ArloPilot you can trigger Arlo system modes changes based on either SmartThings system mode changes, or Smart Home Monitor alarm states.

Current Release: 1.4

Key Features:

  • Change Arlo modes based on SmartThings system mode or Smart Home Monitor alarm state.
  • Change Arlo modes based on SmartThings device events (presence, switch, & button)
  • Supports multiple Arlo base stations.
  • Supports multiple Arlo-Q Cameras.
  • Supports custom Arlo system modes for each Arlo device.
  • NEW in 1.4: Last captured image external web links for ActionTiles & HomePanel
  • Full-featured Service Manager supports manual Arlo mode changes.
  • Parent-child SmartApp enables multiple mappings of SmartThings modes to Arlo modes.
  • Parent-child SmartApp allows Arlo modes to be changes using switch and button events (Useful 3rd party SmartApps like Webcore!)

Note: Due to limitations between SmartThings & Arlo platforms (lack of ST event streaming support) it is not possible for any SmartApp to receive event notifications from the Arlo cloud. This includes, unfortunately, the ability to query Arlo for schedules and user-defined custom modes.

Installation Instructions - Github Integration

  1. Log into the IDE, and go to “My SmartApps”
  2. Click “Settings” and add the following Repo: shackrat / SmartThings-by-Shackrat / master
  3. Click “Update from Repo” and select “SmartThings-by-Shackrat”
  4. Under “New (only in GitHub)”, check the following:
    shackrat:ArloPilot Device Automation
    shackrat:ArloPilot Mode Automation
    shackrat:ArloPilot
  5. Click “Execute Update” but DO NOT click “Publish”
  6. In the list of SmartApps, look for and click “shackrat : ArloPilot”.
  7. Click “Publish” and then “For Me”
  8. Go to “My Device Handlers”.
  9. Click “Update from Repo” and select “SmartThings-by-Shackrat”
  10. Under “New (only in GitHub)”, check the following:
    devicetypes/shackrat/arlopilotcameratile.src/arlopilotcameratile.groovy
  11. Click “Execute Update” but DO NOT click “Publish”
  12. Open the SmartThings mobile app, go to Marketplace.
  13. Look for ArloPilot under the MyApps category and install it.
  14. Enjoy!

Installation Instructions - Copy/Paste [repo]

  1. Log into the IDE, and go to “My SmartApps”
  2. Click the “+ New Smart App” Button
  3. Click the “From Code” tab.
  4. Copy (smartapps/shackrat/arlopilot.src/arlopilot.groovy) from Github and paste it into the box.
  5. Click “Create”
  6. After the SmartApp has been created, click “Publish”.
  7. Click the “+ New Smart App” Button
  8. Click the “From Code” tab.
  9. Copy (smartapps/shackrat/arlopilot-mode-automation.src/arlopilot-mode-automation.groovy) from Github and paste it into the box.
  10. Click “Create”
  11. After the SmartApp has been created, DO NOT click “Publish” this time.
  12. Click the “+ New Smart App” Button
  13. Click the “From Code” tab.
  14. Copy (smartapps/shackrat/arlopilot-device-automation.src/arlopilot-device-automation.groovy) from Github and paste it into the box.
  15. Click “Create”
  16. After the SmartApp has been created, DO NOT click “Publish” this time.
  17. Go to “My Device Handlers”.
  18. Click the “+ Create New Device Handler” Button
  19. Click the “From Code” tab.
  20. Copy (smartapps/shackrat/arlopilot-device-automation.src/arlopilot-device-automation.groovy) from Github and paste it into the box.
  21. Click “Create”
  22. After the Device Type has been created, DO NOT click “Publish”!
  23. Open the SmartThings mobile app, go to Marketplace.
  24. Look for ArloPilot under the MyApps category and install it.
  25. Enjoy!

Custom Arlo Modes

Because of how Netgear implemented their API, the SmartThings cloud is not able to handle the events necessary to query the list of modes. To work around this limitation, you can define up to 5 custom Arlo modes in ArloPilot. Heres how to do it:

  1. Log into the Arlo website.
  2. Select the base station or camera.
  3. Click the right arrow (>) to edit the custom mode.
  4. While in the edit page, look in the URL field and you’ll see the mode ID as depicted in the screenshot below.
  5. Use that mode ID when configuring the corresponding rule in Arlo Pilot.
  6. Note: Modes are defined on each base station/camera in the Arlo system. You’ll need to do the same in ArloPilot.

Camera Tiles & External Access

Version 1.4 enables the creation of a “virtual camera tile” device which is nothing more than a device with a carousel tile displaying up to the last 10 images retrieved from the Arlo cloud. External Access creates a public web URL that will always display the most recent snapshot taken by any Arlo camera.

You must have a connected ArloPilot to at least one Arlo base station or Arlo-Q camera before proceeding.

You can create a virtual camera tile for each Arlo camera by following these steps:

  1. Open the ArloPilot SmartApp.
  2. Scroll down to and tap on “ArloPilot Settings”
    3.Tap on “Create Virtual Camera Tiles”

Note: If you do not see the “Create Virtual Camera Tiles” option you must go back to the man menu and choose "Manage Arlo Devices & Modes and make sure at least one camera or base station is connected.

You can choose to make any of the virtual camera tiles accessible by a public URL by following these steps:

  1. Open the ArloPilot SmartApp.
  2. Scroll down to and tap on “ArloPilot Settings”
  3. Tap on “Configure External Access”
  4. Follow the on-screen instructions for enabling oAuth in the ArloPilot service manager SmartApp.

Screenshots

Main Page

Manage Arlo Devices

Custom Arlo Mode Management

Device Trigger Automations

SmartThings Mode Sync Automation

Smart Home Monitor Alarm States

External Web Access to Latest Still Images

Manual Mode Control

22 Likes

This is great! I’ve always wondered why the SmartThings integration does not let you set mode to armed or disarmed of your arlo base station.

I just have one question/request:

I set my Arlo base station to armed during night and away modes
 but I also set it to armed if I am not home AND my wife IS home.

This is so I can keep getting motion alerts regarding the exterior of my house if she is still home.

How about the ability to set your Arlo mode based on a presence sensor and/or ST mode??

1 Like

Sorry folks, I’m a few days behind schedule on releasing this. The code has just been pushed to Github and screenshots and installation instructions in the first post have been updated.

Your feedback is welcome and encouraged!

You can trigger Arlo mode changes when SmartThings mode changes. You can also change Arlo modes based on SHM alarm states. If all else fails, you can trigger an Arlo mode change based on the state of a switch and use Webcore for the complex logic.

Login, andScreenshot_20180206-144014

Screenshot_20180206-144359

1 Like

Very nice job! I have an issue getting this up and running. After starting the installation under myApps and entering my Arlo Name and credentials, clicking done, I`m getting the error that I am not authorized to perform that operation. Any ideas on this? Thx

I’m wondering if having arlo connect on there from before could be giving me those errors.

When I go back into smartthings arlo pilot app is gone, I can add it back, enter my credentials and then hit save, it goes back and exits back itself. Rinse repeat

Hi All, there was an issue with the IDE earlier. The last push to github didn’t work. I’ll have the latest code pushed out shortly.

1 Like

Hi all, despite IDE errors making the commit, I just pushed the correct code to github. It does appear the code successfully published.

To fix the install, update smartapps/shackrat/arlopilot.src/arlopilot.groovy and publish.

Apologies for the mixup.

1 Like

I made some changes in the initialization code today. Unfortunately I couldn’t delete the SmartApp out of the IDE due to a platform issue. The github commit was also affected too and didn’t take. These issues has been addressed.

1 Like

Got further thanks, I’ll set it all up when I get some time

Sounds fantastic. So I’m wondering about the recording delay, is that still present? Last time I tried using ST to control my Arlo, there was a 5-7 second recording delay that I found unacceptable, and had to go back to letting Arlo manage the recordings.

This is terrific!! This is what the Arlo integration should have been.

Unfortunately there is an issue while arming the system, it is spitting up an exception.
9:27:49 PM: error org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object ‘getShmAwayDevices’ with class ‘java.lang.String’ to class ‘java.util.Map’ @line 612 (SHMStateHandler)

This doesn’t directly impact recording latency. What it does is allow you to manage the record rules on the Arlo Cloud using their rules. This method bypasses the Cloud-to-Cloud latency inherent to having SmartThings rules trigger recording.

You effectively tailor existing Arlo rules or make new ones in specific Arlo mods to suit your needs. This SmartApp then activates those modes based on specific conditions (Ie ST mode changes)

I’m sure that can be traced down. This error occurred while you were changing SHM armed state?

Correct, sorry should have been more clear. I switch from SHM Home (Disarmed) to Away (Armed). Transitioning to any other SHM mode seems to be working as expected though.

Good news, I have it figured out. I also found a couple GUI things broken from some last minute changes. I’ll have an update posted in a few minutes.

1 Like

Update for the SHM bug has been posted. To fix, update smartapps/shackrat/arlopilot.src/arlopilot.groovy and publish.