From 05cd3053a8a69a7d383f6614b7431da5eb45e310 Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan@faked.org>
Date: Tue, 9 Jul 2024 20:21:13 +0200
Subject: [PATCH] Update to ESPHome 2024.6.0

---
 .gitlab-ci.yml              |  4 ++--
 packages/air_scd40.yaml     |  2 +-
 packages/base.yaml          |  4 +++-
 packages/esp32.yaml         |  2 --
 packages/esp32s3.yaml       | 12 ++++++------
 packages/fan_power.yaml     |  6 +++++-
 packages/level.yaml         |  9 +++++++++
 packages/light_power.yaml   |  6 +++++-
 packages/water_ds18b20.yaml |  9 ++++-----
 9 files changed, 35 insertions(+), 19 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ff459e8..78333fd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,7 @@ stages:
   - deploy
 
 image:
-  name: esphome/esphome:2023.10.6
+  name: esphome/esphome:2024.6.0
   entrypoint: [""]
 
 validate_configs:
@@ -17,7 +17,7 @@ validate_configs:
     paths:
       - packages/secrets.yaml
   tags:
-    - docker
+    - kubernetes
 
 deploy_configs:
   stage: deploy
diff --git a/packages/air_scd40.yaml b/packages/air_scd40.yaml
index 0bb05e4..36736bc 100644
--- a/packages/air_scd40.yaml
+++ b/packages/air_scd40.yaml
@@ -2,7 +2,7 @@ sensor:
 - platform: scd4x
   id: scd40
   update_interval: 5s
-  temperature_offset: 4.7
+  temperature_offset: 4.9
   ambient_pressure_compensation_source: bme280_pressure
   co2:
     id: scd40_co2
diff --git a/packages/base.yaml b/packages/base.yaml
index 7e026de..ff4a3ab 100644
--- a/packages/base.yaml
+++ b/packages/base.yaml
@@ -27,6 +27,7 @@ api:
   reboot_timeout: 0s
 
 ota:
+  platform: esphome
   password: !secret ota_password
 
 wifi:
@@ -108,7 +109,7 @@ text_sensor:
         mnts = trunc(dur / 60);
         dur = dur - (mnts * 60);
       }
-      char buffer[17];
+      char buffer[38];
       sprintf(buffer, "%ud %02uh %02um %02us", dys, hrs, mnts, dur);
       return {buffer};
 
@@ -120,6 +121,7 @@ button:
 http_request:
   id: http_request_data
   useragent: esphome/${devicename}
+  verify_ssl: false
   timeout: 1s
 
 script:
diff --git a/packages/esp32.yaml b/packages/esp32.yaml
index c0f6e29..1ae23cf 100644
--- a/packages/esp32.yaml
+++ b/packages/esp32.yaml
@@ -2,8 +2,6 @@ esp32:
   board: esp32dev
   framework:
     type: arduino
-    version: latest
-    platform_version: 6.4.0
 
 i2c:
   sda: 21
diff --git a/packages/esp32s3.yaml b/packages/esp32s3.yaml
index 4923f99..7247466 100644
--- a/packages/esp32s3.yaml
+++ b/packages/esp32s3.yaml
@@ -1,14 +1,14 @@
 esp32:
-  board: seeed_xiao_esp32s3
-  variant: esp32s3
+  board: esp32-s3-devkitc-1
   framework:
     type: arduino
-    version: latest
-    platform_version: 6.4.0
 
 esphome:
   platformio_options:
-    board_build.flash_mode: dio
+    build_flags: -DBOARD_HAS_PSRAM
+    board_build.arduino.memory_type: qio_opi
+    board_build.f_flash: 80000000L
+    board_build.flash_mode: qio
 
 psram:
   mode: octal
@@ -22,7 +22,7 @@ status_led:
 i2c:
   sda: 5
   scl: 6
-  frequency: 10khz
+  frequency: 100khz
 
 wifi:
   power_save_mode: none
diff --git a/packages/fan_power.yaml b/packages/fan_power.yaml
index 1bd411d..b264223 100644
--- a/packages/fan_power.yaml
+++ b/packages/fan_power.yaml
@@ -27,11 +27,15 @@ script:
     then: 
       - http_request.get:
           url: "http://${hostname_fan}/switch/power"
+          headers:
+            Content-Type: application/json
+          capture_response: true
           on_response:
             then:
               - lambda: |-
-                  json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
+                  json::parse_json(body, [](JsonObject root) -> bool {
                     id(power_fan).publish_state(root["value"]);
+                    return true;
                   });
 
 prometheus:
diff --git a/packages/level.yaml b/packages/level.yaml
index 6f2fe87..6e95bf4 100644
--- a/packages/level.yaml
+++ b/packages/level.yaml
@@ -78,3 +78,12 @@ sensor:
       float dataCurrent = id(waterlevel_system_voltage).state * 1024.0 / 120.0; // Sense Resistor: 120ohm
       float depth = (dataCurrent - id(waterlevel_current_init)) * (id(waterlevel_range) / id(waterlevel_density) / 16.0) / 10;
       return depth;
+
+prometheus:
+  relabel:
+    waterlevel_system:
+      id: waterlevel_system
+      name: "Waterlevel System"
+    waterlevel_tank:
+      id: waterlevel_tank
+      name: "Waterlevel Tank"
diff --git a/packages/light_power.yaml b/packages/light_power.yaml
index 716f51d..95bd17a 100644
--- a/packages/light_power.yaml
+++ b/packages/light_power.yaml
@@ -27,11 +27,15 @@ script:
     then:
       - http_request.get:
           url: "http://${hostname_light}/switch/power"
+          headers:
+            Content-Type: application/json
+          capture_response: true
           on_response:
             then:
               - lambda: |-
-                  json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
+                  json::parse_json(body, [](JsonObject root) -> bool {
                     id(power_light).publish_state(root["value"]);
+                    return true;
                   });
 
 prometheus:
diff --git a/packages/water_ds18b20.yaml b/packages/water_ds18b20.yaml
index 13ae488..e5f5786 100644
--- a/packages/water_ds18b20.yaml
+++ b/packages/water_ds18b20.yaml
@@ -1,10 +1,9 @@
-dallas:
-  - pin: GPIO23
-    update_interval: 5s
+one_wire:
+  - platform: gpio
+    pin: GPIO23
 
 sensor:
-- platform: dallas
-  index: 0
+- platform: dallas_temp
   id: temperature_water
   name: "Water: Temperature"
   accuracy_decimals: 2
-- 
GitLab