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

View File

@ -31,40 +31,46 @@ async def test_sensors(
entity_registry = er.async_get(hass) entity_registry = er.async_get(hass)
device_registry = dr.async_get(hass) device_registry = dr.async_get(hass)
state = hass.states.get("sensor.energy_consumed") state = hass.states.get("sensor.frenck_s_solar_farm_energy_consumed")
entry = entity_registry.async_get("sensor.energy_consumed") entry = entity_registry.async_get("sensor.frenck_s_solar_farm_energy_consumed")
assert entry assert entry
assert state assert state
assert entry.unique_id == "12345_energy_consumption" assert entry.unique_id == "12345_energy_consumption"
assert entry.entity_category is None assert entry.entity_category is None
assert state.state == "1000" assert state.state == "1000"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENERGY 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_STATE_CLASS) is SensorStateClass.TOTAL_INCREASING
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ENERGY_WATT_HOUR assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ENERGY_WATT_HOUR
assert ATTR_ICON not in state.attributes assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.energy_generated") state = hass.states.get("sensor.frenck_s_solar_farm_energy_generated")
entry = entity_registry.async_get("sensor.energy_generated") entry = entity_registry.async_get("sensor.frenck_s_solar_farm_energy_generated")
assert entry assert entry
assert state assert state
assert entry.unique_id == "12345_energy_generation" assert entry.unique_id == "12345_energy_generation"
assert entry.entity_category is None assert entry.entity_category is None
assert state.state == "500" assert state.state == "500"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENERGY 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_STATE_CLASS) is SensorStateClass.TOTAL_INCREASING
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ENERGY_WATT_HOUR assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ENERGY_WATT_HOUR
assert ATTR_ICON not in state.attributes assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.efficiency") state = hass.states.get("sensor.frenck_s_solar_farm_efficiency")
entry = entity_registry.async_get("sensor.efficiency") entry = entity_registry.async_get("sensor.frenck_s_solar_farm_efficiency")
assert entry assert entry
assert state assert state
assert entry.unique_id == "12345_normalized_output" assert entry.unique_id == "12345_normalized_output"
assert entry.entity_category is None assert entry.entity_category is None
assert state.state == "0.5" 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_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert ( assert (
state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) 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_DEVICE_CLASS not in state.attributes
assert ATTR_ICON not in state.attributes assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.power_consumed") state = hass.states.get("sensor.frenck_s_solar_farm_power_consumed")
entry = entity_registry.async_get("sensor.power_consumed") entry = entity_registry.async_get("sensor.frenck_s_solar_farm_power_consumed")
assert entry assert entry
assert state assert state
assert entry.unique_id == "12345_power_consumption" assert entry.unique_id == "12345_power_consumption"
assert entry.entity_category is None assert entry.entity_category is None
assert state.state == "2500" assert state.state == "2500"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.POWER 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_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == POWER_WATT assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == POWER_WATT
assert ATTR_ICON not in state.attributes assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.power_generated") state = hass.states.get("sensor.frenck_s_solar_farm_power_generated")
entry = entity_registry.async_get("sensor.power_generated") entry = entity_registry.async_get("sensor.frenck_s_solar_farm_power_generated")
assert entry assert entry
assert state assert state
assert entry.unique_id == "12345_power_generation" assert entry.unique_id == "12345_power_generation"
assert entry.entity_category is None assert entry.entity_category is None
assert state.state == "1500" assert state.state == "1500"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.POWER 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_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == POWER_WATT assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == POWER_WATT
assert ATTR_ICON not in state.attributes assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.temperature") state = hass.states.get("sensor.frenck_s_solar_farm_temperature")
entry = entity_registry.async_get("sensor.temperature") entry = entity_registry.async_get("sensor.frenck_s_solar_farm_temperature")
assert entry assert entry
assert state assert state
assert entry.unique_id == "12345_temperature" assert entry.unique_id == "12345_temperature"
assert entry.entity_category is None assert entry.entity_category is None
assert state.state == "20.2" assert state.state == "20.2"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.TEMPERATURE 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_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == TEMP_CELSIUS
assert ATTR_ICON not in state.attributes assert ATTR_ICON not in state.attributes
state = hass.states.get("sensor.voltage") state = hass.states.get("sensor.frenck_s_solar_farm_voltage")
entry = entity_registry.async_get("sensor.voltage") entry = entity_registry.async_get("sensor.frenck_s_solar_farm_voltage")
assert entry assert entry
assert state assert state
assert entry.unique_id == "12345_voltage" assert entry.unique_id == "12345_voltage"
assert entry.entity_category is None assert entry.entity_category is None
assert state.state == "220.5" assert state.state == "220.5"
assert state.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.VOLTAGE 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_STATE_CLASS) is SensorStateClass.MEASUREMENT
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ELECTRIC_POTENTIAL_VOLT assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == ELECTRIC_POTENTIAL_VOLT
assert ATTR_ICON not in state.attributes assert ATTR_ICON not in state.attributes