1
0
mirror of https://github.com/esphome/esphome.git synced 2025-01-31 10:10:56 +00:00

Template sensors always publish on update interval (#2224)

Co-authored-by: Chris Nussbaum <chris.nussbaum@protolabs.com>
This commit is contained in:
Chris Nussbaum 2021-09-07 22:36:49 -05:00 committed by GitHub
parent 1be106c0b5
commit 6180ee8065
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 12 deletions

View File

@ -7,12 +7,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_)();
if (val.has_value()) {
auto val = (*this->f_)(); this->publish_state(*val);
if (val.has_value()) { }
this->publish_state(*val); } else if (!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; }

View File

@ -7,12 +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_)();
if (val.has_value()) {
auto val = (*this->f_)(); this->publish_state(*val);
if (val.has_value()) { }
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; }