Теперь режимы качания и фиксации шторок без явного объявления выставляются по умолчанию в центре и на всю ширь. Понимайте, как хотите.
This commit is contained in:
@@ -9,6 +9,7 @@ from esphome.const import (
|
||||
CONF_MAX_TEMPERATURE,
|
||||
CONF_MIN_TEMPERATURE,
|
||||
CONF_SUPPORTED_MODES,
|
||||
CONF_TEMPERATURE_STEP,
|
||||
CONF_SUPPORTED_FAN_MODES,
|
||||
CONF_SUPPORTED_SWING_MODES,
|
||||
)
|
||||
@@ -22,12 +23,13 @@ from esphome.components.climate import (
|
||||
AUTO_LOAD = ["climate"]
|
||||
CODEOWNERS = ["@I-am-nightingale"]
|
||||
DEPENDENCIES = ["climate", "uart"]
|
||||
|
||||
CONF_RX_LED = "rx_led"
|
||||
CONF_TX_LED = "tx_led"
|
||||
CONF_DISPLAY = "show_display"
|
||||
CONF_FORCE_MODE = "force_mode"
|
||||
CONF_MODULE_DISPLAY = "show_module_display"
|
||||
CONF_VERTICAL_AIRFLOW = "vertical_airflow"
|
||||
CONF_MODULE_DISPLAY = "show_module_display"
|
||||
CONF_HORIZONTAL_AIRFLOW = "horizontal_airflow"
|
||||
CONF_VERTICAL_SWING_MODE = "vertical_swing_mode"
|
||||
CONF_HORIZONTAL_SWING_MODE = "horizontal_swing_mode"
|
||||
@@ -97,6 +99,7 @@ AIRFLOW_HORIZONTAL_DIRECTION_OPTIONS = {
|
||||
"MAX_RIGHT": AirflowHorizontalDirection.MAX_RIGHT,
|
||||
}
|
||||
|
||||
# Проверка данных конфигурации и принятие значений по умолчанию
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
climate.CLIMATE_SCHEMA.extend(
|
||||
{
|
||||
@@ -107,6 +110,10 @@ CONFIG_SCHEMA = cv.All(
|
||||
cv.Optional(CONF_TX_LED): pins.gpio_output_pin_schema,
|
||||
cv.Optional(CONF_FORCE_MODE, default=True): cv.boolean,
|
||||
cv.Optional(CONF_MODULE_DISPLAY, default=True): cv.boolean,
|
||||
cv.Optional(CONF_VERTICAL_AIRFLOW, default="CENTER"): cv.ensure_list(cv.enum(AIRFLOW_VERTICAL_DIRECTION_OPTIONS, upper=True)),
|
||||
cv.Optional(CONF_VERTICAL_SWING_MODE, default="UP_DOWN"): cv.ensure_list(cv.enum(VERTICAL_SWING_DIRECTION_OPTIONS, upper=True)),
|
||||
cv.Optional(CONF_HORIZONTAL_AIRFLOW, default="CENTER"): cv.ensure_list(cv.enum(AIRFLOW_HORIZONTAL_DIRECTION_OPTIONS, upper=True)),
|
||||
cv.Optional(CONF_HORIZONTAL_SWING_MODE, default="LEFT_RIGHT"): cv.ensure_list(cv.enum(HORIZONTAL_SWING_DIRECTION_OPTIONS, upper=True)),
|
||||
cv.Optional(CONF_SUPPORTED_SWING_MODES,default=["OFF","VERTICAL","HORIZONTAL","BOTH",],): cv.ensure_list(cv.enum(SUPPORTED_SWING_MODES_OPTIONS, upper=True)),
|
||||
cv.Optional(CONF_SUPPORTED_MODES,default=["OFF","AUTO","COOL","HEAT","DRY","FAN_ONLY",],): cv.ensure_list(cv.enum(SUPPORTED_CLIMATE_MODES_OPTIONS, upper=True)),
|
||||
cv.Optional(CONF_SUPPORTED_FAN_MODES,default=["AUTO","QUIET","LOW","MIDDLE","MEDIUM","HIGH","FOCUS","DIFFUSE",],): cv.ensure_list(cv.enum(SUPPORTED_FAN_MODES_OPTIONS, upper=True)),
|
||||
@@ -123,8 +130,8 @@ BeeperOffAction = tclac_ns.class_("BeeperOffAction", automation.Action)
|
||||
DisplayOnAction = tclac_ns.class_("DisplayOnAction", automation.Action)
|
||||
DisplayOffAction = tclac_ns.class_("DisplayOffAction", automation.Action)
|
||||
ModuleDisplayOnAction = tclac_ns.class_("ModuleDisplayOnAction", automation.Action)
|
||||
ModuleDisplayOffAction = tclac_ns.class_("ModuleDisplayOffAction", automation.Action)
|
||||
VerticalAirflowAction = tclac_ns.class_("VerticalAirflowAction", automation.Action)
|
||||
ModuleDisplayOffAction = tclac_ns.class_("ModuleDisplayOffAction", automation.Action)
|
||||
HorizontalAirflowAction = tclac_ns.class_("HorizontalAirflowAction", automation.Action)
|
||||
VerticalSwingDirectionAction = tclac_ns.class_("VerticalSwingDirectionAction", automation.Action)
|
||||
HorizontalSwingDirectionAction = tclac_ns.class_("HorizontalSwingDirectionAction", automation.Action)
|
||||
|
||||
@@ -88,7 +88,6 @@ void tclacClimate::loop() {
|
||||
}
|
||||
|
||||
void tclacClimate::update() {
|
||||
|
||||
tclacClimate::dataShow(1,1);
|
||||
this->esphome::uart::UARTDevice::write_array(poll, sizeof(poll));
|
||||
auto raw = tclacClimate::getHex(poll, sizeof(poll));
|
||||
|
||||
@@ -18,36 +18,36 @@ namespace tclac {
|
||||
|
||||
#define SET_TEMP_MASK 0b00001111
|
||||
|
||||
#define MODE_POS 7
|
||||
#define MODE_POS 7
|
||||
#define MODE_MASK 0b00111111
|
||||
|
||||
#define MODE_AUTO 0b00110101
|
||||
#define MODE_COOL 0b00110001
|
||||
#define MODE_DRY 0b00110011
|
||||
#define MODE_FAN_ONLY 0b00110010
|
||||
#define MODE_HEAT 0b00110100
|
||||
#define MODE_AUTO 0b00110101
|
||||
#define MODE_COOL 0b00110001
|
||||
#define MODE_DRY 0b00110011
|
||||
#define MODE_FAN_ONLY 0b00110010
|
||||
#define MODE_HEAT 0b00110100
|
||||
|
||||
#define FAN_SPEED_POS 8
|
||||
#define FAN_QUIET_POS 33
|
||||
|
||||
|
||||
#define FAN_AUTO 0b10000000 //auto
|
||||
#define FAN_QUIET 0x80 //silent
|
||||
#define FAN_LOW 0b10010000 // |
|
||||
#define FAN_MIDDLE 0b11000000 // ||
|
||||
#define FAN_MEDIUM 0b10100000 // |||
|
||||
#define FAN_HIGH 0b11010000 // ||||
|
||||
#define FAN_FOCUS 0b10110000 // |||||
|
||||
#define FAN_AUTO 0b10000000 //auto
|
||||
#define FAN_QUIET 0x80 //silent
|
||||
#define FAN_LOW 0b10010000 // |
|
||||
#define FAN_MIDDLE 0b11000000 // ||
|
||||
#define FAN_MEDIUM 0b10100000 // |||
|
||||
#define FAN_HIGH 0b11010000 // ||||
|
||||
#define FAN_FOCUS 0b10110000 // |||||
|
||||
#define FAN_DIFFUSE 0b10000000 // POWER [7]
|
||||
#define FAN_SPEED_MASK 0b11110000 //FAN SPEED MASK
|
||||
|
||||
|
||||
#define SWING_POS 10
|
||||
#define SWING_OFF 0b00000000
|
||||
#define SWING_HORIZONTAL 0b00100000
|
||||
#define SWING_VERTICAL 0b01000000
|
||||
#define SWING_BOTH 0b01100000
|
||||
#define SWING_MODE_MASK 0b01100000
|
||||
#define SWING_OFF 0b00000000
|
||||
#define SWING_HORIZONTAL 0b00100000
|
||||
#define SWING_VERTICAL 0b01000000
|
||||
#define SWING_BOTH 0b01100000
|
||||
#define SWING_MODE_MASK 0b01100000
|
||||
|
||||
#define STEP_TEMPERATURE 1
|
||||
#define MIN_SET_TEMPERATURE 16
|
||||
@@ -103,13 +103,12 @@ class tclacClimate : public climate::Climate, public esphome::uart::UARTDevice,
|
||||
bool display_status_;
|
||||
bool force_mode_status_;
|
||||
bool module_display_status_;
|
||||
esphome::climate::ClimateTraits traits_;
|
||||
|
||||
uint8_t switch_climate_mode = 0;
|
||||
uint8_t switch_fan_mode = 0;
|
||||
uint8_t switch_swing_mode = 0;
|
||||
int target_temperature_set = 0;
|
||||
uint8_t switch_climate_mode = 0;
|
||||
bool allow_take_control = false;
|
||||
esphome::climate::ClimateTraits traits_;
|
||||
|
||||
public:
|
||||
|
||||
@@ -118,10 +117,10 @@ class tclacClimate : public climate::Climate, public esphome::uart::UARTDevice,
|
||||
}
|
||||
|
||||
void readData();
|
||||
void takeControl();
|
||||
void loop() override;
|
||||
void setup() override;
|
||||
void update() override;
|
||||
void takeControl();
|
||||
void dataShow(bool flow, bool shine);
|
||||
void sendData(byte * message, byte size);
|
||||
static String getHex(byte *message, byte size);
|
||||
|
||||
Reference in New Issue
Block a user