5#if defined(USE_ESP32_VARIANT_ESP32)
10#elif defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || \
11 defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32H2) || \
12 defined(USE_ESP32_VARIANT_ESP32C2) || defined(USE_ESP32_VARIANT_ESP32P4)
13#include "driver/temperature_sensor.h"
26namespace internal_temperature {
28static const char *
const TAG =
"internal_temperature";
30#if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32S2) || \
31 defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32H2) || defined(USE_ESP32_VARIANT_ESP32C2) || \
32 defined(USE_ESP32_VARIANT_ESP32P4)
33static temperature_sensor_handle_t tsensNew = NULL;
41#if defined(USE_ESP32_VARIANT_ESP32)
43 ESP_LOGV(TAG,
"Raw temperature value: %d",
raw);
45 success = (
raw != 128);
46#elif defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || \
47 defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32H2) || \
48 defined(USE_ESP32_VARIANT_ESP32C2) || defined(USE_ESP32_VARIANT_ESP32P4)
49 esp_err_t result = temperature_sensor_get_celsius(tsensNew, &
temperature);
50 success = (result == ESP_OK);
52 ESP_LOGE(TAG,
"Reading failed (%d)", result);
63 success = (result == 0);
64#if defined(USE_LIBRETINY_VARIANT_BK7231N)
66#elif defined(USE_LIBRETINY_VARIANT_BK7231T)
75 ESP_LOGD(TAG,
"Ignoring invalid temperature (success=%d, value=%.1f)", success,
temperature);
84#if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32S2) || \
85 defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32H2) || defined(USE_ESP32_VARIANT_ESP32C2) || \
86 defined(USE_ESP32_VARIANT_ESP32P4)
87 temperature_sensor_config_t tsens_config = TEMPERATURE_SENSOR_CONFIG_DEFAULT(-10, 80);
89 esp_err_t result = temperature_sensor_install(&tsens_config, &tsensNew);
90 if (result != ESP_OK) {
91 ESP_LOGE(TAG,
"Install failed (%d)", result);
96 result = temperature_sensor_enable(tsensNew);
97 if (result != ESP_OK) {
98 ESP_LOGE(TAG,
"Enabling failed (%d)", result);
virtual void mark_failed()
Mark this component as failed.
void dump_config() override
void publish_state(float state)
Publish a new state to the front-end.
uint8_t temprature_sens_read()
uint32_t temp_single_get_current_temperature(uint32_t *temp_value)
Providing packet encoding functions for exchanging data with a remote host.