diff --git a/libraries/grpc-robot/grpc_robot/dmi_robot.py b/libraries/grpc-robot/grpc_robot/dmi_robot.py
new file mode 100644
index 0000000..972f57d
--- /dev/null
+++ b/libraries/grpc-robot/grpc_robot/dmi_robot.py
@@ -0,0 +1,47 @@
+# Copyright 2020 ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+import dmi
+
+from robot.api.deco import keyword
+from grpc_robot.grpc_robot import GrpcRobot
+
+
+class GrpcDmiRobot(GrpcRobot):
+    """
+    This library is intended to supported different Protocol Buffer definitions. Precondition is that python files
+    generated from Protocol Buffer files are available in a pip package which must be installed before the library
+    is used.
+
+    | Supported device  | Pip package                 | Pip package version | Library Name   |
+    | dmi               | device-management-interface | 0.9.1               | grpc_robot.Dmi |
+    | dmi               | device-management-interface | 0.9.2               | grpc_robot.Dmi |
+    | dmi               | device-management-interface | 0.9.3               | grpc_robot.Dmi |
+    | dmi               | device-management-interface | 0.9.4               | grpc_robot.Dmi |
+    | dmi               | device-management-interface | 0.9.5               | grpc_robot.Dmi |
+    """
+
+    device = 'dmi'
+    package_name = 'device-management-interface'
+    installed_package = dmi
+
+    def __init__(self, **kwargs):
+        super().__init__(**kwargs)
+
+    @keyword
+    def dmi_version_get(self):
+        """
+        Retrieve the version of the currently used python module _device-management-interface_.
+
+        *Return*: version string consisting of three dot-separated numbers (x.y.z)
+        """
+        return self.pb_version
