Updated sensor to work with new version of hass
This commit is contained in:
@@ -1,13 +1,10 @@
|
|||||||
"""Platform for sensor integration."""
|
"""Platform for sensor integration."""
|
||||||
import aiohttp
|
|
||||||
import async_timeout
|
import async_timeout
|
||||||
import asyncio
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from random import randrange
|
|
||||||
|
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
@@ -20,16 +17,14 @@ from homeassistant.const import (
|
|||||||
ATTR_LONGITUDE,
|
ATTR_LONGITUDE,
|
||||||
CONF_MONITORED_CONDITIONS,
|
CONF_MONITORED_CONDITIONS,
|
||||||
DEVICE_CLASS_HUMIDITY,
|
DEVICE_CLASS_HUMIDITY,
|
||||||
DEVICE_CLASS_PRESSURE,
|
|
||||||
DEVICE_CLASS_TEMPERATURE,
|
DEVICE_CLASS_TEMPERATURE,
|
||||||
TEMP_CELSIUS,
|
TEMP_CELSIUS,
|
||||||
HTTP_BAD_REQUEST,
|
HTTP_BAD_REQUEST,
|
||||||
UNIT_PERCENTAGE,
|
PERCENTAGE,
|
||||||
)
|
)
|
||||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||||
from homeassistant.helpers.event import async_call_later, async_track_utc_time_change
|
|
||||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
@@ -39,7 +34,7 @@ CONF_STATION = "station"
|
|||||||
SENSOR_TYPES = {
|
SENSOR_TYPES = {
|
||||||
"temperature": ["Temperature", TEMP_CELSIUS, DEVICE_CLASS_TEMPERATURE],
|
"temperature": ["Temperature", TEMP_CELSIUS, DEVICE_CLASS_TEMPERATURE],
|
||||||
"precipitation": ["Precipitation", "mm", None],
|
"precipitation": ["Precipitation", "mm", None],
|
||||||
"humidity": ["Humidity", UNIT_PERCENTAGE, DEVICE_CLASS_HUMIDITY],
|
"humidity": ["Humidity", PERCENTAGE, DEVICE_CLASS_HUMIDITY],
|
||||||
}
|
}
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
@@ -66,7 +61,6 @@ CONFIG_CONDITIONS = {
|
|||||||
|
|
||||||
async def async_setup_platform(hass, config, add_entities, discovery_info=None):
|
async def async_setup_platform(hass, config, add_entities, discovery_info=None):
|
||||||
"""Set up the sensor platform."""
|
"""Set up the sensor platform."""
|
||||||
|
|
||||||
async def async_update_data():
|
async def async_update_data():
|
||||||
data = {}
|
data = {}
|
||||||
_LOGGER.info("Update MeteoSwiss data.")
|
_LOGGER.info("Update MeteoSwiss data.")
|
||||||
@@ -102,7 +96,7 @@ async def async_setup_platform(hass, config, add_entities, discovery_info=None):
|
|||||||
_LOGGER,
|
_LOGGER,
|
||||||
name="MeteoSwissData",
|
name="MeteoSwissData",
|
||||||
update_method=async_update_data,
|
update_method=async_update_data,
|
||||||
update_interval=timedelta(minutes=9),
|
update_interval=timedelta(minutes=10),
|
||||||
)
|
)
|
||||||
await coordinator.async_refresh()
|
await coordinator.async_refresh()
|
||||||
station = config.get(CONF_STATION)
|
station = config.get(CONF_STATION)
|
||||||
@@ -145,6 +139,7 @@ class MeteoSwissSensor(Entity):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def device_state_attributes(self):
|
def device_state_attributes(self):
|
||||||
|
"""Return device attributes."""
|
||||||
attributes = {
|
attributes = {
|
||||||
ATTR_ATTRIBUTION: "Data provided by MeteoSwiss via data.geo.admin.ch.",
|
ATTR_ATTRIBUTION: "Data provided by MeteoSwiss via data.geo.admin.ch.",
|
||||||
ATTR_TIME: self._coordinator.data[self._station][self._monitored_condition][
|
ATTR_TIME: self._coordinator.data[self._station][self._monitored_condition][
|
||||||
|
|||||||
Reference in New Issue
Block a user