mirror of
https://github.com/esphome/esphome.git
synced 2025-09-02 11:22:24 +01:00
43 lines
1.0 KiB
C++
43 lines
1.0 KiB
C++
#include "opentherm_number.h"
|
|
|
|
namespace esphome {
|
|
namespace opentherm {
|
|
|
|
static const char *const TAG = "opentherm.number";
|
|
|
|
void OpenthermNumber::control(float value) {
|
|
this->publish_state(value);
|
|
|
|
if (this->restore_value_)
|
|
this->pref_.save(&value);
|
|
}
|
|
|
|
void OpenthermNumber::setup() {
|
|
float value;
|
|
if (!this->restore_value_) {
|
|
value = this->initial_value_;
|
|
} else {
|
|
this->pref_ = global_preferences->make_preference<float>(this->get_object_id_hash());
|
|
if (!this->pref_.load(&value)) {
|
|
if (!std::isnan(this->initial_value_)) {
|
|
value = this->initial_value_;
|
|
} else {
|
|
value = this->traits.get_min_value();
|
|
}
|
|
}
|
|
}
|
|
this->publish_state(value);
|
|
}
|
|
|
|
void OpenthermNumber::dump_config() {
|
|
LOG_NUMBER("", "OpenTherm Number", this);
|
|
ESP_LOGCONFIG(TAG,
|
|
" Restore value: %d\n"
|
|
" Initial value: %.2f\n"
|
|
" Current value: %.2f",
|
|
this->restore_value_, this->initial_value_, this->state);
|
|
}
|
|
|
|
} // namespace opentherm
|
|
} // namespace esphome
|