diff --git a/src/Thresholds.cpp b/src/Thresholds.cpp
index c52eee6..0581f21 100644
--- a/src/Thresholds.cpp
+++ b/src/Thresholds.cpp
@@ -100,6 +100,14 @@
             }
         }
 
+        double hysteresis = std::numeric_limits<double>::quiet_NaN();
+        auto hysteresisFind = item.second.find("Hysteresis");
+        if (hysteresisFind != item.second.end())
+        {
+            hysteresis =
+                std::visit(VariantToDoubleVisitor(), hysteresisFind->second);
+        }
+
         auto directionFind = item.second.find("Direction");
         auto severityFind = item.second.find("Severity");
         auto valueFind = item.second.find("Value");
@@ -133,7 +141,7 @@
         }
         double val = std::visit(VariantToDoubleVisitor(), valueFind->second);
 
-        thresholdVector.emplace_back(level, direction, val);
+        thresholdVector.emplace_back(level, direction, val, hysteresis);
     }
     return true;
 }
@@ -305,7 +313,7 @@
                               << " raw data " << sensor->rawValue << "\n";
                 }
             }
-            else if (value < (threshold.value - sensor->hysteresisTrigger))
+            else if (value < (threshold.value - threshold.hysteresis))
             {
                 thresholdChanges.emplace_back(threshold, false, value);
                 ++cHiFalse;
@@ -328,7 +336,7 @@
                               << sensor->rawValue << "\n";
                 }
             }
-            else if (value > (threshold.value + sensor->hysteresisTrigger))
+            else if (value > (threshold.value + threshold.hysteresis))
             {
                 thresholdChanges.emplace_back(threshold, false, value);
                 ++cLoFalse;
