diff --git a/env.cpp b/env.cpp
index efd081b..3194441 100644
--- a/env.cpp
+++ b/env.cpp
@@ -48,6 +48,34 @@
     return getEnv(prefix, sensor);
 }
 
+std::string getIndirectID(
+        std::string path,
+        const SensorSet::key_type& sensor)
+{
+    std::string content;
+
+    path.append(sensor.first);
+    path.append(sensor.second);
+    path.append(1, '_');
+    path.append(hwmon::entry::label);
+
+    std::ifstream handle(path.c_str());
+    if (!handle.fail())
+    {
+        content.assign(
+                (std::istreambuf_iterator<char>(handle)),
+                (std::istreambuf_iterator<char>()));
+
+        if (!content.empty())
+        {
+            //remove the newline
+            content.pop_back();
+        }
+    }
+
+    return content;
+}
+
 std::string getIndirectLabelEnv(
     const char* prefix, std::string path, const SensorSet::key_type& sensor)
 {
diff --git a/env.hpp b/env.hpp
index 6342e25..e1169e1 100644
--- a/env.hpp
+++ b/env.hpp
@@ -27,6 +27,18 @@
     const std::string& type,
     const std::string& id);
 
+/** @brief Gets the ID for the sensor with a level of indirection
+ *
+ *  Read the sensor number/ID from the <path>/<item><X>_label file.
+ *  <item> & <X> are populated from the sensor key.
+ *
+ *  @param[in] path - Directory path of the label file
+ *  @param[in] sensor - Sensor details
+ */
+std::string getIndirectID(
+    std::string path,
+    const SensorSet::key_type& sensor);
+
 /** @brief Get the label for the sensor with a level of indirection.
  *
  *  Read the sensor number from the <path>/<item><X>_label file.<item> & <X> is
