Move calculation of current value into lib in Fritz!SmartHome (#89150)
This commit is contained in:
parent
b7ac0058af
commit
d4edec2863
3 changed files with 2 additions and 30 deletions
|
@ -74,17 +74,6 @@ def suitable_temperature(device: FritzhomeDevice) -> bool:
|
|||
return device.has_temperature_sensor and not device.has_thermostat
|
||||
|
||||
|
||||
def value_electric_current(device: FritzhomeDevice) -> float:
|
||||
"""Return native value for electric current sensor."""
|
||||
if (
|
||||
isinstance(device.power, int)
|
||||
and isinstance(device.voltage, int)
|
||||
and device.voltage > 0
|
||||
):
|
||||
return round(device.power / device.voltage, 3)
|
||||
return 0.0
|
||||
|
||||
|
||||
def value_nextchange_preset(device: FritzhomeDevice) -> str:
|
||||
"""Return native value for next scheduled preset sensor."""
|
||||
if device.nextchange_temperature == device.eco_temperature:
|
||||
|
@ -153,7 +142,7 @@ SENSOR_TYPES: Final[tuple[FritzSensorEntityDescription, ...]] = (
|
|||
device_class=SensorDeviceClass.CURRENT,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
suitable=lambda device: device.has_powermeter, # type: ignore[no-any-return]
|
||||
native_value=value_electric_current,
|
||||
native_value=lambda device: round((device.current or 0.0) / 1000, 3),
|
||||
),
|
||||
FritzSensorEntityDescription(
|
||||
key="total_energy",
|
||||
|
|
|
@ -129,6 +129,7 @@ class FritzDeviceSwitchMock(FritzEntityBaseMock):
|
|||
device_lock = "fake_locked_device"
|
||||
energy = 1234
|
||||
voltage = 230000
|
||||
current = 25
|
||||
fw_version = "1.2.3"
|
||||
has_alarm = False
|
||||
has_powermeter = True
|
||||
|
|
|
@ -174,21 +174,3 @@ async def test_assume_device_unavailable(hass: HomeAssistant, fritz: Mock) -> No
|
|||
state = hass.states.get(ENTITY_ID)
|
||||
assert state
|
||||
assert state.state == STATE_UNAVAILABLE
|
||||
|
||||
|
||||
async def test_device_current_unavailable(hass: HomeAssistant, fritz: Mock) -> None:
|
||||
"""Test current in case voltage and power are not available."""
|
||||
device = FritzDeviceSwitchMock()
|
||||
device.voltage = None
|
||||
device.power = None
|
||||
assert await setup_config_entry(
|
||||
hass, MOCK_CONFIG[FB_DOMAIN][CONF_DEVICES][0], ENTITY_ID, device, fritz
|
||||
)
|
||||
|
||||
state = hass.states.get(ENTITY_ID)
|
||||
assert state
|
||||
assert state.state == STATE_ON
|
||||
|
||||
state = hass.states.get(f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_electric_current")
|
||||
assert state
|
||||
assert state.state == "0.0"
|
||||
|
|
Loading…
Add table
Reference in a new issue