diff --git a/include/Utils.hpp b/include/Utils.hpp
index 790bbf8..91b2998 100644
--- a/include/Utils.hpp
+++ b/include/Utils.hpp
@@ -52,7 +52,8 @@
 {
     on,
     biosPost,
-    always
+    always,
+    chassisOn
 };
 
 std::optional<std::string> openAndRead(const std::string& hwmonFile);
@@ -67,6 +68,7 @@
                int symlinkDepth = 1);
 bool isPowerOn(void);
 bool hasBiosPost(void);
+bool isChassisOn(void);
 void setupPowerMatchCallback(
     const std::shared_ptr<sdbusplus::asio::connection>& conn,
     std::function<void(PowerState type, bool state)>&& callback);
@@ -121,6 +123,16 @@
 const static constexpr char* path = "/xyz/openbmc_project/state/host0";
 const static constexpr char* property = "CurrentHostState";
 } // namespace power
+
+namespace chassis
+{
+const static constexpr char* busname = "xyz.openbmc_project.State.Chassis";
+const static constexpr char* interface = "xyz.openbmc_project.State.Chassis";
+const static constexpr char* path = "/xyz/openbmc_project/state/chassis0";
+const static constexpr char* property = "CurrentPowerState";
+const static constexpr char* sOn = "On";
+} // namespace chassis
+
 namespace post
 {
 const static constexpr char* busname =
@@ -179,6 +191,10 @@
     {
         val = PowerState::always;
     }
+    else if (str == "ChassisOn")
+    {
+        val = PowerState::chassisOn;
+    }
 }
 
 inline PowerState getPowerState(const SensorBaseConfigMap& cfg)
diff --git a/include/sensor.hpp b/include/sensor.hpp
index 290b78b..4578935 100644
--- a/include/sensor.hpp
+++ b/include/sensor.hpp
@@ -252,7 +252,8 @@
                               const std::string& label = std::string(),
                               size_t thresholdSize = 0)
     {
-        if (readState == PowerState::on || readState == PowerState::biosPost)
+        if (readState == PowerState::on || readState == PowerState::biosPost ||
+            readState == PowerState::chassisOn)
         {
             setupPowerMatch(dbusConnection);
         }
@@ -431,7 +432,10 @@
         {
             return false;
         }
-
+        if (readState == PowerState::chassisOn && !isChassisOn())
+        {
+            return false;
+        }
         return true;
     }
 
