ESPHome
2025.5.1
Loading...
Searching...
No Matches
esphome
components
tuya
text_sensor
tuya_text_sensor.cpp
Go to the documentation of this file.
1
#include "
tuya_text_sensor.h
"
2
#include "
esphome/core/log.h
"
3
4
namespace
esphome
{
5
namespace
tuya {
6
7
static
const
char
*
const
TAG
=
"tuya.text_sensor"
;
8
9
void
TuyaTextSensor::setup
() {
10
this->
parent_
->
register_listener
(this->
sensor_id_
, [
this
](
const
TuyaDatapoint
&datapoint) {
11
switch
(datapoint.
type
) {
12
case
TuyaDatapointType::STRING
:
13
ESP_LOGD(TAG,
"MCU reported text sensor %u is: %s"
, datapoint.
id
, datapoint.
value_string
.c_str());
14
this->
publish_state
(datapoint.
value_string
);
15
break
;
16
case
TuyaDatapointType::RAW
: {
17
std::string data =
format_hex_pretty
(datapoint.
value_raw
);
18
ESP_LOGD(TAG,
"MCU reported text sensor %u is: %s"
, datapoint.
id
, data.c_str());
19
this->
publish_state
(data);
20
break
;
21
}
22
case
TuyaDatapointType::ENUM
: {
23
std::string data =
to_string
(datapoint.
value_enum
);
24
ESP_LOGD(TAG,
"MCU reported text sensor %u is: %s"
, datapoint.
id
, data.c_str());
25
this->
publish_state
(data);
26
break
;
27
}
28
default
:
29
ESP_LOGW(TAG,
"Unsupported data type for tuya text sensor %u: %#02hhX"
, datapoint.
id
, (uint8_t) datapoint.
type
);
30
break
;
31
}
32
});
33
}
34
35
void
TuyaTextSensor::dump_config
() {
36
ESP_LOGCONFIG(TAG,
"Tuya Text Sensor:"
);
37
ESP_LOGCONFIG(TAG,
" Text Sensor has datapoint ID %u"
, this->
sensor_id_
);
38
}
39
40
}
// namespace tuya
41
}
// namespace esphome
esphome::text_sensor::TextSensor::publish_state
void publish_state(const std::string &state)
Definition
text_sensor.cpp:9
esphome::tuya::Tuya::register_listener
void register_listener(uint8_t datapoint_id, const std::function< void(TuyaDatapoint)> &func)
Definition
tuya.cpp:697
esphome::tuya::TuyaTextSensor::sensor_id_
uint8_t sensor_id_
Definition
tuya_text_sensor.h:20
esphome::tuya::TuyaTextSensor::parent_
Tuya * parent_
Definition
tuya_text_sensor.h:19
esphome::tuya::TuyaTextSensor::dump_config
void dump_config() override
Definition
tuya_text_sensor.cpp:35
esphome::tuya::TuyaTextSensor::setup
void setup() override
Definition
tuya_text_sensor.cpp:9
log.h
esphome::spi::TAG
const char *const TAG
Definition
spi.cpp:8
esphome::tuya::TuyaDatapointType::RAW
@ RAW
esphome::tuya::TuyaDatapointType::STRING
@ STRING
esphome::tuya::TuyaDatapointType::ENUM
@ ENUM
esphome
Providing packet encoding functions for exchanging data with a remote host.
Definition
a01nyub.cpp:7
esphome::to_string
std::string to_string(int value)
Definition
helpers.cpp:82
esphome::format_hex_pretty
std::string format_hex_pretty(const uint8_t *data, size_t length)
Format the byte array data of length len in pretty-printed, human-readable hex.
Definition
helpers.cpp:372
esphome::tuya::TuyaDatapoint
Definition
tuya.h:28
esphome::tuya::TuyaDatapoint::value_enum
uint8_t value_enum
Definition
tuya.h:36
esphome::tuya::TuyaDatapoint::value_string
std::string value_string
Definition
tuya.h:39
esphome::tuya::TuyaDatapoint::value_raw
std::vector< uint8_t > value_raw
Definition
tuya.h:40
esphome::tuya::TuyaDatapoint::id
uint8_t id
Definition
tuya.h:29
esphome::tuya::TuyaDatapoint::type
TuyaDatapointType type
Definition
tuya.h:30
tuya_text_sensor.h
Generated by
1.12.0