ESPHome 2026.5.1
Loading...
Searching...
No Matches
lvgl_number.h
Go to the documentation of this file.
1#pragma once
2
3#include <utility>
4
8
9namespace esphome::lvgl {
10
11class LVGLNumber : public number::Number, public Component {
12 public:
13 LVGLNumber(std::function<void(float)> control_lambda, std::function<float()> value_lambda, bool restore)
14 : control_lambda_(std::move(control_lambda)), value_lambda_(std::move(value_lambda)), restore_(restore) {}
15
16 void setup() override {
17 float value = this->value_lambda_();
18 if (this->restore_) {
20 if (this->pref_.load(&value)) {
21 this->control_lambda_(value);
22 }
23 }
24 this->publish_state(value);
25 }
26
27 void on_value() { this->publish_(this->value_lambda_()); }
28
29 protected:
30 void publish_(float value) {
31 this->publish_state(value);
32 if (this->restore_)
33 this->pref_.save(&value);
34 }
35 void control(float value) override {
36 this->control_lambda_(value);
37 this->publish_(value);
38 }
39 std::function<void(float)> control_lambda_;
40 std::function<float()> value_lambda_;
43};
44
45} // namespace esphome::lvgl
ESPPreferenceObject make_entity_preference(uint32_t version=0)
Create a preference object for storing this entity's state/settings.
std::function< float()> value_lambda_
Definition lvgl_number.h:40
void control(float value) override
Definition lvgl_number.h:35
std::function< void(float)> control_lambda_
Definition lvgl_number.h:39
ESPPreferenceObject pref_
Definition lvgl_number.h:42
void publish_(float value)
Definition lvgl_number.h:30
void setup() override
Definition lvgl_number.h:16
LVGLNumber(std::function< void(float)> control_lambda, std::function< float()> value_lambda, bool restore)
Definition lvgl_number.h:13
Base-class for all numbers.
Definition number.h:29
void publish_state(float state)
Definition number.cpp:22