Added option log_uart_msg to maidsite_desk
This commit is contained in:
parent
1e604ec119
commit
f64fc9925f
|
|
@ -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]))
|
||||
|
|
|
|||
|
|
@ -118,6 +118,8 @@ namespace esphome
|
|||
|
||||
void MaidsiteDeskComponent::log_uart_hex(std::string prefix, std::vector<uint8_t> 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
|
||||
|
|
|
|||
|
|
@ -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<uint8_t> bytes, uint8_t separator);
|
||||
|
||||
private:
|
||||
bool log_uart_msg_{false};
|
||||
|
||||
std::vector<uint8_t> response_message_;
|
||||
std::vector<uint8_t> request_message_;
|
||||
uint8_t response_payload_length_;
|
||||
|
|
|
|||
Loading…
Reference in New Issue