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 homeassistant.helpers.config_validation as cv
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
REQUIREMENTS = ['py-cpuinfo==3.2.0']
@ -22,6 +22,7 @@ ATTR_HZ = 'GHz Advertised'
ATTR_ARCH = 'arch'
DEFAULT_NAME = 'CPU speed'
ICON = 'mdi:pulse'
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."""
name = config.get(CONF_NAME)
add_devices([CpuSpeedSensor(name)])
add_devices([CpuSpeedSensor(name)], True)
class CpuSpeedSensor(Entity):
@ -44,8 +45,8 @@ class CpuSpeedSensor(Entity):
"""Initialize the sensor."""
self._name = name
self._state = None
self.info = None
self._unit_of_measurement = 'GHz'
self.update()
@property
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.const import CONF_HOST, CONF_PORT
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
REQUIREMENTS = ['pycups==1.9.73']
@ -36,7 +35,7 @@ DEFAULT_PORT = 631
ICON = 'mdi:printer'
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
SCAN_INTERVAL = timedelta(minutes=1)
PRINTER_STATES = {
3: 'idle',
@ -72,7 +71,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
_LOGGER.error("Printer is not present: %s", printer)
continue
add_devices(dev)
add_devices(dev, True)
class CupsSensor(Entity):
@ -83,7 +82,6 @@ class CupsSensor(Entity):
self.data = data
self._name = printer
self._printer = None
self.update()
@property
def name(self):
@ -140,7 +138,6 @@ class CupsData(object):
self._port = port
self.printers = None
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
"""Get the latest data from CUPS."""
from cups import Connection

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -36,7 +36,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the Twitch platform."""
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):
@ -49,7 +49,6 @@ class TwitchSensor(Entity):
self._preview = None
self._game = None
self._title = None
self.update()
@property
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))
async_add_devices([WorldClockSensor(time_zone, name)], True)
return True
class WorldClockSensor(Entity):