diff --git a/dbus/dbusconfiguration.cpp b/dbus/dbusconfiguration.cpp
index 3121623..7d01650 100644
--- a/dbus/dbusconfiguration.cpp
+++ b/dbus/dbusconfiguration.cpp
@@ -428,6 +428,24 @@
                     VariantToDoubleVisitor(), base.at("SlewNeg"));
                 info.pidInfo.slew_pos = variant_ns::visit(
                     VariantToDoubleVisitor(), base.at("SlewPos"));
+                double negativeHysteresis = 0;
+                double positiveHysteresis = 0;
+
+                auto findNeg = base.find("NegativeHysteresis");
+                auto findPos = base.find("PositiveHysteresis");
+                if (findNeg != base.end())
+                {
+                    negativeHysteresis = variant_ns::visit(
+                        VariantToDoubleVisitor(), findNeg->second);
+                }
+
+                if (findPos != base.end())
+                {
+                    positiveHysteresis = variant_ns::visit(
+                        VariantToDoubleVisitor(), findPos->second);
+                }
+                info.pidInfo.negativeHysteresis = negativeHysteresis;
+                info.pidInfo.positiveHysteresis = positiveHysteresis;
             }
         }
         auto findStepwise =
