diff --git a/homeassistant/components/sensor/__init__.py b/homeassistant/components/sensor/__init__.py index 562b50bbc61fef1886778256cdfd4f412e844c9e..d4f4aa3c37d4240d5709422ffaedeee99879c287 100644 --- a/homeassistant/components/sensor/__init__.py +++ b/homeassistant/components/sensor/__init__.py @@ -119,6 +119,9 @@ class SensorDeviceClass(StrEnum): # current light level (lx/lm) ILLUMINANCE = "illuminance" + # moisture (%) + MOISTURE = "moisture" + # Amount of money (currency) MONETARY = "monetary" diff --git a/homeassistant/components/sensor/device_condition.py b/homeassistant/components/sensor/device_condition.py index 808d6367cdf232950ec016a1b58708bbca0e8efe..01be2f37172f2c0e68557f6f98d30a79aebfba8b 100644 --- a/homeassistant/components/sensor/device_condition.py +++ b/homeassistant/components/sensor/device_condition.py @@ -43,6 +43,7 @@ CONF_IS_FREQUENCY = "is_frequency" CONF_IS_HUMIDITY = "is_humidity" CONF_IS_GAS = "is_gas" CONF_IS_ILLUMINANCE = "is_illuminance" +CONF_IS_MOISTURE = "is_moisture" CONF_IS_NITROGEN_DIOXIDE = "is_nitrogen_dioxide" CONF_IS_NITROGEN_MONOXIDE = "is_nitrogen_monoxide" CONF_IS_NITROUS_OXIDE = "is_nitrous_oxide" @@ -72,6 +73,7 @@ ENTITY_CONDITIONS = { SensorDeviceClass.GAS: [{CONF_TYPE: CONF_IS_GAS}], SensorDeviceClass.HUMIDITY: [{CONF_TYPE: CONF_IS_HUMIDITY}], SensorDeviceClass.ILLUMINANCE: [{CONF_TYPE: CONF_IS_ILLUMINANCE}], + SensorDeviceClass.MOISTURE: [{CONF_TYPE: CONF_IS_MOISTURE}], SensorDeviceClass.NITROGEN_DIOXIDE: [{CONF_TYPE: CONF_IS_NITROGEN_DIOXIDE}], SensorDeviceClass.NITROGEN_MONOXIDE: [{CONF_TYPE: CONF_IS_NITROGEN_MONOXIDE}], SensorDeviceClass.NITROUS_OXIDE: [{CONF_TYPE: CONF_IS_NITROUS_OXIDE}], @@ -110,6 +112,7 @@ CONDITION_SCHEMA = vol.All( CONF_IS_HUMIDITY, CONF_IS_ILLUMINANCE, CONF_IS_OZONE, + CONF_IS_MOISTURE, CONF_IS_NITROGEN_DIOXIDE, CONF_IS_NITROGEN_MONOXIDE, CONF_IS_NITROUS_OXIDE, diff --git a/homeassistant/components/sensor/device_trigger.py b/homeassistant/components/sensor/device_trigger.py index 5c815d3c5463759c7d1a31c9f8a7ce4b5edc9d96..90d0a4c3d0e0a6e8372618a7c3966855dd0adc2d 100644 --- a/homeassistant/components/sensor/device_trigger.py +++ b/homeassistant/components/sensor/device_trigger.py @@ -42,6 +42,7 @@ CONF_FREQUENCY = "frequency" CONF_GAS = "gas" CONF_HUMIDITY = "humidity" CONF_ILLUMINANCE = "illuminance" +CONF_MOISTURE = "moisture" CONF_NITROGEN_DIOXIDE = "nitrogen_dioxide" CONF_NITROGEN_MONOXIDE = "nitrogen_monoxide" CONF_NITROUS_OXIDE = "nitrous_oxide" @@ -71,6 +72,7 @@ ENTITY_TRIGGERS = { SensorDeviceClass.GAS: [{CONF_TYPE: CONF_GAS}], SensorDeviceClass.HUMIDITY: [{CONF_TYPE: CONF_HUMIDITY}], SensorDeviceClass.ILLUMINANCE: [{CONF_TYPE: CONF_ILLUMINANCE}], + SensorDeviceClass.MOISTURE: [{CONF_TYPE: CONF_MOISTURE}], SensorDeviceClass.NITROGEN_DIOXIDE: [{CONF_TYPE: CONF_NITROGEN_DIOXIDE}], SensorDeviceClass.NITROGEN_MONOXIDE: [{CONF_TYPE: CONF_NITROGEN_MONOXIDE}], SensorDeviceClass.NITROUS_OXIDE: [{CONF_TYPE: CONF_NITROUS_OXIDE}], @@ -109,6 +111,7 @@ TRIGGER_SCHEMA = vol.All( CONF_GAS, CONF_HUMIDITY, CONF_ILLUMINANCE, + CONF_MOISTURE, CONF_NITROGEN_DIOXIDE, CONF_NITROGEN_MONOXIDE, CONF_NITROUS_OXIDE, diff --git a/homeassistant/components/sensor/strings.json b/homeassistant/components/sensor/strings.json index f09f2c80db0dff48d921bce9bddf8bb8b3aeedd7..bac12bd8cb24c4710adb189dd2ac8ef95c36d6c7 100644 --- a/homeassistant/components/sensor/strings.json +++ b/homeassistant/components/sensor/strings.json @@ -9,6 +9,7 @@ "is_gas": "Current {entity_name} gas", "is_humidity": "Current {entity_name} humidity", "is_illuminance": "Current {entity_name} illuminance", + "is_moisture": "Current {entity_name} moisture", "is_nitrogen_dioxide": "Current {entity_name} nitrogen dioxide concentration level", "is_nitrogen_monoxide": "Current {entity_name} nitrogen monoxide concentration level", "is_nitrous_oxide": "Current {entity_name} nitrous oxide concentration level", @@ -38,6 +39,7 @@ "gas": "{entity_name} gas changes", "humidity": "{entity_name} humidity changes", "illuminance": "{entity_name} illuminance changes", + "moisture": "{entity_name} moisture changes", "nitrogen_dioxide": "{entity_name} nitrogen dioxide concentration changes", "nitrogen_monoxide": "{entity_name} nitrogen monoxide concentration changes", "nitrous_oxide": "{entity_name} nitrous oxide concentration changes", diff --git a/tests/components/sensor/test_device_condition.py b/tests/components/sensor/test_device_condition.py index ab143e615d1ff1fdce41156fbc392b3e7b49dad0..de0aa61b9944f527a757287dca0f78fcce592d5a 100644 --- a/tests/components/sensor/test_device_condition.py +++ b/tests/components/sensor/test_device_condition.py @@ -85,7 +85,7 @@ async def test_get_conditions(hass, device_reg, entity_reg, enable_custom_integr conditions = await async_get_device_automations( hass, DeviceAutomationType.CONDITION, device_entry.id ) - assert len(conditions) == 26 + assert len(conditions) == 27 assert_lists_same(conditions, expected_conditions) diff --git a/tests/components/sensor/test_device_trigger.py b/tests/components/sensor/test_device_trigger.py index 2592d51dcdf1cb3dfdf1d01830d7d4ce7d578a8a..c4b321fa59d3b918caf0558408068368d7a486c7 100644 --- a/tests/components/sensor/test_device_trigger.py +++ b/tests/components/sensor/test_device_trigger.py @@ -89,7 +89,7 @@ async def test_get_triggers(hass, device_reg, entity_reg, enable_custom_integrat triggers = await async_get_device_automations( hass, DeviceAutomationType.TRIGGER, device_entry.id ) - assert len(triggers) == 26 + assert len(triggers) == 27 assert_lists_same(triggers, expected_triggers) diff --git a/tests/testing_config/custom_components/test/sensor.py b/tests/testing_config/custom_components/test/sensor.py index 56587c80c3480b191b670d7ad1acc70a1e31d3f9..6404a126807d35d90d50f0c9724647d887527954 100644 --- a/tests/testing_config/custom_components/test/sensor.py +++ b/tests/testing_config/custom_components/test/sensor.py @@ -32,6 +32,7 @@ UNITS_OF_MEASUREMENT = { SensorDeviceClass.CO2: CONCENTRATION_PARTS_PER_MILLION, # ppm of CO2 concentration SensorDeviceClass.HUMIDITY: PERCENTAGE, # % of humidity in the air SensorDeviceClass.ILLUMINANCE: "lm", # current light level (lx/lm) + SensorDeviceClass.MOISTURE: PERCENTAGE, # % of water in a substance SensorDeviceClass.NITROGEN_DIOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen dioxide SensorDeviceClass.NITROGEN_MONOXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen monoxide SensorDeviceClass.NITROUS_OXIDE: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, # µg/m³ of nitrogen oxide