ESPHome  2025.2.0
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 
8 namespace esphome {
9 namespace midea {
10 namespace ac {
11 
12 template<typename... Ts> class MideaActionBase : public Action<Ts...> {
13  public:
14  void set_parent(AirConditioner *parent) { this->parent_ = parent; }
15 
16  protected:
18 };
19 
20 template<typename... Ts> class FollowMeAction : public MideaActionBase<Ts...> {
21  TEMPLATABLE_VALUE(float, temperature)
22  TEMPLATABLE_VALUE(bool, use_fahrenheit)
23  TEMPLATABLE_VALUE(bool, beeper)
24 
25  void play(Ts... x) override {
26  this->parent_->do_follow_me(this->temperature_.value(x...), this->use_fahrenheit_.value(x...),
27  this->beeper_.value(x...));
28  }
29 };
30 
31 template<typename... Ts> class SwingStepAction : public MideaActionBase<Ts...> {
32  public:
33  void play(Ts... x) override { this->parent_->do_swing_step(); }
34 };
35 
36 template<typename... Ts> class DisplayToggleAction : public MideaActionBase<Ts...> {
37  public:
38  void play(Ts... x) override { this->parent_->do_display_toggle(); }
39 };
40 
41 template<typename... Ts> class BeeperOnAction : public MideaActionBase<Ts...> {
42  public:
43  void play(Ts... x) override { this->parent_->do_beeper_on(); }
44 };
45 
46 template<typename... Ts> class BeeperOffAction : public MideaActionBase<Ts...> {
47  public:
48  void play(Ts... x) override { this->parent_->do_beeper_off(); }
49 };
50 
51 template<typename... Ts> class PowerOnAction : public MideaActionBase<Ts...> {
52  public:
53  void play(Ts... x) override { this->parent_->do_power_on(); }
54 };
55 
56 template<typename... Ts> class PowerOffAction : public MideaActionBase<Ts...> {
57  public:
58  void play(Ts... x) override { this->parent_->do_power_off(); }
59 };
60 
61 template<typename... Ts> class PowerToggleAction : public MideaActionBase<Ts...> {
62  public:
63  void play(Ts... x) override { this->parent_->do_power_toggle(); }
64 };
65 
66 } // namespace ac
67 } // namespace midea
68 } // namespace esphome
69 
70 #endif // USE_ARDUINO
uint16_t x
Definition: tt21100.cpp:17
void do_follow_me(float temperature, bool use_fahrenheit, bool beeper=false)
void play(Ts... x) override
uint16_t temperature
Definition: sun_gtil2.cpp:26
void set_parent(AirConditioner *parent)
Implementation of SPI Controller mode.
Definition: a01nyub.cpp:7
virtual void play(Ts... x)=0