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
2 changes: 1 addition & 1 deletion homeassistant/components/sensor/dte_energy_bridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
name = config.get(CONF_NAME)
ip_address = config.get(CONF_IP_ADDRESS)

add_devices([DteEnergyBridgeSensor(ip_address, name)])
add_devices([DteEnergyBridgeSensor(ip_address, name)], True)


class DteEnergyBridgeSensor(Entity):
Expand Down
20 changes: 7 additions & 13 deletions homeassistant/components/sensor/dublin_bus_transport.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@
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 = 'https://data.dublinked.ie/cgi-bin/rtpi/realtimebusinformation'
Expand All @@ -36,7 +35,7 @@
DEFAULT_NAME = 'Next Bus'
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({
Expand Down Expand Up @@ -64,7 +63,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
route = config.get(CONF_ROUTE)

data = PublicTransportData(stop, route)
add_devices([DublinPublicTransportSensor(data, stop, route, name)])
add_devices([DublinPublicTransportSensor(data, stop, route, name)], True)


class DublinPublicTransportSensor(Entity):
Expand All @@ -76,7 +75,7 @@ def __init__(self, data, stop, route, name):
self._name = name
self._stop = stop
self._route = route
self.update()
self._times = self._state = None

@property
def name(self):
Expand Down Expand Up @@ -137,7 +136,6 @@ def __init__(self, stop, route):
ATTR_ROUTE: self.route,
ATTR_DUE_IN: 'n/a'}]

@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
"""Get the latest data from opendata.ch."""
params = {}
Expand All @@ -149,10 +147,7 @@ def update(self):
params['maxresults'] = 2
params['format'] = 'json'

response = requests.get(
_RESOURCE,
params,
timeout=10)
response = requests.get(_RESOURCE, params, timeout=10)

if response.status_code != 200:
self.info = [{ATTR_DUE_AT: 'n/a',
Expand All @@ -175,8 +170,7 @@ def update(self):
if due_at is not None and route is not None:
bus_data = {ATTR_DUE_AT: due_at,
ATTR_ROUTE: route,
ATTR_DUE_IN:
due_in_minutes(due_at)}
ATTR_DUE_IN: due_in_minutes(due_at)}
self.info.append(bus_data)

if not self.info:
Expand Down
6 changes: 2 additions & 4 deletions homeassistant/components/sensor/dweet.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@

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_VALUE_TEMPLATE, STATE_UNKNOWN, CONF_UNIT_OF_MEASUREMENT)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle

REQUIREMENTS = ['dweepy==0.3.0']

Expand All @@ -25,7 +24,7 @@

DEFAULT_NAME = 'Dweet.io Sensor'

MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
SCAN_INTERVAL = timedelta(minutes=1)

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_DEVICE): cv.string,
Expand Down Expand Up @@ -109,7 +108,6 @@ def __init__(self, device):
self._device = device
self.data = None

@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
"""Get the latest data from Dweet.io."""
import dweepy
Expand Down
49 changes: 18 additions & 31 deletions homeassistant/components/sensor/ebox.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,12 @@
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_USERNAME, CONF_PASSWORD,
CONF_NAME, CONF_MONITORED_VARIABLES)
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv

REQUIREMENTS = ['pyebox==0.1.0']

Expand All @@ -32,35 +31,25 @@
DEFAULT_NAME = 'EBox'

REQUESTS_TIMEOUT = 15
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)
SCAN_INTERVAL = timedelta(minutes=5)

SENSOR_TYPES = {
'usage': ['Usage',
PERCENT, 'mdi:percent'],
'balance': ['Balance',
PRICE, 'mdi:square-inc-cash'],
'limit': ['Data limit',
GIGABITS, 'mdi:download'],
'days_left': ['Days left',
DAYS, 'mdi:calendar-today'],
'before_offpeak_download': ['Download before offpeak',
GIGABITS, 'mdi:download'],
'before_offpeak_upload': ['Upload before offpeak',
GIGABITS, 'mdi:upload'],
'before_offpeak_total': ['Total before offpeak',
GIGABITS, 'mdi:download'],
'offpeak_download': ['Offpeak download',
GIGABITS, 'mdi:download'],
'offpeak_upload': ['Offpeak Upload',
GIGABITS, 'mdi:upload'],
'offpeak_total': ['Offpeak Total',
GIGABITS, 'mdi:download'],
'download': ['Download',
GIGABITS, 'mdi:download'],
'upload': ['Upload',
GIGABITS, 'mdi:upload'],
'total': ['Total',
GIGABITS, 'mdi:download'],
'usage': ['Usage', PERCENT, 'mdi:percent'],
'balance': ['Balance', PRICE, 'mdi:square-inc-cash'],
'limit': ['Data limit', GIGABITS, 'mdi:download'],
'days_left': ['Days left', DAYS, 'mdi:calendar-today'],
'before_offpeak_download':
['Download before offpeak', GIGABITS, 'mdi:download'],
'before_offpeak_upload':
['Upload before offpeak', GIGABITS, 'mdi:upload'],
'before_offpeak_total':
['Total before offpeak', GIGABITS, 'mdi:download'],
'offpeak_download': ['Offpeak download', GIGABITS, 'mdi:download'],
'offpeak_upload': ['Offpeak Upload', GIGABITS, 'mdi:upload'],
'offpeak_total': ['Offpeak Total', GIGABITS, 'mdi:download'],
'download': ['Download', GIGABITS, 'mdi:download'],
'upload': ['Upload', GIGABITS, 'mdi:upload'],
'total': ['Total', GIGABITS, 'mdi:download'],
}

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
Expand Down Expand Up @@ -142,7 +131,6 @@ def __init__(self, username, password):
self.client = EboxClient(username, password, REQUESTS_TIMEOUT)
self.data = {}

@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
"""Get the latest data from Ebox."""
from pyebox.client import PyEboxError
Expand All @@ -151,5 +139,4 @@ def update(self):
except PyEboxError as exp:
_LOGGER.error("Error on receive last EBox data: %s", exp)
return
# Update data
self.data = self.client.get_data()
10 changes: 5 additions & 5 deletions homeassistant/components/sensor/ecobee.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@
from homeassistant.helpers.entity import Entity

DEPENDENCIES = ['ecobee']

ECOBEE_CONFIG_FILE = 'ecobee.conf'

SENSOR_TYPES = {
'temperature': ['Temperature', TEMP_FAHRENHEIT],
'humidity': ['Humidity', '%']
}

ECOBEE_CONFIG_FILE = 'ecobee.conf'


def setup_platform(hass, config, add_devices, discovery_info=None):
"""Set up the Ecobee sensors."""
Expand All @@ -31,21 +32,20 @@ def setup_platform(hass, config, add_devices, discovery_info=None):

dev.append(EcobeeSensor(sensor['name'], item['type'], index))

add_devices(dev)
add_devices(dev, True)


class EcobeeSensor(Entity):
"""Representation of an Ecobee sensor."""

def __init__(self, sensor_name, sensor_type, sensor_index):
"""Initialize the sensor."""
self._name = sensor_name + ' ' + SENSOR_TYPES[sensor_type][0]
self._name = '{} {}'.format(sensor_name, SENSOR_TYPES[sensor_type][0])
self.sensor_name = sensor_name
self.type = sensor_type
self.index = sensor_index
self._state = None
self._unit_of_measurement = SENSOR_TYPES[sensor_type][1]
self.update()

@property
def name(self):
Expand Down
21 changes: 9 additions & 12 deletions homeassistant/components/sensor/hddtemp.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@

import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
CONF_NAME, CONF_HOST, CONF_PORT, TEMP_CELSIUS, TEMP_FAHRENHEIT,
STATE_UNKNOWN)
import homeassistant.helpers.config_validation as cv
from homeassistant.util import Throttle

_LOGGER = logging.getLogger(__name__)

Expand All @@ -28,7 +27,7 @@
DEFAULT_NAME = 'HD Temperature'
DEFAULT_TIMEOUT = 5

MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=1)
SCAN_INTERVAL = timedelta(minutes=1)

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string,
Expand All @@ -50,7 +49,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
_LOGGER.error("Unable to fetch the data from %s:%s", host, port)
return False

add_devices([HddTempSensor(name, hddtemp)])
add_devices([HddTempSensor(name, hddtemp)], True)


class HddTempSensor(Entity):
Expand All @@ -62,7 +61,6 @@ def __init__(self, name, hddtemp):
self._name = name
self._state = False
self._details = None
self.update()

@property
def name(self):
Expand All @@ -77,7 +75,7 @@ def state(self):
@property
def unit_of_measurement(self):
"""Return the unit the value is expressed in."""
if self.details[4] == 'C':
if self._details[4] == 'C':
return TEMP_CELSIUS
else:
return TEMP_FAHRENHEIT
Expand All @@ -86,17 +84,17 @@ def unit_of_measurement(self):
def device_state_attributes(self):
"""Return the state attributes of the sensor."""
return {
ATTR_DEVICE: self.details[1],
ATTR_MODEL: self.details[2],
ATTR_DEVICE: self._details[1],
ATTR_MODEL: self._details[2],
}

def update(self):
"""Get the latest data from HDDTemp daemon and updates the state."""
self.hddtemp.update()

if self.hddtemp.data is not None:
self.details = self.hddtemp.data.split('|')
self._state = self.details[3]
self._details = self.hddtemp.data.split('|')
self._state = self._details[3]
else:
self._state = STATE_UNKNOWN

Expand All @@ -110,9 +108,8 @@ def __init__(self, host, port):
self.port = port
self.data = None

@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
"""Get the latest data from hhtemp running as daemon."""
"""Get the latest data from HDDTemp running as daemon."""
try:
connection = Telnet(
host=self.host, port=self.port, timeout=DEFAULT_TIMEOUT)
Expand Down
4 changes: 1 addition & 3 deletions homeassistant/components/sensor/mold_indicator.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):

add_devices([MoldIndicator(
hass, name, indoor_temp_sensor, outdoor_temp_sensor,
indoor_humidity_sensor, calib_factor)])
indoor_humidity_sensor, calib_factor)], True)


class MoldIndicator(Entity):
Expand Down Expand Up @@ -94,8 +94,6 @@ def __init__(self, hass, name, indoor_temp_sensor, outdoor_temp_sensor,
if indoor_hum:
self._indoor_hum = MoldIndicator._update_hum_sensor(indoor_hum)

self.update()

@staticmethod
def _update_temp_sensor(state):
"""Parse temperature sensor value."""
Expand Down
8 changes: 3 additions & 5 deletions homeassistant/components/sensor/pi_hole.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@

import voluptuous as vol

import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
CONF_NAME, CONF_HOST, CONF_SSL, CONF_VERIFY_SSL, CONF_MONITORED_CONDITIONS)
import homeassistant.helpers.config_validation as cv
from homeassistant.util import Throttle

_LOGGER = logging.getLogger(__name__)
_ENDPOINT = '/admin/api.php'
Expand All @@ -30,7 +29,7 @@
DEFAULT_SSL = False
DEFAULT_VERIFY_SSL = True

MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)
SCAN_INTERVAL = timedelta(minutes=5)

MONITORED_CONDITIONS = {
'dns_queries_today': ['DNS Queries Today',
Expand Down Expand Up @@ -67,7 +66,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
sensors = [PiHoleSensor(hass, api, name, condition)
for condition in config[CONF_MONITORED_CONDITIONS]]

add_devices(sensors)
add_devices(sensors, True)


class PiHoleSensor(Entity):
Expand Down Expand Up @@ -134,7 +133,6 @@ def __init__(self, host, use_ssl, verify_ssl):

self.update()

@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
"""Get the latest data from the Pi-Hole."""
try:
Expand Down
Loading