From f47ec46986198a7e1bb5ddd867922e2038e28ed9 Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan@faked.org>
Date: Thu, 27 Oct 2022 14:03:40 +0200
Subject: [PATCH] add VPD tweak SCD40 temperature offset set i2c to 10kHz

---
 growbox.yaml        |  1 +
 packages/esp32.yaml |  1 +
 packages/scd40.yaml |  1 +
 packages/vpd.yaml   | 19 +++++++++++++++++++
 4 files changed, 22 insertions(+)
 create mode 100644 packages/vpd.yaml

diff --git a/growbox.yaml b/growbox.yaml
index a9a9c58..f7d51d0 100644
--- a/growbox.yaml
+++ b/growbox.yaml
@@ -10,3 +10,4 @@ packages:
   yieryi2178: !include packages/yieryi3178.yaml
   scd40:      !include packages/scd40.yaml
   mlx90614:   !include packages/mlx90614.yaml
+  vpd:        !include packages/vpd.yaml
diff --git a/packages/esp32.yaml b/packages/esp32.yaml
index 4277e27..8a9169d 100644
--- a/packages/esp32.yaml
+++ b/packages/esp32.yaml
@@ -4,3 +4,4 @@ esp32:
 i2c:
   sda: 21
   scl: 22
+  frequency: 10khz
diff --git a/packages/scd40.yaml b/packages/scd40.yaml
index f785abe..b3ef038 100644
--- a/packages/scd40.yaml
+++ b/packages/scd40.yaml
@@ -1,6 +1,7 @@
 sensor:
 - platform: scd4x
   update_interval: 5s
+  temperature_offset: 4.85
   ambient_pressure_compensation_source: bme280_pressure
   co2:
     id: scd40_co2
diff --git a/packages/vpd.yaml b/packages/vpd.yaml
new file mode 100644
index 0000000..16e7138
--- /dev/null
+++ b/packages/vpd.yaml
@@ -0,0 +1,19 @@
+sensor:
+- platform: template
+  id: vpd
+  name: "Vapor Pressure Deficit"
+  update_interval: 5s
+  accuracy_decimals: 2
+  unit_of_measurement: 'kPa'
+  lambda: |-
+    float temperature = (id(mlx90614_temperature_object).state - 32) * 5/9;
+    float humidity = id(bme280_humidity).state;
+    float vpSaturation = 610.7 * pow(10, (7.5 * temperature / (temperature + 237.3)));
+    float vpDeficit = ((100.0 - humidity) / 100.0) * vpSaturation;
+    return vpDeficit / 1000;
+
+prometheus:
+  relabel:
+    vpd:
+      id: vpd
+      name: "Vapor Pressure Deficit"
-- 
GitLab