diff --git a/packages/base.yaml b/packages/base.yaml
index b2270d7529c805feeac7d014c263a79a5343b785..79516c4259bb6550786bc3d9ee7bfd7e9d1bd1e6 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 dd008f6d06601452466374172d445ab15480c367..a2c64a9b7a7d79102bdd5f917d6f8df11943b333 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: