diff --git a/nspanel_esphome.yaml b/nspanel_esphome.yaml index 762c45c..12e98c3 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 * std::min(std::max(value - 13.5, 0.0), 5.0)); + int left = v + (v ? 19 : 16); // 16 is empty left. + 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 * 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); //ESP_LOGD("nextion", "thermostat mid %i", mid); @@ -505,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 @@ -904,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