ESPHome 2025.5.0
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 {
9namespace midea {
10namespace ac {
11
12template<typename... Ts> class MideaActionBase : public Action<Ts...> {
13 public:
14 void set_parent(AirConditioner *parent) { this->parent_ = parent; }
15
16 protected:
18};
19
20template<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
31template<typename... Ts> class SwingStepAction : public MideaActionBase<Ts...> {
32 public:
33 void play(Ts... x) override { this->parent_->do_swing_step(); }
34};
35
36template<typename... Ts> class DisplayToggleAction : public MideaActionBase<Ts...> {
37 public:
38 void play(Ts... x) override { this->parent_->do_display_toggle(); }
39};
40
41template<typename... Ts> class BeeperOnAction : public MideaActionBase<Ts...> {
42 public:
43 void play(Ts... x) override { this->parent_->do_beeper_on(); }
44};
45
46template<typename... Ts> class BeeperOffAction : public MideaActionBase<Ts...> {
47 public:
48 void play(Ts... x) override { this->parent_->do_beeper_off(); }
49};
50
51template<typename... Ts> class PowerOnAction : public MideaActionBase<Ts...> {
52 public:
53 void play(Ts... x) override { this->parent_->do_power_on(); }
54};
55
56template<typename... Ts> class PowerOffAction : public MideaActionBase<Ts...> {
57 public:
58 void play(Ts... x) override { this->parent_->do_power_off(); }
59};
60
61template<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
virtual void play(Ts... x)=0
void do_follow_me(float temperature, bool use_fahrenheit, bool beeper=false)
void set_parent(AirConditioner *parent)
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t temperature
Definition sun_gtil2.cpp:12
uint16_t x
Definition tt21100.cpp:5