Hi,
I have an automation, that works fine when I trigger it through the automatons menu.
I would like to make a button on the main page to trigger this automation, is this possible?
If you’re using the button card, here’s an example of one of mine:
- aspect_ratio: 2/1
color: 'rgb(66, 134, 244)'
color_type: icon
entity: script.1560010397544
show_name: false
show_state: false
tap_action:
action: call-service
service: script.toggle
service_data:
entity_id: script.1560010397544
type: 'custom:button-card'
That is a script not an automation?
Are you sure you mean automation and not script? If it is an automation, why do you want to trigger it from the frontend? Normally you’d put the actions in a script instead, which, of course, can also be called from an automation if you also need it run, you know, automatically.
You’re only supposed to trigger automations manually to test them. Sounds like you should use a script ang get the automation to call the script too to save duplication. Then you can use a button.
Yes… If you use a boolean, normally off… With a button card, you set this boolean to on with a click (tap_action) and in your automation trigger, you check the state of this boolean moving from ‘off’ to ‘on’… Than in your automation actions, you reset the boolean to off and execute other actions you want in this automation… Easy…
your idea is what I needed, but how can I
reset the boolean to off and execute other actions you want in this automation
can you help me with the code?
- service: input_boolean.turn_off
input_boolean.mytestbit
You’re really making this difficult on yourself. If you want to run something from the frontend, you should put it in a script, not an automation. (Automations are intended for automating things, not for manual operation.) Then you can run the script directly from the frontend using the entity_id of the script. If you still need/want the automation, then call the script in the action part of the automation as well.
E.g., let’s say this is your automation:
automation:
- trigger:
...
action:
- step1
- step2
Move the action steps to a script:
script:
my_script:
sequence:
- step1
- step2
Now you can call the script from the frontend using the service script.my_script
.
And, if you still need to run the steps from the automation:
automation:
- trigger:
...
action:
- service: script.my_script
i can understand your concern … but now i changed it to an automation assigned to a toggle switch