diff --git a/homeassistant/components/pooldose/binary_sensor.py b/homeassistant/components/pooldose/binary_sensor.py index 065e5d42da0..813d3baa5d8 100644 --- a/homeassistant/components/pooldose/binary_sensor.py +++ b/homeassistant/components/pooldose/binary_sensor.py @@ -92,6 +92,72 @@ BINARY_SENSOR_DESCRIPTIONS: tuple[BinarySensorEntityDescription, ...] = ( entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, ), + BinarySensorEntityDescription( + key="alarm_ofa2_ph", + translation_key="alarm_ofa_ph_alternative", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_ofa2_orp", + translation_key="alarm_ofa_orp_alternative", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_ofa2_cl", + translation_key="alarm_ofa_cl_alternative", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_water_too_cold", + translation_key="alarm_water_too_cold", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_water_too_hot", + translation_key="alarm_water_too_hot", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_ph_too_low", + translation_key="alarm_ph_too_low", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_ph_too_high", + translation_key="alarm_ph_too_high", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_cl_too_low_orp", + translation_key="alarm_cl_too_low_orp", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_cl_too_high_orp", + translation_key="alarm_cl_too_high_orp", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_cl_too_high", + translation_key="alarm_cl_too_high", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), + BinarySensorEntityDescription( + key="alarm_system_standby", + translation_key="alarm_system_standby", + device_class=BinarySensorDeviceClass.PROBLEM, + entity_category=EntityCategory.DIAGNOSTIC, + ), ) diff --git a/homeassistant/components/pooldose/icons.json b/homeassistant/components/pooldose/icons.json index bd56bc4c283..a64ddb3a5da 100644 --- a/homeassistant/components/pooldose/icons.json +++ b/homeassistant/components/pooldose/icons.json @@ -1,24 +1,90 @@ { "entity": { "binary_sensor": { + "alarm_cl_too_high": { + "default": "mdi:pool", + "state": { + "on": "mdi:alert" + } + }, + "alarm_cl_too_high_orp": { + "default": "mdi:water-check", + "state": { + "on": "mdi:water-alert" + } + }, + "alarm_cl_too_low_orp": { + "default": "mdi:water-check", + "state": { + "on": "mdi:water-alert" + } + }, "alarm_ofa_cl": { "default": "mdi:clock-alert-outline", "state": { "on": "mdi:clock-alert" } }, + "alarm_ofa_cl_alternative": { + "default": "mdi:clock-alert-outline", + "state": { + "on": "mdi:clock-alert" + } + }, "alarm_ofa_orp": { "default": "mdi:clock-alert-outline", "state": { "on": "mdi:clock-alert" } }, + "alarm_ofa_orp_alternative": { + "default": "mdi:clock-alert-outline", + "state": { + "on": "mdi:clock-alert" + } + }, "alarm_ofa_ph": { "default": "mdi:clock-alert-outline", "state": { "on": "mdi:clock-alert" } }, + "alarm_ofa_ph_alternative": { + "default": "mdi:clock-alert-outline", + "state": { + "on": "mdi:clock-alert" + } + }, + "alarm_ph_too_high": { + "default": "mdi:ph", + "state": { + "on": "mdi:alert" + } + }, + "alarm_ph_too_low": { + "default": "mdi:ph", + "state": { + "on": "mdi:alert" + } + }, + "alarm_system_standby": { + "default": "mdi:power-standby", + "state": { + "on": "mdi:power-sleep" + } + }, + "alarm_water_too_cold": { + "default": "mdi:thermometer-low", + "state": { + "on": "mdi:thermometer-alert" + } + }, + "alarm_water_too_hot": { + "default": "mdi:thermometer-high", + "state": { + "on": "mdi:thermometer-alert" + } + }, "flow_rate_alarm": { "default": "mdi:autorenew", "state": { @@ -72,6 +138,9 @@ "cl_target": { "default": "mdi:pool" }, + "flow_delay_timer": { + "default": "mdi:timer-sand" + }, "ofa_cl_lower": { "default": "mdi:arrow-down-bold" }, @@ -95,6 +164,18 @@ }, "ph_target": { "default": "mdi:ph" + }, + "power_on_delay_timer": { + "default": "mdi:timer-sand" + }, + "time_off_cl_dosing": { + "default": "mdi:timer-outline" + }, + "time_off_orp_dosing": { + "default": "mdi:timer-outline" + }, + "time_off_ph_dosing": { + "default": "mdi:timer-outline" } }, "select": { @@ -130,6 +211,9 @@ "cl_type_dosing": { "default": "mdi:beaker" }, + "device_config": { + "default": "mdi:cog" + }, "flow_rate": { "default": "mdi:pipe-valve" }, @@ -175,6 +259,9 @@ "ph_type_dosing": { "default": "mdi:beaker" }, + "temperature_unit": { + "default": "mdi:thermometer" + }, "water_meter_total_permanent": { "default": "mdi:counter" } diff --git a/homeassistant/components/pooldose/number.py b/homeassistant/components/pooldose/number.py index 480b7194463..4cc999db6a6 100644 --- a/homeassistant/components/pooldose/number.py +++ b/homeassistant/components/pooldose/number.py @@ -14,6 +14,7 @@ from homeassistant.const import ( CONCENTRATION_PARTS_PER_MILLION, EntityCategory, UnitOfElectricPotential, + UnitOfTime, ) from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback @@ -87,6 +88,46 @@ NUMBER_DESCRIPTIONS: tuple[NumberEntityDescription, ...] = ( entity_category=EntityCategory.CONFIG, native_unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION, ), + NumberEntityDescription( + key="time_off_ph_dosing", + translation_key="time_off_ph_dosing", + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + device_class=NumberDeviceClass.DURATION, + native_unit_of_measurement=UnitOfTime.SECONDS, + ), + NumberEntityDescription( + key="time_off_orp_dosing", + translation_key="time_off_orp_dosing", + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + device_class=NumberDeviceClass.DURATION, + native_unit_of_measurement=UnitOfTime.SECONDS, + ), + NumberEntityDescription( + key="time_off_cl_dosing", + translation_key="time_off_cl_dosing", + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + device_class=NumberDeviceClass.DURATION, + native_unit_of_measurement=UnitOfTime.SECONDS, + ), + NumberEntityDescription( + key="power_on_delay_timer", + translation_key="power_on_delay_timer", + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + device_class=NumberDeviceClass.DURATION, + native_unit_of_measurement=UnitOfTime.SECONDS, + ), + NumberEntityDescription( + key="flow_delay_timer", + translation_key="flow_delay_timer", + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + device_class=NumberDeviceClass.DURATION, + native_unit_of_measurement=UnitOfTime.SECONDS, + ), ) diff --git a/homeassistant/components/pooldose/sensor.py b/homeassistant/components/pooldose/sensor.py index 566997c7ce8..0c5c0f87427 100644 --- a/homeassistant/components/pooldose/sensor.py +++ b/homeassistant/components/pooldose/sensor.py @@ -121,7 +121,7 @@ SENSOR_DESCRIPTIONS: tuple[PooldoseSensorEntityDescription, ...] = ( entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, device_class=SensorDeviceClass.ENUM, - options=["off", "proportional", "on_off", "timed"], + options=["off", "proportional", "on_off", "timed", "cycle"], ), PooldoseSensorEntityDescription( key="ofa_orp_time", @@ -183,6 +183,22 @@ SENSOR_DESCRIPTIONS: tuple[PooldoseSensorEntityDescription, ...] = ( entity_registry_enabled_default=False, native_unit_of_measurement=UnitOfElectricPotential.MILLIVOLT, ), + PooldoseSensorEntityDescription( + key="device_config", + translation_key="device_config", + entity_category=EntityCategory.DIAGNOSTIC, + entity_registry_enabled_default=False, + device_class=SensorDeviceClass.ENUM, + options=["ph_orp", "ph_orp_chlorine"], + ), + PooldoseSensorEntityDescription( + key="temperature_unit", + translation_key="temperature_unit", + entity_category=EntityCategory.DIAGNOSTIC, + entity_registry_enabled_default=False, + device_class=SensorDeviceClass.ENUM, + options=["celsius", "fahrenheit"], + ), ) diff --git a/homeassistant/components/pooldose/strings.json b/homeassistant/components/pooldose/strings.json index 3d50d28faac..3a7f75ee404 100644 --- a/homeassistant/components/pooldose/strings.json +++ b/homeassistant/components/pooldose/strings.json @@ -44,15 +44,48 @@ }, "entity": { "binary_sensor": { + "alarm_cl_too_high": { + "name": "Chlorine too high" + }, + "alarm_cl_too_high_orp": { + "name": "Chlorine too high (ORP)" + }, + "alarm_cl_too_low_orp": { + "name": "Chlorine too low (ORP)" + }, "alarm_ofa_cl": { - "name": "Chlorine tank level" + "name": "Chlorine overfeed" + }, + "alarm_ofa_cl_alternative": { + "name": "Chlorine overfeed alternative" }, "alarm_ofa_orp": { "name": "ORP overfeed" }, + "alarm_ofa_orp_alternative": { + "name": "ORP overfeed alternative" + }, "alarm_ofa_ph": { "name": "pH overfeed" }, + "alarm_ofa_ph_alternative": { + "name": "pH overfeed alternative" + }, + "alarm_ph_too_high": { + "name": "pH too high" + }, + "alarm_ph_too_low": { + "name": "pH too low" + }, + "alarm_system_standby": { + "name": "System standby" + }, + "alarm_water_too_cold": { + "name": "Water too cold" + }, + "alarm_water_too_hot": { + "name": "Water too hot" + }, "flow_rate_alarm": { "name": "Flow rate" }, @@ -66,22 +99,25 @@ "name": "Recirculation" }, "relay_alarm": { - "name": "Alarm relay status" + "name": "Alarm relay" }, "relay_aux1": { - "name": "Auxiliary relay 1 status" + "name": "Auxiliary relay 1" }, "relay_aux2": { - "name": "Auxiliary relay 2 status" + "name": "Auxiliary relay 2" }, "relay_aux3": { - "name": "Auxiliary relay 3 status" + "name": "Auxiliary relay 3" } }, "number": { "cl_target": { "name": "Chlorine target" }, + "flow_delay_timer": { + "name": "Flow delay timer" + }, "ofa_cl_lower": { "name": "Chlorine overfeed alarm lower limit" }, @@ -105,6 +141,18 @@ }, "ph_target": { "name": "pH target" + }, + "power_on_delay_timer": { + "name": "Power-on delay timer" + }, + "time_off_cl_dosing": { + "name": "Chlorine dosing off-time" + }, + "time_off_orp_dosing": { + "name": "ORP dosing off-time" + }, + "time_off_ph_dosing": { + "name": "pH dosing off-time" } }, "select": { @@ -174,6 +222,13 @@ "low": "[%key:common::state::low%]" } }, + "device_config": { + "name": "Device configuration", + "state": { + "ph_orp": "pH/ORP", + "ph_orp_chlorine": "pH/ORP/Chlorine" + } + }, "flow_rate": { "name": "Flow rate" }, @@ -210,6 +265,7 @@ "peristaltic_cl_dosing": { "name": "Chlorine peristaltic dosing", "state": { + "cycle": "Cycle", "off": "[%key:common::state::off%]", "on_off": "[%key:component::pooldose::entity::sensor::peristaltic_ph_dosing::state::on_off%]", "proportional": "[%key:component::pooldose::entity::sensor::peristaltic_ph_dosing::state::proportional%]", @@ -256,6 +312,13 @@ "alcalyne": "pH+" } }, + "temperature_unit": { + "name": "Temperature unit", + "state": { + "celsius": "Celsius", + "fahrenheit": "Fahrenheit" + } + }, "water_meter_total_permanent": { "name": "Totalizer" } diff --git a/tests/components/pooldose/fixtures/instantvalues.json b/tests/components/pooldose/fixtures/instantvalues.json index e26a0068b62..4c4f358881c 100644 --- a/tests/components/pooldose/fixtures/instantvalues.json +++ b/tests/components/pooldose/fixtures/instantvalues.json @@ -83,6 +83,26 @@ "water_meter_total_resettable": { "value": 123.45, "unit": "m3" + }, + "circulation_pump_status": { + "value": "disabled", + "unit": null + }, + "device_config": { + "value": "ph_orp", + "unit": null + }, + "temperature_unit": { + "value": "celsius", + "unit": null + }, + "power_on_delay_status": { + "value": "disabled", + "unit": null + }, + "flow_delay_status": { + "value": "disabled", + "unit": null } }, "binary_sensor": { @@ -118,6 +138,39 @@ }, "alarm_ofa_cl": { "value": false + }, + "alarm_ofa2_ph": { + "value": false + }, + "alarm_ofa2_orp": { + "value": false + }, + "alarm_ofa2_cl": { + "value": false + }, + "alarm_water_too_cold": { + "value": true + }, + "alarm_water_too_hot": { + "value": false + }, + "alarm_ph_too_low": { + "value": false + }, + "alarm_ph_too_high": { + "value": false + }, + "alarm_cl_too_low_orp": { + "value": false + }, + "alarm_cl_too_high_orp": { + "value": true + }, + "alarm_cl_too_high": { + "value": false + }, + "alarm_system_standby": { + "value": true } }, "number": { @@ -183,6 +236,41 @@ "min": 0, "max": 10, "step": 0.1 + }, + "time_off_ph_dosing": { + "value": 60, + "unit": "s", + "min": 1, + "max": 360, + "step": 1 + }, + "time_off_orp_dosing": { + "value": 60, + "unit": "s", + "min": 1, + "max": 360, + "step": 1 + }, + "time_off_cl_dosing": { + "value": 60, + "unit": "s", + "min": 1, + "max": 360, + "step": 1 + }, + "power_on_delay_timer": { + "value": 0, + "unit": "s", + "min": 0, + "max": 5400, + "step": 1 + }, + "flow_delay_timer": { + "value": 0, + "unit": "s", + "min": 0, + "max": 3600, + "step": 1 } }, "switch": { diff --git a/tests/components/pooldose/snapshots/test_binary_sensor.ambr b/tests/components/pooldose/snapshots/test_binary_sensor.ambr index 35d25e42283..7484df33fc4 100644 --- a/tests/components/pooldose/snapshots/test_binary_sensor.ambr +++ b/tests/components/pooldose/snapshots/test_binary_sensor.ambr @@ -1,5 +1,5 @@ # serializer version: 1 -# name: test_all_binary_sensors[binary_sensor.pool_device_alarm_relay_status-entry] +# name: test_all_binary_sensors[binary_sensor.pool_device_alarm_relay-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ None, @@ -13,7 +13,7 @@ 'disabled_by': None, 'domain': 'binary_sensor', 'entity_category': , - 'entity_id': 'binary_sensor.pool_device_alarm_relay_status', + 'entity_id': 'binary_sensor.pool_device_alarm_relay', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21,12 +21,12 @@ 'labels': set({ }), 'name': None, - 'object_id_base': 'Alarm relay status', + 'object_id_base': 'Alarm relay', 'options': dict({ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Alarm relay status', + 'original_name': 'Alarm relay', 'platform': 'pooldose', 'previous_unique_id': None, 'suggested_object_id': None, @@ -36,21 +36,21 @@ 'unit_of_measurement': None, }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_alarm_relay_status-state] +# name: test_all_binary_sensors[binary_sensor.pool_device_alarm_relay-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'power', - 'friendly_name': 'Pool Device Alarm relay status', + 'friendly_name': 'Pool Device Alarm relay', }), 'context': , - 'entity_id': 'binary_sensor.pool_device_alarm_relay_status', + 'entity_id': 'binary_sensor.pool_device_alarm_relay', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'on', }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_1_status-entry] +# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_1-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ None, @@ -64,7 +64,7 @@ 'disabled_by': None, 'domain': 'binary_sensor', 'entity_category': , - 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_1_status', + 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -72,12 +72,12 @@ 'labels': set({ }), 'name': None, - 'object_id_base': 'Auxiliary relay 1 status', + 'object_id_base': 'Auxiliary relay 1', 'options': dict({ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Auxiliary relay 1 status', + 'original_name': 'Auxiliary relay 1', 'platform': 'pooldose', 'previous_unique_id': None, 'suggested_object_id': None, @@ -87,21 +87,21 @@ 'unit_of_measurement': None, }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_1_status-state] +# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_1-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'power', - 'friendly_name': 'Pool Device Auxiliary relay 1 status', + 'friendly_name': 'Pool Device Auxiliary relay 1', }), 'context': , - 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_1_status', + 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_1', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'off', }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_2_status-entry] +# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_2-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ None, @@ -115,7 +115,7 @@ 'disabled_by': None, 'domain': 'binary_sensor', 'entity_category': , - 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_2_status', + 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -123,12 +123,12 @@ 'labels': set({ }), 'name': None, - 'object_id_base': 'Auxiliary relay 2 status', + 'object_id_base': 'Auxiliary relay 2', 'options': dict({ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Auxiliary relay 2 status', + 'original_name': 'Auxiliary relay 2', 'platform': 'pooldose', 'previous_unique_id': None, 'suggested_object_id': None, @@ -138,21 +138,21 @@ 'unit_of_measurement': None, }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_2_status-state] +# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_2-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'power', - 'friendly_name': 'Pool Device Auxiliary relay 2 status', + 'friendly_name': 'Pool Device Auxiliary relay 2', }), 'context': , - 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_2_status', + 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_2', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'off', }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_3_status-entry] +# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_3-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ None, @@ -166,7 +166,7 @@ 'disabled_by': None, 'domain': 'binary_sensor', 'entity_category': , - 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_3_status', + 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -174,12 +174,12 @@ 'labels': set({ }), 'name': None, - 'object_id_base': 'Auxiliary relay 3 status', + 'object_id_base': 'Auxiliary relay 3', 'options': dict({ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Auxiliary relay 3 status', + 'original_name': 'Auxiliary relay 3', 'platform': 'pooldose', 'previous_unique_id': None, 'suggested_object_id': None, @@ -189,21 +189,21 @@ 'unit_of_measurement': None, }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_3_status-state] +# name: test_all_binary_sensors[binary_sensor.pool_device_auxiliary_relay_3-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'power', - 'friendly_name': 'Pool Device Auxiliary relay 3 status', + 'friendly_name': 'Pool Device Auxiliary relay 3', }), 'context': , - 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_3_status', + 'entity_id': 'binary_sensor.pool_device_auxiliary_relay_3', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'off', }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_tank_level-entry] +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_overfeed-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ None, @@ -217,7 +217,7 @@ 'disabled_by': None, 'domain': 'binary_sensor', 'entity_category': , - 'entity_id': 'binary_sensor.pool_device_chlorine_tank_level', + 'entity_id': 'binary_sensor.pool_device_chlorine_overfeed', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -225,12 +225,12 @@ 'labels': set({ }), 'name': None, - 'object_id_base': 'Chlorine tank level', + 'object_id_base': 'Chlorine overfeed', 'options': dict({ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Chlorine tank level', + 'original_name': 'Chlorine overfeed', 'platform': 'pooldose', 'previous_unique_id': None, 'suggested_object_id': None, @@ -240,14 +240,218 @@ 'unit_of_measurement': None, }) # --- -# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_tank_level-state] +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_overfeed-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'problem', - 'friendly_name': 'Pool Device Chlorine tank level', + 'friendly_name': 'Pool Device Chlorine overfeed', }), 'context': , - 'entity_id': 'binary_sensor.pool_device_chlorine_tank_level', + 'entity_id': 'binary_sensor.pool_device_chlorine_overfeed', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_overfeed_alternative-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_chlorine_overfeed_alternative', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Chlorine overfeed alternative', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Chlorine overfeed alternative', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_ofa_cl_alternative', + 'unique_id': 'TEST123456789_alarm_ofa2_cl', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_overfeed_alternative-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device Chlorine overfeed alternative', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_chlorine_overfeed_alternative', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_too_high-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_chlorine_too_high', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Chlorine too high', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Chlorine too high', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_cl_too_high', + 'unique_id': 'TEST123456789_alarm_cl_too_high', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_too_high-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device Chlorine too high', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_chlorine_too_high', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_too_high_orp-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_chlorine_too_high_orp', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Chlorine too high (ORP)', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Chlorine too high (ORP)', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_cl_too_high_orp', + 'unique_id': 'TEST123456789_alarm_cl_too_high_orp', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_too_high_orp-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device Chlorine too high (ORP)', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_chlorine_too_high_orp', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_too_low_orp-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_chlorine_too_low_orp', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Chlorine too low (ORP)', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Chlorine too low (ORP)', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_cl_too_low_orp', + 'unique_id': 'TEST123456789_alarm_cl_too_low_orp', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_chlorine_too_low_orp-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device Chlorine too low (ORP)', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_chlorine_too_low_orp', 'last_changed': , 'last_reported': , 'last_updated': , @@ -356,6 +560,57 @@ 'state': 'off', }) # --- +# name: test_all_binary_sensors[binary_sensor.pool_device_orp_overfeed_alternative-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_orp_overfeed_alternative', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'ORP overfeed alternative', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'ORP overfeed alternative', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_ofa_orp_alternative', + 'unique_id': 'TEST123456789_alarm_ofa2_orp', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_orp_overfeed_alternative-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device ORP overfeed alternative', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_orp_overfeed_alternative', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- # name: test_all_binary_sensors[binary_sensor.pool_device_orp_tank_level-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -458,6 +713,57 @@ 'state': 'off', }) # --- +# name: test_all_binary_sensors[binary_sensor.pool_device_ph_overfeed_alternative-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_ph_overfeed_alternative', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'pH overfeed alternative', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'pH overfeed alternative', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_ofa_ph_alternative', + 'unique_id': 'TEST123456789_alarm_ofa2_ph', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_ph_overfeed_alternative-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device pH overfeed alternative', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_ph_overfeed_alternative', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- # name: test_all_binary_sensors[binary_sensor.pool_device_ph_tank_level-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -509,6 +815,108 @@ 'state': 'off', }) # --- +# name: test_all_binary_sensors[binary_sensor.pool_device_ph_too_high-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_ph_too_high', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'pH too high', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'pH too high', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_ph_too_high', + 'unique_id': 'TEST123456789_alarm_ph_too_high', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_ph_too_high-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device pH too high', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_ph_too_high', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_ph_too_low-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_ph_too_low', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'pH too low', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'pH too low', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_ph_too_low', + 'unique_id': 'TEST123456789_alarm_ph_too_low', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_ph_too_low-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device pH too low', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_ph_too_low', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- # name: test_all_binary_sensors[binary_sensor.pool_device_recirculation-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -560,3 +968,156 @@ 'state': 'on', }) # --- +# name: test_all_binary_sensors[binary_sensor.pool_device_system_standby-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_system_standby', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'System standby', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'System standby', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_system_standby', + 'unique_id': 'TEST123456789_alarm_system_standby', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_system_standby-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device System standby', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_system_standby', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_water_too_cold-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_water_too_cold', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Water too cold', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Water too cold', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_water_too_cold', + 'unique_id': 'TEST123456789_alarm_water_too_cold', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_water_too_cold-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device Water too cold', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_water_too_cold', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'on', + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_water_too_hot-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.pool_device_water_too_hot', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Water too hot', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Water too hot', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'alarm_water_too_hot', + 'unique_id': 'TEST123456789_alarm_water_too_hot', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_binary_sensors[binary_sensor.pool_device_water_too_hot-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'problem', + 'friendly_name': 'Pool Device Water too hot', + }), + 'context': , + 'entity_id': 'binary_sensor.pool_device_water_too_hot', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- diff --git a/tests/components/pooldose/snapshots/test_diagnostics.ambr b/tests/components/pooldose/snapshots/test_diagnostics.ambr index 8a214124e86..263c9db82a1 100644 --- a/tests/components/pooldose/snapshots/test_diagnostics.ambr +++ b/tests/components/pooldose/snapshots/test_diagnostics.ambr @@ -3,6 +3,24 @@ dict({ 'data': dict({ 'binary_sensor': dict({ + 'alarm_cl_too_high': dict({ + 'value': False, + }), + 'alarm_cl_too_high_orp': dict({ + 'value': True, + }), + 'alarm_cl_too_low_orp': dict({ + 'value': False, + }), + 'alarm_ofa2_cl': dict({ + 'value': False, + }), + 'alarm_ofa2_orp': dict({ + 'value': False, + }), + 'alarm_ofa2_ph': dict({ + 'value': False, + }), 'alarm_ofa_cl': dict({ 'value': False, }), @@ -12,6 +30,21 @@ 'alarm_ofa_ph': dict({ 'value': False, }), + 'alarm_ph_too_high': dict({ + 'value': False, + }), + 'alarm_ph_too_low': dict({ + 'value': False, + }), + 'alarm_system_standby': dict({ + 'value': True, + }), + 'alarm_water_too_cold': dict({ + 'value': True, + }), + 'alarm_water_too_hot': dict({ + 'value': False, + }), 'flow_rate_alarm': dict({ 'value': False, }), @@ -45,6 +78,13 @@ 'unit': 'ppm', 'value': 1, }), + 'flow_delay_timer': dict({ + 'max': 3600, + 'min': 0, + 'step': 1, + 'unit': 's', + 'value': 0, + }), 'ofa_cl_lower': dict({ 'max': 10, 'min': 0, @@ -101,6 +141,34 @@ 'unit': None, 'value': 6.5, }), + 'power_on_delay_timer': dict({ + 'max': 5400, + 'min': 0, + 'step': 1, + 'unit': 's', + 'value': 0, + }), + 'time_off_cl_dosing': dict({ + 'max': 360, + 'min': 1, + 'step': 1, + 'unit': 's', + 'value': 60, + }), + 'time_off_orp_dosing': dict({ + 'max': 360, + 'min': 1, + 'step': 1, + 'unit': 's', + 'value': 60, + }), + 'time_off_ph_dosing': dict({ + 'max': 360, + 'min': 1, + 'step': 1, + 'unit': 's', + 'value': 60, + }), }), 'select': dict({ 'cl_type_dosing_method': dict({ @@ -129,6 +197,10 @@ }), }), 'sensor': dict({ + 'circulation_pump_status': dict({ + 'unit': None, + 'value': 'disabled', + }), 'cl': dict({ 'unit': 'ppm', 'value': 1.2, @@ -137,6 +209,14 @@ 'unit': None, 'value': 'low', }), + 'device_config': dict({ + 'unit': None, + 'value': 'ph_orp', + }), + 'flow_delay_status': dict({ + 'unit': None, + 'value': 'disabled', + }), 'flow_rate': dict({ 'unit': 'L/s', 'value': 150, @@ -201,10 +281,18 @@ 'unit': None, 'value': 'alcalyne', }), + 'power_on_delay_status': dict({ + 'unit': None, + 'value': 'disabled', + }), 'temperature': dict({ 'unit': '°C', 'value': 25, }), + 'temperature_unit': dict({ + 'unit': None, + 'value': 'celsius', + }), 'water_meter_total_permanent': dict({ 'unit': 'm3', 'value': 12345.67, diff --git a/tests/components/pooldose/snapshots/test_number.ambr b/tests/components/pooldose/snapshots/test_number.ambr index eb8c6ad84b6..e60f70c00f5 100644 --- a/tests/components/pooldose/snapshots/test_number.ambr +++ b/tests/components/pooldose/snapshots/test_number.ambr @@ -1,4 +1,65 @@ # serializer version: 1 +# name: test_all_numbers[number.pool_device_chlorine_dosing_off_time-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 360, + 'min': 1, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.pool_device_chlorine_dosing_off_time', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Chlorine dosing off-time', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Chlorine dosing off-time', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'time_off_cl_dosing', + 'unique_id': 'TEST123456789_time_off_cl_dosing', + 'unit_of_measurement': , + }) +# --- +# name: test_all_numbers[number.pool_device_chlorine_dosing_off_time-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'duration', + 'friendly_name': 'Pool Device Chlorine dosing off-time', + 'max': 360, + 'min': 1, + 'mode': , + 'step': 1, + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'number.pool_device_chlorine_dosing_off_time', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '60', + }) +# --- # name: test_all_numbers[number.pool_device_chlorine_overfeed_alarm_lower_limit-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -179,6 +240,128 @@ 'state': '1', }) # --- +# name: test_all_numbers[number.pool_device_flow_delay_timer-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 3600, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.pool_device_flow_delay_timer', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Flow delay timer', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Flow delay timer', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'flow_delay_timer', + 'unique_id': 'TEST123456789_flow_delay_timer', + 'unit_of_measurement': , + }) +# --- +# name: test_all_numbers[number.pool_device_flow_delay_timer-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'duration', + 'friendly_name': 'Pool Device Flow delay timer', + 'max': 3600, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'number.pool_device_flow_delay_timer', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '0', + }) +# --- +# name: test_all_numbers[number.pool_device_orp_dosing_off_time-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 360, + 'min': 1, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.pool_device_orp_dosing_off_time', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'ORP dosing off-time', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'ORP dosing off-time', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'time_off_orp_dosing', + 'unique_id': 'TEST123456789_time_off_orp_dosing', + 'unit_of_measurement': , + }) +# --- +# name: test_all_numbers[number.pool_device_orp_dosing_off_time-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'duration', + 'friendly_name': 'Pool Device ORP dosing off-time', + 'max': 360, + 'min': 1, + 'mode': , + 'step': 1, + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'number.pool_device_orp_dosing_off_time', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '60', + }) +# --- # name: test_all_numbers[number.pool_device_orp_overfeed_alarm_lower_limit-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -362,6 +545,67 @@ 'state': '680', }) # --- +# name: test_all_numbers[number.pool_device_ph_dosing_off_time-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 360, + 'min': 1, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.pool_device_ph_dosing_off_time', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'pH dosing off-time', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'pH dosing off-time', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'time_off_ph_dosing', + 'unique_id': 'TEST123456789_time_off_ph_dosing', + 'unit_of_measurement': , + }) +# --- +# name: test_all_numbers[number.pool_device_ph_dosing_off_time-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'duration', + 'friendly_name': 'Pool Device pH dosing off-time', + 'max': 360, + 'min': 1, + 'mode': , + 'step': 1, + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'number.pool_device_ph_dosing_off_time', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '60', + }) +# --- # name: test_all_numbers[number.pool_device_ph_overfeed_alarm_lower_limit-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -542,3 +786,64 @@ 'state': '6.5', }) # --- +# name: test_all_numbers[number.pool_device_power_on_delay_timer-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 5400, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.pool_device_power_on_delay_timer', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Power-on delay timer', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power-on delay timer', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'power_on_delay_timer', + 'unique_id': 'TEST123456789_power_on_delay_timer', + 'unit_of_measurement': , + }) +# --- +# name: test_all_numbers[number.pool_device_power_on_delay_timer-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'duration', + 'friendly_name': 'Pool Device Power-on delay timer', + 'max': 5400, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'number.pool_device_power_on_delay_timer', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '0', + }) +# --- diff --git a/tests/components/pooldose/snapshots/test_sensor.ambr b/tests/components/pooldose/snapshots/test_sensor.ambr index 1ae218a5d1d..d730c78404d 100644 --- a/tests/components/pooldose/snapshots/test_sensor.ambr +++ b/tests/components/pooldose/snapshots/test_sensor.ambr @@ -122,6 +122,7 @@ 'proportional', 'on_off', 'timed', + 'cycle', ]), }), 'config_entry_id': , @@ -164,6 +165,7 @@ 'proportional', 'on_off', 'timed', + 'cycle', ]), }), 'context': , @@ -174,6 +176,66 @@ 'state': 'off', }) # --- +# name: test_all_sensors[sensor.pool_device_device_configuration-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'ph_orp', + 'ph_orp_chlorine', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.pool_device_device_configuration', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Device configuration', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Device configuration', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'device_config', + 'unique_id': 'TEST123456789_device_config', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_sensors[sensor.pool_device_device_configuration-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'Pool Device Device configuration', + 'options': list([ + 'ph_orp', + 'ph_orp_chlorine', + ]), + }), + 'context': , + 'entity_id': 'sensor.pool_device_device_configuration', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'ph_orp', + }) +# --- # name: test_all_sensors[sensor.pool_device_flow_rate-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -1092,6 +1154,66 @@ 'state': '25', }) # --- +# name: test_all_sensors[sensor.pool_device_temperature_unit-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.pool_device_temperature_unit', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Temperature unit', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Temperature unit', + 'platform': 'pooldose', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'temperature_unit', + 'unique_id': 'TEST123456789_temperature_unit', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_sensors[sensor.pool_device_temperature_unit-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'Pool Device Temperature unit', + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'context': , + 'entity_id': 'sensor.pool_device_temperature_unit', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'celsius', + }) +# --- # name: test_all_sensors[sensor.pool_device_totalizer-entry] EntityRegistryEntrySnapshot({ 'aliases': list([