Skip to content

Commit

Permalink
Add away_mode_name to arlo alarm control panel (home-assistant#10796)
Browse files Browse the repository at this point in the history
* Update arlo.py

Include variables for custom away mode specification

* fixed line too long style problem

* fix trailing white space

* fix sending away mode command
  • Loading branch information
bcl1713 authored and MartinHjelmare committed Nov 26, 2017
1 parent ba43218 commit 3d5a9b5
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions homeassistant/components/alarm_control_panel/arlo.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
ARMED = 'armed'

CONF_HOME_MODE_NAME = 'home_mode_name'
CONF_AWAY_MODE_NAME = 'away_mode_name'

DEPENDENCIES = ['arlo']

Expand All @@ -31,6 +32,7 @@

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_HOME_MODE_NAME, default=ARMED): cv.string,
vol.Optional(CONF_AWAY_MODE_NAME, default=ARMED): cv.string,
})


Expand All @@ -43,19 +45,22 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
return

home_mode_name = config.get(CONF_HOME_MODE_NAME)
away_mode_name = config.get(CONF_AWAY_MODE_NAME)
base_stations = []
for base_station in data.base_stations:
base_stations.append(ArloBaseStation(base_station, home_mode_name))
base_stations.append(ArloBaseStation(base_station, home_mode_name,
away_mode_name))
async_add_devices(base_stations, True)


class ArloBaseStation(AlarmControlPanel):
"""Representation of an Arlo Alarm Control Panel."""

def __init__(self, data, home_mode_name):
def __init__(self, data, home_mode_name, away_mode_name):
"""Initialize the alarm control panel."""
self._base_station = data
self._home_mode_name = home_mode_name
self._away_mode_name = away_mode_name
self._state = None

@property
Expand Down Expand Up @@ -89,8 +94,8 @@ def async_alarm_disarm(self, code=None):

@asyncio.coroutine
def async_alarm_arm_away(self, code=None):
"""Send arm away command."""
self._base_station.mode = ARMED
"""Send arm away command. Uses custom mode."""
self._base_station.mode = self._away_mode_name

@asyncio.coroutine
def async_alarm_arm_home(self, code=None):
Expand Down Expand Up @@ -118,4 +123,6 @@ def _get_state_from_mode(self, mode):
return STATE_ALARM_DISARMED
elif mode == self._home_mode_name:
return STATE_ALARM_ARMED_HOME
elif mode == self._away_mode_name:
return STATE_ALARM_ARMED_AWAY
return None

0 comments on commit 3d5a9b5

Please sign in to comment.