54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
"""
|
|
Place this code in custom_components/heat_pump_monitor/sensor.py
|
|
"""
|
|
from homeassistant.components.sensor import (
|
|
SensorEntity,
|
|
SensorDeviceClass,
|
|
SensorStateClass,
|
|
)
|
|
from homeassistant.const import UnitOfTemperature
|
|
|
|
from . import DOMAIN
|
|
from .__init__ import HeatPumpEntity
|
|
|
|
async def async_setup_entry(hass, entry, async_add_entities):
|
|
"""Set up sensors."""
|
|
coordinator = hass.data[DOMAIN][entry.entry_id]
|
|
|
|
entities = [
|
|
HeatPumpModeSensor(coordinator, "water_mode"),
|
|
HeatPumpTemperatureSensor(coordinator, "current_temperature", "Current Temperature"),
|
|
]
|
|
async_add_entities(entities)
|
|
|
|
class HeatPumpModeSensor(HeatPumpEntity, SensorEntity):
|
|
"""Sensor for heat pump water mode."""
|
|
|
|
def __init__(self, coordinator, key):
|
|
"""Initialize the sensor."""
|
|
super().__init__(coordinator, key)
|
|
self._attr_name = "Heat Pump Water Mode"
|
|
self._attr_unique_id = f"{DOMAIN}_water_mode"
|
|
self._attr_device_class = SensorDeviceClass.ENUM
|
|
|
|
@property
|
|
def native_value(self):
|
|
"""Return the state of the sensor."""
|
|
return self.coordinator.data.get(self.key)
|
|
|
|
class HeatPumpTemperatureSensor(HeatPumpEntity, SensorEntity):
|
|
"""Sensor for heat pump temperature values."""
|
|
|
|
def __init__(self, coordinator, key, name):
|
|
"""Initialize the sensor."""
|
|
super().__init__(coordinator, key)
|
|
self._attr_name = f"Heat Pump {name}"
|
|
self._attr_unique_id = f"{DOMAIN}_{key}"
|
|
self._attr_device_class = SensorDeviceClass.TEMPERATURE
|
|
self._attr_native_unit_of_measurement = UnitOfTemperature.CELSIUS
|
|
self._attr_state_class = SensorStateClass.MEASUREMENT
|
|
|
|
@property
|
|
def native_value(self):
|
|
"""Return the state of the sensor."""
|
|
return self.coordinator.data.get(self.key) |