1 """Support for monitoring juicenet/juicepoint/juicebox based EVSE sensors."""
3 from __future__
import annotations
8 SensorEntityDescription,
13 UnitOfElectricCurrent,
14 UnitOfElectricPotential,
23 from .const
import DOMAIN, JUICENET_API, JUICENET_COORDINATOR
24 from .entity
import JuiceNetDevice
26 SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
29 name=
"Charging Status",
33 native_unit_of_measurement=UnitOfTemperature.CELSIUS,
34 device_class=SensorDeviceClass.TEMPERATURE,
35 state_class=SensorStateClass.MEASUREMENT,
39 native_unit_of_measurement=UnitOfElectricPotential.VOLT,
40 device_class=SensorDeviceClass.VOLTAGE,
44 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
45 device_class=SensorDeviceClass.CURRENT,
46 state_class=SensorStateClass.MEASUREMENT,
50 native_unit_of_measurement=UnitOfPower.WATT,
51 device_class=SensorDeviceClass.POWER,
52 state_class=SensorStateClass.MEASUREMENT,
56 translation_key=
"charge_time",
57 native_unit_of_measurement=UnitOfTime.SECONDS,
58 icon=
"mdi:timer-outline",
62 translation_key=
"energy_added",
63 native_unit_of_measurement=UnitOfEnergy.WATT_HOUR,
64 device_class=SensorDeviceClass.ENERGY,
65 state_class=SensorStateClass.TOTAL_INCREASING,
72 config_entry: ConfigEntry,
73 async_add_entities: AddEntitiesCallback,
75 """Set up the JuiceNet Sensors."""
76 juicenet_data = hass.data[DOMAIN][config_entry.entry_id]
77 api = juicenet_data[JUICENET_API]
78 coordinator = juicenet_data[JUICENET_COORDINATOR]
82 for device
in api.devices
83 for description
in SENSOR_TYPES
89 """Implementation of a JuiceNet sensor."""
92 self, device, coordinator, description: SensorEntityDescription
94 """Initialise the sensor."""
95 super().
__init__(device, description.key, coordinator)
100 """Return the icon of the sensor."""
103 status = self.
devicedevice.status
104 if status ==
"standby":
105 icon =
"mdi:power-plug-off"
106 elif status ==
"plugged":
107 icon =
"mdi:power-plug"
108 elif status ==
"charging":
109 icon =
"mdi:battery-positive"
116 """Return the state."""
None __init__(self, device, coordinator, SensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)