ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
automation.h
Go to the documentation of this file.
1#pragma once
2
6
8
9template<typename... Ts> class StartSingleValveAction final : public Action<Ts...> {
10 public:
11 explicit StartSingleValveAction(Sprinkler *a_sprinkler) : sprinkler_(a_sprinkler) {}
12
13 // TemplatableValue (not TemplatableFn) — also set from C++ with raw values in sprinkler.cpp
14 template<typename V> void set_valve_to_start(V valve_to_start) { this->valve_to_start_ = valve_to_start; }
15 TEMPLATABLE_VALUE(uint32_t, valve_run_duration)
16
17 void play(const Ts &...x) override {
19 this->valve_run_duration_.optional_value(x...));
20 }
21
22 protected:
25};
26
27template<typename... Ts> class ShutdownAction final : public Action<Ts...> {
28 public:
29 explicit ShutdownAction(Sprinkler *a_sprinkler) : sprinkler_(a_sprinkler) {}
30
31 void play(const Ts &...x) override { this->sprinkler_->shutdown(); }
32
33 protected:
35};
36
37template<typename... Ts> class ResumeOrStartAction final : public Action<Ts...> {
38 public:
39 explicit ResumeOrStartAction(Sprinkler *a_sprinkler) : sprinkler_(a_sprinkler) {}
40
41 void play(const Ts &...x) override { this->sprinkler_->resume_or_start_full_cycle(); }
42
43 protected:
45};
46
47} // namespace esphome::sprinkler
virtual void play(const Ts &...x)=0
Primary TemplatableValue: stores either a constant value or a function pointer.
Definition automation.h:168
optional< T > optional_value(X... x) const
Definition automation.h:265
void play(const Ts &...x) override
Definition automation.h:41
ResumeOrStartAction(Sprinkler *a_sprinkler)
Definition automation.h:39
void play(const Ts &...x) override
Definition automation.h:31
ShutdownAction(Sprinkler *a_sprinkler)
Definition automation.h:29
void shutdown(bool clear_queue=false)
turns off all valves, effectively shutting down the system.
void resume_or_start_full_cycle()
if a cycle was suspended using pause(), resumes it. otherwise calls start_full_cycle()
void start_single_valve(optional< size_t > valve_number, optional< uint32_t > run_duration=nullopt)
activates a single valve and disables auto_advance.
TEMPLATABLE_VALUE(uint32_t, valve_run_duration) void play(const Ts &...x) override
Definition automation.h:15
StartSingleValveAction(Sprinkler *a_sprinkler)
Definition automation.h:11
TemplatableValue< size_t, Ts... > valve_to_start_
Definition automation.h:24
void set_valve_to_start(V valve_to_start)
Definition automation.h:14
static void uint32_t
uint16_t x
Definition tt21100.cpp:5