Como utilizar menos de 1 segundo em uma automação

Galera tenho um botão que preciso que ligue e em seguida desligue sózinho em menos de 1 segundo, uns 0.5 segundos, consegui criar a automação através da UI do HA porém lá não tem como definir um tempo menor que um segundo.

o código que a UI gerou no arquivo automations.yaml. Foi esse

- id: '1726536378000'
  alias: TV Pulse
  description: ''
  trigger:
  - platform: state
entity_id:
- switch.tasmota_tasmota2
from: 'off'
to: 'on'
for:
  hours: 0
  minutes: 0
  seconds: 1
  condition: []
  action:
  - action: switch.turn_off
metadata: {}
data: {}
target:
  entity_id: switch.tasmota_tasmota2
  mode: single

Fui no ChatGPT e ele me retornou isso:

Para criar uma automação que desligue o botão em menos de 1 segundo, como 0.5 segundos, a interface padrão do Home Assistant realmente não permite configurar intervalos de tempo inferiores a 1 segundo. No entanto, podemos resolver isso modificando o YAML diretamente, usando um atraso específico na ação. Vou ajustar sua automação para que ela desligue o botão após 0.5 segundos.

Aqui está a automação modificada:

  • id: ‘1726536378000’
    alias: TV Pulse
    description: ‘’
    trigger:
    platform: state
    entity_id: switch.tasmota_tasmota2
    from: ‘off’
    to: ‘on’
    condition:
    action:
    • delay:
      milliseconds: 500
    • service: switch.turn_off
      target:
      entity_id: switch.tasmota_tasmota2
      mode: single

Alterações principais:

  • Usei o delay com milliseconds: 500 para definir o atraso de 0.5 segundos.
  • Mantive o restante da automação conforme a sua configuração original.

Assim, quando o botão switch.tasmota_tasmota2 for ligado, ele será desligado automaticamente após 500 milissegundos.

testa ai pra ver se funciona

Outra abordagem seria criar um script no Home Assistant que faça a lógica de ligar e desligar o botão após 0.5 segundos. Você pode chamar esse script dentro de uma automação.

Exemplo de script:

script:
  tv_pulse:
    alias: TV Pulse
    sequence:
      - service: switch.turn_on
        target:
          entity_id: switch.tasmota_tasmota2
      - delay:
          milliseconds: 500
      - service: switch.turn_off
        target:
          entity_id: switch.tasmota_tasmota2
    mode: single

Depois, você pode chamar esse script dentro da sua automação, como no exemplo abaixo:

- id: '1726536378000'
  alias: TV Pulse Automation
  trigger:
    platform: state
    entity_id: switch.tasmota_tasmota2
    from: 'off'
    to: 'on'
  condition: []
  action:
    - service: script.tv_pulse
  mode: single

Não uso muito o tasmota, mas não seria melhor fazer isso direto no dispositivo?

1 curtida