Add Transmission component 'scan_interval' option (#20575)

* Transmission component fix 'scan_interval' option

* Fix dict[key] comments

* Fix latest mess
pull/20930/head
jonudewux 2019-02-04 22:08:38 +02:00 committed by Paulus Schoutsen
parent b5e40669c9
commit 21583d25e2
3 changed files with 20 additions and 8 deletions

View File

@ -4,10 +4,12 @@ Support for monitoring the Transmission BitTorrent client API.
For more details about this platform, please refer to the documentation at For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/sensor.transmission/ https://home-assistant.io/components/sensor.transmission/
""" """
from datetime import timedelta
import logging import logging
from homeassistant.components.transmission import ( from homeassistant.components.transmission import (
DATA_TRANSMISSION, SENSOR_TYPES, SCAN_INTERVAL) DATA_TRANSMISSION, SENSOR_TYPES)
from homeassistant.const import STATE_IDLE from homeassistant.const import STATE_IDLE
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle from homeassistant.util import Throttle
@ -18,6 +20,8 @@ _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = 'Transmission' DEFAULT_NAME = 'Transmission'
SCAN_INTERVAL = timedelta(seconds=120)
def setup_platform(hass, config, add_entities, discovery_info=None): def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the Transmission sensors.""" """Set up the Transmission sensors."""

View File

@ -4,10 +4,12 @@ Support for setting the Transmission BitTorrent client Turtle Mode.
For more details about this platform, please refer to the documentation at For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/switch.transmission/ https://home-assistant.io/components/switch.transmission/
""" """
from datetime import timedelta
import logging import logging
from homeassistant.components.transmission import ( from homeassistant.components.transmission import (
DATA_TRANSMISSION, SCAN_INTERVAL) DATA_TRANSMISSION)
from homeassistant.const import ( from homeassistant.const import (
STATE_OFF, STATE_ON) STATE_OFF, STATE_ON)
from homeassistant.helpers.entity import ToggleEntity from homeassistant.helpers.entity import ToggleEntity
@ -19,6 +21,8 @@ _LOGGING = logging.getLogger(__name__)
DEFAULT_NAME = 'Transmission Turtle Mode' DEFAULT_NAME = 'Transmission Turtle Mode'
SCAN_INTERVAL = timedelta(seconds=120)
def setup_platform(hass, config, add_entities, discovery_info=None): def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the Transmission switch.""" """Set up the Transmission switch."""

View File

@ -15,7 +15,8 @@ from homeassistant.const import (
CONF_NAME, CONF_NAME,
CONF_PASSWORD, CONF_PASSWORD,
CONF_PORT, CONF_PORT,
CONF_USERNAME CONF_USERNAME,
CONF_SCAN_INTERVAL
) )
from homeassistant.helpers import discovery, config_validation as cv from homeassistant.helpers import discovery, config_validation as cv
from homeassistant.helpers.event import track_time_interval from homeassistant.helpers.event import track_time_interval
@ -42,6 +43,8 @@ SENSOR_TYPES = {
'started_torrents': ['Started Torrents', None], 'started_torrents': ['Started Torrents', None],
} }
DEFAULT_SCAN_INTERVAL = timedelta(seconds=120)
CONFIG_SCHEMA = vol.Schema({ CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.Schema({ DOMAIN: vol.Schema({
vol.Required(CONF_HOST): cv.string, vol.Required(CONF_HOST): cv.string,
@ -50,20 +53,21 @@ CONFIG_SCHEMA = vol.Schema({
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(TURTLE_MODE, default=False): cv.boolean, vol.Optional(TURTLE_MODE, default=False): cv.boolean,
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL):
cv.time_period,
vol.Optional(CONF_MONITORED_CONDITIONS, default=['current_status']): vol.Optional(CONF_MONITORED_CONDITIONS, default=['current_status']):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]), vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
}) })
}, extra=vol.ALLOW_EXTRA) }, extra=vol.ALLOW_EXTRA)
SCAN_INTERVAL = timedelta(minutes=2)
def setup(hass, config): def setup(hass, config):
"""Set up the Transmission Component.""" """Set up the Transmission Component."""
host = config[DOMAIN][CONF_HOST] host = config[DOMAIN][CONF_HOST]
username = config[DOMAIN][CONF_USERNAME] username = config[DOMAIN].get(CONF_USERNAME)
password = config[DOMAIN][CONF_PASSWORD] password = config[DOMAIN].get(CONF_PASSWORD)
port = config[DOMAIN][CONF_PORT] port = config[DOMAIN][CONF_PORT]
scan_interval = config[DOMAIN][CONF_SCAN_INTERVAL]
import transmissionrpc import transmissionrpc
from transmissionrpc.error import TransmissionError from transmissionrpc.error import TransmissionError
@ -85,7 +89,7 @@ def setup(hass, config):
"""Get the latest data from Transmission.""" """Get the latest data from Transmission."""
tm_data.update() tm_data.update()
track_time_interval(hass, refresh, SCAN_INTERVAL) track_time_interval(hass, refresh, scan_interval)
sensorconfig = { sensorconfig = {
'sensors': config[DOMAIN][CONF_MONITORED_CONDITIONS], 'sensors': config[DOMAIN][CONF_MONITORED_CONDITIONS],