From eb058a3d41349893df1450cbef3988ef19c7cf91 Mon Sep 17 00:00:00 2001 From: Maciej Bieniek Date: Thu, 25 May 2023 21:10:44 +0000 Subject: [PATCH] Add illuminance sensor for Shelly gen2 devices (#93559) --- homeassistant/components/shelly/sensor.py | 8 ++++++++ tests/components/shelly/conftest.py | 1 + tests/components/shelly/test_sensor.py | 10 ++++++++++ 3 files changed, 19 insertions(+) diff --git a/homeassistant/components/shelly/sensor.py b/homeassistant/components/shelly/sensor.py index ce77a6e9ff6..4a88157efc6 100644 --- a/homeassistant/components/shelly/sensor.py +++ b/homeassistant/components/shelly/sensor.py @@ -584,6 +584,14 @@ RPC_SENSORS: Final = { state_class=SensorStateClass.TOTAL_INCREASING, entity_registry_enabled_default=False, ), + "illuminance": RpcSensorDescription( + key="illuminance", + sub_key="lux", + name="Illuminance", + native_unit_of_measurement=LIGHT_LUX, + device_class=SensorDeviceClass.ILLUMINANCE, + state_class=SensorStateClass.MEASUREMENT, + ), "temperature": RpcSensorDescription( key="switch", sub_key="temperature", diff --git a/tests/components/shelly/conftest.py b/tests/components/shelly/conftest.py index 8fa5b0eaeac..2a80233aeb9 100644 --- a/tests/components/shelly/conftest.py +++ b/tests/components/shelly/conftest.py @@ -190,6 +190,7 @@ MOCK_STATUS_RPC = { "apower": 85.3, }, "temperature:0": {"tC": 22.9}, + "illuminance:0": {"lux": 345}, "sys": { "available_updates": { "beta": {"version": "some_beta_version"}, diff --git a/tests/components/shelly/test_sensor.py b/tests/components/shelly/test_sensor.py index d5da1e96bce..0b906d60079 100644 --- a/tests/components/shelly/test_sensor.py +++ b/tests/components/shelly/test_sensor.py @@ -274,6 +274,16 @@ async def test_rpc_sensor(hass: HomeAssistant, mock_rpc_device, monkeypatch) -> assert hass.states.get(entity_id).state == STATE_UNKNOWN +async def test_rpc_illuminance_sensor( + hass: HomeAssistant, mock_rpc_device, monkeypatch +) -> None: + """Test RPC illuminacne sensor.""" + entity_id = f"{SENSOR_DOMAIN}.test_name_illuminance" + await init_integration(hass, 2) + + assert hass.states.get(entity_id).state == "345" + + async def test_rpc_sensor_error( hass: HomeAssistant, mock_rpc_device, monkeypatch ) -> None: