Skip to content
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
33 changes: 11 additions & 22 deletions homeassistant/components/broadlink/sensor.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
"""Support for the Broadlink RM2 Pro (only temperature) and A1 devices."""
from datetime import timedelta
import binascii
import logging
import socket
from datetime import timedelta

import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
CONF_HOST, CONF_MAC, CONF_MONITORED_CONDITIONS, CONF_NAME, TEMP_CELSIUS,
CONF_TIMEOUT, CONF_UPDATE_INTERVAL, CONF_SCAN_INTERVAL,
CONF_UPDATE_INTERVAL_INVALIDATION_VERSION)
CONF_TIMEOUT, CONF_SCAN_INTERVAL)
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv

REQUIREMENTS = ['broadlink==0.9.0']

Expand All @@ -31,24 +30,14 @@
'noise': ['Noise', ' '],
}

PLATFORM_SCHEMA = vol.All(
PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEVICE_DEFAULT_NAME): vol.Coerce(str),
vol.Optional(CONF_MONITORED_CONDITIONS, default=[]):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Optional(CONF_UPDATE_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Required(CONF_HOST): cv.string,
vol.Required(CONF_MAC): cv.string,
vol.Optional(CONF_TIMEOUT, default=DEFAULT_TIMEOUT): cv.positive_int
}),
cv.deprecated(
CONF_UPDATE_INTERVAL,
replacement_key=CONF_SCAN_INTERVAL,
invalidation_version=CONF_UPDATE_INTERVAL_INVALIDATION_VERSION,
default=SCAN_INTERVAL
)
)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEVICE_DEFAULT_NAME): vol.Coerce(str),
vol.Optional(CONF_MONITORED_CONDITIONS, default=[]):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Required(CONF_HOST): cv.string,
vol.Required(CONF_MAC): cv.string,
vol.Optional(CONF_TIMEOUT, default=DEFAULT_TIMEOUT): cv.positive_int
})


def setup_platform(hass, config, add_entities, discovery_info=None):
Expand Down
65 changes: 27 additions & 38 deletions homeassistant/components/darksky/sensor.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
"""Support for Dark Sky weather service."""
from datetime import timedelta
import logging
from datetime import timedelta

import voluptuous as vol
from requests.exceptions import (
ConnectionError as ConnectError, HTTPError, Timeout)
import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
ATTR_ATTRIBUTION, CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE,
CONF_MONITORED_CONDITIONS, CONF_NAME, UNIT_UV_INDEX, CONF_UPDATE_INTERVAL,
CONF_SCAN_INTERVAL, CONF_UPDATE_INTERVAL_INVALIDATION_VERSION)
import homeassistant.helpers.config_validation as cv
CONF_MONITORED_CONDITIONS, CONF_NAME, UNIT_UV_INDEX, CONF_SCAN_INTERVAL)
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle

Expand Down Expand Up @@ -166,39 +165,29 @@

ALLOWED_UNITS = ['auto', 'si', 'us', 'ca', 'uk', 'uk2']

PLATFORM_SCHEMA = vol.All(
PLATFORM_SCHEMA.extend({
vol.Required(CONF_MONITORED_CONDITIONS):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Required(CONF_API_KEY): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_UNITS): vol.In(ALLOWED_UNITS),
vol.Optional(CONF_LANGUAGE,
default=DEFAULT_LANGUAGE): vol.In(LANGUAGE_CODES),
vol.Inclusive(
CONF_LATITUDE,
'coordinates',
'Latitude and longitude must exist together'
): cv.latitude,
vol.Inclusive(
CONF_LONGITUDE,
'coordinates',
'Latitude and longitude must exist together'
): cv.longitude,
vol.Optional(CONF_UPDATE_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_FORECAST):
vol.All(cv.ensure_list, [vol.Range(min=0, max=7)]),
vol.Optional(CONF_HOURLY_FORECAST):
vol.All(cv.ensure_list, [vol.Range(min=0, max=48)]),
}),
cv.deprecated(
CONF_UPDATE_INTERVAL,
replacement_key=CONF_SCAN_INTERVAL,
invalidation_version=CONF_UPDATE_INTERVAL_INVALIDATION_VERSION,
default=SCAN_INTERVAL
)
)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_MONITORED_CONDITIONS):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Required(CONF_API_KEY): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_UNITS): vol.In(ALLOWED_UNITS),
vol.Optional(CONF_LANGUAGE,
default=DEFAULT_LANGUAGE): vol.In(LANGUAGE_CODES),
vol.Inclusive(
CONF_LATITUDE,
'coordinates',
'Latitude and longitude must exist together'
): cv.latitude,
vol.Inclusive(
CONF_LONGITUDE,
'coordinates',
'Latitude and longitude must exist together'
): cv.longitude,
vol.Optional(CONF_FORECAST):
vol.All(cv.ensure_list, [vol.Range(min=0, max=7)]),
vol.Optional(CONF_HOURLY_FORECAST):
vol.All(cv.ensure_list, [vol.Range(min=0, max=48)]),
})


def setup_platform(hass, config, add_entities, discovery_info=None):
Expand Down
23 changes: 6 additions & 17 deletions homeassistant/components/fastdotcom/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.const import CONF_UPDATE_INTERVAL, CONF_SCAN_INTERVAL, \
CONF_UPDATE_INTERVAL_INVALIDATION_VERSION
from homeassistant.const import CONF_SCAN_INTERVAL
from homeassistant.helpers.discovery import async_load_platform
from homeassistant.helpers.dispatcher import dispatcher_send
from homeassistant.helpers.event import async_track_time_interval
Expand All @@ -23,21 +22,11 @@
DEFAULT_INTERVAL = timedelta(hours=1)

CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.All(
vol.Schema({
vol.Optional(CONF_UPDATE_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_MANUAL, default=False): cv.boolean,
}),
cv.deprecated(
CONF_UPDATE_INTERVAL,
replacement_key=CONF_SCAN_INTERVAL,
invalidation_version=CONF_UPDATE_INTERVAL_INVALIDATION_VERSION,
default=DEFAULT_INTERVAL
)
)
DOMAIN: vol.Schema({
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_MANUAL, default=False): cv.boolean,
})
}, extra=vol.ALLOW_EXTRA)


Expand Down
30 changes: 9 additions & 21 deletions homeassistant/components/fedex/sensor.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
"""Sensor for Fedex packages."""
from collections import defaultdict
import logging
from collections import defaultdict
from datetime import timedelta

import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (CONF_NAME, CONF_USERNAME, CONF_PASSWORD,
ATTR_ATTRIBUTION, CONF_UPDATE_INTERVAL,
CONF_SCAN_INTERVAL,
CONF_UPDATE_INTERVAL_INVALIDATION_VERSION)
ATTR_ATTRIBUTION, CONF_SCAN_INTERVAL)
from homeassistant.helpers.entity import Entity
from homeassistant.util import slugify
from homeassistant.util import Throttle
from homeassistant.util import slugify
from homeassistant.util.dt import now, parse_date
import homeassistant.helpers.config_validation as cv

REQUIREMENTS = ['fedexdeliverymanager==1.0.6']

Expand All @@ -30,21 +28,11 @@

SCAN_INTERVAL = timedelta(seconds=1800)

PLATFORM_SCHEMA = vol.All(
PLATFORM_SCHEMA.extend({
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Optional(CONF_NAME): cv.string,
vol.Optional(CONF_UPDATE_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
}),
cv.deprecated(
CONF_UPDATE_INTERVAL,
replacement_key=CONF_SCAN_INTERVAL,
invalidation_version=CONF_UPDATE_INTERVAL_INVALIDATION_VERSION,
default=SCAN_INTERVAL
)
)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Optional(CONF_NAME): cv.string,
})


def setup_platform(hass, config, add_entities, discovery_info=None):
Expand Down
30 changes: 10 additions & 20 deletions homeassistant/components/freedns/__init__.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
"""Integrate with FreeDNS Dynamic DNS service at freedns.afraid.org."""
import asyncio
from datetime import timedelta
import logging
from datetime import timedelta

import aiohttp
import async_timeout
import voluptuous as vol

from homeassistant.const import (CONF_URL, CONF_ACCESS_TOKEN,
CONF_UPDATE_INTERVAL, CONF_SCAN_INTERVAL,
CONF_UPDATE_INTERVAL_INVALIDATION_VERSION)
import homeassistant.helpers.config_validation as cv
from homeassistant.const import (
CONF_ACCESS_TOKEN, CONF_SCAN_INTERVAL, CONF_URL
)

_LOGGER = logging.getLogger(__name__)

Expand All @@ -22,22 +22,12 @@
UPDATE_URL = 'https://freedns.afraid.org/dynamic/update.php'

CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.All(
vol.Schema({
vol.Exclusive(CONF_URL, DOMAIN): cv.string,
vol.Exclusive(CONF_ACCESS_TOKEN, DOMAIN): cv.string,
vol.Optional(CONF_UPDATE_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
}),
cv.deprecated(
CONF_UPDATE_INTERVAL,
replacement_key=CONF_SCAN_INTERVAL,
invalidation_version=CONF_UPDATE_INTERVAL_INVALIDATION_VERSION,
default=DEFAULT_INTERVAL
)
)
DOMAIN: vol.Schema({
vol.Exclusive(CONF_URL, DOMAIN): cv.string,
vol.Exclusive(CONF_ACCESS_TOKEN, DOMAIN): cv.string,
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
}),
}, extra=vol.ALLOW_EXTRA)


Expand Down
31 changes: 10 additions & 21 deletions homeassistant/components/mythicbeastsdns/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
"""Support for Mythic Beasts Dynamic DNS service."""
from datetime import timedelta
import logging
from datetime import timedelta

import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.const import (
CONF_HOST, CONF_DOMAIN, CONF_PASSWORD, CONF_UPDATE_INTERVAL,
CONF_SCAN_INTERVAL, CONF_UPDATE_INTERVAL_INVALIDATION_VERSION
CONF_DOMAIN, CONF_HOST, CONF_PASSWORD, CONF_SCAN_INTERVAL
)
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import async_track_time_interval

REQUIREMENTS = ['mbddns==0.1.2']
Expand All @@ -21,23 +20,13 @@
DEFAULT_INTERVAL = timedelta(minutes=10)

CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.All(
vol.Schema({
vol.Required(CONF_DOMAIN): cv.string,
vol.Required(CONF_HOST): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Optional(CONF_UPDATE_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
}),
cv.deprecated(
CONF_UPDATE_INTERVAL,
replacement_key=CONF_SCAN_INTERVAL,
invalidation_version=CONF_UPDATE_INTERVAL_INVALIDATION_VERSION,
default=DEFAULT_INTERVAL
)
)
DOMAIN: vol.Schema({
vol.Required(CONF_DOMAIN): cv.string,
vol.Required(CONF_HOST): cv.string,
vol.Required(CONF_PASSWORD): cv.string,
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
})
}, extra=vol.ALLOW_EXTRA)


Expand Down
37 changes: 13 additions & 24 deletions homeassistant/components/speedtestdotnet/__init__.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
"""Support for testing internet speed via Speedtest.net."""
from datetime import timedelta
import logging
from datetime import timedelta

import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.const import (
CONF_MONITORED_CONDITIONS, CONF_SCAN_INTERVAL, CONF_UPDATE_INTERVAL,
CONF_UPDATE_INTERVAL_INVALIDATION_VERSION)
import homeassistant.helpers.config_validation as cv
CONF_MONITORED_CONDITIONS, CONF_SCAN_INTERVAL
)
from homeassistant.helpers.discovery import async_load_platform
from homeassistant.helpers.dispatcher import dispatcher_send
from homeassistant.helpers.event import async_track_time_interval

from .const import DATA_UPDATED, DOMAIN, SENSOR_TYPES

REQUIREMENTS = ['speedtest-cli==2.1.1']
Expand All @@ -25,25 +24,15 @@
DEFAULT_INTERVAL = timedelta(hours=1)

CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.All(
vol.Schema({
vol.Optional(CONF_SERVER_ID): cv.positive_int,
vol.Optional(CONF_UPDATE_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_MANUAL, default=False): cv.boolean,
vol.Optional(
CONF_MONITORED_CONDITIONS, default=list(SENSOR_TYPES)
): vol.All(cv.ensure_list, [vol.In(list(SENSOR_TYPES))])
}),
cv.deprecated(
CONF_UPDATE_INTERVAL,
replacement_key=CONF_SCAN_INTERVAL,
invalidation_version=CONF_UPDATE_INTERVAL_INVALIDATION_VERSION,
default=DEFAULT_INTERVAL
)
)
DOMAIN: vol.Schema({
vol.Optional(CONF_SERVER_ID): cv.positive_int,
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_MANUAL, default=False): cv.boolean,
vol.Optional(
CONF_MONITORED_CONDITIONS, default=list(SENSOR_TYPES)
): vol.All(cv.ensure_list, [vol.In(list(SENSOR_TYPES))])
})
}, extra=vol.ALLOW_EXTRA)


Expand Down
Loading