From 871f4a2c655a5b1f95d740a1abceaa510657ff75 Mon Sep 17 00:00:00 2001 From: John Dillenburg Date: Mon, 3 Mar 2025 14:12:45 -0600 Subject: [PATCH] remove leapmmwave_sensor.h, use sen0395 sensor instead --- leapmmw_sensor.h | 143 ------------------------------------------ packages/sen0395.yaml | 47 -------------- 2 files changed, 190 deletions(-) delete mode 100644 leapmmw_sensor.h diff --git a/leapmmw_sensor.h b/leapmmw_sensor.h deleted file mode 100644 index 86ff343..0000000 --- a/leapmmw_sensor.h +++ /dev/null @@ -1,143 +0,0 @@ -#include "esphome.h" -#include - - -class leapmmw : public Component, public UARTDevice { - public: - leapmmw(UARTComponent *parent) : UARTDevice(parent) {} - - void setup() override { - // - } - - void publishNumber (std::string sensor, float resp) { - auto get_numbers = App.get_numbers(); - for(int i = 0; i < get_numbers.size(); i++) { - std::string name = get_numbers[i]->get_name(); - if(name.size() > 6 && name.find(sensor) !=std::string::npos) { - get_numbers[i]->publish_state(resp); - } - } - }; - - void publishSwitch(std::string sensor, int state) { - auto sens = App.get_switches(); - for(int i = 0; i < sens.size(); i++) { - std::string name = sens[i]->get_name(); - if(name.size() > 2 && name.find(sensor) !=std::string::npos) { - sens[i]->publish_state(state); - } - } - }; - - void getmmwConf(std::string mmwparam) { - mmwparam = mmwparam + "\r"; - write_array(std::vector(mmwparam.begin(), mmwparam.end())); - } - - int readline(int readch, char *buffer, int len) - { - static int pos = 0; - int rpos; - - if (readch > 0) { - switch (readch) { - case '\n': // Ignore new-lines - break; - case '\r': // Return on CR - rpos = pos; - pos = 0; // Reset position index ready for next time - return rpos; - default: - if (pos < len-1) { - buffer[pos++] = readch; - buffer[pos] = 0; - } - } - } - // No end of line has been found, so return -1. - return -1; - } - std::string getline; - - void loop() override { - const int max_line_length = 40; - static char buffer[max_line_length]; - - while (available()) { - - if(readline(read(), buffer, max_line_length) >= 4) { - std::string line = buffer; - - // compare last line - if (line.substr(0, 8) == "Response") { - - // leapMMW:/>getSensitivity - if (getline.substr(0, 24) == "leapMMW:/>getSensitivity" || getline.substr(0, 14) == "getSensitivity") { - std::string getSensitivity = line.substr(9, 1); - if (getSensitivity.empty()) { - ESP_LOGD("custom", "Did not find a value for getSensitivity"); - } else { - ESP_LOGD("custom", "The value of getSensitivity is: %f", parse_number(getSensitivity).value()); - publishNumber("sensitivity", parse_number(getSensitivity).value()); - } - } - - // leapMMW:/>getRange - if (getline.substr(0, 18) == "leapMMW:/>getRange" || getline.substr(0, 8) == "getRange") { - std::string getRange = line.substr(15, 4); - if (getRange.empty()) { - ESP_LOGD("custom", "Did not find a value for getRange"); - } else { - ESP_LOGD("custom", "The value of getRange is: %f", parse_number(getRange).value()); - publishNumber("distance", parse_number(getRange).value()); - } - } - - // leapMMW:/>getLatency - if (getline.substr(0, 20) == "leapMMW:/>getLatency" || getline.substr(0, 10) == "getLatency") { - std::string getLatency = line.substr(15, 2); - if (getLatency.empty()) { - ESP_LOGD("custom", "Did not find a value for getLatency"); - } else { - ESP_LOGD("custom", "The value of getLatency is: %f", parse_number(getLatency).value()); - publishNumber("latency", parse_number(getLatency).value()); - } - } - - // leapMMW:/>getLedMode - if (getline.substr(0, 20) == "leapMMW:/>getLedMode" || getline.substr(0, 10) == "getLedMode") { - std::string getLedMode = line.substr(11, 1); - if (getLedMode.empty()) { - ESP_LOGD("custom", "Did not find a value for getLedMode"); - } else { - int led_state = parse_number(getLedMode).value(); - ESP_LOGD("custom", "The value of getLedMode is: %i", led_state); - int setled_state = -1; - if (led_state == 1) { - setled_state = 0; - } else if (led_state == 0) { - setled_state = 1; - } - publishSwitch("led", setled_state); - } - } - } - if (line.substr(0, 4) == "Done") { - // leapMMW:/>sensorStop - if (getline.substr(0, 20) == "leapMMW:/>sensorStop") { - ESP_LOGD("custom", "sensorStop completed successfully"); - publishSwitch("mmwave_sensor", 0); - } - - // leapMMW:/>sensorStart - if (getline.substr(0, 21) == "leapMMW:/>sensorStart") { - ESP_LOGD("custom", "sensorStart completed successfully"); - publishSwitch("mmwave_sensor", 1); - } - } - getline = buffer; - } - } - } -}; diff --git a/packages/sen0395.yaml b/packages/sen0395.yaml index 3c53ce2..691c193 100644 --- a/packages/sen0395.yaml +++ b/packages/sen0395.yaml @@ -26,50 +26,3 @@ binary_sensor: pin: number: ${presence_pin} mode: INPUT_PULLDOWN - -number: - # - platform: template - # name: "${device_name_pretty} distance" - # id: distance # do not change - # entity_category: config - # min_value: 0.15 - # max_value: 9.45 - # step: 0.15 - # unit_of_measurement: M - # mode: box - # lambda: 'return {};' - # set_action: - # - dfrobot_sen0395.settings: - # detection_segments: - # - !lambda |- - # return 0; - # - !lambda |- - # return id(distance).state; - - # - platform: template - # name: "${device_name_pretty} latency" - # id: latency # do not change - # entity_category: config - # min_value: 1 - # max_value: 600 - # step: 1 - # unit_of_measurement: s - # mode: box - # lambda: 'return {};' - # set_action: - # - dfrobot_sen0395.settings: - # output_latency: - # delay_after_detect: 0s - # delay_after_disappear: !lambda 'return id(latency).state * 1.0f;' - - # - platform: template - # name: "${device_name_pretty} sensitivity" - # id: sensitivity # do not change - # entity_category: config - # min_value: 0 - # max_value: 9 - # step: 1 - # lambda: 'return {};' - # set_action: - # - dfrobot_sen0395.settings: - # sensitivity: !lambda 'return (int32_t)id(sensitivity).state;'