diff --git a/components/maidsite_desk/__init__.py b/components/maidsite_desk/__init__.py index 0bee930..cee3701 100644 --- a/components/maidsite_desk/__init__.py +++ b/components/maidsite_desk/__init__.py @@ -9,6 +9,7 @@ MULTICONF = True DEPENDENCIES = ['uart'] CONF_MAIDSITE_DESK_ID = "maidsite_desk" +CONF_LOG_UART_MSG = "log_uart_msg" maidsite_desk_ns = cg.esphome_ns.namespace('maidsite_desk') MaidsiteDeskComponent = maidsite_desk_ns.class_('MaidsiteDeskComponent', cg.Component, uart.UARTDevice) @@ -17,6 +18,8 @@ CONFIG_SCHEMA = ( cv.Schema( { cv.GenerateID(): cv.declare_id(MaidsiteDeskComponent), + + cv.Optional(CONF_LOG_UART_MSG, default=False): cv.boolean, } ) .extend(uart.UART_DEVICE_SCHEMA) @@ -27,3 +30,4 @@ async def to_code(config): var = cg.new_Pvariable(config[CONF_ID]) await cg.register_component(var, config) await uart.register_uart_device(var, config) + cg.add(var.set_log_uart_msg(config[CONF_LOG_UART_MSG])) diff --git a/components/maidsite_desk/maidsite_desk.cpp b/components/maidsite_desk/maidsite_desk.cpp index de7965b..28f2caf 100644 --- a/components/maidsite_desk/maidsite_desk.cpp +++ b/components/maidsite_desk/maidsite_desk.cpp @@ -118,6 +118,8 @@ namespace esphome void MaidsiteDeskComponent::log_uart_hex(std::string prefix, std::vector bytes, uint8_t separator) { + if (this->log_uart_msg_ == false) return; + std::string logStr; char buffer[5]; size_t chunkSize = 90; @@ -130,7 +132,7 @@ namespace esphome } for (size_t i = 0; i < logStr.length(); i += chunkSize) { - ESP_LOGD(TAG, "%s %s", prefix.c_str(), logStr.substr(i, chunkSize).c_str()); + ESP_LOGI(TAG, "%s %s", prefix.c_str(), logStr.substr(i, chunkSize).c_str()); delay(10); } } @@ -142,7 +144,7 @@ namespace esphome switch (message[2]) { case 0x01: - ESP_LOGD(TAG, "Set height to 0x%0X%0X", message[4], message[5]); + ESP_LOGI(TAG, "Set height to 0x%0X%0X", message[4], message[5]); delay(10); float new_height; @@ -162,7 +164,7 @@ namespace esphome break; case 0x20: - ESP_LOGD(TAG, "Set limits to 0x%0X max=%i min=%i", message[4], (message[5] & 1), (message[4] >> 4)); + ESP_LOGI(TAG, "Set limits to 0x%0X max=%i min=%i", message[4], (message[5] & 1), (message[4] >> 4)); delay(10); if ((message[4] & 1) == 0) @@ -184,7 +186,7 @@ namespace esphome break; case 0x07: - ESP_LOGD(TAG, "Set physical limits to min=0x%02X%02X max=0x%02X%02X", message[4], message[5], message[6], message[7]); + ESP_LOGI(TAG, "Set physical limits to min=0x%02X%02X max=0x%02X%02X", message[4], message[5], message[6], message[7]); delay(10); this->physical_max_ = this->byte2float(message[4], message[5]); @@ -192,7 +194,7 @@ namespace esphome break; case 0x21: - ESP_LOGD(TAG, "Set max. height to 0x%02X%02X", message[4], message[5]); + ESP_LOGI(TAG, "Set max. height to 0x%02X%02X", message[4], message[5]); delay(10); this->limit_max_ = this->byte2float(message[4], message[5]); @@ -203,7 +205,7 @@ namespace esphome break; case 0x22: - ESP_LOGD(TAG, "Set min. height to 0x%02X%02X", message[4], message[5]); + ESP_LOGI(TAG, "Set min. height to 0x%02X%02X", message[4], message[5]); delay(10); this->limit_min_ = this->byte2float(message[4], message[5]); @@ -214,7 +216,7 @@ namespace esphome break; case 0x25: - ESP_LOGD(TAG, "Set position m1 to 0x%02X%02X", message[4], message[5]); + ESP_LOGI(TAG, "Set position m1 to 0x%02X%02X", message[4], message[5]); delay(10); if (this->position_m1_sensor_ != nullptr) @@ -222,7 +224,7 @@ namespace esphome break; case 0x26: - ESP_LOGD(TAG, "Set position m2 to 0x%02X%02X", message[4], message[5]); + ESP_LOGI(TAG, "Set position m2 to 0x%02X%02X", message[4], message[5]); delay(10); if (this->position_m2_sensor_ != nullptr) @@ -230,7 +232,7 @@ namespace esphome break; case 0x27: - ESP_LOGD(TAG, "Set position m3 to 0x%02X%02X", message[4], message[5]); + ESP_LOGI(TAG, "Set position m3 to 0x%02X%02X", message[4], message[5]); delay(10); if (this->position_m3_sensor_ != nullptr) @@ -238,7 +240,7 @@ namespace esphome break; case 0x28: - ESP_LOGD(TAG, "Set position m4 to 0x%02X%02X", message[4], message[5]); + ESP_LOGI(TAG, "Set position m4 to 0x%02X%02X", message[4], message[5]); delay(10); if (this->position_m4_sensor_ != nullptr) @@ -246,13 +248,13 @@ namespace esphome break; // case 0x0E: - // ESP_LOGD(TAG, "units 0x%02X", message[4]); + // ESP_LOGI(TAG, "units 0x%02X", message[4]); // if (units != nullptr) // units->publish_state(byte2float(message[4], message[5])); // break; default: - ESP_LOGD(TAG, "Received unknown message"); + ESP_LOGI(TAG, "Received unknown message"); delay(10); } } @@ -378,6 +380,7 @@ namespace esphome this->request_move_to(); } +#ifdef USE_BUTTON void MaidsiteDeskComponent::button_press_action(button::Button* object) { if (object == step_up_button_) @@ -419,7 +422,8 @@ namespace esphome this->request_settings(); } } - +#endif +#ifdef USE_NUMBER void MaidsiteDeskComponent::number_control(number::Number* object, float value) { if (object == height_abs_number_) @@ -428,5 +432,6 @@ namespace esphome if (limit_max_ > 0 && limit_max_ > limit_min_) this->goto_height((limit_max_ - limit_min_) * value / 100 + limit_min_); } +#endif } // namespace maidsite_desk } // namespace esphome diff --git a/components/maidsite_desk/maidsite_desk.h b/components/maidsite_desk/maidsite_desk.h index 66b7746..a1777eb 100644 --- a/components/maidsite_desk/maidsite_desk.h +++ b/components/maidsite_desk/maidsite_desk.h @@ -50,10 +50,14 @@ namespace esphome SUB_BUTTON(save_m2); SUB_BUTTON(save_m3); SUB_BUTTON(save_m4); + + void button_press_action(button::Button* object); #endif #ifdef USE_NUMBER SUB_NUMBER(height_abs); SUB_NUMBER(height_pct); + + void number_control(number::Number* object, float value); #endif MaidsiteDeskComponent() = default; @@ -62,14 +66,12 @@ namespace esphome void setup() override; void loop() override; - void button_press_action(button::Button* object); - void number_control(number::Number* object, float value); + void set_log_uart_msg(bool enable) { this->log_uart_msg_ = enable; } void request_physical_limits(); void request_limits(); void request_settings(); void request_move_to(); - void step_up(); void step_down(); void stop(); @@ -87,6 +89,8 @@ namespace esphome void log_uart_hex(std::string prefix, std::vector bytes, uint8_t separator); private: + bool log_uart_msg_{false}; + std::vector response_message_; std::vector request_message_; uint8_t response_payload_length_;