spook icon indicating copy to clipboard operation
spook copied to clipboard

The repairs.remove service creates domain: spook event_type: update instead of domain: spook event_type: remove.

Open Petro31 opened this issue 1 year ago • 2 comments

What version of Spook are you using?

1.3.2

What version of Home Assistant are you using?

2023.11.x

The problem

The repairs.remove service no longer removes repairs after successful completion.

I have this automation, runs fine. You can update "target" to choose any test error.

- alias: Repair - Ignore Spook Repair
  id: repair_ignore_spook_repair
  trigger:
  - platform: state
    entity_id: event.repair
  variables:
    continue: >
      {{ trigger | default(none) is not none and trigger.to_state is defined and trigger.from_state is defined }}
    attrs: >
      {{ trigger.to_state.attributes | default({}) if continue else {} }}
    issue_id: >
      {{ attrs.get('issue_id') }}
    target: >
      {{ issue_id if 'timed_event_snapshot_status' in issue_id else None }}
  condition:
  - condition: template
    value_template: "{{ target is not none }}"
  action:
  - service: repairs.remove
    data:
      issue_id: "{{ target }}"

Last trace shows it running successfully

{
  "trace": {
    "last_step": "action/0",
    "run_id": "6c997d7fa46b4192c9382ae93a428aff",
    "state": "stopped",
    "script_execution": "finished",
    "timestamp": {
      "start": "2023-11-11T10:19:02.968075+00:00",
      "finish": "2023-11-11T10:19:02.973220+00:00"
    },
    "domain": "automation",
    "item_id": "repair_ignore_spook_repair",
    "trigger": "state of event.repair",
    "trace": {
      "trigger/0": [
        {
          "path": "trigger/0",
          "timestamp": "2023-11-11T10:19:02.970479+00:00",
          "changed_variables": {
            "this": {
              "entity_id": "automation.repair_ignore_spook_repair",
              "state": "on",
              "attributes": {
                "id": "repair_ignore_spook_repair",
                "last_triggered": "2023-11-11T10:08:48.716243+00:00",
                "mode": "single",
                "current": 0,
                "friendly_name": "Repair - Ignore Spook Repair"
              },
              "last_changed": "2023-11-11T10:08:25.041874+00:00",
              "last_updated": "2023-11-11T10:08:48.717045+00:00",
              "context": {
                "id": "01HEYXP0JBKH6TCF2PXYMQ305N",
                "parent_id": "01HEYXP0JA4KPKKNSNQ38PDVV2",
                "user_id": null
              }
            },
            "trigger": {
              "id": "0",
              "idx": "0",
              "alias": null,
              "platform": "state",
              "entity_id": "event.repair",
              "from_state": {
                "entity_id": "event.repair",
                "state": "2023-11-11T10:08:48.714+00:00",
                "attributes": {
                  "event_types": [
                    "create",
                    "remove",
                    "update"
                  ],
                  "event_type": "create",
                  "domain": "spook",
                  "issue_id": "automation_unknown_entity_references_automation.timed_event_snapshot_status",
                  "friendly_name": "Repairs"
                },
                "last_changed": "2023-11-11T10:08:48.714362+00:00",
                "last_updated": "2023-11-11T10:08:48.714362+00:00",
                "context": {
                  "id": "01HEYXP0JA4KPKKNSNQ38PDVV2",
                  "parent_id": null,
                  "user_id": null
                }
              },
              "to_state": {
                "entity_id": "event.repair",
                "state": "2023-11-11T10:19:02.966+00:00",
                "attributes": {
                  "event_types": [
                    "create",
                    "remove",
                    "update"
                  ],
                  "event_type": "update",
                  "domain": "spook",
                  "issue_id": "automation_unknown_entity_references_automation.timed_event_snapshot_status",
                  "friendly_name": "Repairs"
                },
                "last_changed": "2023-11-11T10:19:02.966549+00:00",
                "last_updated": "2023-11-11T10:19:02.966549+00:00",
                "context": {
                  "id": "01HEYY8RDPJVXCAATB7N1X3S7D",
                  "parent_id": null,
                  "user_id": null
                }
              },
              "for": null,
              "attribute": null,
              "description": "state of event.repair"
            },
            "continue": true,
            "attrs": {
              "event_types": [
                "create",
                "remove",
                "update"
              ],
              "event_type": "update",
              "domain": "spook",
              "issue_id": "automation_unknown_entity_references_automation.timed_event_snapshot_status",
              "friendly_name": "Repairs"
            },
            "issue_id": "automation_unknown_entity_references_automation.timed_event_snapshot_status",
            "target": "automation_unknown_entity_references_automation.timed_event_snapshot_status"
          }
        }
      ],
      "condition/0": [
        {
          "path": "condition/0",
          "timestamp": "2023-11-11T10:19:02.970533+00:00",
          "result": {
            "result": true,
            "entities": []
          }
        }
      ],
      "action/0": [
        {
          "path": "action/0",
          "timestamp": "2023-11-11T10:19:02.971330+00:00",
          "changed_variables": {
            "context": {
              "id": "01HEYY8RDRBTPGWMGGV36A7A20",
              "parent_id": "01HEYY8RDPJVXCAATB7N1X3S7D",
              "user_id": null
            }
          },
          "result": {
            "params": {
              "domain": "repairs",
              "service": "remove",
              "service_data": {
                "issue_id": "automation_unknown_entity_references_automation.timed_event_snapshot_status"
              },
              "target": {}
            },
            "running_script": false
          }
        }
      ]
    },
    "config": {
      "alias": "Repair - Ignore Spook Repair",
      "id": "repair_ignore_spook_repair",
      "trigger": [
        {
          "platform": "state",
          "entity_id": "event.repair"
        }
      ],
      "variables": {
        "continue": "{{ trigger | default(none) is not none and trigger.to_state is defined and trigger.from_state is defined }}\n",
        "attrs": "{{ trigger.to_state.attributes | default({}) if continue else {} }}\n",
        "issue_id": "{{ attrs.get('issue_id') }}\n",
        "target": "{{ issue_id if 'timed_event_snapshot_status' in issue_id else None }}\n"
      },
      "condition": [
        {
          "condition": "template",
          "value_template": "{{ target is not none }}"
        }
      ],
      "action": [
        {
          "service": "repairs.remove",
          "data": {
            "issue_id": "{{ target }}"
          }
        }
      ]
    },
    "blueprint_inputs": null,
    "context": {
      "id": "01HEYY8RDRBTPGWMGGV36A7A20",
      "parent_id": "01HEYY8RDPJVXCAATB7N1X3S7D",
      "user_id": null
    }
  },
  "logbookEntries": []
}

Interestingly, the event_type in the trace shows up as update instead of remove even though the automation is calling the repairs.remove service. I believe this is the root cause of the problem.

Anything in the logs? Paste it here!

No response

Petro31 avatar Nov 11 '23 10:11 Petro31

The event entity reflects what HA is firing, so this is like to be an issue (or intentional design?) upstream. Will take a look

frenck avatar Nov 11 '23 10:11 frenck

The event entity reflects what HA is firing, so this is like to be an issue (or intentional design?) upstream. Will take a look

Yeah, I've been looking at your code and I have no idea how it would create that event. Your code looks fine and properly loads the correct service from /ectoplasms/repairs/services/remove.py. As a sidebar, this is new as of 2023.11.0 or 2023.11.1. I can't remember if the automation failed on 11.0. It did fail on 11.1 and 11.2. I'm somewhat remembering that it worked on 11.0.

Petro31 avatar Nov 11 '23 11:11 Petro31