Clean-up, ordering, constants, and extend of schema (#2903)

* Clean-up, ordering, constants, and extend of schema

* Put REQUIREMENTS back and re-add line breaks

* Clean-up, ordering, constants, and extend of schema

* Extend platform
This commit is contained in:
Fabian Affolter 2016-08-21 00:40:16 +02:00 committed by Paulus Schoutsen
parent 8fc27cbe43
commit e8c6e4d561
28 changed files with 232 additions and 228 deletions

View File

@ -15,18 +15,19 @@ from homeassistant.helpers.entity import Entity
REQUIREMENTS = ['py-cpuinfo==0.2.3'] REQUIREMENTS = ['py-cpuinfo==0.2.3']
DEFAULT_NAME = 'CPU speed' _LOGGER = logging.getLogger(__name__)
ATTR_VENDOR = 'Vendor ID'
ATTR_BRAND = 'Brand' ATTR_BRAND = 'Brand'
ATTR_HZ = 'GHz Advertised' ATTR_HZ = 'GHz Advertised'
ATTR_VENDOR = 'Vendor ID'
DEFAULT_NAME = 'CPU speed'
ICON = 'mdi:pulse' ICON = 'mdi:pulse'
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
}) })
_LOGGER = logging.getLogger(__name__)
# pylint: disable=unused-variable # pylint: disable=unused-variable
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):

View File

@ -17,20 +17,20 @@ import homeassistant.util.dt as dt_util
REQUIREMENTS = ['schiene==0.17'] REQUIREMENTS = ['schiene==0.17']
CONF_START = 'from' _LOGGER = logging.getLogger(__name__)
CONF_DESTINATION = 'to' CONF_DESTINATION = 'to'
CONF_START = 'from'
ICON = 'mdi:train' ICON = 'mdi:train'
_LOGGER = logging.getLogger(__name__) MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=120)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_DESTINATION): cv.string, vol.Required(CONF_DESTINATION): cv.string,
vol.Required(CONF_START): cv.string, vol.Required(CONF_START): cv.string,
}) })
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=120)
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Deutsche Bahn Sensor.""" """Setup the Deutsche Bahn Sensor."""

View File

@ -20,9 +20,14 @@ from homeassistant.util import Throttle
REQUIREMENTS = ['dweepy==0.2.0'] REQUIREMENTS = ['dweepy==0.2.0']
_LOGGER = logging.getLogger(__name__)
CONF_DEVICE = 'device' CONF_DEVICE = 'device'
DEFAULT_NAME = 'Dweet.io Sensor' DEFAULT_NAME = 'Dweet.io Sensor'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_DEVICE): cv.string, vol.Required(CONF_DEVICE): cv.string,
vol.Required(CONF_VALUE_TEMPLATE): cv.template, vol.Required(CONF_VALUE_TEMPLATE): cv.template,
@ -30,11 +35,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string, vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
}) })
_LOGGER = logging.getLogger(__name__)
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
# pylint: disable=unused-variable, too-many-function-args # pylint: disable=unused-variable, too-many-function-args
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):

View File

@ -9,7 +9,8 @@ from datetime import timedelta
import voluptuous as vol import voluptuous as vol
from homeassistant.const import (CONF_PLATFORM, CONF_NAME) from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
@ -18,33 +19,33 @@ REQUIREMENTS = ['fixerio==0.1.1']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "Exchange rate"
ICON = 'mdi:currency'
CONF_BASE = 'base' CONF_BASE = 'base'
CONF_TARGET = 'target' CONF_TARGET = 'target'
STATE_ATTR_BASE = 'Base currency' DEFAULT_BASE = 'USD'
STATE_ATTR_TARGET = 'Target currency' DEFAULT_NAME = 'Exchange rate'
STATE_ATTR_EXCHANGE_RATE = 'Exchange rate'
PLATFORM_SCHEMA = vol.Schema({ ICON = 'mdi:currency'
vol.Required(CONF_PLATFORM): 'fixer',
vol.Optional(CONF_BASE): cv.string,
vol.Optional(CONF_NAME): cv.string,
vol.Required(CONF_TARGET): cv.string,
})
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(days=1) MIN_TIME_BETWEEN_UPDATES = timedelta(days=1)
STATE_ATTR_BASE = 'Base currency'
STATE_ATTR_EXCHANGE_RATE = 'Exchange rate'
STATE_ATTR_TARGET = 'Target currency'
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_TARGET): cv.string,
vol.Optional(CONF_BASE, default=DEFAULT_BASE): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
})
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Fixer.io sensor.""" """Setup the Fixer.io sensor."""
from fixerio import (Fixerio, exceptions) from fixerio import (Fixerio, exceptions)
name = config.get(CONF_NAME, DEFAULT_NAME) name = config.get(CONF_NAME)
base = config.get(CONF_BASE, 'USD') base = config.get(CONF_BASE)
target = config.get(CONF_TARGET) target = config.get(CONF_TARGET)
try: try:

View File

@ -17,9 +17,11 @@ from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
DEFAULT_NAME = 'Glances' _LOGGER = logging.getLogger(__name__)
DEFAULT_HOST = 'localhost'
_RESOURCE = 'api/2/all' _RESOURCE = 'api/2/all'
DEFAULT_HOST = 'localhost'
DEFAULT_NAME = 'Glances'
DEFAULT_PORT = '61208' DEFAULT_PORT = '61208'
SENSOR_TYPES = { SENSOR_TYPES = {
@ -47,7 +49,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]), vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
}) })
_LOGGER = logging.getLogger(__name__)
# Return cached results if last scan was less then this time ago. # Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60) MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)

View File

@ -20,19 +20,19 @@ import homeassistant.helpers.config_validation as cv
import homeassistant.helpers.location as location import homeassistant.helpers.location as location
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
_LOGGER = logging.getLogger(__name__)
REQUIREMENTS = ['googlemaps==2.4.4'] REQUIREMENTS = ['googlemaps==2.4.4']
# Return cached results if last update was less then this time ago _LOGGER = logging.getLogger(__name__)
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)
CONF_DESTINATION = 'destination'
CONF_MODE = 'mode'
CONF_OPTIONS = 'options'
CONF_ORIGIN = 'origin'
CONF_TRAVEL_MODE = 'travel_mode'
DEFAULT_NAME = 'Google Travel Time' DEFAULT_NAME = 'Google Travel Time'
CONF_ORIGIN = 'origin'
CONF_DESTINATION = 'destination' MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)
CONF_TRAVEL_MODE = 'travel_mode'
CONF_OPTIONS = 'options'
CONF_MODE = 'mode'
ALL_LANGUAGES = ['ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es', ALL_LANGUAGES = ['ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es',
'eu', 'fa', 'fi', 'fr', 'gl', 'gu', 'hi', 'hr', 'hu', 'id', 'eu', 'fa', 'fi', 'fr', 'gl', 'gu', 'hi', 'hr', 'hu', 'id',
@ -41,10 +41,10 @@ ALL_LANGUAGES = ['ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es',
'sr', 'sv', 'ta', 'te', 'th', 'tl', 'tr', 'uk', 'vi', 'sr', 'sv', 'ta', 'te', 'th', 'tl', 'tr', 'uk', 'vi',
'zh-CN', 'zh-TW'] 'zh-CN', 'zh-TW']
TRANSIT_PREFS = ['less_walking', 'fewer_transfers']
TRAVEL_MODE = ['driving', 'walking', 'bicycling', 'transit']
AVOID = ['tolls', 'highways', 'ferries', 'indoor'] AVOID = ['tolls', 'highways', 'ferries', 'indoor']
TRANSIT_PREFS = ['less_walking', 'fewer_transfers']
TRANSPORT_TYPE = ['bus', 'subway', 'train', 'tram', 'rail'] TRANSPORT_TYPE = ['bus', 'subway', 'train', 'tram', 'rail']
TRAVEL_MODE = ['driving', 'walking', 'bicycling', 'transit']
TRAVEL_MODEL = ['best_guess', 'pessimistic', 'optimistic'] TRAVEL_MODEL = ['best_guess', 'pessimistic', 'optimistic']
UNITS = ['metric', 'imperial'] UNITS = ['metric', 'imperial']

View File

@ -8,39 +8,39 @@ import logging
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
ATTR_LATITUDE, ATTR_LONGITUDE, STATE_UNKNOWN, CONF_HOST, CONF_PORT,
CONF_NAME)
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.const import (ATTR_LATITUDE, ATTR_LONGITUDE, STATE_UNKNOWN,
CONF_HOST, CONF_PORT, CONF_PLATFORM,
CONF_NAME)
REQUIREMENTS = ['gps3==0.33.2'] REQUIREMENTS = ['gps3==0.33.2']
DEFAULT_NAME = 'GPS' _LOGGER = logging.getLogger(__name__)
ATTR_CLIMB = 'climb'
ATTR_ELEVATION = 'elevation'
ATTR_GPS_TIME = 'gps_time'
ATTR_MODE = 'mode'
ATTR_SPEED = 'speed'
DEFAULT_HOST = 'localhost' DEFAULT_HOST = 'localhost'
DEFAULT_NAME = 'GPS'
DEFAULT_PORT = 2947 DEFAULT_PORT = 2947
ATTR_GPS_TIME = 'gps_time' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
ATTR_ELEVATION = 'elevation' vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
ATTR_SPEED = 'speed' vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string,
ATTR_CLIMB = 'climb' vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
ATTR_MODE = 'mode'
PLATFORM_SCHEMA = vol.Schema({
vol.Required(CONF_PLATFORM): 'gpsd',
vol.Optional(CONF_NAME): cv.string,
vol.Optional(CONF_HOST): cv.string,
vol.Optional(CONF_PORT): cv.string,
}) })
_LOGGER = logging.getLogger(__name__)
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the GPSD component.""" """Setup the GPSD component."""
name = config.get(CONF_NAME, DEFAULT_NAME) name = config.get(CONF_NAME)
host = config.get(CONF_HOST, DEFAULT_HOST) host = config.get(CONF_HOST)
port = config.get(CONF_PORT, DEFAULT_PORT) port = config.get(CONF_PORT)
# Will hopefully be possible with the next gps3 update # Will hopefully be possible with the next gps3 update
# https://github.com/wadda/gps3/issues/11 # https://github.com/wadda/gps3/issues/11

View File

@ -1,27 +1,31 @@
""" """
Support for information from HP ILO sensors. Support for information from HP ILO sensors.
This allows monitoring of HP server information For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/sensor.sensor.hp_ilo/
""" """
import logging import logging
from datetime import timedelta from datetime import timedelta
import voluptuous as vol import voluptuous as vol
from homeassistant.const import ( from homeassistant.const import (
CONF_HOST, CONF_PORT, CONF_USERNAME, CONF_PASSWORD, CONF_NAME, CONF_HOST, CONF_PORT, CONF_USERNAME, CONF_PASSWORD, CONF_NAME,
CONF_MONITORED_VARIABLES, CONF_MONITORED_VARIABLES, STATE_ON, STATE_OFF)
STATE_ON, STATE_OFF)
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['python-hpilo==3.8'] REQUIREMENTS = ['python-hpilo==3.8']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = 'HP ILO' DEFAULT_NAME = 'HP ILO'
DEFAULT_PORT = 443 DEFAULT_PORT = 443
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=300)
# Each sensor is defined as follows: 'Descriptive name', 'python-ilo function' # Each sensor is defined as follows: 'Descriptive name', 'python-ilo function'
SENSOR_TYPES = { SENSOR_TYPES = {
'server_name': ['Server Name', 'get_server_name'], 'server_name': ['Server Name', 'get_server_name'],
@ -45,12 +49,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_MONITORED_VARIABLES, default=['server_name']): vol.Optional(CONF_MONITORED_VARIABLES, default=['server_name']):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]), vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.positive_int, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
}) })
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=300)
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
@ -82,7 +83,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
class HpIloSensor(Entity): class HpIloSensor(Entity):
"""Represents an HP ILO sensor.""" """Representation a HP ILO sensor."""
def __init__(self, hp_ilo_data, sensor_type, client_name): def __init__(self, hp_ilo_data, sensor_type, client_name):
"""Initialize the sensor.""" """Initialize the sensor."""
@ -167,4 +168,4 @@ class HpIloData(object):
port=self._port) port=self._port)
except (hpilo.IloError, hpilo.IloCommunicationError, except (hpilo.IloError, hpilo.IloCommunicationError,
hpilo.IloLoginFailed) as error: hpilo.IloLoginFailed) as error:
raise ValueError("Unable to init HP ILO. - %s", error) raise ValueError("Unable to init HP ILO, %s", error)

View File

@ -5,27 +5,25 @@ For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/sensor.imap/ https://home-assistant.io/components/sensor.imap/
""" """
import logging import logging
import voluptuous as vol import voluptuous as vol
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
CONF_NAME, CONF_PORT, CONF_USERNAME, CONF_PASSWORD)
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
ICON = 'mdi:email-outline'
CONF_USER = "user"
CONF_PASSWORD = "password"
CONF_SERVER = "server" CONF_SERVER = "server"
CONF_PORT = "port"
CONF_NAME = "name"
DEFAULT_PORT = 993 DEFAULT_PORT = 993
ICON = 'mdi:email-outline'
PLATFORM_SCHEMA = vol.Schema({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required('platform'): 'imap',
vol.Optional(CONF_NAME): cv.string, vol.Optional(CONF_NAME): cv.string,
vol.Required(CONF_USER): cv.string, vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_PASSWORD): cv.string,
vol.Required(CONF_SERVER): cv.string, vol.Required(CONF_SERVER): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
@ -35,10 +33,10 @@ PLATFORM_SCHEMA = vol.Schema({
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the IMAP platform.""" """Setup the IMAP platform."""
sensor = ImapSensor(config.get(CONF_NAME, None), sensor = ImapSensor(config.get(CONF_NAME, None),
config.get(CONF_USER), config.get(CONF_USERNAME),
config.get(CONF_PASSWORD), config.get(CONF_PASSWORD),
config.get(CONF_SERVER), config.get(CONF_SERVER),
config.get(CONF_PORT, DEFAULT_PORT)) config.get(CONF_PORT))
if sensor.connection: if sensor.connection:
add_devices([sensor]) add_devices([sensor])

View File

@ -9,7 +9,8 @@ import logging
import requests import requests
from homeassistant.components.sensor import DOMAIN from homeassistant.components.sensor import DOMAIN
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, TEMP_CELSIUS from homeassistant.const import (
CONF_PASSWORD, CONF_USERNAME, TEMP_CELSIUS, STATE_ON, STATE_OFF, CONF_HOST)
from homeassistant.helpers import validate_config from homeassistant.helpers import validate_config
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -17,8 +18,6 @@ REQUIREMENTS = ['mficlient==0.3.0']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
STATE_ON = 'on'
STATE_OFF = 'off'
DIGITS = { DIGITS = {
'volts': 1, 'volts': 1,
'amps': 1, 'amps': 1,
@ -40,14 +39,14 @@ CONF_VERIFY_TLS = 'verify_tls'
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup mFi sensors.""" """Setup mFi sensors."""
if not validate_config({DOMAIN: config}, if not validate_config({DOMAIN: config},
{DOMAIN: ['host', {DOMAIN: [CONF_HOST,
CONF_USERNAME, CONF_USERNAME,
CONF_PASSWORD]}, CONF_PASSWORD]},
_LOGGER): _LOGGER):
_LOGGER.error('A host, username, and password are required') _LOGGER.error('A host, username, and password are required')
return False return False
host = config.get('host') host = config.get(CONF_HOST)
username = config.get(CONF_USERNAME) username = config.get(CONF_USERNAME)
password = config.get(CONF_PASSWORD) password = config.get(CONF_PASSWORD)
use_tls = bool(config.get(CONF_TLS, True)) use_tls = bool(config.get(CONF_TLS, True))

View File

@ -9,7 +9,8 @@ import logging
import voluptuous as vol import voluptuous as vol
import homeassistant.components.mqtt as mqtt import homeassistant.components.mqtt as mqtt
from homeassistant.const import CONF_NAME, CONF_VALUE_TEMPLATE, STATE_UNKNOWN from homeassistant.const import (
CONF_NAME, CONF_VALUE_TEMPLATE, STATE_UNKNOWN, CONF_UNIT_OF_MEASUREMENT)
from homeassistant.components.mqtt import CONF_STATE_TOPIC, CONF_QOS from homeassistant.components.mqtt import CONF_STATE_TOPIC, CONF_QOS
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -19,8 +20,6 @@ _LOGGER = logging.getLogger(__name__)
DEPENDENCIES = ['mqtt'] DEPENDENCIES = ['mqtt']
CONF_UNIT_OF_MEASUREMENT = 'unit_of_measurement'
DEFAULT_NAME = "MQTT Sensor" DEFAULT_NAME = "MQTT Sensor"
PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({
@ -30,9 +29,9 @@ PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices_callback, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup MQTT Sensor.""" """Setup MQTT Sensor."""
add_devices_callback([MqttSensor( add_devices([MqttSensor(
hass, hass,
config[CONF_NAME], config[CONF_NAME],
config[CONF_STATE_TOPIC], config[CONF_STATE_TOPIC],

View File

@ -18,9 +18,13 @@ from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = 'NZBGet' DEFAULT_NAME = 'NZBGet'
DEFAULT_PORT = 6789 DEFAULT_PORT = 6789
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=5)
SENSOR_TYPES = { SENSOR_TYPES = {
'article_cache': ['ArticleCacheMB', 'Article Cache', 'MB'], 'article_cache': ['ArticleCacheMB', 'Article Cache', 'MB'],
'average_download_rate': ['AverageDownloadRate', 'Average Speed', 'MB/s'], 'average_download_rate': ['AverageDownloadRate', 'Average Speed', 'MB/s'],
@ -39,15 +43,10 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]), vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PASSWORD): cv.string, vol.Optional(CONF_PASSWORD): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
vol.Optional(CONF_USERNAME): cv.string, vol.Optional(CONF_USERNAME): cv.string,
}) })
_LOGGER = logging.getLogger(__name__)
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=5)
# pylint: disable=unused-argument, too-many-locals # pylint: disable=unused-argument, too-many-locals
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):

View File

@ -16,14 +16,16 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
_RESOURCE = 'https://openexchangerates.org/api/latest.json'
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
_RESOURCE = 'https://openexchangerates.org/api/latest.json'
CONF_BASE = 'base' CONF_BASE = 'base'
CONF_QUOTE = 'quote' CONF_QUOTE = 'quote'
DEFAULT_NAME = 'Exchange Rate Sensor'
DEFAULT_BASE = 'USD' DEFAULT_BASE = 'USD'
DEFAULT_NAME = 'Exchange Rate Sensor'
MIN_TIME_BETWEEN_UPDATES = timedelta(hours=2)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_API_KEY): cv.string, vol.Required(CONF_API_KEY): cv.string,
@ -32,9 +34,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
}) })
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(hours=2)
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Open Exchange Rates sensor.""" """Setup the Open Exchange Rates sensor."""

View File

@ -8,51 +8,58 @@ from datetime import timedelta
import logging import logging
import voluptuous as vol import voluptuous as vol
from homeassistant.const import (CONF_NAME, CONF_PLATFORM, CONF_USERNAME, from homeassistant.components.switch import PLATFORM_SCHEMA
CONF_PASSWORD, CONF_HOST, CONF_PORT) from homeassistant.const import (
CONF_NAME, CONF_USERNAME, CONF_PASSWORD, CONF_HOST, CONF_PORT)
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['plexapi==2.0.2'] REQUIREMENTS = ['plexapi==2.0.2']
CONF_SERVER = 'server'
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=1)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
PLATFORM_SCHEMA = vol.Schema({ CONF_SERVER = 'server'
vol.Required(CONF_PLATFORM): 'plex',
vol.Optional(CONF_USERNAME): cv.string, DEFAULT_HOST = 'localhost'
DEFAULT_NAME = 'Plex'
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=1)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PASSWORD): cv.string, vol.Optional(CONF_PASSWORD): cv.string,
vol.Optional(CONF_SERVER): cv.string,
vol.Optional(CONF_NAME, default='Plex'): cv.string,
vol.Optional(CONF_HOST, default='localhost'): cv.string,
vol.Optional(CONF_PORT, default=32400): cv.port, vol.Optional(CONF_PORT, default=32400): cv.port,
vol.Optional(CONF_SERVER): cv.string,
vol.Optional(CONF_USERNAME): cv.string,
}) })
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Demo sensors.""" """Setup the Plex sensor."""
name = config.get(CONF_NAME) name = config.get(CONF_NAME)
plex_user = config.get(CONF_USERNAME) plex_user = config.get(CONF_USERNAME)
plex_password = config.get(CONF_PASSWORD) plex_password = config.get(CONF_PASSWORD)
plex_server = config.get(CONF_SERVER) plex_server = config.get(CONF_SERVER)
plex_host = config.get(CONF_HOST) plex_host = config.get(CONF_HOST)
plex_port = config.get(CONF_PORT) plex_port = config.get(CONF_PORT)
plex_url = 'http://' + plex_host + ':' + str(plex_port) plex_url = 'http://{}:{}'.format(plex_host, plex_port)
add_devices([PlexSensor(name, plex_url, plex_user,
plex_password, plex_server)]) add_devices([PlexSensor(
name, plex_url, plex_user, plex_password, plex_server)])
class PlexSensor(Entity): class PlexSensor(Entity):
"""Plex now playing sensor.""" """Representation of a Plex now playing sensor."""
# pylint: disable=too-many-arguments # pylint: disable=too-many-arguments
def __init__(self, name, plex_url, plex_user, plex_password, plex_server): def __init__(self, name, plex_url, plex_user, plex_password, plex_server):
"""Initialize the sensor.""" """Initialize the sensor."""
from plexapi.utils import NA from plexapi.utils import NA
from plexapi.myplex import MyPlexAccount
from plexapi.server import PlexServer
self._na_type = NA self._na_type = NA
self._name = name self._name = name
@ -60,12 +67,10 @@ class PlexSensor(Entity):
self._now_playing = [] self._now_playing = []
if plex_user and plex_password: if plex_user and plex_password:
from plexapi.myplex import MyPlexAccount
user = MyPlexAccount.signin(plex_user, plex_password) user = MyPlexAccount.signin(plex_user, plex_password)
server = plex_server if plex_server else user.resources()[0].name server = plex_server if plex_server else user.resources()[0].name
self._server = user.resource(server).connect() self._server = user.resource(server).connect()
else: else:
from plexapi.server import PlexServer
self._server = PlexServer(plex_url) self._server = PlexServer(plex_url)
self.update() self.update()
@ -92,7 +97,7 @@ class PlexSensor(Entity):
@Throttle(MIN_TIME_BETWEEN_UPDATES) @Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
"""Update method for plex sensor.""" """Update method for Plex sensor."""
sessions = self._server.sessions() sessions = self._server.sessions()
now_playing = [] now_playing = []
for sess in sessions: for sess in sessions:

View File

@ -20,9 +20,14 @@ REQUIREMENTS = ['https://github.com/jamespcole/home-assistant-nzb-clients/'
'archive/616cad59154092599278661af17e2a9f2cf5e2a9.zip' 'archive/616cad59154092599278661af17e2a9f2cf5e2a9.zip'
'#python-sabnzbd==0.1'] '#python-sabnzbd==0.1']
_LOGGER = logging.getLogger(__name__)
_THROTTLED_REFRESH = None
DEFAULT_NAME = 'SABnzbd' DEFAULT_NAME = 'SABnzbd'
DEFAULT_PORT = 8080 DEFAULT_PORT = 8080
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=1)
SENSOR_TYPES = { SENSOR_TYPES = {
'current_status': ['Status', None], 'current_status': ['Status', None],
'speed': ['Speed', 'MB/s'], 'speed': ['Speed', 'MB/s'],
@ -38,15 +43,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_MONITORED_VARIABLES, default=['current_status']): vol.Optional(CONF_MONITORED_VARIABLES, default=['current_status']):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]), vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
}) })
_LOGGER = logging.getLogger(__name__)
_THROTTLED_REFRESH = None
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=1)
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):

View File

@ -6,36 +6,39 @@ https://home-assistant.io/components/sensor.snmp/
""" """
import logging import logging
from datetime import timedelta from datetime import timedelta
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.const import (CONF_HOST, CONF_PLATFORM, CONF_NAME, from homeassistant.const import (
CONF_PORT, ATTR_UNIT_OF_MEASUREMENT) CONF_HOST, CONF_NAME, CONF_PORT, CONF_UNIT_OF_MEASUREMENT)
import homeassistant.helpers.config_validation as cv
from homeassistant.util import Throttle from homeassistant.util import Throttle
REQUIREMENTS = ['pysnmp==4.3.2'] REQUIREMENTS = ['pysnmp==4.3.2']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "SNMP" CONF_BASEOID = 'baseoid'
DEFAULT_COMMUNITY = "public" CONF_COMMUNITY = 'community'
DEFAULT_PORT = "161"
CONF_COMMUNITY = "community"
CONF_BASEOID = "baseoid"
PLATFORM_SCHEMA = vol.Schema({ DEFAULT_COMMUNITY = 'public'
vol.Required(CONF_PLATFORM): 'snmp', DEFAULT_HOST = 'localhost'
vol.Optional(CONF_NAME): vol.Coerce(str), DEFAULT_NAME = 'SNMP'
vol.Required(CONF_HOST): vol.Coerce(str), DEFAULT_PORT = '161'
vol.Optional(CONF_PORT): vol.Coerce(int),
vol.Optional(CONF_COMMUNITY): vol.Coerce(str),
vol.Required(CONF_BASEOID): vol.Coerce(str),
vol.Optional(ATTR_UNIT_OF_MEASUREMENT): vol.Coerce(str),
})
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=10) MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=10)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_BASEOID): cv.string,
vol.Optional(CONF_COMMUNITY, default=DEFAULT_COMMUNITY): cv.string,
vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
})
# pylint: disable=too-many-locals # pylint: disable=too-many-locals
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
@ -44,10 +47,12 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
UdpTransportTarget, ContextData, ObjectType, UdpTransportTarget, ContextData, ObjectType,
ObjectIdentity) ObjectIdentity)
name = config.get(CONF_NAME)
host = config.get(CONF_HOST) host = config.get(CONF_HOST)
port = config.get(CONF_PORT, DEFAULT_PORT) port = config.get(CONF_PORT)
community = config.get(CONF_COMMUNITY, DEFAULT_COMMUNITY) community = config.get(CONF_COMMUNITY)
baseoid = config.get(CONF_BASEOID) baseoid = config.get(CONF_BASEOID)
unit = config.get(CONF_UNIT_OF_MEASUREMENT)
errindication, _, _, _ = next( errindication, _, _, _ = next(
getCmd(SnmpEngine(), getCmd(SnmpEngine(),
@ -61,9 +66,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
return False return False
else: else:
data = SnmpData(host, port, community, baseoid) data = SnmpData(host, port, community, baseoid)
add_devices([SnmpSensor(data, add_devices([SnmpSensor(data, name, unit)])
config.get('name', DEFAULT_NAME),
config.get('unit_of_measurement'))])
class SnmpSensor(Entity): class SnmpSensor(Entity):

View File

@ -10,8 +10,8 @@ from datetime import timedelta
import voluptuous as vol import voluptuous as vol
import requests import requests
from homeassistant.const import (TEMP_CELSIUS, CONF_PLATFORM, CONF_NAME, from homeassistant.components.sensor import PLATFORM_SCHEMA
STATE_UNKNOWN) from homeassistant.const import (TEMP_CELSIUS, CONF_NAME, STATE_UNKNOWN)
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
@ -21,8 +21,8 @@ REQUIREMENTS = ['xmltodict==0.10.2']
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
_RESOURCE = 'http://www.hydrodata.ch/xml/SMS.xml' _RESOURCE = 'http://www.hydrodata.ch/xml/SMS.xml'
DEFAULT_NAME = 'Water temperature'
CONF_STATION = 'station' CONF_STATION = 'station'
DEFAULT_NAME = 'Water temperature'
ICON = 'mdi:cup-water' ICON = 'mdi:cup-water'
ATTR_LOCATION = 'Location' ATTR_LOCATION = 'Location'
@ -36,10 +36,9 @@ ATTR_DISCHARGE_MAX = 'Discharge max'
ATTR_WATERLEVEL_MAX = 'Level max' ATTR_WATERLEVEL_MAX = 'Level max'
ATTR_TEMPERATURE_MAX = 'Temperature max' ATTR_TEMPERATURE_MAX = 'Temperature max'
PLATFORM_SCHEMA = vol.Schema({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_PLATFORM): 'swiss_hydrological_data',
vol.Optional(CONF_NAME): cv.string,
vol.Required(CONF_STATION): vol.Coerce(int), vol.Required(CONF_STATION): vol.Coerce(int),
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
}) })
# Return cached results if last scan was less then this time ago. # Return cached results if last scan was less then this time ago.
@ -50,8 +49,8 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Swiss hydrological sensor.""" """Setup the Swiss hydrological sensor."""
import xmltodict import xmltodict
name = config.get(CONF_NAME)
station = config.get(CONF_STATION) station = config.get(CONF_STATION)
name = config.get(CONF_NAME, DEFAULT_NAME)
try: try:
response = requests.get(_RESOURCE, timeout=5) response = requests.get(_RESOURCE, timeout=5)

View File

@ -17,18 +17,22 @@ from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__)
_RESOURCE = 'http://transport.opendata.ch/v1/' _RESOURCE = 'http://transport.opendata.ch/v1/'
DEFAULT_NAME = 'Next Departure'
ATTR_DEPARTURE_TIME1 = 'Next departure' ATTR_DEPARTURE_TIME1 = 'Next departure'
ATTR_DEPARTURE_TIME2 = 'Next on departure' ATTR_DEPARTURE_TIME2 = 'Next on departure'
ATTR_REMAINING_TIME = 'Remaining time'
ATTR_START = 'Start' ATTR_START = 'Start'
ATTR_TARGET = 'Destination' ATTR_TARGET = 'Destination'
ATTR_REMAINING_TIME = 'Remaining time'
CONF_START = 'from'
CONF_DESTINATION = 'to' CONF_DESTINATION = 'to'
CONF_START = 'from'
DEFAULT_NAME = 'Next Departure'
ICON = 'mdi:bus' ICON = 'mdi:bus'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
TIME_STR_FORMAT = "%H:%M" TIME_STR_FORMAT = "%H:%M"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
@ -37,11 +41,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
}) })
_LOGGER = logging.getLogger(__name__)
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Get the Swiss public transport sensor.""" """Get the Swiss public transport sensor."""

View File

@ -17,6 +17,8 @@ import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['psutil==4.3.0'] REQUIREMENTS = ['psutil==4.3.0']
_LOGGER = logging.getLogger(__name__)
SENSOR_TYPES = { SENSOR_TYPES = {
'disk_use_percent': ['Disk Use', '%', 'mdi:harddisk'], 'disk_use_percent': ['Disk Use', '%', 'mdi:harddisk'],
'disk_use': ['Disk Use', 'GiB', 'mdi:harddisk'], 'disk_use': ['Disk Use', 'GiB', 'mdi:harddisk'],
@ -47,8 +49,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
})]) })])
}) })
_LOGGER = logging.getLogger(__name__)
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):

View File

@ -15,6 +15,8 @@ import homeassistant.util.dt as dt_util
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__)
TIME_STR_FORMAT = "%H:%M" TIME_STR_FORMAT = "%H:%M"
OPTION_TYPES = { OPTION_TYPES = {
@ -31,8 +33,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.All(cv.ensure_list, [vol.In(OPTION_TYPES)]), vol.All(cv.ensure_list, [vol.In(OPTION_TYPES)]),
}) })
_LOGGER = logging.getLogger(__name__)
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Time and Date sensor.""" """Setup the Time and Date sensor."""

View File

@ -19,6 +19,9 @@ import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['transmissionrpc==0.11'] REQUIREMENTS = ['transmissionrpc==0.11']
_LOGGER = logging.getLogger(__name__)
_THROTTLED_REFRESH = None
DEFAULT_NAME = 'Transmission' DEFAULT_NAME = 'Transmission'
DEFAULT_PORT = 9091 DEFAULT_PORT = 9091
@ -38,10 +41,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_USERNAME): cv.string, vol.Optional(CONF_USERNAME): cv.string,
}) })
_LOGGER = logging.getLogger(__name__)
_THROTTLED_REFRESH = None
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):

View File

@ -12,22 +12,24 @@ from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
CONF_CHANNELS = 'channels' REQUIREMENTS = ['python-twitch==1.3.0']
STATE_STREAMING = 'streaming'
STATE_OFFLINE = 'offline' _LOGGER = logging.getLogger(__name__)
ATTR_GAME = 'game' ATTR_GAME = 'game'
ATTR_TITLE = 'title' ATTR_TITLE = 'title'
CONF_CHANNELS = 'channels'
ICON = 'mdi:twitch' ICON = 'mdi:twitch'
REQUIREMENTS = ['python-twitch==1.3.0'] STATE_OFFLINE = 'offline'
STATE_STREAMING = 'streaming'
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_CHANNELS, default=[]): vol.Required(CONF_CHANNELS, default=[]):
vol.All(cv.ensure_list, [cv.string]), vol.All(cv.ensure_list, [cv.string]),
}) })
_LOGGER = logging.getLogger(__name__)
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):

View File

@ -14,7 +14,9 @@ import homeassistant.util.dt as dt_util
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
DEFAULT_NAME = "Worldclock Sensor" _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = 'Worldclock Sensor'
ICON = 'mdi:clock' ICON = 'mdi:clock'
TIME_STR_FORMAT = "%H:%M" TIME_STR_FORMAT = "%H:%M"
@ -23,8 +25,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
}) })
_LOGGER = logging.getLogger(__name__)
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Worldclock sensor.""" """Setup the Worldclock sensor."""

View File

@ -6,23 +6,23 @@ https://home-assistant.io/components/sensor.wunderground/
""" """
from datetime import timedelta from datetime import timedelta
import logging import logging
import requests
import requests
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.util import Throttle from homeassistant.util import Throttle
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.const import (
from homeassistant.const import (CONF_PLATFORM, CONF_MONITORED_CONDITIONS, CONF_MONITORED_CONDITIONS, CONF_API_KEY, TEMP_FAHRENHEIT, TEMP_CELSIUS,
CONF_API_KEY, TEMP_FAHRENHEIT, TEMP_CELSIUS,
STATE_UNKNOWN) STATE_UNKNOWN)
CONF_PWS_ID = 'pws_id'
_RESOURCE = 'http://api.wunderground.com/api/{}/conditions/q/' _RESOURCE = 'http://api.wunderground.com/api/{}/conditions/q/'
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
# Return cached results if last scan was less then this time ago. CONF_PWS_ID = 'pws_id'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=300) MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=300)
# Sensor types are defined like: Name, units # Sensor types are defined like: Name, units
@ -57,11 +57,10 @@ SENSOR_TYPES = {
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_PLATFORM): "wunderground",
vol.Required(CONF_API_KEY): cv.string, vol.Required(CONF_API_KEY): cv.string,
vol.Optional(CONF_PWS_ID): cv.string, vol.Optional(CONF_PWS_ID): cv.string,
vol.Required(CONF_MONITORED_CONDITIONS, vol.Required(CONF_MONITORED_CONDITIONS, default=[]):
default=[]): vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]), vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
}) })

View File

@ -9,17 +9,16 @@ import requests
import voluptuous as vol import voluptuous as vol
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import ( from homeassistant.const import (
CONF_PLATFORM, CONF_LATITUDE, CONF_LONGITUDE, CONF_ELEVATION, CONF_LATITUDE, CONF_LONGITUDE, CONF_ELEVATION, CONF_MONITORED_CONDITIONS)
CONF_MONITORED_CONDITIONS
)
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
_LOGGER = logging.getLogger(__name__)
REQUIREMENTS = ['xmltodict==0.10.2'] REQUIREMENTS = ['xmltodict==0.10.2']
_LOGGER = logging.getLogger(__name__)
# Sensor types are defined like so: # Sensor types are defined like so:
SENSOR_TYPES = { SENSOR_TYPES = {
'symbol': ['Symbol', None], 'symbol': ['Symbol', None],
@ -38,8 +37,7 @@ SENSOR_TYPES = {
'dewpointTemperature': ['Dewpoint temperature', '°C'], 'dewpointTemperature': ['Dewpoint temperature', '°C'],
} }
PLATFORM_SCHEMA = vol.Schema({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_PLATFORM): 'yr',
vol.Optional(CONF_MONITORED_CONDITIONS, default=[]): vol.Optional(CONF_MONITORED_CONDITIONS, default=[]):
[vol.In(SENSOR_TYPES.keys())], [vol.In(SENSOR_TYPES.keys())],
vol.Optional(CONF_LATITUDE): cv.latitude, vol.Optional(CONF_LATITUDE): cv.latitude,
@ -58,9 +56,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
_LOGGER.error("Latitude or longitude not set in Home Assistant config") _LOGGER.error("Latitude or longitude not set in Home Assistant config")
return False return False
coordinates = dict(lat=latitude, coordinates = dict(lat=latitude, lon=longitude, msl=elevation)
lon=longitude,
msl=elevation)
weather = YrData(coordinates) weather = YrData(coordinates)

View File

@ -6,15 +6,25 @@ https://home-assistant.io/components/sensor.yweather/
""" """
import logging import logging
from datetime import timedelta from datetime import timedelta
import voluptuous as vol import voluptuous as vol
from homeassistant.const import (CONF_PLATFORM, TEMP_CELSIUS, from homeassistant.components.sensor import PLATFORM_SCHEMA
CONF_MONITORED_CONDITIONS, STATE_UNKNOWN) from homeassistant.const import (
TEMP_CELSIUS, CONF_MONITORED_CONDITIONS, STATE_UNKNOWN)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
REQUIREMENTS = ["yahooweather==0.7"] REQUIREMENTS = ["yahooweather==0.7"]
_LOGGER = logging.getLogger(__name__)
CONF_FORECAST = 'forecast'
CONF_WOEID = 'woeid'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=120)
SENSOR_TYPES = { SENSOR_TYPES = {
'weather_current': ['Current', None], 'weather_current': ['Current', None],
'weather': ['Condition', None], 'weather': ['Condition', None],
@ -27,27 +37,22 @@ SENSOR_TYPES = {
'visibility': ['Visibility', "distance"], 'visibility': ['Visibility', "distance"],
} }
PLATFORM_SCHEMA = vol.Schema({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_PLATFORM): "yweather", vol.Optional(CONF_WOEID, default=None): cv.string,
vol.Optional("woeid"): vol.Coerce(str), vol.Optional(CONF_FORECAST, default=0):
vol.Optional("forecast"): vol.Coerce(int), vol.All(vol.Coerce(int), vol.Range(min=0, max=5)),
vol.Required(CONF_MONITORED_CONDITIONS, default=[]): vol.Required(CONF_MONITORED_CONDITIONS, default=[]):
[vol.In(SENSOR_TYPES.keys())], [vol.In(SENSOR_TYPES)],
}) })
# Return cached results if last scan was less then this time ago.
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=120)
_LOGGER = logging.getLogger(__name__)
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the Yahoo! weather sensor.""" """Setup the Yahoo! weather sensor."""
from yahooweather import get_woeid, UNIT_C, UNIT_F from yahooweather import get_woeid, UNIT_C, UNIT_F
unit = hass.config.units.temperature_unit unit = hass.config.units.temperature_unit
woeid = config.get("woeid", None) woeid = config.get(CONF_WOEID)
forecast = config.get("forecast", 0) forecast = config.get(CONF_FORECAST)
# convert unit # convert unit
yunit = UNIT_C if unit == TEMP_CELSIUS else UNIT_F yunit = UNIT_C if unit == TEMP_CELSIUS else UNIT_F

View File

@ -8,9 +8,9 @@ import logging
import voluptuous as vol import voluptuous as vol
from homeassistant.const import (CONF_PLATFORM, CONF_NAME, CONF_HOST) from homeassistant.components.switch import (SwitchDevice, PLATFORM_SCHEMA)
from homeassistant.const import (CONF_NAME, CONF_HOST)
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.components.switch import SwitchDevice
REQUIREMENTS = ['python-mystrom==0.3.6'] REQUIREMENTS = ['python-mystrom==0.3.6']
@ -18,10 +18,9 @@ DEFAULT_NAME = 'myStrom Switch'
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
PLATFORM_SCHEMA = vol.Schema({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_PLATFORM): 'mystrom',
vol.Optional(CONF_NAME): cv.string,
vol.Required(CONF_HOST): cv.string, vol.Required(CONF_HOST): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
}) })
@ -29,6 +28,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
"""Find and return myStrom switch.""" """Find and return myStrom switch."""
from pymystrom import MyStromPlug, exceptions from pymystrom import MyStromPlug, exceptions
name = config.get(CONF_NAME)
host = config.get(CONF_HOST) host = config.get(CONF_HOST)
try: try:
@ -37,7 +37,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
_LOGGER.error("No route to device '%s'", host) _LOGGER.error("No route to device '%s'", host)
return False return False
add_devices([MyStromSwitch(config.get('name', DEFAULT_NAME), host)]) add_devices([MyStromSwitch(name, host)])
class MyStromSwitch(SwitchDevice): class MyStromSwitch(SwitchDevice):

View File

@ -17,6 +17,8 @@ import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['transmissionrpc==0.11'] REQUIREMENTS = ['transmissionrpc==0.11']
_LOGGING = logging.getLogger(__name__)
DEFAULT_NAME = 'Transmission Turtle Mode' DEFAULT_NAME = 'Transmission Turtle Mode'
DEFAULT_PORT = 9091 DEFAULT_PORT = 9091
@ -28,8 +30,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_USERNAME): cv.string, vol.Optional(CONF_USERNAME): cv.string,
}) })
_LOGGING = logging.getLogger(__name__)
# pylint: disable=unused-argument # pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None): def setup_platform(hass, config, add_devices, discovery_info=None):