diff --git a/homeassistant/components/imgw_pib/icons.json b/homeassistant/components/imgw_pib/icons.json index 7ad72efca80..bf8608ae21b 100644 --- a/homeassistant/components/imgw_pib/icons.json +++ b/homeassistant/components/imgw_pib/icons.json @@ -15,6 +15,12 @@ } }, "sensor": { + "flood_warning_level": { + "default": "mdi:alert-outline" + }, + "flood_alarm_level": { + "default": "mdi:alert" + }, "water_level": { "default": "mdi:waves" }, diff --git a/homeassistant/components/imgw_pib/sensor.py b/homeassistant/components/imgw_pib/sensor.py index d3f2162c056..f000222b31b 100644 --- a/homeassistant/components/imgw_pib/sensor.py +++ b/homeassistant/components/imgw_pib/sensor.py @@ -13,7 +13,7 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) -from homeassistant.const import UnitOfLength, UnitOfTemperature +from homeassistant.const import EntityCategory, UnitOfLength, UnitOfTemperature from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import StateType @@ -33,6 +33,26 @@ class ImgwPibSensorEntityDescription(SensorEntityDescription): SENSOR_TYPES: tuple[ImgwPibSensorEntityDescription, ...] = ( + ImgwPibSensorEntityDescription( + key="flood_alarm_level", + translation_key="flood_alarm_level", + native_unit_of_measurement=UnitOfLength.CENTIMETERS, + device_class=SensorDeviceClass.DISTANCE, + entity_category=EntityCategory.DIAGNOSTIC, + suggested_display_precision=0, + entity_registry_enabled_default=False, + value=lambda data: data.flood_alarm_level.value, + ), + ImgwPibSensorEntityDescription( + key="flood_warning_level", + translation_key="flood_warning_level", + native_unit_of_measurement=UnitOfLength.CENTIMETERS, + device_class=SensorDeviceClass.DISTANCE, + entity_category=EntityCategory.DIAGNOSTIC, + suggested_display_precision=0, + entity_registry_enabled_default=False, + value=lambda data: data.flood_warning_level.value, + ), ImgwPibSensorEntityDescription( key="water_level", translation_key="water_level", diff --git a/homeassistant/components/imgw_pib/strings.json b/homeassistant/components/imgw_pib/strings.json index b4246861d4c..6bc337d5720 100644 --- a/homeassistant/components/imgw_pib/strings.json +++ b/homeassistant/components/imgw_pib/strings.json @@ -26,6 +26,12 @@ } }, "sensor": { + "flood_alarm_level": { + "name": "Flood alarm level" + }, + "flood_warning_level": { + "name": "Flood warning level" + }, "water_level": { "name": "Water level" }, diff --git a/tests/components/imgw_pib/snapshots/test_sensor.ambr b/tests/components/imgw_pib/snapshots/test_sensor.ambr index 0bce7c96d7c..2638e468d92 100644 --- a/tests/components/imgw_pib/snapshots/test_sensor.ambr +++ b/tests/components/imgw_pib/snapshots/test_sensor.ambr @@ -1,4 +1,108 @@ # serializer version: 1 +# name: test_sensor[sensor.river_name_station_name_flood_alarm_level-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.river_name_station_name_flood_alarm_level', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Flood alarm level', + 'platform': 'imgw_pib', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'flood_alarm_level', + 'unique_id': '123_flood_alarm_level', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor[sensor.river_name_station_name_flood_alarm_level-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'attribution': 'Data provided by IMGW-PIB', + 'device_class': 'distance', + 'friendly_name': 'River Name (Station Name) Flood alarm level', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.river_name_station_name_flood_alarm_level', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '630.0', + }) +# --- +# name: test_sensor[sensor.river_name_station_name_flood_warning_level-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.river_name_station_name_flood_warning_level', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Flood warning level', + 'platform': 'imgw_pib', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'flood_warning_level', + 'unique_id': '123_flood_warning_level', + 'unit_of_measurement': , + }) +# --- +# name: test_sensor[sensor.river_name_station_name_flood_warning_level-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'attribution': 'Data provided by IMGW-PIB', + 'device_class': 'distance', + 'friendly_name': 'River Name (Station Name) Flood warning level', + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.river_name_station_name_flood_warning_level', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '590.0', + }) +# --- # name: test_sensor[sensor.river_name_station_name_water_level-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ diff --git a/tests/components/imgw_pib/test_sensor.py b/tests/components/imgw_pib/test_sensor.py index 2d17f7246fc..82e85b4085a 100644 --- a/tests/components/imgw_pib/test_sensor.py +++ b/tests/components/imgw_pib/test_sensor.py @@ -24,6 +24,7 @@ async def test_sensor( snapshot: SnapshotAssertion, mock_imgw_pib_client: AsyncMock, mock_config_entry: MockConfigEntry, + entity_registry_enabled_by_default: None, ) -> None: """Test states of the sensor.""" with patch("homeassistant.components.imgw_pib.PLATFORMS", [Platform.SENSOR]):