Files
2022-04-06 12:02:24 +02:00

112 lines
2.8 KiB
Python

from dataclasses import asdict
from homeassistant.helpers.entity import Entity
from . import get_coordinator
async def async_setup_entry(hass, _, async_add_entities):
"""Defer sensor setup to the shared sensor module."""
coordinator = await get_coordinator(hass)
async_add_entities(
[
CoronaAugsburgSensor(coordinator),
CoronaAugsburgVaccinationSensor(coordinator),
]
)
class CoronaAugsburgSensor(Entity):
"""Representation of a county with Corona cases."""
def __init__(self, coordinator):
"""Initialize sensor."""
self.coordinator = coordinator
self._name = "Coronavirus Augsburg"
self._state = None
@property
def available(self):
return self.coordinator.last_update_success and self.coordinator.data
@property
def name(self):
return self._name
@property
def unique_id(self):
return self._name
@property
def icon(self):
return "mdi:biohazard"
@property
def unit_of_measurement(self):
return ""
@property
def state(self):
return self.coordinator.data["incidence"].incidence
@property
def extra_state_attributes(self):
data = self.coordinator.data["incidence"]
return asdict(data)
async def async_added_to_hass(self):
"""When entity is added to hass."""
self.coordinator.async_add_listener(self.async_write_ha_state)
async def async_will_remove_from_hass(self):
"""When entity will be removed from hass."""
self.coordinator.async_remove_listener(self.async_write_ha_state)
class CoronaAugsburgVaccinationSensor(Entity):
"""Representation of vaccination data for the city of Augsburg"""
def __init__(self, coordinator):
"""Initialize sensor."""
self.coordinator = coordinator
self._name = "COVID-19 Vaccinations Augsburg"
self._state = None
@property
def available(self):
return self.coordinator.last_update_success and self.coordinator.data
@property
def name(self):
return self._name
@property
def unique_id(self):
return self._name
@property
def icon(self):
return "mdi:needle"
@property
def unit_of_measurement(self):
return ""
@property
def state(self):
return self.coordinator.data["vaccination"].total_vaccinations
@property
def extra_state_attributes(self):
data = self.coordinator.data["vaccination"]
return asdict(data)
async def async_added_to_hass(self):
"""When entity is added to hass."""
self.coordinator.async_add_listener(self.async_write_ha_state)
async def async_will_remove_from_hass(self):
"""When entity will be removed from hass."""
self.coordinator.async_remove_listener(self.async_write_ha_state)