From b518e353247cb2f8c502c51a8c13591155f20148 Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan@faked.org>
Date: Sat, 25 Nov 2023 19:08:31 +0100
Subject: [PATCH] reset if MLX90614 values are NaN

---
 packages/esp32s3.yaml      |  2 +-
 packages/filter.yaml       |  7 +++++--
 packages/vpd_mlx90614.yaml | 16 ++++++++++------
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/packages/esp32s3.yaml b/packages/esp32s3.yaml
index fc5185e..4923f99 100644
--- a/packages/esp32s3.yaml
+++ b/packages/esp32s3.yaml
@@ -22,7 +22,7 @@ status_led:
 i2c:
   sda: 5
   scl: 6
-  frequency: 50khz
+  frequency: 10khz
 
 wifi:
   power_save_mode: none
diff --git a/packages/filter.yaml b/packages/filter.yaml
index 85c7977..f0092b5 100644
--- a/packages/filter.yaml
+++ b/packages/filter.yaml
@@ -1,4 +1,7 @@
 filters:
-  - sliding_window_moving_average:
-      window_size: 5
+  # - sliding_window_moving_average:
+  #     window_size: 5
+  #     send_every: 1
+  - median:
+      window_size: 7
       send_every: 1
diff --git a/packages/vpd_mlx90614.yaml b/packages/vpd_mlx90614.yaml
index 4705ad7..e5a7eae 100644
--- a/packages/vpd_mlx90614.yaml
+++ b/packages/vpd_mlx90614.yaml
@@ -11,9 +11,11 @@ sensor:
       on_value:
         if:
           condition:
-            sensor.in_range:
-              id: mlx90614_temperature_ambient
-              below: 0.0
+            - or:
+              - lambda: !lambda 'return isnan(id(mlx90614_temperature_ambient).state);'
+              - sensor.in_range:
+                  id: mlx90614_temperature_ambient
+                  below: 0.0
           then:
             - logger.log: 
                 format: "IR Temperature sensor 'ambient' misbehaving, resetting device!"
@@ -29,9 +31,11 @@ sensor:
       on_value:
         if:
           condition:
-            sensor.in_range:
-              id: mlx90614_temperature_object
-              below: 0.0
+            - or:
+              - lambda: !lambda 'return isnan(id(mlx90614_temperature_object).state);'
+              - sensor.in_range:
+                  id: mlx90614_temperature_object
+                  below: 0.0
           then:
             - logger.log: 
                 format: "IR Temperature sensor 'object' misbehaving, resetting device!"
-- 
GitLab