diff --git a/sensordatahandler.cpp b/sensordatahandler.cpp
index ef18a8f..d502268 100644
--- a/sensordatahandler.cpp
+++ b/sensordatahandler.cpp
@@ -459,6 +459,8 @@
 namespace get
 {
 
+#ifndef FEATURE_SENSORS_CACHE
+
 GetSensorResponse assertion(const Info& sensorInfo)
 {
     namespace fs = std::filesystem;
@@ -471,6 +473,45 @@
         sensorInfo.propertyInterfaces.begin()->first);
 }
 
+#else
+
+std::optional<GetSensorResponse> assertion(uint8_t id, const Info& sensorInfo,
+                                           sdbusplus::message::message& msg)
+{
+    auto type = msg.get_type();
+    if (type == msgTypeSignal)
+    {
+        // This is signal callback
+        std::string interfaceName;
+        msg.read(interfaceName);
+        if (interfaceName != sensorInfo.sensorInterface)
+        {
+            // Not the interface we need
+            return {};
+        }
+    }
+
+    // The assertion may contain multiple properties
+    // So we have to get the properties from DBus anyway
+    namespace fs = std::filesystem;
+
+    fs::path path{ipmi::sensor::inventoryRoot};
+    path += sensorInfo.sensorPath;
+
+    auto response = ipmi::sensor::get::mapDbusToAssertion(
+        sensorInfo, path.string(),
+        sensorInfo.propertyInterfaces.begin()->first);
+
+    if (!sensorCacheMap[id].has_value())
+    {
+        sensorCacheMap[id] = SensorData{};
+    }
+    sensorCacheMap[id]->response = response;
+    return response;
+}
+
+#endif
+
 } // namespace get
 
 } // namespace inventory
diff --git a/sensordatahandler.hpp b/sensordatahandler.hpp
index 9084b7a..6768634 100644
--- a/sensordatahandler.hpp
+++ b/sensordatahandler.hpp
@@ -699,6 +699,8 @@
 namespace get
 {
 
+#ifndef FEATURE_SENSORS_CACHE
+
 /**
  *  @brief Map the Dbus info to sensor's assertion status in the Get sensor
  *         reading command response.
@@ -709,6 +711,23 @@
  */
 GetSensorResponse assertion(const Info& sensorInfo);
 
+#else
+
+/**
+ *  @brief Map the Dbus info to sensor's assertion status in the Get sensor
+ *         reading command response.
+ *
+ *  @param[in] id - The sensor id
+ *  @param[in] sensorInfo - Dbus info related to sensor.
+ *  @param[in] msg - Dbus message from match callback.
+ *
+ *  @return Response for get sensor reading command.
+ */
+std::optional<GetSensorResponse> assertion(uint8_t id, const Info& sensorInfo,
+                                           sdbusplus::message::message& msg);
+
+#endif
+
 } // namespace get
 
 } // namespace inventory
