ESPHome 2025.5.0
Loading...
Searching...
No Matches
automation.h
Go to the documentation of this file.
1#pragma once
3#include "nextion.h"
4
5namespace esphome {
6namespace nextion {
7
8class BufferOverflowTrigger : public Trigger<> {
9 public:
10 explicit BufferOverflowTrigger(Nextion *nextion) {
11 nextion->add_buffer_overflow_event_callback([this]() { this->trigger(); });
12 }
13};
14
15class SetupTrigger : public Trigger<> {
16 public:
17 explicit SetupTrigger(Nextion *nextion) {
18 nextion->add_setup_state_callback([this]() { this->trigger(); });
19 }
20};
21
22class SleepTrigger : public Trigger<> {
23 public:
24 explicit SleepTrigger(Nextion *nextion) {
25 nextion->add_sleep_state_callback([this]() { this->trigger(); });
26 }
27};
28
29class WakeTrigger : public Trigger<> {
30 public:
31 explicit WakeTrigger(Nextion *nextion) {
32 nextion->add_wake_state_callback([this]() { this->trigger(); });
33 }
34};
35
36class PageTrigger : public Trigger<uint8_t> {
37 public:
38 explicit PageTrigger(Nextion *nextion) {
39 nextion->add_new_page_callback([this](const uint8_t page_id) { this->trigger(page_id); });
40 }
41};
42
43class TouchTrigger : public Trigger<uint8_t, uint8_t, bool> {
44 public:
45 explicit TouchTrigger(Nextion *nextion) {
46 nextion->add_touch_event_callback([this](uint8_t page_id, uint8_t component_id, bool touch_event) {
47 this->trigger(page_id, component_id, touch_event);
48 });
49 }
50};
51
52template<typename... Ts> class NextionSetBrightnessAction : public Action<Ts...> {
53 public:
54 explicit NextionSetBrightnessAction(Nextion *component) : component_(component) {}
55
56 TEMPLATABLE_VALUE(float, brightness)
57
58 void play(Ts... x) override {
59 this->component_->set_brightness(this->brightness_.value(x...));
60 this->component_->set_backlight_brightness(this->brightness_.value(x...));
61 }
62
63 void set_brightness(std::function<void(Ts..., float)> brightness) { this->brightness_ = brightness; }
64
65 protected:
67};
68
69template<typename... Ts> class NextionPublishFloatAction : public Action<Ts...> {
70 public:
71 explicit NextionPublishFloatAction(NextionComponent *component) : component_(component) {}
72
74 TEMPLATABLE_VALUE(bool, publish_state)
75 TEMPLATABLE_VALUE(bool, send_to_nextion)
76
77 void play(Ts... x) override {
78 this->component_->set_state(this->state_.value(x...), this->publish_state_.value(x...),
79 this->send_to_nextion_.value(x...));
80 }
81
82 void set_state(std::function<void(Ts..., float)> state) { this->state_ = state; }
83 void set_publish_state(std::function<void(Ts..., bool)> publish_state) { this->publish_state_ = publish_state; }
84 void set_send_to_nextion(std::function<void(Ts..., bool)> send_to_nextion) {
85 this->send_to_nextion_ = send_to_nextion;
86 }
87
88 protected:
90};
91
92template<typename... Ts> class NextionPublishTextAction : public Action<Ts...> {
93 public:
94 explicit NextionPublishTextAction(NextionComponent *component) : component_(component) {}
95
96 TEMPLATABLE_VALUE(const char *, state)
97 TEMPLATABLE_VALUE(bool, publish_state)
98 TEMPLATABLE_VALUE(bool, send_to_nextion)
99
100 void play(Ts... x) override {
101 this->component_->set_state(this->state_.value(x...), this->publish_state_.value(x...),
102 this->send_to_nextion_.value(x...));
103 }
104
105 void set_state(std::function<void(Ts..., const char *)> state) { this->state_ = state; }
106 void set_publish_state(std::function<void(Ts..., bool)> publish_state) { this->publish_state_ = publish_state; }
107 void set_send_to_nextion(std::function<void(Ts..., bool)> send_to_nextion) {
108 this->send_to_nextion_ = send_to_nextion;
109 }
110
111 protected:
113};
114
115template<typename... Ts> class NextionPublishBoolAction : public Action<Ts...> {
116 public:
117 explicit NextionPublishBoolAction(NextionComponent *component) : component_(component) {}
118
120 TEMPLATABLE_VALUE(bool, publish_state)
121 TEMPLATABLE_VALUE(bool, send_to_nextion)
122
123 void play(Ts... x) override {
124 this->component_->set_state(this->state_.value(x...), this->publish_state_.value(x...),
125 this->send_to_nextion_.value(x...));
126 }
127
128 void set_state(std::function<void(Ts..., bool)> state) { this->state_ = state; }
129 void set_publish_state(std::function<void(Ts..., bool)> publish_state) { this->publish_state_ = publish_state; }
130 void set_send_to_nextion(std::function<void(Ts..., bool)> send_to_nextion) {
131 this->send_to_nextion_ = send_to_nextion;
132 }
133
134 protected:
136};
137
138} // namespace nextion
139} // namespace esphome
virtual void play(Ts... x)=0
void trigger(Ts... x)
Definition automation.h:96
void add_setup_state_callback(std::function< void()> &&callback)
Add a callback to be notified when the nextion completes its initialize setup.
Definition nextion.cpp:196
void add_buffer_overflow_event_callback(std::function< void()> &&callback)
Add a callback to be notified when the nextion reports a buffer overflow.
Definition nextion.cpp:208
void set_brightness(float brightness)
Definition nextion.h:1022
void add_new_page_callback(std::function< void(uint8_t)> &&callback)
Add a callback to be notified when the nextion changes pages.
Definition nextion.cpp:200
void add_sleep_state_callback(std::function< void()> &&callback)
Add a callback to be notified of sleep state changes.
Definition nextion.cpp:188
void add_wake_state_callback(std::function< void()> &&callback)
Add a callback to be notified of wake state changes.
Definition nextion.cpp:192
void add_touch_event_callback(std::function< void(uint8_t, uint8_t, bool)> &&callback)
Add a callback to be notified when Nextion has a touch event.
Definition nextion.cpp:204
void set_backlight_brightness(float brightness)
Set the brightness of the backlight.
void set_publish_state(std::function< void(Ts..., bool)> publish_state)
Definition automation.h:129
NextionPublishBoolAction(NextionComponent *component)
Definition automation.h:117
TEMPLATABLE_VALUE(bool, state) TEMPLATABLE_VALUE(bool
void set_send_to_nextion(std::function< void(Ts..., bool)> send_to_nextion)
Definition automation.h:130
void set_state(std::function< void(Ts..., bool)> state)
Definition automation.h:128
void set_send_to_nextion(std::function< void(Ts..., bool)> send_to_nextion)
Definition automation.h:84
NextionPublishFloatAction(NextionComponent *component)
Definition automation.h:71
void set_publish_state(std::function< void(Ts..., bool)> publish_state)
Definition automation.h:83
TEMPLATABLE_VALUE(float, state) TEMPLATABLE_VALUE(bool
void set_state(std::function< void(Ts..., float)> state)
Definition automation.h:82
void set_publish_state(std::function< void(Ts..., bool)> publish_state)
Definition automation.h:106
TEMPLATABLE_VALUE(const char *, state) TEMPLATABLE_VALUE(bool
void set_send_to_nextion(std::function< void(Ts..., bool)> send_to_nextion)
Definition automation.h:107
NextionPublishTextAction(NextionComponent *component)
Definition automation.h:94
void set_state(std::function< void(Ts..., const char *)> state)
Definition automation.h:105
void set_brightness(std::function< void(Ts..., float)> brightness)
Definition automation.h:63
TEMPLATABLE_VALUE(float, brightness) void play(Ts... x) override
Definition automation.h:56
PageTrigger(Nextion *nextion)
Definition automation.h:38
SetupTrigger(Nextion *nextion)
Definition automation.h:17
SleepTrigger(Nextion *nextion)
Definition automation.h:24
TouchTrigger(Nextion *nextion)
Definition automation.h:45
WakeTrigger(Nextion *nextion)
Definition automation.h:31
bool state
Definition fan.h:0
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
uint16_t x
Definition tt21100.cpp:5