diff --git a/physical.cpp b/physical.cpp
index d15cfcd..2be9e14 100644
--- a/physical.cpp
+++ b/physical.cpp
@@ -57,6 +57,11 @@
     return;
 }
 
+auto Physical::state() const -> Action
+{
+    return sdbusplus::xyz::openbmc_project::Led::server::Physical::state();
+}
+
 auto Physical::state(Action value) -> Action
 {
     auto current =
diff --git a/physical.hpp b/physical.hpp
index 383c98a..4242952 100644
--- a/physical.hpp
+++ b/physical.hpp
@@ -67,6 +67,12 @@
      */
     Action state(Action value) override;
 
+    /** @brief Overriden State Property Getter function
+     *
+     *  @return  -  One of OFF / ON / BLINK
+     */
+    Action state() const override;
+
   private:
     /** @brief Associated LED implementation
      */
diff --git a/test/physical.cpp b/test/physical.cpp
index 10dc9b7..c53a14a 100644
--- a/test/physical.cpp
+++ b/test/physical.cpp
@@ -77,6 +77,7 @@
     NiceMock<MockLed> led;
     ON_CALL(led, getTrigger()).WillByDefault(Return("none"));
     phosphor::led::Physical phy(bus, LED_OBJ, led);
+    EXPECT_EQ(phy.state(), Action::Off);
 }
 
 TEST(Physical, ctor_timer_trigger)
@@ -87,6 +88,7 @@
     EXPECT_CALL(led, getDelayOn()).WillOnce(Return(500));
     EXPECT_CALL(led, getDelayOff()).WillOnce(Return(500));
     phosphor::led::Physical phy(bus, LED_OBJ, led);
+    EXPECT_EQ(phy.state(), Action::Off);
 }
 
 TEST(Physical, off)
@@ -99,6 +101,7 @@
     EXPECT_CALL(led, setBrightness(phosphor::led::DEASSERT)).Times(0);
     phosphor::led::Physical phy(bus, LED_OBJ, led);
     phy.state(Action::Off);
+    EXPECT_EQ(phy.state(), Action::Off);
 }
 
 TEST(Physical, on)
@@ -113,6 +116,7 @@
     EXPECT_CALL(led, setBrightness(asserted));
     phosphor::led::Physical phy(bus, LED_OBJ, led);
     phy.state(Action::On);
+    EXPECT_EQ(phy.state(), Action::On);
 }
 
 TEST(Physical, blink)
@@ -125,6 +129,7 @@
     EXPECT_CALL(led, setDelayOff(500));
     phosphor::led::Physical phy(bus, LED_OBJ, led);
     phy.state(Action::Blink);
+    EXPECT_EQ(phy.state(), Action::Blink);
 }
 
 TEST(Physical, ctor_none_trigger_asserted_brightness)
@@ -134,6 +139,7 @@
     EXPECT_CALL(led, getTrigger()).WillRepeatedly(Return("none"));
     EXPECT_CALL(led, getBrightness()).WillRepeatedly(Return(127));
     phosphor::led::Physical phy(bus, LED_OBJ, led);
+    EXPECT_EQ(phy.state(), Action::Off);
 }
 
 TEST(Physical, on_to_off)
@@ -151,5 +157,7 @@
     EXPECT_CALL(led, setBrightness(deasserted));
     phosphor::led::Physical phy(bus, LED_OBJ, led);
     phy.state(Action::On);
+    EXPECT_EQ(phy.state(), Action::On);
     phy.state(Action::Off);
+    EXPECT_EQ(phy.state(), Action::Off);
 }
