diff --git a/chassis_state_manager.cpp b/chassis_state_manager.cpp
index 38b7c94..128672f 100644
--- a/chassis_state_manager.cpp
+++ b/chassis_state_manager.cpp
@@ -37,6 +37,8 @@
 constexpr auto CHASSIS_STATE_HARD_POWEROFF_TGT =
     "obmc-chassis-hard-poweroff@0.target";
 constexpr auto CHASSIS_STATE_POWERON_TGT = "obmc-chassis-poweron@0.target";
+constexpr auto RESET_HOST_SENSORS_SVC =
+    "phosphor-reset-sensor-states@0.service";
 
 constexpr auto ACTIVE_STATE = "active";
 constexpr auto ACTIVATING_STATE = "activating";
@@ -132,6 +134,10 @@
                 {
                     info(
                         "Chassis power was on before the BMC reboot and it is off now");
+
+                    // Reset host sensors since system is off now
+                    startUnit(RESET_HOST_SENSORS_SVC);
+
                     setStateChangeTime();
 
                     if (phosphor::state::manager::utils::getGpioValue(
@@ -321,14 +327,12 @@
     return;
 }
 
-void Chassis::executeTransition(Transition tranReq)
+void Chassis::startUnit(const std::string& sysdUnit)
 {
-    auto sysdTarget = SYSTEMD_TARGET_TABLE.find(tranReq)->second;
-
     auto method = this->bus.new_method_call(SYSTEMD_SERVICE, SYSTEMD_OBJ_PATH,
                                             SYSTEMD_INTERFACE, "StartUnit");
 
-    method.append(sysdTarget);
+    method.append(sysdUnit);
     method.append("replace");
 
     this->bus.call_noreply(method);
@@ -439,7 +443,7 @@
 
     info("Change to Chassis Requested Power State: {REQ_POWER_TRAN}",
          "REQ_POWER_TRAN", value);
-    executeTransition(value);
+    startUnit(SYSTEMD_TARGET_TABLE.find(value)->second);
     return server::Chassis::requestedPowerTransition(value);
 }
 
