Revert "Template sensors always publish on update interval (#2224)" (#4774)

This commit is contained in:
Chris Nussbaum 2023-05-03 17:16:00 -05:00 committed by GitHub
parent 2b3052e9d7
commit c4539e10fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 14 deletions

View file

@ -8,14 +8,13 @@ namespace template_ {
static const char *const TAG = "template.sensor"; static const char *const TAG = "template.sensor";
void TemplateSensor::update() { void TemplateSensor::update() {
if (this->f_.has_value()) { if (!this->f_.has_value())
return;
auto val = (*this->f_)(); auto val = (*this->f_)();
if (val.has_value()) { if (val.has_value()) {
this->publish_state(*val); this->publish_state(*val);
} }
} else if (!std::isnan(this->get_raw_state())) {
this->publish_state(this->get_raw_state());
}
} }
float TemplateSensor::get_setup_priority() const { return setup_priority::HARDWARE; } float TemplateSensor::get_setup_priority() const { return setup_priority::HARDWARE; }
void TemplateSensor::set_template(std::function<optional<float>()> &&f) { this->f_ = f; } void TemplateSensor::set_template(std::function<optional<float>()> &&f) { this->f_ = f; }

View file

@ -7,14 +7,13 @@ namespace template_ {
static const char *const TAG = "template.text_sensor"; static const char *const TAG = "template.text_sensor";
void TemplateTextSensor::update() { void TemplateTextSensor::update() {
if (this->f_.has_value()) { if (!this->f_.has_value())
return;
auto val = (*this->f_)(); auto val = (*this->f_)();
if (val.has_value()) { if (val.has_value()) {
this->publish_state(*val); this->publish_state(*val);
} }
} else if (this->has_state()) {
this->publish_state(this->state);
}
} }
float TemplateTextSensor::get_setup_priority() const { return setup_priority::HARDWARE; } float TemplateTextSensor::get_setup_priority() const { return setup_priority::HARDWARE; }
void TemplateTextSensor::set_template(std::function<optional<std::string>()> &&f) { this->f_ = f; } void TemplateTextSensor::set_template(std::function<optional<std::string>()> &&f) { this->f_ = f; }