diff --git a/agent_based/inv_opengear_base.py b/agent_based/inv_opengear_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..ade8a8288bf9da575a955a51d79a026873c9cd96
--- /dev/null
+++ b/agent_based/inv_opengear_base.py
@@ -0,0 +1,119 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# License: GNU General Public License v2
+#
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+# Date  : 2021-12-25
+#
+# opengear base inventory
+#
+# sample string_table
+# [
+#  [
+#   ['4.1.1u2 594cb83d ()', 'N/A']
+#  ],
+#  [
+#   ['1'], ['1'], ['1'], ['1'], ['1'], ['1'], ['1'], ['1'], ['1'], ['1'], ['2'], ['2'], ['2'], ['2'], ['2'], ['2']
+#  ],
+#  [
+#   ['.1.3.6.1.4.1.25049.1.60']
+#  ]
+# ]
+#
+
+from typing import List, Optional
+
+from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
+    StringTable,
+    InventoryResult,
+)
+from cmk.base.plugins.agent_based.agent_based_api.v1 import (
+    Attributes,
+    register,
+    SNMPTree,
+    startswith,
+)
+
+_opengear_models = {
+    ('.1.3.6.1.4.1.25049.1.11', 18): 'CM7116',  # 16 serial + 2 usb lines
+    ('.1.3.6.1.4.1.25049.1.11', 34): 'CM7132',  # 32 serial + 2 usb lines
+    ('.1.3.6.1.4.1.25049.1.11', 48): 'CM7148',  # 48 serial + 2 usb lines
+    ('.1.3.6.1.4.1.25049.1.60', 16): 'IM4216',  # 16 serial lines
+}
+
+
+def parse_inv_opengear_base(string_table: List[StringTable]) -> Optional[List]:
+    inv_data, ogSerialPortCTS, sysObjectID = string_table
+
+    firmware_version, serial_number = inv_data[0]
+
+    if serial_number == 'N/A':
+        serial_number = ''
+    number_of_lines = len(ogSerialPortCTS)
+    sysObjectID = sysObjectID[0][0]
+    model_name = _opengear_models.get((sysObjectID, number_of_lines), '')
+
+    section = []
+
+    invPath = ['hardware', 'system']
+
+    for key, value in [
+        ('serial', serial_number),
+        ('manufacturer', 'opengear'),
+        ('model', model_name),
+    ]:
+        if not value == '':
+            section.append((invPath, key, value))
+
+    invPath = ['software', 'firmware']
+
+    for key, value in [
+        ('vendor', 'opengear'),
+        ('version', firmware_version),
+    ]:
+        if not value == '':
+            section.append((invPath, key, value))
+
+    return section
+
+
+def inventory_opengear_base(section: List) -> InventoryResult:
+    for invPath, key, value in section:
+        yield Attributes(
+            path=invPath,
+            inventory_attributes={key: value})
+
+
+register.snmp_section(
+    name='inv_opengear_base',
+    parse_function=parse_inv_opengear_base,
+    fetch=[
+        SNMPTree(
+            base='.1.3.6.1.4.1.25049.17.1',  # OG-STATUSv2-MIB
+            oids=[
+                '1',  # ogFirmwareVersion
+                '2',  # ogSerialNumber
+            ]
+        ),
+        SNMPTree(
+            base='.1.3.6.1.4.1.25049.17.2.1',  # OG-STATUSv2-MIB
+            oids=[
+                '19',  # ogSerialPortCTS. ogSerialPortIndex don't exist so we use CTS to get the number of lines
+            ]
+        ),
+        SNMPTree(
+            base='.1.3.6.1.2.1.1',  # SNMPv2-MIB
+            oids=[
+                '2',  # sysObjectID
+            ]
+        ),
+    ],
+    detect=startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.25049'),  # sysObjectID == opengear
+)
+
+register.inventory_plugin(
+    name='inv_opengear_base',
+    inventory_function=inventory_opengear_base,
+)
diff --git a/inv_opengear_base.mkp b/inv_opengear_base.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..a8bf886af88a5a756d1d7ac4e6e3b538c9c73a6a
Binary files /dev/null and b/inv_opengear_base.mkp differ
diff --git a/packages/inv_opengear_base b/packages/inv_opengear_base
new file mode 100644
index 0000000000000000000000000000000000000000..ea3488e898bcfdc1016dd07e7cfbeb0844e7d447
--- /dev/null
+++ b/packages/inv_opengear_base
@@ -0,0 +1,20 @@
+{'author': 'Th.L. (thl-cmk[at]outlook[dot]com)',
+ 'description': 'base inventory for opengear console servers.\n'
+                '\n'
+                'Adds the serial number, model, manufacturer and firmware '
+                'version to the inventory.\n'
+                '\n'
+                'Supported models:\n'
+                '- IM4216\n'
+                '- CM7116\n'
+                '- CM7132\n'
+                '- CM7148\n',
+ 'download_url': 'https://thl-cmk.hopto.org',
+ 'files': {'agent_based': ['inv_opengear_base.py']},
+ 'name': 'inv_opengear_base',
+ 'num_files': 1,
+ 'title': 'opengear base inventory',
+ 'version': '20220628.v.0.01',
+ 'version.min_required': '2.0.0',
+ 'version.packaged': '2021.09.20',
+ 'version.usable_until': None}
\ No newline at end of file