ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
ac_automations.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ARDUINO
4
6#include "air_conditioner.h"
7
8namespace esphome::midea::ac {
9
10template<typename... Ts> class MideaActionBase : public Action<Ts...> {
11 public:
12 void set_parent(AirConditioner *parent) { this->parent_ = parent; }
13
14 protected:
16};
17
18template<typename... Ts> class FollowMeAction : public MideaActionBase<Ts...> {
19 TEMPLATABLE_VALUE(float, temperature)
20 TEMPLATABLE_VALUE(bool, use_fahrenheit)
21 TEMPLATABLE_VALUE(bool, beeper)
22
23 void play(const Ts &...x) override {
24 this->parent_->do_follow_me(this->temperature_.value(x...), this->use_fahrenheit_.value(x...),
25 this->beeper_.value(x...));
26 }
27};
28
29template<typename... Ts> class SwingStepAction : public MideaActionBase<Ts...> {
30 public:
31 void play(const Ts &...x) override { this->parent_->do_swing_step(); }
32};
33
34template<typename... Ts> class DisplayToggleAction : public MideaActionBase<Ts...> {
35 public:
36 void play(const Ts &...x) override { this->parent_->do_display_toggle(); }
37};
38
39template<typename... Ts> class BeeperOnAction : public MideaActionBase<Ts...> {
40 public:
41 void play(const Ts &...x) override { this->parent_->do_beeper_on(); }
42};
43
44template<typename... Ts> class BeeperOffAction : public MideaActionBase<Ts...> {
45 public:
46 void play(const Ts &...x) override { this->parent_->do_beeper_off(); }
47};
48
49template<typename... Ts> class PowerOnAction : public MideaActionBase<Ts...> {
50 public:
51 void play(const Ts &...x) override { this->parent_->do_power_on(); }
52};
53
54template<typename... Ts> class PowerOffAction : public MideaActionBase<Ts...> {
55 public:
56 void play(const Ts &...x) override { this->parent_->do_power_off(); }
57};
58
59template<typename... Ts> class PowerToggleAction : public MideaActionBase<Ts...> {
60 public:
61 void play(const Ts &...x) override { this->parent_->do_power_toggle(); }
62};
63
64} // namespace esphome::midea::ac
65
66#endif // USE_ARDUINO
virtual void play(const Ts &...x)=0
void do_follow_me(float temperature, bool use_fahrenheit, bool beeper=false)
void play(const Ts &...x) override
void play(const Ts &...x) override
void play(const Ts &...x) override
void set_parent(AirConditioner *parent)
void play(const Ts &...x) override
void play(const Ts &...x) override
void play(const Ts &...x) override
void play(const Ts &...x) override
uint16_t temperature
Definition sun_gtil2.cpp:12
uint16_t x
Definition tt21100.cpp:5