1 """Platform for sensor integration."""
3 from __future__
import annotations
5 from datetime
import timedelta
8 from oru
import Meter, MeterError
9 import voluptuous
as vol
12 PLATFORM_SCHEMA
as SENSOR_PLATFORM_SCHEMA,
22 _LOGGER = logging.getLogger(__name__)
24 CONF_METER_NUMBER =
"meter_number"
28 PLATFORM_SCHEMA = SENSOR_PLATFORM_SCHEMA.extend(
29 {vol.Required(CONF_METER_NUMBER): cv.string}
36 add_entities: AddEntitiesCallback,
37 discovery_info: DiscoveryInfoType |
None =
None,
39 """Set up the sensor platform."""
41 meter_number = config[CONF_METER_NUMBER]
44 meter = Meter(meter_number)
47 _LOGGER.error(
"Unable to create Oru meter")
52 _LOGGER.debug(
"Oru meter_number = %s", meter_number)
56 """Representation of the sensor."""
58 _attr_device_class = SensorDeviceClass.ENERGY
59 _attr_name =
"ORU Current Energy Usage"
60 _attr_native_unit_of_measurement = UnitOfEnergy.KILO_WATT_HOUR
63 """Initialize the sensor."""
69 """Return a unique, Home Assistant friendly identifier for this entity."""
70 return self.
metermeter.meter_id
73 """Fetch new state data for the sensor."""
75 last_read = self.
metermeter.last_read()
86 except MeterError
as err:
89 _LOGGER.error(
"Unexpected oru meter error: %s", err)
def __init__(self, meter)
StateType|date|datetime|Decimal native_value(self)
str|None native_unit_of_measurement(self)
str|UndefinedType|None name(self)
def add_entities(account, async_add_entities, tracked)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)