ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
number.cpp
Go to the documentation of this file.
1#include "number.h"
4#include "esphome/core/log.h"
5
6namespace esphome {
7namespace number {
8
9static const char *const TAG = "number";
10
11// Function implementation of LOG_NUMBER macro to reduce code size
12void log_number(const char *tag, const char *prefix, const char *type, Number *obj) {
13 if (obj == nullptr) {
14 return;
15 }
16
17 ESP_LOGCONFIG(tag, "%s%s '%s'", prefix, type, obj->get_name().c_str());
18
19 if (!obj->get_icon_ref().empty()) {
20 ESP_LOGCONFIG(tag, "%s Icon: '%s'", prefix, obj->get_icon_ref().c_str());
21 }
22
24 ESP_LOGCONFIG(tag, "%s Unit of Measurement: '%s'", prefix, obj->traits.get_unit_of_measurement_ref().c_str());
25 }
26
27 if (!obj->traits.get_device_class_ref().empty()) {
28 ESP_LOGCONFIG(tag, "%s Device Class: '%s'", prefix, obj->traits.get_device_class_ref().c_str());
29 }
30}
31
33 this->set_has_state(true);
34 this->state = state;
35 ESP_LOGD(TAG, "'%s': Sending state %f", this->get_name().c_str(), state);
36 this->state_callback_.call(state);
37#if defined(USE_NUMBER) && defined(USE_CONTROLLER_REGISTRY)
39#endif
40}
41
42void Number::add_on_state_callback(std::function<void(float)> &&callback) {
43 this->state_callback_.add(std::move(callback));
44}
45
46} // namespace number
47} // namespace esphome
static void notify_number_update(number::Number *obj)
StringRef get_device_class_ref() const
Get the device class as StringRef.
StringRef get_unit_of_measurement_ref() const
Get the unit of measurement as StringRef.
const StringRef & get_name() const
StringRef get_icon_ref() const
Definition entity_base.h:69
void set_has_state(bool state)
Definition entity_base.h:93
constexpr const char * c_str() const
Definition string_ref.h:69
constexpr bool empty() const
Definition string_ref.h:71
Base-class for all numbers.
Definition number.h:30
void publish_state(float state)
Definition number.cpp:32
NumberTraits traits
Definition number.h:40
void add_on_state_callback(std::function< void(float)> &&callback)
Definition number.cpp:42
CallbackManager< void(float)> state_callback_
Definition number.h:53
uint16_t type
bool state
Definition fan.h:0
void log_number(const char *tag, const char *prefix, const char *type, Number *obj)
Definition number.cpp:12
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7