32 lines
715 B
C++
32 lines
715 B
C++
#ifdef USE_RP2040
|
|
|
|
#include "esphome/core/log.h"
|
|
#include "internal_temperature.h"
|
|
|
|
#include "Arduino.h"
|
|
|
|
namespace esphome::internal_temperature {
|
|
|
|
static const char *const TAG = "internal_temperature.rp2040";
|
|
|
|
void InternalTemperatureSensor::update() {
|
|
float temperature = NAN;
|
|
bool success = false;
|
|
|
|
temperature = analogReadTemp();
|
|
success = (temperature != 0.0f);
|
|
|
|
if (success && std::isfinite(temperature)) {
|
|
this->publish_state(temperature);
|
|
} else {
|
|
ESP_LOGD(TAG, "Ignoring invalid temperature (success=%d, value=%.1f)", success, temperature);
|
|
if (!this->has_state()) {
|
|
this->publish_state(NAN);
|
|
}
|
|
}
|
|
}
|
|
|
|
} // namespace esphome::internal_temperature
|
|
|
|
#endif // USE_RP2040
|