diff --git a/custom_components/irrigation_unlimited/irrigation_unlimited.py b/custom_components/irrigation_unlimited/irrigation_unlimited.py index a798e4d..30f2faa 100644 --- a/custom_components/irrigation_unlimited/irrigation_unlimited.py +++ b/custom_components/irrigation_unlimited/irrigation_unlimited.py @@ -6470,14 +6470,31 @@ def notify_sequence( """Send out a notification for start/finish to a sequence""" # pylint: disable=too-many-arguments data = { - CONF_CONTROLLER: {CONF_INDEX: controller.index, CONF_NAME: controller.name}, - CONF_SEQUENCE: {CONF_INDEX: sequence.index, CONF_NAME: sequence.name}, + CONF_ENTITY_ID: sequence.entity_id, + CONF_CONTROLLER: { + CONF_INDEX: controller.index, + CONF_CONTROLLER_ID: controller.controller_id, + CONF_NAME: controller.name, + }, + CONF_SEQUENCE: { + CONF_INDEX: sequence.index, + CONF_SEQUENCE_ID: sequence.sequence_id, + CONF_NAME: sequence.name, + }, CONF_RUN: {CONF_DURATION: round(sequence_run.total_time.total_seconds())}, } if schedule is not None: - data[CONF_SCHEDULE] = {CONF_INDEX: schedule.index, CONF_NAME: schedule.name} + data[CONF_SCHEDULE] = { + CONF_INDEX: schedule.index, + CONF_SCHEDULE_ID: schedule.schedule_id, + CONF_NAME: schedule.name, + } else: - data[CONF_SCHEDULE] = {CONF_INDEX: None, CONF_NAME: RES_MANUAL} + data[CONF_SCHEDULE] = { + CONF_INDEX: None, + CONF_SCHEDULE_ID: None, + CONF_NAME: RES_MANUAL, + } self._hass.bus.fire(f"{DOMAIN}_{event_type}", data) def notify_switch( diff --git a/tests/configs/test_event.yaml b/tests/configs/test_event.yaml index fd0597d..46bf359 100644 --- a/tests/configs/test_event.yaml +++ b/tests/configs/test_event.yaml @@ -68,34 +68,43 @@ irrigation_unlimited: - {t: '2021-01-04 09:55:00', c: 1, z: 0, s: 0} controllers: - name: "Test controller 1" + controller_id: 'ctrl_1' zones: - name: "Zone 1" + zone_id: 'zone_1' - name: "Zone 2" + zone_id: 'zone_2' - name: "Zone 3" + zone_id: 'zone_3' - name: "Zone 4" + zone_id: 'zone_4' sequences: - name: "Seq 1" + sequence_id: 'seq_1' delay: "0:01:00" repeat: 2 schedules: - time: "06:05" + schedule_id: 'sched_1' zones: - - zone_id: 1 + - zone_id: zone_1 duration: "0:06:00" repeat: 2 - - zone_id: [2, 3] + - zone_id: [zone_2, zone_3] duration: "0:12:00" - - zone_id: 4 + - zone_id: zone_4 duration: "0:18:00" - name: "Seq 2" + sequence_id: 'seq_2' delay: "0:01:00" schedules: - time: "09:55" + schedule_id: 'sched_2' anchor: finish zones: - - zone_id: 1 + - zone_id: zone_1 duration: "0:06:00" - - zone_id: [2, 3] + - zone_id: [zone_2, zone_3] duration: "0:12:00" - - zone_id: 4 + - zone_id: zone_4 duration: "0:18:00" diff --git a/tests/test_event.py b/tests/test_event.py index 6d89629..a170a23 100644 --- a/tests/test_event.py +++ b/tests/test_event.py @@ -1,4 +1,5 @@ """Test irrigation_unlimited events.""" + import homeassistant.core as ha from custom_components.irrigation_unlimited.const import ( DOMAIN, @@ -31,27 +32,63 @@ def handle_event(event: ha.Event): assert event_data == [ { - "controller": {"index": 0, "name": "Test controller 1"}, - "sequence": {"index": 0, "name": "Seq 1"}, + "entity_id": "binary_sensor.irrigation_unlimited_c1_s1", + "controller": { + "index": 0, + "controller_id": "ctrl_1", + "name": "Test controller 1", + }, + "sequence": {"index": 0, "sequence_id": "seq_1", "name": "Seq 1"}, "run": {"duration": 5460}, - "schedule": {"index": 0, "name": "Schedule 1"}, + "schedule": { + "index": 0, + "schedule_id": "sched_1", + "name": "Schedule 1", + }, }, { - "controller": {"index": 0, "name": "Test controller 1"}, - "sequence": {"index": 0, "name": "Seq 1"}, + "entity_id": "binary_sensor.irrigation_unlimited_c1_s1", + "controller": { + "index": 0, + "controller_id": "ctrl_1", + "name": "Test controller 1", + }, + "sequence": {"index": 0, "sequence_id": "seq_1", "name": "Seq 1"}, "run": {"duration": 5460}, - "schedule": {"index": 0, "name": "Schedule 1"}, + "schedule": { + "index": 0, + "schedule_id": "sched_1", + "name": "Schedule 1", + }, }, { - "controller": {"index": 0, "name": "Test controller 1"}, - "sequence": {"index": 1, "name": "Seq 2"}, + "entity_id": "binary_sensor.irrigation_unlimited_c1_s2", + "controller": { + "index": 0, + "controller_id": "ctrl_1", + "name": "Test controller 1", + }, + "sequence": {"index": 1, "sequence_id": "seq_2", "name": "Seq 2"}, "run": {"duration": 2280}, - "schedule": {"index": 0, "name": "Schedule 1"}, + "schedule": { + "index": 0, + "schedule_id": "sched_2", + "name": "Schedule 1", + }, }, { - "controller": {"index": 0, "name": "Test controller 1"}, - "sequence": {"index": 1, "name": "Seq 2"}, + "entity_id": "binary_sensor.irrigation_unlimited_c1_s2", + "controller": { + "index": 0, + "controller_id": "ctrl_1", + "name": "Test controller 1", + }, + "sequence": {"index": 1, "sequence_id": "seq_2", "name": "Seq 2"}, "run": {"duration": 2280}, - "schedule": {"index": 0, "name": "Schedule 1"}, + "schedule": { + "index": 0, + "schedule_id": "sched_2", + "name": "Schedule 1", + }, }, ] diff --git a/tests/test_service_sequence_pause_resume.py b/tests/test_service_sequence_pause_resume.py index e41478c..29af587 100644 --- a/tests/test_service_sequence_pause_resume.py +++ b/tests/test_service_sequence_pause_resume.py @@ -119,20 +119,30 @@ def handle_event(event: ha.Event): "event_type": "irrigation_unlimited_start", "event_time": mk_local("2024-08-14 06:05"), "data": { - "controller": {"index": 0, "name": "Test Controller"}, - "sequence": {"index": 0, "name": "Seq 1"}, + "entity_id": "binary_sensor.irrigation_unlimited_c1_s1", + "controller": { + "index": 0, + "controller_id": "1", + "name": "Test Controller", + }, + "sequence": {"index": 0, "sequence_id": "1", "name": "Seq 1"}, "run": {"duration": 600}, - "schedule": {"index": 0, "name": "Schedule 1"}, + "schedule": {"index": 0, "schedule_id": None, "name": "Schedule 1"}, }, }, { "event_type": "irrigation_unlimited_finish", "event_time": mk_local("2024-08-14 06:20"), "data": { - "controller": {"index": 0, "name": "Test Controller"}, - "sequence": {"index": 0, "name": "Seq 1"}, + "entity_id": "binary_sensor.irrigation_unlimited_c1_s1", + "controller": { + "index": 0, + "controller_id": "1", + "name": "Test Controller", + }, + "sequence": {"index": 0, "sequence_id": "1", "name": "Seq 1"}, "run": {"duration": 900}, - "schedule": {"index": 0, "name": "Schedule 1"}, + "schedule": {"index": 0, "schedule_id": None, "name": "Schedule 1"}, }, }, ]