Do not call update() in constructor (#7912)

* Do not call update() in constructor

* Do not call update() in constructor

* Remove unused import
This commit is contained in:
Fabian Affolter 2017-06-05 17:35:26 +02:00 committed by GitHub
parent 2b850f417e
commit 13df925795
12 changed files with 29 additions and 44 deletions

View File

@ -8,9 +8,9 @@ import logging
import voluptuous as vol import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME from homeassistant.const import CONF_NAME
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
REQUIREMENTS = ['py-cpuinfo==3.2.0'] REQUIREMENTS = ['py-cpuinfo==3.2.0']
@ -22,6 +22,7 @@ ATTR_HZ = 'GHz Advertised'
ATTR_ARCH = 'arch' ATTR_ARCH = 'arch'
DEFAULT_NAME = 'CPU speed' DEFAULT_NAME = 'CPU speed'
ICON = 'mdi:pulse' ICON = 'mdi:pulse'
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
@ -34,7 +35,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the CPU speed sensor.""" """Set up the CPU speed sensor."""
name = config.get(CONF_NAME) name = config.get(CONF_NAME)
add_devices([CpuSpeedSensor(name)]) add_devices([CpuSpeedSensor(name)], True)
class CpuSpeedSensor(Entity): class CpuSpeedSensor(Entity):
@ -44,8 +45,8 @@ class CpuSpeedSensor(Entity):
"""Initialize the sensor.""" """Initialize the sensor."""
self._name = name self._name = name
self._state = None self._state = None
self.info = None
self._unit_of_measurement = 'GHz' self._unit_of_measurement = 'GHz'
self.update()
@property @property
def name(self): def name(self):

View File

@ -13,7 +13,6 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_HOST, CONF_PORT from homeassistant.const import CONF_HOST, CONF_PORT
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
REQUIREMENTS = ['pycups==1.9.73'] REQUIREMENTS = ['pycups==1.9.73']
@ -36,7 +35,7 @@ DEFAULT_PORT = 631
ICON = 'mdi:printer' ICON = 'mdi:printer'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60) SCAN_INTERVAL = timedelta(minutes=1)
PRINTER_STATES = { PRINTER_STATES = {
3: 'idle', 3: 'idle',
@ -72,7 +71,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
_LOGGER.error("Printer is not present: %s", printer) _LOGGER.error("Printer is not present: %s", printer)
continue continue
add_devices(dev) add_devices(dev, True)
class CupsSensor(Entity): class CupsSensor(Entity):
@ -83,7 +82,6 @@ class CupsSensor(Entity):
self.data = data self.data = data
self._name = printer self._name = printer
self._printer = None self._printer = None
self.update()
@property @property
def name(self): def name(self):
@ -140,7 +138,6 @@ class CupsData(object):
self._port = port self._port = port
self.printers = None self.printers = None
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
"""Get the latest data from CUPS.""" """Get the latest data from CUPS."""
from cups import Connection from cups import Connection

View File

@ -10,12 +10,11 @@ import logging
import requests import requests
import voluptuous as vol import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import ( from homeassistant.const import (
CONF_API_KEY, CONF_NAME, CONF_BASE, CONF_QUOTE, ATTR_ATTRIBUTION) CONF_API_KEY, CONF_NAME, CONF_BASE, CONF_QUOTE, ATTR_ATTRIBUTION)
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
_RESOURCE = 'http://apilayer.net/api/live' _RESOURCE = 'http://apilayer.net/api/live'
@ -27,7 +26,7 @@ DEFAULT_NAME = 'CurrencyLayer Sensor'
ICON = 'mdi:currency' ICON = 'mdi:currency'
MIN_TIME_BETWEEN_UPDATES = timedelta(hours=2) SCAN_INTERVAL = 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,
@ -56,8 +55,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
if 'error' in response.json(): if 'error' in response.json():
return False return False
else: else:
add_devices(sensors) add_devices(sensors, True)
rest.update()
class CurrencylayerSensor(Entity): class CurrencylayerSensor(Entity):
@ -68,7 +66,7 @@ class CurrencylayerSensor(Entity):
self.rest = rest self.rest = rest
self._quote = quote self._quote = quote
self._base = base self._base = base
self.update() self._state = None
@property @property
def name(self): def name(self):
@ -110,7 +108,6 @@ class CurrencylayerData(object):
self._parameters = parameters self._parameters = parameters
self.data = None self.data = None
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
"""Get the latest data from Currencylayer.""" """Get the latest data from Currencylayer."""
try: try:

View File

@ -9,11 +9,10 @@ from datetime import timedelta
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.util import Throttle
from homeassistant.helpers.entity import Entity
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.helpers.entity import Entity
REQUIREMENTS = ['schiene==0.18'] REQUIREMENTS = ['schiene==0.18']
@ -24,7 +23,7 @@ CONF_START = 'from'
ICON = 'mdi:train' ICON = 'mdi:train'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=120) SCAN_INTERVAL = timedelta(minutes=2)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_DESTINATION): cv.string, vol.Required(CONF_DESTINATION): cv.string,
@ -37,7 +36,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
start = config.get(CONF_START) start = config.get(CONF_START)
destination = config.get(CONF_DESTINATION) destination = config.get(CONF_DESTINATION)
add_devices([DeutscheBahnSensor(start, destination)]) add_devices([DeutscheBahnSensor(start, destination)], True)
class DeutscheBahnSensor(Entity): class DeutscheBahnSensor(Entity):
@ -47,7 +46,7 @@ class DeutscheBahnSensor(Entity):
"""Initialize the sensor.""" """Initialize the sensor."""
self._name = '{} to {}'.format(start, goal) self._name = '{} to {}'.format(start, goal)
self.data = SchieneData(start, goal) self.data = SchieneData(start, goal)
self.update() self._state = None
@property @property
def name(self): def name(self):
@ -92,7 +91,6 @@ class SchieneData(object):
self.schiene = schiene.Schiene() self.schiene = schiene.Schiene()
self.connections = [{}] self.connections = [{}]
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
"""Update the connection data.""" """Update the connection data."""
self.connections = self.schiene.connections( self.connections = self.schiene.connections(

View File

@ -9,11 +9,10 @@ from datetime import timedelta
import voluptuous as vol import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (CONF_NAME, ATTR_ATTRIBUTION, CONF_BASE) from homeassistant.const import (CONF_NAME, ATTR_ATTRIBUTION, CONF_BASE)
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['fixerio==0.1.1'] REQUIREMENTS = ['fixerio==0.1.1']
@ -31,7 +30,7 @@ DEFAULT_NAME = 'Exchange rate'
ICON = 'mdi:currency' ICON = 'mdi:currency'
MIN_TIME_BETWEEN_UPDATES = timedelta(days=1) SCAN_INTERVAL = timedelta(days=1)
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_TARGET): cv.string, vol.Required(CONF_TARGET): cv.string,
@ -55,7 +54,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
return False return False
data = ExchangeData(base, target) data = ExchangeData(base, target)
add_devices([ExchangeRateSensor(data, name, target)]) add_devices([ExchangeRateSensor(data, name, target)], True)
class ExchangeRateSensor(Entity): class ExchangeRateSensor(Entity):
@ -67,7 +66,6 @@ class ExchangeRateSensor(Entity):
self._target = target self._target = target
self._name = name self._name = name
self._state = None self._state = None
self.update()
@property @property
def name(self): def name(self):
@ -120,7 +118,6 @@ class ExchangeData(object):
base=self.base_currency, symbols=[self.target_currency], base=self.base_currency, symbols=[self.target_currency],
secure=True) secure=True)
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
"""Get the latest data from Fixer.io.""" """Get the latest data from Fixer.io."""
self.rate = self.exchange.latest() self.rate = self.exchange.latest()

View File

@ -60,7 +60,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
_LOGGER.error("No battery found") _LOGGER.error("No battery found")
return False return False
add_devices([LinuxBatterySensor(name, battery_id)]) add_devices([LinuxBatterySensor(name, battery_id)], True)
class LinuxBatterySensor(Entity): class LinuxBatterySensor(Entity):
@ -75,7 +75,6 @@ class LinuxBatterySensor(Entity):
self._battery_stat = None self._battery_stat = None
self._battery_id = battery_id - 1 self._battery_id = battery_id - 1
self._unit_of_measurement = '%' self._unit_of_measurement = '%'
self.update()
@property @property
def name(self): def name(self):

View File

@ -32,7 +32,6 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
name = config.get(CONF_NAME) name = config.get(CONF_NAME)
async_add_devices([MoonSensor(name)], True) async_add_devices([MoonSensor(name)], True)
return True
class MoonSensor(Entity): class MoonSensor(Entity):

View File

@ -57,7 +57,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
add_devices([ add_devices([
ScrapeSensor(hass, rest, name, select, value_template, unit) ScrapeSensor(hass, rest, name, select, value_template, unit)
]) ], True)
class ScrapeSensor(Entity): class ScrapeSensor(Entity):
@ -71,7 +71,6 @@ class ScrapeSensor(Entity):
self._select = select self._select = select
self._value_template = value_template self._value_template = value_template
self._unit_of_measurement = unit self._unit_of_measurement = unit
self.update()
@property @property
def name(self): def name(self):

View File

@ -10,12 +10,11 @@ from datetime import timedelta
import requests import requests
import voluptuous as vol import voluptuous as vol
import homeassistant.helpers.config_validation as cv
import homeassistant.util.dt as dt_util
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME, ATTR_ATTRIBUTION from homeassistant.const import CONF_NAME, ATTR_ATTRIBUTION
import homeassistant.util.dt as dt_util
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
_RESOURCE = 'http://transport.opendata.ch/v1/' _RESOURCE = 'http://transport.opendata.ch/v1/'
@ -31,9 +30,11 @@ CONF_DESTINATION = 'to'
CONF_START = 'from' CONF_START = 'from'
DEFAULT_NAME = 'Next Departure' DEFAULT_NAME = 'Next Departure'
ICON = 'mdi:bus' ICON = 'mdi:bus'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60) SCAN_INTERVAL = timedelta(minutes=1)
TIME_STR_FORMAT = "%H:%M" TIME_STR_FORMAT = "%H:%M"
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
@ -62,7 +63,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
return False return False
data = PublicTransportData(journey) data = PublicTransportData(journey)
add_devices([SwissPublicTransportSensor(data, journey, name)]) add_devices([SwissPublicTransportSensor(data, journey, name)], True)
class SwissPublicTransportSensor(Entity): class SwissPublicTransportSensor(Entity):
@ -72,9 +73,10 @@ class SwissPublicTransportSensor(Entity):
"""Initialize the sensor.""" """Initialize the sensor."""
self.data = data self.data = data
self._name = name self._name = name
self._state = None
self._times = None
self._from = journey[2] self._from = journey[2]
self._to = journey[3] self._to = journey[3]
self.update()
@property @property
def name(self): def name(self):
@ -124,7 +126,6 @@ class PublicTransportData(object):
self.destination = journey[1] self.destination = journey[1]
self.times = {} self.times = {}
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self): def update(self):
"""Get the latest data from opendata.ch.""" """Get the latest data from opendata.ch."""
response = requests.get( response = requests.get(

View File

@ -52,7 +52,6 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
devices.append(device) devices.append(device)
async_add_devices(devices, True) async_add_devices(devices, True)
return True
class TimeDateSensor(Entity): class TimeDateSensor(Entity):

View File

@ -36,7 +36,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the Twitch platform.""" """Set up the Twitch platform."""
channels = config.get(CONF_CHANNELS, []) channels = config.get(CONF_CHANNELS, [])
add_devices([TwitchSensor(channel) for channel in channels]) add_devices([TwitchSensor(channel) for channel in channels], True)
class TwitchSensor(Entity): class TwitchSensor(Entity):
@ -49,7 +49,6 @@ class TwitchSensor(Entity):
self._preview = None self._preview = None
self._game = None self._game = None
self._title = None self._title = None
self.update()
@property @property
def should_poll(self): def should_poll(self):

View File

@ -36,7 +36,6 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
time_zone = dt_util.get_time_zone(config.get(CONF_TIME_ZONE)) time_zone = dt_util.get_time_zone(config.get(CONF_TIME_ZONE))
async_add_devices([WorldClockSensor(time_zone, name)], True) async_add_devices([WorldClockSensor(time_zone, name)], True)
return True
class WorldClockSensor(Entity): class WorldClockSensor(Entity):