Didactum Monitoring & NetQoS Performance Center Integration
Complete step-by-step guide for integrating Didactum Monitoring devices and sensors into NetQoS Performance Center via NetVoyant (SNMP Device Performance Management) – including SNMP profile configuration, device discovery, MIB import, Custom Dataset Wizard, alarm profile, thresholds and email notification.
Product Note: NetQoS Performance Center is a web-based management console that aggregates performance data from multiple data sources. SNMP device monitoring is handled via the NetVoyant module (SNMP Device Performance Management). NetVoyant discovers SNMP-enabled devices, polls configurable OIDs at defined intervals, and provides data for reports, thresholds, and alarms in the Performance Center. Didactum environmental sensors are fully integrated via a Custom Dataset Wizard and custom alarm profiles.
- Software: NetQoS Performance Center 5.x / CA NetQoS NetVoyant 7.x
- Protocol: SNMP v1 / v2c / v3
- Devices: Didactum Monitoring System 100T / 300T / 500T / 550T
- Sensors: Temperature, Leakage, Humidity, Door Contact, Smoke
1. Prerequisites & System Overview
NetQoS / NetVoyant Server
- NetQoS Performance Center installed (On-Premises Appliance or Server)
- NetVoyant 7.x configured and operational as SNMP Collector
- NetVoyant Console accessible (Java-based desktop application or Remote Console)
- Performance Center Web Interface accessible at: <Server-IP>/NPC
- UDP Port 161 outbound for SNMP Polling opened
- UDP Port 162 inbound for SNMP Traps opened (optional)
- Network access from the NetVoyant Poller to the Didactum device available
Didactum Device
- Monitoring System 100T, 300T, 500T or 550T
- SNMP enabled (v2c recommended)
- Device reachable via ICMP from the NetVoyant Poller
- MIB file available in the Web Interface (Download under Preferences → SNMP)
Architecture & Data Flow
[NetQoS Performance Center] [Didactum Monitoring System] Web Interface: <NPC-IP>/NPC IP: 192.168.1.50 | +-- [NetVoyant Master Server] IP: 192.168.1.10 NetVoyant Console (Java) | +-- [NetVoyant Poller] -- SNMP Polling UDP 161 (every 5 Min.) --> <-- SNMP Traps UDP 162 (optional) --------
NetVoyant Architecture
NetVoyant consists of several components:
- Master Server: Central administration and database component, hosts the NetVoyant Console
- Poller: Performs the actual SNMP polling; up to five pollers per master server possible
- NetVoyant Console: Java-based administration interface for discovery, datasets, alarms and notifications
- Performance Center Web UI: Web-based reporting interface, displays data from NetVoyant and other sources
2. Enable SNMP on the Didactum Device
Step 1 – Open Web Interface
Open in browser: 192.168.1.50 (adjust Didactum device IP)
Step 2 – Access SNMP Settings
Preferences → SNMP
Step 3 – Enter the following values
| Field in Didactum Web Interface | Value |
|---|---|
| Enable SNMP | Enabled |
| SNMP Version | v2c (recommended) |
| Community String | didactum_npc (do not use „public“!) |
| SNMP Port | 161 |
| Trap Receiver IP | 192.168.1.10 (IP of NetVoyant Poller) |
| Trap Port | 162 |
| Trap Version | v2c |
SNMPv3 Settings (optional, higher security)
| Field | Value |
|---|---|
| Security Name | netvoyant_user |
| Auth Protocol | SHA |
| Auth Password | min. 8 characters |
| Priv Protocol | AES |
| Priv Password | min. 8 characters |
| Security Level | authPriv |
Save settings. Test SNMP connection in advance from the NetVoyant Poller:
snmpwalk -v2c -c didactum_npc 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1
Download MIB File
# In the Didactum Web Interface: # Preferences → SNMP → Download MIB file # Save file as: DIDACTUM-ENV-MIB.mib # (will be imported into NetVoyant in step 5)
3. Create SNMP Profile in NetVoyant
NetVoyant manages SNMP credentials in so-called SNMP Profiles. These are automatically assigned to the appropriate device during discovery and polling.
Navigation
NetVoyant Console → Configuration Tab (left panel) → Right-click on "SNMP Profiles" → "Add SNMP Profile"
Create SNMP Profile for SNMPv2c
| Field | Value (SNMPv2c) |
|---|---|
| Profile Name | Didactum_SNMPv2c |
| SNMP Version | v2c |
| Read Community | didactum_npc |
| Write Community | empty (read-only access) |
| SNMP Port | 161 |
| Timeout (seconds) | 5 |
| Retries | 3 |
Click OK and save the profile.
Create SNMP Profile for SNMPv3 (if used)
| Field | Value |
|---|---|
| Profile Name | Didactum_SNMPv3 |
| SNMP Version | v3 |
| Security Name | netvoyant_user |
| Auth Protocol | SHA |
| Auth Password | Your Auth Password |
| Privacy Protocol | AES |
| Privacy Password | Your Priv Password |
| Security Level | authPriv |
4. Configure Discovery Scope and Add Device
NetVoyant discovers devices via configurable Discovery Scopes (IP ranges) and Discovery Seeds (single entry points).
Step 1 – Create Discovery Scope
NetVoyant Console → Configuration Tab → Right-click on "Discovery" → "Add Discovery Scope"
| Field | Value |
|---|---|
| Scope Name | Serverroom-Didactum |
| IP Range Start | 192.168.1.50 |
| IP Range End | 192.168.1.50 (single device) |
| SNMP Profile | Didactum_SNMPv2c |
| Discovery via | SNMP + ICMP |
Step 2 – Add Discovery Seed (alternative method)
NetVoyant Console → Configuration Tab → Right-click on "Discovery Seeds" → "Add Discovery Seed" IP Address: 192.168.1.50 SNMP Profile: Didactum_SNMPv2c Hop Count: 0 (only this device, no neighbors) → OK
Step 3 – Start Discovery
NetVoyant Console → Configuration Tab → Right-click on "Discovery" → "Start Discovery Now"
Monitor progress in the Discovery Log:
NetVoyant Console → Configuration Tab → Open "Discovery Log"
After successful discovery, the device 192.168.1.50 appears in the device group under the Groups Tab.
Step 4 – Add device manually (alternative method)
NetVoyant Console → Groups Tab → Right-click on target group → "Add Device" Hostname / IP: 192.168.1.50 Label: Didactum-Serverroom SNMP Profile: Didactum_SNMPv2c Device Class: Other (no matching standard type) → OK
Step 5 – Enable Polling for the Device
NetVoyant Console → Groups Tab → Select device "Didactum-Serverroom" → Right context panel → Tab "Polling" → Set Polling: "Enabled" → Select Poller (the one closest to the Didactum device) → Save changes
5. Import Didactum MIB into NetVoyant
NetVoyant has a built-in MIB Browser and MIB Compiler. The Didactum MIB must be imported once to allow symbolic addressing of OIDs.
Step 1 – Check MIB Dependencies
The Didactum MIB requires the following standard MIBs as a basis (they are available by default in NetVoyant):
- SNMPv2-SMI
- SNMPv2-TC
- SNMPv2-CONF
Step 2 – Compile MIB File in NetVoyant
NetVoyant Console → Configuration Tab → "MIBs" → Right-click → "Compile MIB" Select MIB file: DIDACTUM-ENV-MIB.mib → Click Compile
The compilation log shows warnings or errors. On success, the MIB appears in the MIB list.
Step 3 – Open MIB Browser and Check OIDs
NetVoyant Console → Tools → MIB Browser Device: 192.168.1.50 Community: didactum_npc SNMP Version: v2c Enter OID: .1.3.6.1.4.1.46501.5.1.1 → Click "Walk"
The result list shows all sensor names (.5), status values (.6) and measurement values (.7) with sensor IDs. These IDs are needed for dataset configuration in step 6.
MIB Template for Import
If no MIB file can be downloaded from the device, save this template as DIDACTUM-ENV-MIB.mib:
-- ============================================================
-- DIDACTUM-ENV-MIB
-- Enterprise OID: 1.3.6.1.4.1.46501
-- ============================================================
DIDACTUM-ENV-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Integer32, enterprises
FROM SNMPv2-SMI
DisplayString
FROM SNMPv2-TC;
didactum MODULE-IDENTITY
LAST-UPDATED "202401010000Z"
ORGANIZATION "Didactum Security GmbH"
CONTACT-INFO "support@didactum-security.com"
DESCRIPTION "MIB for Didactum environmental monitoring systems"
::= { enterprises 46501 }
didactumSensors OBJECT IDENTIFIER ::= { didactum 5 }
didactumSensorTable OBJECT IDENTIFIER ::= { didactumSensors 1 }
didactumSensorEntry OBJECT IDENTIFIER ::= { didactumSensorTable 1 }
sensorName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Sensor designation"
::= { didactumSensorEntry 5 }
sensorStatus OBJECT-TYPE
SYNTAX Integer32 (0..3)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Status: 0=Normal 1=Warning 2=Critical 3=Error"
::= { didactumSensorEntry 6 }
sensorValue OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Measured value: Temp/Hum raw value div 10, leakage 0 or 1"
::= { didactumSensorEntry 7 }
END
6. OID Reference for Didactum Sensors
All Didactum OIDs start with .1.3.6.1.4.1.46501. The sensor ID is appended at the end and can be determined via MIB Browser Walk.
OID fields per sensor
| Field | Meaning | Example OID |
|---|---|---|
| .5.x.SENSOR_ID | Sensor Name (String) | .1.3.6.1.4.1.46501.5.1.1.5.101001 |
| .6.x.SENSOR_ID | Status: 0=Normal, 1=Warning, 2=Critical, 3=Error | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| .7.x.SENSOR_ID | Measurement value (current, scaled) | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
Sensor types with OIDs, scaling and NetVoyant thresholds
| Sensor Type | Sensor ID | OID Measurement Value | Scaling | Warning Threshold | Critical Threshold |
|---|---|---|---|---|---|
| Temperature Sensor Port 1 | 101001 | .1.3.6.1.4.1.46501.5.1.1.7.101001 | Raw value ÷ 10 = °C (215 = 21.5 °C) | 280 (= 28 °C) | 350 (= 35 °C) |
| Temperature Sensor Port 2 | 101002 | .1.3.6.1.4.1.46501.5.1.1.7.101002 | Raw value ÷ 10 = °C | 280 | 350 |
| Humidity Sensor Port 1 | 102001 | .1.3.6.1.4.1.46501.5.1.1.7.102001 | Direct value = %rH | 80 | 90 |
| Combined Sensor Temperature (CAN) | 103001 | .1.3.6.1.4.1.46501.5.1.1.7.103001 | Raw value ÷ 10 = °C | 280 | 350 |
| Combined Sensor Humidity (CAN) | 103002 | .1.3.6.1.4.1.46501.5.1.1.7.103002 | Direct value = %rH | 80 | 90 |
| Door Contact | 104001 | .1.3.6.1.4.1.46501.5.1.1.7.104001 | 0 = closed, 1 = open | > 0 | – |
| Smoke Detector | 106001 | .1.3.6.1.4.1.46501.5.1.1.7.106001 | 0 = OK, 1 = Alarm | – | > 0 |
| Water Sensor / Leakage (Spot) | 107001 | .1.3.6.1.4.1.46501.5.1.1.7.107001 | 0 = dry, 1 = water | – | > 0 |
| Water Sensor / Leakage (Cable) | 107002 | .1.3.6.1.4.1.46501.5.1.1.7.107002 | 0 = dry, 1 = water | – | > 0 |
| System Status (Device overall) | – | .1.3.6.1.4.1.46501.1.1.0 | 0 = OK, 1 = Warning, 2 = Critical | > 0 | > 1 |
Important Note – Temperature Thresholds:
NetVoyant compares the OID raw value directly without automatic scaling. Since Didactum transmits temperatures as raw value × 10 (215 = 21.5 °C), thresholds must also be entered × 10. 28 °C Warning = threshold 280.
Find Sensor ID:
In the Didactum Web Interface under System Tree → Select Sensor → Details or via MIB Browser Walk (section 5, step 3).
7. Create Custom Dataset for Didactum Sensors
In NetVoyant, Datasets define which OIDs from which devices are polled at which interval and how the raw data is stored and calculated. For Didactum environmental sensors, a Custom Dataset is created via the Dataset Wizard.
Step 1 – Start Dataset Wizard
NetVoyant Console → Configuration Tab → "Datasets" → Right-click → "Add Dataset (Wizard)"
Step 2 – Name the Dataset
| Field | Value |
|---|---|
| Dataset Name | Didactum_Environmental_Sensors |
| Description | Temperature, Leakage, Humidity – Didactum Monitoring System |
| Dataset Type | Custom (SNMP Scalar) |
Click Next.
Step 3 – Select MIB
Wizard page "Select a MIB": Select MIB: DIDACTUM-ENV-MIB (or enter numeric OID directly if MIB is not loaded) → Next
Step 4 – Define Expressions
For each sensor an Expression is added. Click Add Expression:
Expression 1: Temperature Sensor Port 1
| Field | Value |
|---|---|
| Expression Name | Temperature_Sensor_01 |
| OID | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
| Data Type | Gauge (absolute value, no counter) |
| Units | 0.1 °C |
| Description | Server room temperature (raw value / 10 = °C) |
Expression 2: Leakage Sensor
| Field | Value |
|---|---|
| Expression Name | Leakage_Sensor_01 |
| OID | .1.3.6.1.4.1.46501.5.1.1.7.107001 |
| Data Type | Gauge |
| Units | Status (0=dry / 1=water) |
Expression 3: Humidity
| Field | Value |
|---|---|
| Expression Name | Humidity_Sensor_01 |
| OID | .1.3.6.1.4.1.46501.5.1.1.7.102001 |
| Data Type | Gauge |
| Units | %rH |
Expression 4: Sensor Status Value (Temperature)
| Field | Value |
|---|---|
| Expression Name | Status_Sensor_01 |
| OID | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| Data Type | Gauge |
| Units | Status (0=OK / 1=Alarm / 2=Crit.) |
Click Next.
Step 5 – Assign Polling Group
Wizard page "Add Polling Groups":
Polling Group: "Default" (every 5 minutes)
or create new group:
Group Name: Didactum_5min
Interval: 300 seconds
Add device:
Device/Poll Instance: 192.168.1.50 (Didactum-Serverroom)
→ Finish
Step 6 – Enable Polling for the Dataset
NetVoyant Console → Configuration Tab → "Datasets" → Select Dataset "Didactum_Environmental_Sensors" → Right context panel → Tab "Polling" → Set Polling Status: "Enabled" → Enable Auto-Enable Polling (for new devices automatically) → Save
8. Configure Alarm Profile and Thresholds
NetVoyant uses Alarm Profiles with assigned Alarm Rules. Alarm Rules define conditions (thresholds, expressions) and the resulting alarm severity. Alarm Profiles bundle multiple rules and are assigned to devices or groups.
Step 1 – Create Alarm Profile
NetVoyant Console → Configuration Tab → "Alarm Profiles" → Right-click → "Add Alarm Profile" Profile Name: Didactum_Sensor_Alarms Description: Threshold alarms for all Didactum environmental sensors → OK
Step 2 – Add Alarm Rules
Inside the new Alarm Profile click Add Rule:
Rule 1: Temperature – Warning
| Field | Value |
|---|---|
| Rule Name | Temp_Warning_28C |
| Dataset | Didactum_Environmental_Sensors |
| Expression | Temperature_Sensor_01 |
| Condition | Greater Than |
| Threshold Value | 280 (raw value = 28.0 °C) |
| Alarm Severity | Warning |
| Consecutive Violations | 2 (only alarm after 2 consecutive measurements) |
Rule 2: Temperature – Critical
| Field | Value |
|---|---|
| Rule Name | Temp_Critical_35C |
| Expression | Temperature_Sensor_01 |
| Condition | Greater Than |
| Threshold Value | 350 (raw value = 35.0 °C) |
| Alarm Severity | Critical |
| Consecutive Violations | 1 (immediately on first exceedance) |
Rule 3: Leakage Detected
| Field | Value |
|---|---|
| Rule Name | Leakage_Alarm |
| Expression | Leakage_Sensor_01 |
| Condition | Greater Than |
| Threshold Value | 0 (from value 1 = water detected) |
| Alarm Severity | Critical |
| Consecutive Violations | 1 |
Rule 4: Humidity – Warning
| Field | Value |
|---|---|
| Rule Name | Humidity_Warning |
| Expression | Humidity_Sensor_01 |
| Condition | Greater Than |
| Threshold Value | 80 |
| Alarm Severity | Warning |
| Consecutive Violations | 2 |
Step 3 – Assign Alarm Profile to the Device
NetVoyant Console → Groups Tab → Select device "Didactum-Serverroom" → Right context panel → Tab "Alarms" → "Assign Alarm Profile" → Select "Didactum_Sensor_Alarms" → Save
Recommended Thresholds at a Glance
| Sensor / Alarm | Condition | Threshold | Severity | Consecutive |
|---|---|---|---|---|
| Temperature > 28 °C | Greater Than | 280 | Warning | 2 |
| Temperature > 35 °C | Greater Than | 350 | Critical | 1 |
| Leakage Detected | Greater Than | 0 | Critical | 1 |
| Humidity > 80 % | Greater Than | 80 | Warning | 2 |
| Humidity > 90 % | Greater Than | 90 | Critical | 1 |
| Sensor Status > 0 (Alarm/Error) | Greater Than | 0 | Warning | 1 |
| Device Unreachable (ICMP) | Device Unreachable | – | Critical | 1 |
9. Configure Notifications
NetVoyant supports multiple notification types: Email, SNMP Trap, Syslog and Script Execution. Email is recommended for Didactum alarms.
Step 1 – Create Notification
NetVoyant Console → Configuration Tab → "Notifications" → Right-click → "Add Notification"
| Field | Value |
|---|---|
| Notification Name | Didactum_Email_Alarm |
| Notification Type | |
| SMTP Server | mail.yourdomain.com |
| SMTP Port | 25 or 587 |
| From Address | netvoyant@yourdomain.com |
| To Address | admin@yourdomain.com |
| Subject | [NetVoyant ALARM] %device% – %alarm_name% – %severity% |
| Trigger on Severity | Warning, Critical (enable both) |
Step 2 – Assign Notification to Alarm Profile
NetVoyant Console → Configuration Tab → "Alarm Profiles" → Open Profile "Didactum_Sensor_Alarms" → Tab "Notifications" → Add Notification "Didactum_Email_Alarm" → Save
Step 3 – Check Data in Performance Center Web Interface
Performance Center Web Interface → <NPC-IP>/NPC → Reports → Device Performance → Select device "Didactum-Serverroom" → Dataset "Didactum_Environmental_Sensors" → History graphs for temperature, leakage and humidity are displayed
10. Test & Troubleshooting
Test SNMP Connection
# From the NetVoyant Poller: snmpwalk -v2c -c didactum_npc 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1 # Temperature value (raw value / 10 = degrees Celsius) snmpget -v2c -c didactum_npc 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001 # Example output: INTEGER: 215 → 21.5 degrees Celsius # Leakage Status (0=dry, 1=water detected) snmpget -v2c -c didactum_npc 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.107001
Check Polling Status in NetVoyant
NetVoyant Console → Groups Tab → Device "Didactum-Serverroom" → Right context panel → Tab "Poll Instances" → Select Poll Instance "Didactum_Environmental_Sensors" → Check "Last Poll Time" and "Poll Status"
Error Messages and Solutions
| Problem | Cause & Solution |
|---|---|
| Device not found after discovery | Community String wrong or SNMP not active on Didactum → check SNMP profile, test snmpwalk from poller server |
| Poll Instance remains on „Pending“ | Polling not enabled → set Dataset Polling to „Enabled“, restart poller service |
| MIB compilation fails | Missing dependent standard MIBs → load SNMPv2-SMI and SNMPv2-TC first, then compile Didactum MIB |
| Dataset Expression returns no data | OID not supported by device or wrong sensor ID → run MIB Browser Walk and determine correct OID |
| Temperature value 10× too high in report | Scaling forgotten → enter thresholds in Alarm Profile × 10 (28 °C = 280) |
| No alarm on leakage | Polling interval too long (default 5 Min.) → create separate Polling Group with 120 seconds for leakage |
| No email on alarm | SMTP server unreachable; Notification not assigned to Alarm Profile → check configuration, send test notification |
| Alarm is not triggered | Alarm Profile not assigned to device; Consecutive Violations too high → check assignment and rule settings |
View NetVoyant Logs
# Discovery Log NetVoyant Console → Configuration Tab → "Discovery Log" # Alarm Log NetVoyant Console → Alarm Tab → "Alarm Log" # Polling Log (server-side) # Windows: %NetVoyant_Install%\logs\poller.log # Linux: /opt/netvoyant/logs/poller.log
11. Final Checklist
Didactum Device
- SNMP enabled (v2c or v3)
- Community String set (not „public“): didactum_npc
- Device reachable via Ping from NetVoyant Poller
- Trap receiver IP set to NetVoyant Poller (optional)
- MIB file downloaded and provided
- snmpwalk successfully performed from poller server
NetVoyant – SNMP & Discovery
- SNMP Profile Didactum_SNMPv2c created
- Discovery Scope or Seed configured for 192.168.1.50
- Discovery successfully completed, device visible in device group
- Polling enabled for the device
MIB & Dataset
- Didactum MIB compiled in NetVoyant (no errors in compilation log)
- MIB Browser Walk on .1.3.6.1.4.1.46501.5.1.1 successful
- Dataset Didactum_Environmental_Sensors created with expressions for temperature, leakage, humidity and status
- Polling Group (300 sec or 120 sec for leakage) assigned
- Dataset Polling enabled, Poll Status „Active“
- Data appears in Performance Center Web Interface
Alarms & Notifications
- Alarm Profile Didactum_Sensor_Alarms created
- Alarm Rules for temperature (Warning 280 / Critical 350), leakage (Critical > 0) and humidity created
- Alarm Profile assigned to device Didactum-Serverroom
- Notification Didactum_Email_Alarm created and assigned to Alarm Profile
- Test alarm triggered and email received
- Alarm Log shows correct entries on threshold violation