From 9963f24159207a735eefd74749b21c284265a608 Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan@faked.org>
Date: Thu, 12 Oct 2023 19:59:37 +0200
Subject: [PATCH] reset device when MLX90614 sensor fails to initialize

---
 packages/base.yaml     |  3 ++-
 packages/mlx90614.yaml | 22 ++++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/packages/base.yaml b/packages/base.yaml
index b2270d7..79516c4 100644
--- a/packages/base.yaml
+++ b/packages/base.yaml
@@ -94,7 +94,8 @@ text_sensor:
 
 button:
   - platform: restart
-    name: "Device: Restart"
+    id: device_reset
+    name: "Device: Reset"
 
 http_request:
   id: http_request_data
diff --git a/packages/mlx90614.yaml b/packages/mlx90614.yaml
index dd008f6..a2c64a9 100644
--- a/packages/mlx90614.yaml
+++ b/packages/mlx90614.yaml
@@ -7,12 +7,34 @@ sensor:
       unit_of_measurement: °C
       accuracy_decimals: 2
       <<: !include filter.yaml
+      on_value:
+        if:
+          condition:
+            sensor.in_range:
+              id: mlx90614_temperature_ambient
+              below: 0.0
+          then:
+            - logger.log: 
+                format: "IR Temperature sensor 'ambient' misbehaving, resetting device!"
+                level: ERROR
+            - button.press: device_reset
     object:
       id: mlx90614_temperature_object
       name: "IR: Object Temperature"
       unit_of_measurement: °C
       accuracy_decimals: 2
       <<: !include filter.yaml
+      on_value:
+        if:
+          condition:
+            sensor.in_range:
+              id: mlx90614_temperature_object
+              below: 0.0
+          then:
+            - logger.log: 
+                format: "IR Temperature sensor 'object' misbehaving, resetting device!"
+                level: ERROR
+            - button.press: device_reset
 
 prometheus:
   relabel:
-- 
GitLab