mirror of
https://github.com/home-assistant/core.git
synced 2026-08-24 10:13:52 -05:00
Fix SolarEdge energy sensors losing unit of measurement (#175335)
This commit is contained in:
@@ -543,7 +543,8 @@ class SolarEdgeEnergyDetailsSensor(SolarEdgeSensorEntity):
|
||||
"""Initialize the power flow sensor."""
|
||||
super().__init__(sensor_type, data_service)
|
||||
|
||||
self._attr_native_unit_of_measurement = data_service.unit
|
||||
if data_service.unit is not None:
|
||||
self._attr_native_unit_of_measurement = data_service.unit
|
||||
|
||||
@property
|
||||
@override
|
||||
@@ -571,7 +572,8 @@ class SolarEdgePowerFlowSensor(SolarEdgeSensorEntity):
|
||||
"""Initialize the power flow sensor."""
|
||||
super().__init__(description, data_service)
|
||||
|
||||
self._attr_native_unit_of_measurement = data_service.unit
|
||||
if data_service.unit is not None:
|
||||
self._attr_native_unit_of_measurement = data_service.unit
|
||||
|
||||
@property
|
||||
@override
|
||||
|
||||
@@ -213,6 +213,24 @@ async def test_energy_details_sensor_unknown_when_no_meters(
|
||||
assert state.state == STATE_UNKNOWN
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
async def test_energy_details_sensor_keeps_unit_when_api_fails(
|
||||
recorder_mock: Recorder,
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
solaredge_api: Mock,
|
||||
) -> None:
|
||||
"""Test energy detail sensors keep their unit when the initial API call fails."""
|
||||
solaredge_api.get_energy_details.return_value = {}
|
||||
|
||||
await setup_integration(hass, mock_config_entry)
|
||||
|
||||
state = hass.states.get("sensor.solaredge_produced_energy")
|
||||
assert state is not None
|
||||
assert state.state == STATE_UNAVAILABLE
|
||||
assert state.attributes["unit_of_measurement"] == "Wh"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
async def test_energy_details_filters_meters(
|
||||
recorder_mock: Recorder,
|
||||
|
||||
Reference in New Issue
Block a user