6#if defined(USE_ESP32_VARIANT_ESP32)
11#elif defined(USE_ESP32_VARIANT_ESP32C2) || defined(USE_ESP32_VARIANT_ESP32C3) || \
12 defined(USE_ESP32_VARIANT_ESP32C5) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32C61) || \
13 defined(USE_ESP32_VARIANT_ESP32H2) || defined(USE_ESP32_VARIANT_ESP32P4) || defined(USE_ESP32_VARIANT_ESP32S2) || \
14 defined(USE_ESP32_VARIANT_ESP32S3)
15#include "driver/temperature_sensor.h"
20static const char *
const TAG =
"internal_temperature.esp32";
25#if defined(USE_ESP32_VARIANT_ESP32)
27 ESP_LOGV(TAG,
"Raw temperature value: %d",
raw);
29 success = (
raw != 128);
30#elif defined(USE_ESP32_VARIANT_ESP32C2) || defined(USE_ESP32_VARIANT_ESP32C3) || \
31 defined(USE_ESP32_VARIANT_ESP32C5) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32C61) || \
32 defined(USE_ESP32_VARIANT_ESP32H2) || defined(USE_ESP32_VARIANT_ESP32P4) || defined(USE_ESP32_VARIANT_ESP32S2) || \
33 defined(USE_ESP32_VARIANT_ESP32S3)
34 esp_err_t result = temperature_sensor_get_celsius(this->
tsens_, &temperature);
35 success = (result == ESP_OK);
37 ESP_LOGE(TAG,
"Reading failed (%d)", result);
44 ESP_LOGD(TAG,
"Ignoring invalid temperature (success=%d, value=%.1f)", success,
temperature);
52#if defined(USE_ESP32_VARIANT_ESP32C2) || defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C5) || \
53 defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32C61) || defined(USE_ESP32_VARIANT_ESP32H2) || \
54 defined(USE_ESP32_VARIANT_ESP32P4) || defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3)
55 temperature_sensor_config_t tsens_config = TEMPERATURE_SENSOR_CONFIG_DEFAULT(-10, 80);
57 esp_err_t result = temperature_sensor_install(&tsens_config, &this->
tsens_);
58 if (result != ESP_OK) {
59 ESP_LOGE(TAG,
"Install failed (%d)", result);
64 result = temperature_sensor_enable(this->
tsens_);
65 if (result != ESP_OK) {
66 ESP_LOGE(TAG,
"Enabling failed (%d)", result);
void mark_failed()
Mark this component as failed.
temperature_sensor_handle_t tsens_
void publish_state(float state)
Publish a new state to the front-end.
uint8_t temprature_sens_read()