From 9b1314a1e9749fd2430af2285d411cbb3dbe89e1 Mon Sep 17 00:00:00 2001 From: Malte Date: Fri, 3 Jan 2025 12:36:06 +0100 Subject: [PATCH 1/3] remove duplicate dewpoint calculation code --- dewpoint.yaml | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/dewpoint.yaml b/dewpoint.yaml index b3d29ed..a6cca42 100644 --- a/dewpoint.yaml +++ b/dewpoint.yaml @@ -71,35 +71,28 @@ sensor: update_interval: 10s - platform: template name: "Inner Dew Point" - lambda: |- - float A = 17.27; - float B = 237.7; - float temp = id(inner_temperature).state; - float humidity = id(inner_humidity).state; - float alpha = ((A * temp) / (B + temp)) + log(humidity / 100.0); - return (B * alpha) / (A - alpha); unit_of_measurement: °C id: inner_dew_point - update_interval: 30s - platform: template name: "Outer Dew Point" - lambda: |- - float A = 17.27; - float B = 237.7; - float temp = id(outer_temperature).state; - float humidity = id(outer_humidity).state; - float alpha = ((A * temp) / (B + temp)) + log(humidity / 100.0); - return (B * alpha) / (A - alpha); unit_of_measurement: °C id: outer_dew_point - update_interval: 30s - icon: "mdi:thermometer-water" - platform: template id: fan_state_temp name: "Fan state" lambda: |- + auto calc_dewpoint = [](float temp, float humidity) { + float A = 17.27; + float B = 237.7; + float alpha = ((A * temp) / (B + temp)) + log(humidity / 100.0); + return (B * alpha) / (A - alpha); + }; uint8_t fan_state = id(fan_state_temp).state; - float deltadp = id(inner_dew_point).state - id(outer_dew_point).state; + float inner_dewpoint = calc_dewpoint(id(inner_temperature).state, id(inner_humidity).state); + float outer_dewpoint = calc_dewpoint(id(outer_temperature).state, id(outer_humidity).state); + id(inner_dew_point).publish_state(inner_dewpoint); + id(outer_dew_point).publish_state(outer_dewpoint); + float deltadp = inner_dewpoint - outer_dewpoint; if (deltadp > 6.0) { fan_state = 1; } @@ -122,8 +115,8 @@ sensor: root["inner_humidity"] = id(inner_humidity).state; root["outer_temp"] = id(outer_temperature).state; root["outer_humidity"] = id(outer_humidity).state; - root["inner_dewpoint"] = id(inner_dew_point).state; - root["outer_dewpoint"] = id(outer_dew_point).state; + root["inner_dewpoint"] = inner_dewpoint; + root["outer_dewpoint"] = outer_dewpoint; root["fan_state"] = id(fan_relay).state; }); return fan_state; From a51de212db194cdb768b5785e520df6bbaf297fe Mon Sep 17 00:00:00 2001 From: Malte Date: Fri, 3 Jan 2025 12:43:14 +0100 Subject: [PATCH 2/3] add build task --- .zed/tasks.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.zed/tasks.json b/.zed/tasks.json index 14a033d..e74debf 100644 --- a/.zed/tasks.json +++ b/.zed/tasks.json @@ -2,6 +2,15 @@ // // Example: [ + { + "label": "esphome build", + "command": "podman run --rm -it -v .:/config ghcr.io/esphome/esphome compile dewpoint.yaml", + "use_new_terminal": false, + "allow_concurrent_runs": false, + "reveal": "always", + "hide": "never", + "shell": "system" + }, { "label": "esphome run wifi", "command": "podman run --rm -it -v .:/config ghcr.io/esphome/esphome run dewpoint.yaml", From 4c9a8aede1c0b030db48fd8bd3dace8f09db8d03 Mon Sep 17 00:00:00 2001 From: Malte Date: Sat, 4 Jan 2025 17:56:55 +0100 Subject: [PATCH 3/3] specify upload address --- dewpoint.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/dewpoint.yaml b/dewpoint.yaml index a6cca42..20e3510 100644 --- a/dewpoint.yaml +++ b/dewpoint.yaml @@ -21,6 +21,7 @@ ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password + use_address: dewpointfan.fd # Enable fallback hotspot (captive portal) in case wifi connection fails ap: