Shelly - handle None in RPC power sensors (#86399)

Handle None in RPC power sensors
pull/86404/head
Shay Levy 2023-01-22 22:18:47 +02:00 committed by GitHub
parent 32c1a01159
commit 9e4be56939
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 2 deletions

View File

@ -318,7 +318,7 @@ RPC_SENSORS: Final = {
sub_key="apower",
name="Power",
native_unit_of_measurement=UnitOfPower.WATT,
value=lambda status, _: round(float(status), 1),
value=lambda status, _: None if status is None else round(float(status), 1),
device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT,
),
@ -327,7 +327,7 @@ RPC_SENSORS: Final = {
sub_key="voltage",
name="Voltage",
native_unit_of_measurement=UnitOfElectricPotential.VOLT,
value=lambda status, _: round(float(status), 1),
value=lambda status, _: None if status is None else round(float(status), 1),
device_class=SensorDeviceClass.VOLTAGE,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,

View File

@ -180,6 +180,11 @@ async def test_rpc_sensor(hass, mock_rpc_device, monkeypatch) -> None:
assert hass.states.get(entity_id).state == "88.2"
mutate_rpc_device_status(monkeypatch, mock_rpc_device, "cover:0", "apower", None)
mock_rpc_device.mock_update()
assert hass.states.get(entity_id).state == STATE_UNKNOWN
async def test_rpc_sensor_error(hass, mock_rpc_device, monkeypatch):
"""Test RPC sensor unavailable on sensor error."""