Add priority to on_shutdown trigger (#3644)

This commit is contained in:
RoboMagus 2022-08-10 03:10:49 +02:00 committed by GitHub
parent e4c2922536
commit 029014d9d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 1 deletions

View file

@ -93,7 +93,12 @@ class StartupTrigger : public Trigger<>, public Component {
class ShutdownTrigger : public Trigger<>, public Component {
public:
explicit ShutdownTrigger(float setup_priority) : setup_priority_(setup_priority) {}
void on_shutdown() override { this->trigger(); }
float get_setup_priority() const override { return this->setup_priority_; }
protected:
float setup_priority_;
};
class LoopTrigger : public Trigger<>, public Component {

View file

@ -117,6 +117,7 @@ CONFIG_SCHEMA = cv.All(
cv.Optional(CONF_ON_SHUTDOWN): automation.validate_automation(
{
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(ShutdownTrigger),
cv.Optional(CONF_PRIORITY, default=600.0): cv.float_,
}
),
cv.Optional(CONF_ON_LOOP): automation.validate_automation(
@ -291,7 +292,7 @@ async def _add_automations(config):
await automation.build_automation(trigger, [], conf)
for conf in config.get(CONF_ON_SHUTDOWN, []):
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID])
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], conf.get(CONF_PRIORITY))
await cg.register_component(trigger, conf)
await automation.build_automation(trigger, [], conf)