"""Platform for light integration.""" from __future__ import annotations import logging from api import * from .gateway import find_all_devices import voluptuous as vol import homeassistant.helpers.config_validation as cv from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import SensorEntity from homeassistant.const import CONF_NAME, CONF_HOST from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType from homeassistant.helpers.typing import DiscoveryInfoType _LOGGER = logging.getLogger("atc_mi_thermometer_gateway") PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME): cv.string, vol.Required(CONF_HOST): cv.string, }) def setup_platform( hass: HomeAssistant, config: ConfigType, add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None): devices = find_all_devices(gateway=config[CONF_HOST]) for device in devices: add_entities(device) class MiThermometer(SensorEntity): def __init__(self, state:EntityState): self._mac = state.mac self._online = False self._last_update = "" self._temperature = state.temperature self._humidity = state.temperature self._battery_percentage = state.battery_percent self._rssi = state.rssi self._name = state.name self._room = state.room @property def mac(self): return self._mac @property def online(self): return self._online @property def get_name(self): return self._name @property def get_room(self): return self._room @property def get_temperature(self): return self._temperature @property def get_humidity(self): return self._humidity @property def get_battery_percentage(self): return self._battery_percentage @property def get_rssi(self): return self._rssi def update(self) -> None: state = get_state(gateway=config[CONF_HOST], entity_mac=self._mac)