From 351b84ad96adfbd38c07850ccea1ce76b843bfe8 Mon Sep 17 00:00:00 2001 From: X-Ryl669 Date: Fri, 20 Jan 2023 14:46:42 +0100 Subject: [PATCH 1/3] Simplify the left/mid/right compute chain. --- nspanel_esphome.yaml | 126 +++---------------------------------------- 1 file changed, 6 insertions(+), 120 deletions(-) diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index 762c45c..df2dc33 100644 --- a/nspanel_esphome.yaml +++ b/nspanel_esphome.yaml @@ -247,126 +247,12 @@ api: switch.is_on: nextion_init - lambda: |- //ESP_LOGD("nextion", "thermostat sendig value %f", value); - int left=16; // 16 is empty left. - int mid=17; // 17 is empty mid. - int right=18; // 18 is empty right. - if (value < 13.5) { - left=16; - mid=17; - right=18; - } else if (value >= 13.5 and value < 14) { - left=19; - mid=17; - right=18; - } else if (value >= 14 and value < 14.5) { - left=20; - mid=17; - right=18; - } else if (value >= 14.5 and value < 15) { - left=21; - mid=17; - right=18; - } else if (value >= 15 and value < 15.5) { - left=22; - mid=17; - right=18; - } else if (value >= 15.5 and value < 16) { - left=23; - mid=17; - right=18; - } else if (value >= 16 and value < 16.5) { - left=24; - mid=17; - right=18; - } else if (value >= 16.5 and value < 17) { - left=25; - mid=17; - right=18; - } else if (value >= 17 and value < 17.5) { - left=26; - mid=17; - right=18; - } else if (value >= 17.5 and value < 18) { - left=27; - mid=17; - right=18; - } else if (value >= 18 and value < 18.5) { - left=28; - mid=17; - right=18; - } else if (value >= 18.5 and value < 19) { - left=29; - mid=30; - right=18; - } else if (value >= 19 and value < 19.5) { - left=29; - mid=31; - right=18; - } else if (value >= 19.5 and value < 20) { - left=29; - mid=32; - right=18; - } else if (value >= 20 and value < 20.5) { - left=29; - mid=33; - right=18; - } else if (value >= 20.5 and value < 21) { - left=29; - mid=34; - right=18; - } else if (value >= 21 and value < 21.5) { - left=29; - mid=35; - right=18; - } else if (value >= 21.5 and value < 22) { - left=29; - mid=36; - right=18; - } else if (value >= 22 and value < 22.5) { - left=29; - mid=37; - right=38; - } else if (value >= 22.5 and value < 23) { - left=29; - mid=37; - right=39; - } else if (value >= 23 and value < 23.5) { - left=29; - mid=37; - right=40; - } else if (value >= 23.5 and value < 24) { - left=29; - mid=37; - right=41; - } else if (value >= 24 and value < 24.5) { - left=29; - mid=37; - right=42; - } else if (value >= 24.5 and value < 25) { - left=29; - mid=37; - right=43; - } else if (value >= 25 and value < 25.5) { - left=29; - mid=37; - right=44; - } else if (value >= 25.5 and value < 26) { - left=29; - mid=37; - right=45; - } else if (value >= 26 and value < 26.5) { - left=29; - mid=37; - right=46; - } else if (value >= 26.5 and value < 27) { - left=29; - mid=37; - right=47; - } else if (value >= 27) { - left=29; - mid=37; - right=48; - } + int v = int(2 * min(max(value - 13.5, 0.0), 5.0)); + int left = v + (v ? 19 : 16); // 16 is empty left. + v = int(2 * min(max(value - 18.0, 0), 4.0)); + int mid = v + (v ? 29 : 17); // 17 is empty mid. + v = int(2 * min(max(value - 21.5, 0), 5.5)); + int right = v + (v ? 37 : 18); // 18 is empty right. // sends the 3 images to the display //ESP_LOGD("nextion", "thermostat left %i", left); //ESP_LOGD("nextion", "thermostat mid %i", mid); From f1af69581eb3503dbd79121dc7e5d45528e03a4e Mon Sep 17 00:00:00 2001 From: X-Ryl669 Date: Fri, 20 Jan 2023 14:49:13 +0100 Subject: [PATCH 2/3] Remove useless test Faster boot up by removing one useless line in UART communication --- nspanel_esphome.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index df2dc33..c2067cf 100644 --- a/nspanel_esphome.yaml +++ b/nspanel_esphome.yaml @@ -790,12 +790,7 @@ display: - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); - lambda: id(disp1).send_command_printf("home.sleepmodus.val=%i", id(sleep_modus_global)); - - lambda: |- - id(disp1).set_component_value("settings.a02",0); - if (id(sleep_modus_global) == 1) - { - id(disp1).set_component_value("settings.a02",1); - } + - lambda: id(disp1).set_component_value("settings.a02", id(sleep_modus_global) == 1); - delay: 0.5s - switch.template.publish: id: nextion_init From 298e67a29d5ff41d25e6782475d15aa445df55d2 Mon Sep 17 00:00:00 2001 From: X-Ryl669 Date: Sat, 21 Jan 2023 11:58:10 +0100 Subject: [PATCH 3/3] Fix build issue since std namespace is missing Also fix some spelling mistakes --- nspanel_esphome.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index c2067cf..12e98c3 100644 --- a/nspanel_esphome.yaml +++ b/nspanel_esphome.yaml @@ -247,11 +247,11 @@ api: switch.is_on: nextion_init - lambda: |- //ESP_LOGD("nextion", "thermostat sendig value %f", value); - int v = int(2 * min(max(value - 13.5, 0.0), 5.0)); + int v = int(2 * std::min(std::max(value - 13.5, 0.0), 5.0)); int left = v + (v ? 19 : 16); // 16 is empty left. - v = int(2 * min(max(value - 18.0, 0), 4.0)); + v = int(2 * std::min(std::max(value - 18.0, 0.0), 4.0)); int mid = v + (v ? 29 : 17); // 17 is empty mid. - v = int(2 * min(max(value - 21.5, 0), 5.5)); + v = int(2 * std::min(std::max(value - 21.5, 0.0), 5.5)); int right = v + (v ? 37 : 18); // 18 is empty right. // sends the 3 images to the display //ESP_LOGD("nextion", "thermostat left %i", left); @@ -391,21 +391,21 @@ sensor: name: ${device_name} RSSI update_interval: 60s - ##### INTERNAL TEMPERATUE SENSOR, ADC VALUE ##### + ##### INTERNAL TEMPERATURE SENSOR, ADC VALUE ##### - platform: adc id: ntc_source pin: 38 update_interval: 10s attenuation: 11db - ##### INTERNAL TEMPERATUE SENSOR, adc reading converted to resistance (calculation)##### + ##### INTERNAL TEMPERATURE SENSOR, adc reading converted to resistance (calculation)##### - platform: resistance id: resistance_sensor sensor: ntc_source configuration: DOWNSTREAM resistor: 11.2kOhm - ##### INTERNAL TEMPERATUE SENSOR, resistance to temperature (calculation) ##### + ##### INTERNAL TEMPERATURE SENSOR, resistance to temperature (calculation) ##### - platform: ntc name: ${device_name} Temperature id: temp_nspanel