Conditions on Automation

And here I’m again with crazy ideas…
I have a RESTful light and a Sonoff Switch, I use HA to integrate it, so when I turn on the switch, the lights turn on too in high brightness, when I turn on the lights on HA in turns of the switch too… And goes on…

alias: Dicroicas Interruptor Escritorio On
description: ""
trigger:
  - platform: state
    entity_id:
      - light.dicroica_1_escritorio
    to: "on"
  - platform: state
    entity_id:
      - light.dicroica_2_escritorio
    to: "on"
  - platform: state
    entity_id:
      - light.dicroica_3_escritorio
    to: "on"
  - platform: state
    entity_id:
      - light.dicroica_4_escritorio
    to: "on"
condition: []
action:
  - type: turn_on
    device_id: 22222222
    entity_id: 11111111
    domain: switch
mode: single
alias: Interruptor Escritorio Dicroicas On
description: ""
trigger:
  - platform: device
    type: turned_on
    device_id: 1111
    entity_id: 222222222
    domain: switch
action:
  - service: script.modo_normal_dicroica
    data: {}
mode: single
alias: Modo Normal - Dicroica
sequence:
  - service: input_number.set_value
    data:
      value: 217
    target:
      entity_id:
        - input_number.brilho_dicroica_1_escritorio
        - input_number.brilho_dicroica_2_escritorio
        - input_number.brilho_dicroica_3_escritorio
        - input_number.brilho_dicroica_4_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_1_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 217
    target:
      entity_id:
        - light.dicroica_1_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_2_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 217
    target:
      entity_id:
        - light.dicroica_2_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_3_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 217
    target:
      entity_id:
        - light.dicroica_3_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_4_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 217
    target:
      entity_id:
        - light.dicroica_4_escritorio
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_1000f7cb6d_1
mode: single
icon: mdi:lightbulb-spot

And I also have some scripts to make some nice scene effects like this:

alias: Modo Foco - Escritório
sequence:
  - service: input_number.set_value
    data:
      value: 60
    target:
      entity_id:
        - input_number.brilho_dicroica_1_escritorio
        - input_number.brilho_dicroica_2_escritorio
        - input_number.brilho_dicroica_3_escritorio
        - input_number.brilho_dicroica_4_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_1_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 60
    target:
      entity_id:
        - light.dicroica_1_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_2_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 60
    target:
      entity_id:
        - light.dicroica_2_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_3_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 60
    target:
      entity_id:
        - light.dicroica_3_escritorio
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id:
        - input_boolean.status_dicroica_4_escritorio
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 150
  - service: light.turn_on
    data:
      kelvin: 2976
      brightness: 60
    target:
      entity_id:
        - light.dicroica_4_escritorio
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.sonoff_1000f7cb6d_1
mode: single
icon: mdi:image-filter-center-focus-strong

The script turn on the lights one by one with a delay and changes the brightness to low.

My problem is: when I’m running the script it’s turning on the lights, which is triggering the automation “Dicroicas Interruptor Escritorio On”, which is turning on the switch, which is triggering the automation “Interruptor Escritorio Dicroicas On” and which is changing the light brightness back to high.
When turning on the light via switch it should be on high and when turning the light via HA the switch (despite the origin of the command) should be turned on too, but the automation (“Interruptor Escritorio Dicroicas On”) shouldn’t be triggered and change the brightness.

I don’t know if I was clear on my mess, but do you have some ideas on how to prevent the automation “Interruptor Escritorio Dicroicas On” trigger on this situation?

Maybe add a condition in “Interruptor Escritorio Dicroicas On” that checks to see if “ Dicroicas Interruptor Escritorio On” has run recently (adjust the number as needed).

condition: template
value_template: >-
  {{ (as_timestamp(now())-as_timestamp(states.automation.dicroicas_interruptor_escritorio_on.attributes.last_triggered  | default(0)) | int > 30)}}