Migrate PVOutput to new entity naming style (#75016)

This commit is contained in:
Franck Nijhof 2022-07-17 17:45:38 +02:00 committed by GitHub
parent 27e3ff9c69
commit 98dae902a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 25 deletions

View file

@ -47,7 +47,7 @@ class PVOutputSensorEntityDescription(
SENSORS: tuple[PVOutputSensorEntityDescription, ...] = (
PVOutputSensorEntityDescription(
key="energy_consumption",
name="Energy Consumed",
name="Energy consumed",
native_unit_of_measurement=ENERGY_WATT_HOUR,
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
@ -55,7 +55,7 @@ SENSORS: tuple[PVOutputSensorEntityDescription, ...] = (
),
PVOutputSensorEntityDescription(
key="energy_generation",
name="Energy Generated",
name="Energy generated",
native_unit_of_measurement=ENERGY_WATT_HOUR,
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
@ -70,7 +70,7 @@ SENSORS: tuple[PVOutputSensorEntityDescription, ...] = (
),
PVOutputSensorEntityDescription(
key="power_consumption",
name="Power Consumed",
name="Power consumed",
native_unit_of_measurement=POWER_WATT,
device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT,
@ -78,7 +78,7 @@ SENSORS: tuple[PVOutputSensorEntityDescription, ...] = (
),
PVOutputSensorEntityDescription(
key="power_generation",
name="Power Generated",
name="Power generated",
native_unit_of_measurement=POWER_WATT,
device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT,
@ -129,6 +129,7 @@ class PVOutputSensorEntity(
"""Representation of a PVOutput sensor."""
entity_description: PVOutputSensorEntityDescription
_attr_has_entity_name = True
def __init__(
self,

View file

@ -31,40 +31,46 @@ async def test_sensors(
entity_registry = er.async_get(hass)
device_registry = dr.async_get(hass)
state = hass.states.get("sensor.energy_consumed")
entry = entity_registry.async_get("sensor.energy_consumed")
state = hass.states.get("sensor.frenck_s_solar_farm_energy_consumed")
entry = entity_registry.async_get("sensor.frenck_s_solar_farm_energy_consumed")
assert entry
assert state
assert entry.unique_id == "12345_energy_consumption"
assert entry.entity_category is None
assert state.state == "1000"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENERGY
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Energy Consumed"
assert (
state.attributes.get(ATTR_FRIENDLY_NAME)
== "Frenck's Solar Farm Energy consumed"
)
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.TOTAL_INCREASING
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ENERGY_WATT_HOUR
assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.energy_generated")
entry = entity_registry.async_get("sensor.energy_generated")
state = hass.states.get("sensor.frenck_s_solar_farm_energy_generated")
entry = entity_registry.async_get("sensor.frenck_s_solar_farm_energy_generated")
assert entry
assert state
assert entry.unique_id == "12345_energy_generation"
assert entry.entity_category is None
assert state.state == "500"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENERGY
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Energy Generated"
assert (
state.attributes.get(ATTR_FRIENDLY_NAME)
== "Frenck's Solar Farm Energy generated"
)
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.TOTAL_INCREASING
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ENERGY_WATT_HOUR
assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.efficiency")
entry = entity_registry.async_get("sensor.efficiency")
state = hass.states.get("sensor.frenck_s_solar_farm_efficiency")
entry = entity_registry.async_get("sensor.frenck_s_solar_farm_efficiency")
assert entry
assert state
assert entry.unique_id == "12345_normalized_output"
assert entry.entity_category is None
assert state.state == "0.5"
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Efficiency"
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Frenck's Solar Farm Efficiency"
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert (
state.attributes.get(ATTR_UNIT_OF_MEASUREMENT)
@ -73,54 +79,59 @@ async def test_sensors(
assert ATTR_DEVICE_CLASS not in state.attributes
assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.power_consumed")
entry = entity_registry.async_get("sensor.power_consumed")
state = hass.states.get("sensor.frenck_s_solar_farm_power_consumed")
entry = entity_registry.async_get("sensor.frenck_s_solar_farm_power_consumed")
assert entry
assert state
assert entry.unique_id == "12345_power_consumption"
assert entry.entity_category is None
assert state.state == "2500"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.POWER
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Power Consumed"
assert (
state.attributes.get(ATTR_FRIENDLY_NAME) == "Frenck's Solar Farm Power consumed"
)
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == POWER_WATT
assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.power_generated")
entry = entity_registry.async_get("sensor.power_generated")
state = hass.states.get("sensor.frenck_s_solar_farm_power_generated")
entry = entity_registry.async_get("sensor.frenck_s_solar_farm_power_generated")
assert entry
assert state
assert entry.unique_id == "12345_power_generation"
assert entry.entity_category is None
assert state.state == "1500"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.POWER
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Power Generated"
assert (
state.attributes.get(ATTR_FRIENDLY_NAME)
== "Frenck's Solar Farm Power generated"
)
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == POWER_WATT
assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.temperature")
entry = entity_registry.async_get("sensor.temperature")
state = hass.states.get("sensor.frenck_s_solar_farm_temperature")
entry = entity_registry.async_get("sensor.frenck_s_solar_farm_temperature")
assert entry
assert state
assert entry.unique_id == "12345_temperature"
assert entry.entity_category is None
assert state.state == "20.2"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.TEMPERATURE
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Temperature"
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Frenck's Solar Farm Temperature"
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.voltage")
entry = entity_registry.async_get("sensor.voltage")
state = hass.states.get("sensor.frenck_s_solar_farm_voltage")
entry = entity_registry.async_get("sensor.frenck_s_solar_farm_voltage")
assert entry
assert state
assert entry.unique_id == "12345_voltage"
assert entry.entity_category is None
assert state.state == "220.5"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.VOLTAGE
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Voltage"
assert state.attributes.get(ATTR_FRIENDLY_NAME) == "Frenck's Solar Farm Voltage"
assert state.attributes.get(ATTR_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ELECTRIC_POTENTIAL_VOLT
assert ATTR_ICON not in state.attributes