diff --git a/src/PSUEvent.cpp b/src/PSUEvent.cpp
index 9e73df5..3e8c589 100644
--- a/src/PSUEvent.cpp
+++ b/src/PSUEvent.cpp
@@ -42,7 +42,7 @@
         std::string,
         boost::container::flat_map<std::string, std::vector<std::string>>>&
         groupEventPathList,
-    const std::string& combineEventName) :
+    const std::string& combineEventName, double pollRate) :
     objServer(objectServer)
 {
     std::string psuNameEscaped = sensor_paths::escapePathForDbus(psuName);
@@ -71,7 +71,7 @@
         {
             auto p = std::make_shared<PSUSubEvent>(
                 eventInterface, path, conn, io, eventName, eventName, assert,
-                combineEvent, state, psuName);
+                combineEvent, state, psuName, pollRate);
             p->setupRead();
 
             events[eventPSUName].emplace_back(p);
@@ -94,7 +94,8 @@
             {
                 auto p = std::make_shared<PSUSubEvent>(
                     eventInterface, path, conn, io, groupEventName,
-                    groupPathList.first, assert, combineEvent, state, psuName);
+                    groupPathList.first, assert, combineEvent, state, psuName,
+                    pollRate);
                 p->setupRead();
                 events[eventPSUName].emplace_back(p);
 
@@ -144,13 +145,17 @@
     const std::string& eventName,
     std::shared_ptr<std::set<std::string>> asserts,
     std::shared_ptr<std::set<std::string>> combineEvent,
-    std::shared_ptr<bool> state, const std::string& psuName) :
+    std::shared_ptr<bool> state, const std::string& psuName, double pollRate) :
     std::enable_shared_from_this<PSUSubEvent>(),
     eventInterface(std::move(eventInterface)), asserts(std::move(asserts)),
     combineEvent(std::move(combineEvent)), assertState(std::move(state)),
     errCount(0), path(path), eventName(eventName), waitTimer(io), inputDev(io),
     psuName(psuName), groupEventName(groupEventName), systemBus(conn)
 {
+    if (pollRate > 0.0)
+    {
+        eventPollMs = static_cast<unsigned int>(pollRate * 1000);
+    }
     fd = open(path.c_str(), O_RDONLY);
     if (fd < 0)
     {
