Need help with vacuum condition in Automation

I am trying to create an automation for the 3 vacuums I have connected. My goal for the automation is to alert me on a ‘state attribute - status’ change. The automation will then send me a message with the friendly name of the vacuum along with the state and status of the vacuum.

I want to use the state attribute - status instead of the state since it can go from state: cleaning & status: eco map cleaning to state: cleaning & status: docking and I would like to receive notifications when that happens.

I got that working well, but there was something I did not anticipate. When not in use, the Neato vacuums will stay on the state ‘docked’ and fluctuate between the status of ‘charging’ and the status of ‘docked’. I do not wish to receive notifications when that happens, as that is what they are doing most of the day and I don’t care about that change. I am having trouble setting up a condition that blocks that.

Here is the automation I currently have (I am including the condition I currently have even though it is not working as I wish it to).

Thank you!

  alias: Vacuums - State
  description: ''
  trigger:
  - platform: state
    entity_id: vacuum.1st_floor
    attribute: status
  - platform: state
    entity_id: vacuum.2nd_floor
    attribute: status
  - platform: state
    entity_id: vacuum.braava_jet
    attribute: status
  condition:
  - condition: and
    conditions:
    - condition: template
      value_template: '{{ trigger.from_state.state != docked }}'
    - condition: template
      value_template: '{{ trigger.to_state.state != docked }}'
  action:
  - data_template:
      data:
        push:
          thread-id: Vacuums
      message: '{{ trigger.to_state.attributes.friendly_name }} is {{ trigger.to_state.state
        }} & {{  trigger.to_state.attributes.status }}'
    service: notify.james
  mode: single

I solved it by adding the following condition

condition: not
conditions:
  - condition: or
    conditions:
      - condition: template
        value_template: >-
          {{  trigger.to_state.state == 'docked' and
          trigger.to_state.attributes.status == 'Docked' and
          trigger.from_state.state == 'docked' and
          trigger.from_state.attributes.status == 'Charging'  }}
      - condition: template
        value_template: >-
          {{  trigger.to_state.state == 'docked' and
          trigger.to_state.attributes.status == 'Charging' and
          trigger.from_state.state == 'docked' and
          trigger.from_state.attributes.status == 'Docked'  }}

The first version you posted definitely wouldn’t work because the word docked was not delimited with quotes. As result, it was not interpreted as being a string value but the name of a variable, namely an undefined variable. The consequence of this is the value_tempate could never evaluate to true.