1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 12:59:34 +00:00
This commit is contained in:
Paulus Schoutsen
2019-07-31 12:25:30 -07:00
parent da05dfe708
commit 4de97abc3a
2676 changed files with 163166 additions and 140084 deletions

View File

@@ -4,9 +4,7 @@ import logging
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (TEMP_FAHRENHEIT,
TEMP_CELSIUS,
CONF_MONITORED_CONDITIONS)
from homeassistant.const import TEMP_FAHRENHEIT, TEMP_CELSIUS, CONF_MONITORED_CONDITIONS
from homeassistant.helpers.entity import Entity
import homeassistant.helpers.config_validation as cv
@@ -15,34 +13,43 @@ from . import BLOOMSKY
LOGGER = logging.getLogger(__name__)
# These are the available sensors
SENSOR_TYPES = ['Temperature',
'Humidity',
'Pressure',
'Luminance',
'UVIndex',
'Voltage']
SENSOR_TYPES = [
"Temperature",
"Humidity",
"Pressure",
"Luminance",
"UVIndex",
"Voltage",
]
# Sensor units - these do not currently align with the API documentation
SENSOR_UNITS_IMPERIAL = {'Temperature': TEMP_FAHRENHEIT,
'Humidity': '%',
'Pressure': 'inHg',
'Luminance': 'cd/m²',
'Voltage': 'mV'}
SENSOR_UNITS_IMPERIAL = {
"Temperature": TEMP_FAHRENHEIT,
"Humidity": "%",
"Pressure": "inHg",
"Luminance": "cd/m²",
"Voltage": "mV",
}
# Metric units
SENSOR_UNITS_METRIC = {'Temperature': TEMP_CELSIUS,
'Humidity': '%',
'Pressure': 'mbar',
'Luminance': 'cd/m²',
'Voltage': 'mV'}
SENSOR_UNITS_METRIC = {
"Temperature": TEMP_CELSIUS,
"Humidity": "%",
"Pressure": "mbar",
"Luminance": "cd/m²",
"Voltage": "mV",
}
# Which sensors to format numerically
FORMAT_NUMBERS = ['Temperature', 'Pressure', 'Voltage']
FORMAT_NUMBERS = ["Temperature", "Pressure", "Voltage"]
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_MONITORED_CONDITIONS, default=SENSOR_TYPES):
vol.All(cv.ensure_list, [vol.In(SENSOR_TYPES)]),
})
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_MONITORED_CONDITIONS, default=SENSOR_TYPES): vol.All(
cv.ensure_list, [vol.In(SENSOR_TYPES)]
)
}
)
def setup_platform(hass, config, add_entities, discovery_info=None):
@@ -52,8 +59,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
for device in BLOOMSKY.devices.values():
for variable in sensors:
add_entities(
[BloomSkySensor(BLOOMSKY, device, variable)], True)
add_entities([BloomSkySensor(BLOOMSKY, device, variable)], True)
class BloomSkySensor(Entity):
@@ -62,11 +68,11 @@ class BloomSkySensor(Entity):
def __init__(self, bs, device, sensor_name):
"""Initialize a BloomSky sensor."""
self._bloomsky = bs
self._device_id = device['DeviceID']
self._device_id = device["DeviceID"]
self._sensor_name = sensor_name
self._name = '{} {}'.format(device['DeviceName'], sensor_name)
self._name = "{} {}".format(device["DeviceName"], sensor_name)
self._state = None
self._unique_id = '{}-{}'.format(self._device_id, self._sensor_name)
self._unique_id = "{}-{}".format(self._device_id, self._sensor_name)
@property
def unique_id(self):
@@ -94,10 +100,9 @@ class BloomSkySensor(Entity):
"""Request an update from the BloomSky API."""
self._bloomsky.refresh_devices()
state = \
self._bloomsky.devices[self._device_id]['Data'][self._sensor_name]
state = self._bloomsky.devices[self._device_id]["Data"][self._sensor_name]
if self._sensor_name in FORMAT_NUMBERS:
self._state = '{0:.2f}'.format(state)
self._state = "{0:.2f}".format(state)
else:
self._state = state