Setting Up Arlo Cameras in Home Assistant

Setting Up Arlo Cameras in Home Assistant

If you are using Arlo Cameras and running Home Assistant you need the Arlo Camera Integration from the Home Assistant Community Store. 

Setting it up is easy, and it really improves the Home Assistant integration. This guide is really meant to be a companion to the video I posted over on Youtube

So jump over to Youtube and watch it if you haven’t already to make sure you have the Home Assistant Community store and the Arlo Integration installed. 

Once you have both installed and you are ready to configure we can get started. 

The first thing you will need to do is jump into your configuration.yaml file. Unfortunately, you can’t set up this integration via the UI yet. 

The first thing you need to add is the AARLO platform. Pay attention to the spelling. There is a built-in Arlo integration and so the AARLO one is the HACS one. 

aarlo:
  host: https://my.arlo.com
  username: !secret arlo_user
  password: !secret arlo_pass
  db_motion_time: 30
  db_ding_time: 10
  recent_time: 10
  last_format: '%m-%d %H:%M'
  refresh_devices_every: 2
  verbose_debug: True
  tfa_host: 'imap.gmail.com'
  tfa_username: !secret GV_USER
  tfa_password: !secret GV_PASS 

This sets up the main part of the integration. 

Username and password will be the login you use for the Arlo app on your phone. I would create a new account and share your devices with it. Otherwise every time you login into your app you will kick Home Assistant out and vice versa. 

The other settings here I just grabbed from the integration docs. The important part is the lines that start with tfa. This is for all of you using two-factor authentication. 

Arlo sends an email with a code when using tfa. So if you are sending that to a Gmail account you can simply provide the login to the Gmail account and the integration will log in and grab that code. 

You will also need a Camera section. This can go in your configuration.yaml. This part sets up the actual camera that can be displayed.

camera:
  - platform: aarlo
    ffmpeg_arguments: '-pred 1 -q:v 2'

The next part you need is the sensors. 

This integration provides a ton of sensors. Both sensor sensors and binary sensors. 

If you are using a single file for your config then these go under the respective heading. 

sensor:
  - platform: aarlo
    monitored_conditions:
    - last_capture
    - total_cameras
    - battery_level
    - captured_today
    - signal_strength

If you are using a sensor.yaml, then omit the sensor: line

Likewise, for binary sensors, omit the binary_sensor: line if you are putting this is in a binary_sensor.yaml file. 

binary_sensor:
  - platform: aarlo
    monitored_conditions:
    - motion
    - sound
    - ding

And if you want to be able to automate the mode changes then you will need the alarm panel configuration as well. 

# Arlo Integration
alarm_control_panel:
  # Uses the custom arlo integration found in HACS
  - platform: aarlo
    home_mode_name: home
    away_mode_name: Armed

Home mode name should be the name of the mode you want to use when you are home. And away mode for when you are away. 

I created a home mode that changes which cameras are watching and recording for motion. The names of the modes you use here need to match the names in the Arlo app. And I believe the names are case-sensitive. 

After you get the configuration updated you will need to reboot. 

After that, we can move to the fun stuff. 

Automations

First up, automating the mode changes. I have the camera mode change with my security system. When my Home Assistant security system is Armed, then my Arlo cameras are armed. And when it is disarmed, Arlo switches to home mode. 

To do that I leverage the alarm_control_panel.aarlo_set_mode service. 

To change the mode to Armed just drop the following action in the automation of your choosing:

- service: alarm_control_panel.aarlo_set_mode
  data: 
    entity_id: alarm_control_panel.aarlo_ah_base_station
    mode: 'Armed'

Just change the entity id to match your Arlo control panel. And set the mode to the one you want to use. Anytime you want to change the mode this is the action you use. 

If you want Home Assistant to notify you of motion then you will want to use the binary sensor. 

For example, you could do something like this:

- id: motion_detected_front_door
    alias: Motion Detected Front Door
    trigger:
    - platform: state
      entity_id: binary_sensor.aarlo_motion_front_door
      from: 'off'
      to: 'on'
    action:
    - service: script.status_annc
      data:
        who: '{{ states.sensor.room_presence.state }}'
        call_interuption: 1
        speech_message: >
          {{ [
           "I have detected someone at the ",
            "Someone appears to be at the ",
            "There is a person at the ",
            "My sensors are picking up presence at the ",
            "We appear to have a visitor at the ",
            "My sensors have detected a meat popsicle at the "
           ] | random }}
           {{ trigger.to_state.attributes.friendly_name }}.      
    - delay:
        minutes: 2
    initial_state: true

Here I am triggering on the motion at the front door, and then having home assistant make a TTS announcement. 

I have the delay on there to keep the announcement from happening too quickly because people tend to ring the doorbell and then stand around before giving up and leaving. 

But you have quite a few other sensors you could leverage as well. Just drop them in your automations as needed. 

Lovelace

If you will want to add these cameras to your Lovelace UI. I suggest using the Arlo Custom Glance card that comes with integration. It provides a lot of additional features you don’t get with the built-in integration. 

To use the custom card simply switch to edit mode in your Lovelace UI and add a manual card. Then copy and paste in the YAML:

entity: camera.aarlo_front_door
image_click: play
name: Front Door
show:
  - motion
  - sound
  - snapshot
  - battery_level
  - signal_strength
  - captured_today
  - image_date
top_date: false
top_status: false
top_title: false
type: custom:aarlo-glance

The only thing you need to edit is the name of the entity you want to display. 

This card allows you to click on it and see the live feed as well as navigate the library of recorded videos and watch those as well. 

Cool Stuff

AS you may or Amy not know, I’m not a fan of looking at dashboards, so I tend to look for solutions where Home Assistant can let me know when my attention is needed. 

And one of those ways is by keeping track of how many times the motion sensor has been tripped. 

To do that I set up a history stats sensor:

  # For tracking number of times motion is detected 
  # at front door in last 7 days       
  - platform: history_stats
    name: Front Door Motion
    entity_id: binary_sensor.aarlo_motion_front_door
    state: 'on'
    type: count 
    end: '{{ now() }}'
    duration:
      days: 7

You would drop this under the sensor: heading or in a sensor.yaml file. Or even a package if you use packages. 

This sensor grabs a count of every time the binary motion sensor switches to on for the last seven days. 

But that isn’t all that useful. So I use the Utility Meter integration to get me a daily sensor.

utility_meter:
  # Use the 7 day history of motion at front door
  # to get daily motion.
  daily_frontdoor_motion:
    source: sensor.front_door_motion
    cycle: daily
    

This sensor gets me a live daily count each day and resets at midnight. That way I know exactly how many times motion was detected during the day. Which is perfect for a morning announcement or briefing. 

For example, if Home Assistant lets me know when I wake up that there was motion 7 times from midnight until 7 am then I know I need to go look at the recorded video. 

And that is when the house starts to feel smart. Anyway, that’s all I have for this post. 

Until next time, Automate the Boring Stuff.

Mastodon