mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-06-06 04:48:27 +02:00
Tuya Cover improvements (#2637)
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/core/defines.h"
|
||||
#include "esphome/core/helpers.h"
|
||||
#include "esphome/components/uart/uart.h"
|
||||
|
||||
#ifdef USE_TIME
|
||||
@@ -81,12 +82,22 @@ class Tuya : public Component, public uart::UARTDevice {
|
||||
void set_string_datapoint_value(uint8_t datapoint_id, const std::string &value);
|
||||
void set_enum_datapoint_value(uint8_t datapoint_id, uint8_t value);
|
||||
void set_bitmask_datapoint_value(uint8_t datapoint_id, uint32_t value, uint8_t length);
|
||||
void force_set_raw_datapoint_value(uint8_t datapoint_id, const std::vector<uint8_t> &value);
|
||||
void force_set_boolean_datapoint_value(uint8_t datapoint_id, bool value);
|
||||
void force_set_integer_datapoint_value(uint8_t datapoint_id, uint32_t value);
|
||||
void force_set_string_datapoint_value(uint8_t datapoint_id, const std::string &value);
|
||||
void force_set_enum_datapoint_value(uint8_t datapoint_id, uint8_t value);
|
||||
void force_set_bitmask_datapoint_value(uint8_t datapoint_id, uint32_t value, uint8_t length);
|
||||
TuyaInitState get_init_state();
|
||||
#ifdef USE_TIME
|
||||
void set_time_id(time::RealTimeClock *time_id) { this->time_id_ = time_id; }
|
||||
#endif
|
||||
void add_ignore_mcu_update_on_datapoints(uint8_t ignore_mcu_update_on_datapoints) {
|
||||
this->ignore_mcu_update_on_datapoints_.push_back(ignore_mcu_update_on_datapoints);
|
||||
}
|
||||
void add_on_initialized_callback(std::function<void()> callback) {
|
||||
this->initialized_callback_.add(std::move(callback));
|
||||
}
|
||||
|
||||
protected:
|
||||
void handle_char_(uint8_t c);
|
||||
@@ -100,7 +111,9 @@ class Tuya : public Component, public uart::UARTDevice {
|
||||
void send_command_(const TuyaCommand &command);
|
||||
void send_empty_command_(TuyaCommandType command);
|
||||
void set_numeric_datapoint_value_(uint8_t datapoint_id, TuyaDatapointType datapoint_type, uint32_t value,
|
||||
uint8_t length);
|
||||
uint8_t length, bool forced);
|
||||
void set_string_datapoint_value_(uint8_t datapoint_id, const std::string &value, bool forced);
|
||||
void set_raw_datapoint_value_(uint8_t datapoint_id, const std::vector<uint8_t> &value, bool forced);
|
||||
void send_datapoint_command_(uint8_t datapoint_id, TuyaDatapointType datapoint_type, std::vector<uint8_t> data);
|
||||
void send_wifi_status_();
|
||||
|
||||
@@ -122,6 +135,7 @@ class Tuya : public Component, public uart::UARTDevice {
|
||||
std::vector<TuyaCommand> command_queue_;
|
||||
optional<TuyaCommandType> expected_response_{};
|
||||
uint8_t wifi_status_ = -1;
|
||||
CallbackManager<void()> initialized_callback_{};
|
||||
};
|
||||
|
||||
} // namespace tuya
|
||||
|
||||
Reference in New Issue
Block a user