8000 Arlo clean-up by fabaff · Pull Request #9725 · home-assistant/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Arlo clean-up #9725

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 7, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 18 additions & 13 deletions homeassistant/components/alarm_control_panel/arlo.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
"""
This component provides HA alarm_control_panel support for Arlo.
Support for Arlo Alarm Control Panels.

For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/alarm_control_panel.arlo/
"""
import asyncio
import logging

import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.components.alarm_control_panel import (
AlarmControlPanel, PLATFORM_SCHEMA)
from homeassistant.components.arlo import (DATA_ARLO, CONF_ATTRIBUTION)
from homeassistant.components.alarm_control_panel import (AlarmControlPanel,
PLATFORM_SCHEMA)
from homeassistant.const import (ATTR_ATTRIBUTION, STATE_ALARM_ARMED_AWAY,
STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED)
from homeassistant.helpers import config_validation as cv

DEPENDENCIES = ['arlo']
from homeassistant.const import (
ATTR_ATTRIBUTION, STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME,
STATE_ALARM_DISARMED)

_LOGGER = logging.getLogger(__name__)

ARMED = 'armed'

CONF_HOME_MODE_NAME = 'home_mode_name'

DEPENDENCIES = ['arlo']

DISARMED = 'disarmed'

ICON = 'mdi:security'
ARMED = "armed"
DISARMED = "disarmed"

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_HOME_MODE_NAME, default=ARMED): cv.string,
Expand All @@ -31,7 +36,7 @@

@asyncio.coroutine
def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
"""Set up Arlo Base Stations."""
"""Set up the Arlo Alarm Control Panels."""
data = hass.data[DATA_ARLO]

if not data.base_stations:
Expand All @@ -45,7 +50,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):


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

def __init__(self, data, home_mode_name):
"""Initialize the alarm control panel."""
Expand Down Expand Up @@ -107,7 +112,7 @@ def device_state_attributes(self):
}

def _get_state_from_mode(self, mode):
"""Convert Arlo mode to HA state."""
"""Convert Arlo mode to Home Assistant state."""
if mode == ARMED:
return STATE_ALARM_ARMED_AWAY
elif mode == DISARMED:
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/arlo.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
This component provides basic support for Netgear Arlo IP cameras.
This component provides support for Netgear Arlo IP cameras.

For more details about this component, please refer to the documentation at
https://home-assistant.io/components/arlo/
Expand All @@ -23,7 +23,7 @@
DOMAIN = 'arlo'

NOTIFICATION_ID = 'arlo_notification'
NOTIFICATION_TITLE = 'Arlo Camera Setup'
NOTIFICATION_TITLE = 'Arlo Component Setup'

CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.Schema({
Expand Down
43 changes: 18 additions & 25 deletions homeassistant/components/camera/arlo.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
This component provides basic support for Netgear Arlo IP cameras.
Support for Netgear Arlo IP cameras.

For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/camera.arlo/
Expand All @@ -9,17 +9,17 @@

import voluptuous as vol

from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_aiohttp_proxy_stream
import homeassistant.helpers.config_validation as cv
from homeassistant.components.arlo import DEFAULT_BRAND, DATA_ARLO
from homeassistant.components.camera import Camera, PLATFORM_SCHEMA
from homeassistant.components.ffmpeg import DATA_FFMPEG
from homeassistant.const import ATTR_BATTERY_LEVEL

DEPENDENCIES = ['arlo', 'ffmpeg']
from homeassistant.helpers.aiohttp_client import async_aiohttp_proxy_stream

_LOGGER = logging.getLogger(__name__)

ARLO_MODE_ARMED = 'armed'
ARLO_MODE_DISARMED = 'disarmed'
ATTR_BRIGHTNESS = 'brightness'
ATTR_FLIPPED = 'flipped'
ATTR_MIRRORED = 'mirrored'
Expand All @@ -30,8 +30,7 @@

CONF_FFMPEG_ARGUMENTS = 'ffmpeg_arguments'

ARLO_MODE_ARMED = 'armed'
ARLO_MODE_DISARMED = 'disarmed'
DEPENDENCIES = ['arlo', 'ffmpeg']

POWERSAVE_MODE_MAPPING = {
1: 'best_battery_life',
Expand Down Expand Up @@ -100,32 +99,26 @@ def name(self):
def device_state_attributes(self):
"""Return the state attributes."""
return {
ATTR_BATTERY_LEVEL:
self._camera.get_battery_level,
ATTR_BRIGHTNESS:
self._camera.get_brightness,
ATTR_FLIPPED:
self._camera.get_flip_state,
ATTR_MIRRORED:
self._camera.get_mirror_state,
ATTR_BATTERY_LEVEL: self._camera.get_battery_level,
ATTR_BRIGHTNESS: self._camera.get_brightness,
ATTR_FLIPPED: self._camera.get_flip_state,
ATTR_MIRRORED: self._camera.get_mirror_state,
ATTR_MOTION_SENSITIVITY:
self._camera.get_motion_detection_sensitivity,
self._camera.get_motion_detection_sensitivity,
ATTR_POWER_SAVE_MODE:
POWERSAVE_MODE_MAPPING[self._camera.get_powersave_mode],
ATTR_SIGNAL_STRENGTH:
self._camera.get_signal_strength,
ATTR_UNSEEN_VIDEOS:
self._camera.unseen_videos
POWERSAVE_MODE_MAPPING[self._camera.get_powersave_mode],
ATTR_SIGNAL_STRENGTH: self._camera.get_signal_strength,
ATTR_UNSEEN_VIDEOS: self._camera.unseen_videos
}

@property
def model(self):
"""Camera model."""
"""Return the camera model."""
return self._camera.model_id

@property
def brand(self):
"""Camera brand."""
"""Return the camera brand."""
return DEFAULT_BRAND

@property
Expand All @@ -135,15 +128,15 @@ def should_poll(self):

@property
def motion_detection_enabled(self):
"""Camera Motion Detection Status."""
"""Return the camera motion detection status."""
return self._motion_status

def set_base_station_mode(self, mode):
"""Set the mode in the base station."""
# Get the list of base stations identified by library
base_stations = self.hass.data[DATA_ARLO].base_stations

# Some Arlo cameras does not have basestation
# Some Arlo cameras does not have base station
# So check if there is base station detected first
# if yes, then choose the primary base station
# Set the mode on the chosen base station
Expand Down
26 changes: 11 additions & 15 deletions homeassistant/components/sensor/arlo.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,21 @@
import asyncio
import logging
from datetime import timedelta

import voluptuous as vol

from homeassistant.helpers import config_validation as cv
import homeassistant.helpers.config_validation as cv
from homeassistant.components.arlo import (
CONF_ATTRIBUTION, DEFAULT_BRAND, DATA_ARLO)

from homeassistant.const import (
ATTR_ATTRIBUTION, CONF_MONITORED_CONDITIONS)
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (ATTR_ATTRIBUTION, CONF_MONITORED_CONDITIONS)
from homeassistant.helpers.entity import Entity

_LOGGER = logging.getLogger(__name__)

DEPENDENCIES = ['arlo']

_LOGGER = logging.getLogger(__name__)
SCAN_INTERVAL = timedelta(seconds=90)

# sensor_type [ description, unit, icon ]
SENSOR_TYPES = {
Expand All @@ -35,8 +36,6 @@
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
})

SCAN_INTERVAL = timedelta(seconds=90)


@asyncio.coroutine
def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
Expand All @@ -48,18 +47,15 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
sensors = []
for sensor_type in config.get(CONF_MONITORED_CONDITIONS):
if sensor_type == 'total_cameras':
sensors.append(ArloSensor(hass,
SENSOR_TYPES[sensor_type][0],
arlo,
sensor_type))
sensors.append(ArloSensor(
hass, SENSOR_TYPES[sensor_type][0], arlo, sensor_type))
else:
for camera in arlo.cameras:
name = '{0} {1}'.format(SENSOR_TYPES[sensor_type][0],
7A47 camera.name)
name = '{0} {1}'.format(
SENSOR_TYPES[sensor_type][0], camera.name)
sensors.append(ArloSensor(hass, name, camera, sensor_type))

async_add_devices(sensors, True)
return True


class ArloSensor(Entity):
Expand Down Expand Up @@ -120,7 +116,7 @@ def update(self):

@property
def device_state_attributes(self):
"""Return the state attributes."""
"""Return the device state attributes."""
attrs = {}

attrs[ATTR_ATTRIBUTION] = CONF_ATTRIBUTION
Expand Down
0