Didactum Monitoring & Pandora FMS Integration
Complete step-by-step guide for integrating Didactum Monitoring devices and sensors into Pandora FMS via SNMP – including agent configuration, remote SNMP modules, SNMP module configuration via agent file, MIB import, post-processing for temperature scaling, alert templates, alert actions (email) and SNMP Trap Console.
Product Note: Pandora FMS is an open-source NMS that monitors SNMP devices via so-called Remote Network Modules. Each OID is defined as its own module of an agent. The Network Server module of Pandora FMS actively polls the OIDs via SNMP-GET. In addition, Didactum can send SNMP Traps to the Pandora FMS server, which are received in the SNMP Trap Console and processed via trap alert rules. The integration is possible in two variants: via the Web Console (graphical) or directly via the agent configuration file (text file with module_snmpget blocks).
- Software: Pandora FMS 7.x / 8.x (Community or Enterprise)
- Protocol: SNMP v1 / v2c / v3 (Polling) + SNMP Traps (optional)
- Devices: Didactum Monitoring System 100T / 300T / 500T / 550T
- Sensors: Temperature, Leakage, Humidity, Door Contact, Smoke
1. Prerequisites & System Overview
Pandora FMS Server
- Pandora FMS 7.x or 8.x installed (Linux, typically CentOS/RHEL or Ubuntu)
- Pandora FMS Network Server enabled (networkserver 1 in pandora_server.conf)
- SNMP tools installed: net-snmp, net-snmp-utils
- Web Console accessible at: <Server-IP>/pandora_console
- UDP Port 161 outbound open for SNMP polling
- UDP Port 162 inbound open for SNMP Traps (optional)
- Network access from the Network Server to the Didactum device available
Didactum Device
- Monitoring System 100T, 300T, 500T or 550T
- SNMP enabled (v2c recommended)
- Device reachable via ICMP from the Pandora FMS server
- MIB file available in the web interface (Download under Preferences → SNMP)
Architecture & Data Flow
[Pandora FMS Server] [Didactum Monitoring System] Linux Server IP: 192.168.1.50 Web Console: <IP>/pandora_console | +-- [Pandora FMS Network Server] (Perl process, actively polls OIDs) -- SNMP GET UDP 161 (active polling) --> <-- SNMP Traps UDP 162 (passive, optional) - | +-- [Pandora FMS Data Server] (processes all incoming module data, triggers alerts)
Pandora FMS Architecture (relevant for Didactum)
- Network Server: Performs SNMP polling of Remote Network Modules; requires network access to the Didactum device
- Data Server: Processes all incoming module data, checks thresholds and triggers alerts
- SNMP Trap Console: Receives SNMP Traps from the Didactum device; enables rule-based alert forwarding
- Web Console: Browser-based configuration interface for agents, modules, alerts and reports
Enable Pandora FMS Network Server
# /etc/pandora/pandora_server.conf networkserver 1 network_threads 10 # Restart sudo systemctl restart pandora_server
2. Enable SNMP on the Didactum Device
Step 1 – Open Web Interface
Open in browser: 192.168.1.50 (adjust IP of the Didactum device)
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_pfms (do not use "public"!) |
| SNMP Port | 161 |
| Trap Receiver IP | IP of the Pandora FMS server (e.g. 192.168.1.10) |
| Trap Port | 162 |
| Trap Version | v2c |
Save settings. Test SNMP connection in advance from the Pandora FMS server:
snmpwalk -v2c -c didactum_pfms 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1
3. Import MIB File into Pandora FMS
Pandora FMS has a MIB Uploader in the Web Console. After import, numeric OIDs are automatically translated with their symbolic names.
Step 1 – Download MIB File
# In the Didactum Web Interface: # Preferences → SNMP → Download MIB file # Save file as DIDACTUM-ENV-MIB.mib
Step 2 – Upload MIB to Pandora FMS
Pandora FMS Web Console: Operation → Monitoring → SNMP → MIB uploader → "Browse" → Select DIDACTUM-ENV-MIB.mib → Click "Upload"
The MIB is copied to the directory /usr/share/snmp/mibs/ on the server and registered in the Pandora FMS translation database.
Step 3 – Make MIB available server-side (optional, for SNMP Traps)
# On the Pandora FMS server: sudo cp DIDACTUM-ENV-MIB.mib /usr/share/snmp/mibs/ sudo systemctl restart snmptrapd # Activate SNMP Trap translation in pandora_server.conf: # /etc/pandora/pandora_server.conf translate_variable_bindings 1 translate_enterprise_strings 1 sudo systemctl restart pandora_server
MIB Template for Import
If no MIB is available from the device, save the following 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 raw value div 10 = °C; Leakage 0 or 1"
::= { didactumSensorEntry 7 }
END
4. 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 snmpwalk or the integrated SNMP Explorer in Pandora FMS.
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 | Measured value (current) | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
Sensor Types with OIDs, Pandora FMS Module Type and Thresholds
| Sensor Type | Sensor ID | OID Measured Value | Pandora Module Type | Post-Processing | Warning Threshold | Critical Threshold |
|---|---|---|---|---|---|---|
| Temperature Sensor Port 1 | 101001 | .1.3.6.1.4.1.46501.5.1.1.7.101001 | remote_snmp | ÷ 10 (= °C) | 28 | 35 |
| Temperature Sensor Port 2 | 101002 | .1.3.6.1.4.1.46501.5.1.1.7.101002 | remote_snmp | ÷ 10 (= °C) | 28 | 35 |
| Humidity Sensor Port 1 | 102001 | .1.3.6.1.4.1.46501.5.1.1.7.102001 | remote_snmp | none (%rH direct) | 80 | 90 |
| Combined Sensor Temperature (CAN) | 103001 | .1.3.6.1.4.1.46501.5.1.1.7.103001 | remote_snmp | ÷ 10 (= °C) | 28 | 35 |
| Combined Sensor Humidity (CAN) | 103002 | .1.3.6.1.4.1.46501.5.1.1.7.103002 | remote_snmp | none (%rH direct) | 80 | 90 |
| Door Contact | 104001 | .1.3.6.1.4.1.46501.5.1.1.7.104001 | remote_snmp | none (0/1) | > 0 | – |
| Smoke Detector | 106001 | .1.3.6.1.4.1.46501.5.1.1.7.106001 | remote_snmp | none (0/1) | – | > 0 |
| Leakage Sensor (Spot) | 107001 | .1.3.6.1.4.1.46501.5.1.1.7.107001 | remote_snmp | none (0/1) | – | > 0 |
| Leakage Sensor (Cable) | 107002 | .1.3.6.1.4.1.46501.5.1.1.7.107002 | remote_snmp | none (0/1) | – | > 0 |
| Sensor Status | 101001 | .1.3.6.1.4.1.46501.5.1.1.6.101001 | remote_snmp | none (0/1/2/3) | > 0 | > 1 |
| System State (device overall) | – | .1.3.6.1.4.1.46501.1.1.0 | remote_snmp | none (0/1/2) | > 0 | > 1 |
Post-Processing / Scaling: Pandora FMS offers a Post-process field in the module with which the SNMP raw value can be automatically multiplied or divided. For Didactum temperature sensors: Post-process = 0.1 (divided by 10). This correctly displays raw value 215 → 21.5 °C and thresholds can be entered directly in °C (28 / 35).
Determine Sensor ID: In the Didactum Web Interface under System Tree → Sensor → Details or via SNMP Walk.
# Determine all sensor names and IDs snmpwalk -v2c -c didactum_pfms 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.5 # All measured values snmpwalk -v2c -c didactum_pfms 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7
5. Create Agents and Modules in the Web Console
In Pandora FMS, each monitored device represents an agent. Each OID is defined as an individual module within this agent.
Step 1 – Create Agent for the Didactum Device
Web Console → Management → Resources → Manage agents → Click "Create agent"
| Field | Value |
|---|---|
| Agent name | Didactum-Serverroom |
| IP address | 192.168.1.50 |
| OS | Other |
| Group | Serverroom (create new group if necessary) |
| Server | Select Network Server |
| Interval | 300 (5 minutes) |
| Description | Didactum Monitoring System – Temperature, Leakage, Humidity |
Click Create.
Step 2 – Create Remote SNMP Module for Temperature Sensor
Web Console → Management → Resources → Manage agents → Open agent "Didactum-Serverroom" → Tab "Modules" → Select "Create network module"
| Field | Value |
|---|---|
| Module name | Temperature_Sensor_01 |
| Module type | Remote SNMP (remote_snmp) |
| SNMP community | didactum_pfms |
| SNMP version | 2c |
| SNMP OID | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
| Target IP | 192.168.1.50 |
| Port | 161 |
| Unit | °C |
| Post-process | 0.1 (raw value ÷ 10 = °C) |
| Warning min / max | 28 / empty |
| Critical min / max | 35 / empty |
| Description | Server room temperature (raw value / 10 = °C) |
Click Create. The module becomes active during the next polling cycle (agent interval).
Step 3 – Create Modules for Additional Sensors
Same procedure as in Step 2 – one module per sensor. Relevant fields:
| Module | OID | Post-process | Warning max | Critical max | Unit |
|---|---|---|---|---|---|
| Temperature_Sensor_01 | .1.3.6.1.4.1.46501.5.1.1.7.101001 | 0.1 | 28 | 35 | °C |
| Temperature_Sensor_02 | .1.3.6.1.4.1.46501.5.1.1.7.101002 | 0.1 | 28 | 35 | °C |
| Humidity_Sensor_01 | .1.3.6.1.4.1.46501.5.1.1.7.102001 | 1 (no post-process) | 80 | 90 | % |
| Leakage_Sensor_01 | .1.3.6.1.4.1.46501.5.1.1.7.107001 | 1 | empty | 0.5 (from 1 = Critical) | Status |
| Leakage_Sensor_02 | .1.3.6.1.4.1.46501.5.1.1.7.107002 | 1 | empty | 0.5 | Status |
| DoorContact_01 | .1.3.6.1.4.1.46501.5.1.1.7.104001 | 1 | 0.5 (from 1 = Warning) | empty | Status |
| SmokeDetector_01 | .1.3.6.1.4.1.46501.5.1.1.7.106001 | 1 | empty | 0.5 | Status |
| Sensor_Status_01 | .1.3.6.1.4.1.46501.5.1.1.6.101001 | 1 | 0.5 | 1.5 | Status |
6. Agent Configuration File (Alternative to Web Console)
Pandora FMS also supports direct configuration via text file with module_snmpget blocks. This method is faster with many sensors and ideal for automation.
Configuration File: /etc/pandora/agents/didactum-serverroom.conf
# ============================================================ # Pandora FMS Agent Configuration for Didactum Server Room # Remote SNMP Modules via module_snmpget # ============================================================ agent_name Didactum-Serverroom description Didactum Environmental Monitoring Server Room group Serverroom interval 300 server_ip 192.168.1.10 # --- Temperature Sensor Port 1 --- module_begin module_name Temperature_Sensor_01 module_type generic_data module_description Server room temperature (raw value / 10 = °C) module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.5.1.1.7.101001 module_postprocess 0.1 module_min_warning 28 module_max_warning 28 module_min_critical 35 module_max_critical 35 module_unit °C module_end # --- Temperature Sensor Port 2 --- module_begin module_name Temperature_Sensor_02 module_type generic_data module_description Rack 2 temperature (raw value / 10 = °C) module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.5.1.1.7.101002 module_postprocess 0.1 module_min_warning 28 module_max_warning 28 module_min_critical 35 module_max_critical 35 module_unit °C module_end # --- Humidity Sensor Port 1 --- module_begin module_name Humidity_Sensor_01 module_type generic_data module_description Server room humidity in percent module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.5.1.1.7.102001 module_min_warning 80 module_max_warning 80 module_min_critical 90 module_max_critical 90 module_unit %rH module_end # --- Leakage Sensor Spot --- module_begin module_name Leakage_Sensor_01 module_type generic_data module_description Water sensor underfloor (0=dry 1=water) module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.5.1.1.7.107001 module_min_critical 0.5 module_max_critical 0.5 module_unit Status module_end # --- Leakage Sensor Cable --- module_begin module_name Leakage_Sensor_02 module_type generic_data module_description Leakage protection cable air conditioning (0=dry 1=water) module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.5.1.1.7.107002 module_min_critical 0.5 module_max_critical 0.5 module_unit Status module_end # --- Door Contact --- module_begin module_name DoorContact_01 module_type generic_data module_description Door contact server room (0=closed 1=open) module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.5.1.1.7.104001 module_min_warning 0.5 module_max_warning 0.5 module_unit Status module_end # --- Smoke Detector --- module_begin module_name SmokeDetector_01 module_type generic_data module_description Smoke detector server room (0=OK 1=Alarm) module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.5.1.1.7.106001 module_min_critical 0.5 module_max_critical 0.5 module_unit Status module_end # --- Sensor Status (Didactum overall status) --- module_begin module_name Device_Status module_type generic_data module_description Didactum system state (0=OK 1=Warning 2=Critical) module_snmpget module_snmpversion 2c module_snmp_community didactum_pfms module_snmp_agent 192.168.1.50 module_snmp_oid .1.3.6.1.4.1.46501.1.1.0 module_min_warning 0.5 module_max_warning 0.5 module_min_critical 1.5 module_max_critical 1.5 module_unit Status module_end
7. Configure Alert System
The Pandora FMS alert system is based on three levels: Commands (what is executed), Actions (how it is executed – with concrete parameters) and Templates (when it is executed – threshold and time conditions).
Step 1 – Configure SMTP Settings
Web Console → Management → Settings → General setup → Mail settings SMTP Server: mail.yourdomain.com SMTP Port: 25 or 587 SMTP User: pandora@yourdomain.com SMTP Password: Your SMTP password From address: pandora@yourdomain.com From name: Pandora FMS Alarm
Click Update. Send test email and check inbox.
Step 2 – Configure Alert Action "Mail to Admin"
Web Console → Management → Alerts → Actions → "Mail to admin" (predefined action in Pandora FMS, just adjust email address) To address (field1): admin@yourdomain.com Subject (field2): [Pandora ALARM] _agent_ - _module_ - _severity_ Message (field3): Alarm: _module_ | Value: _data_ | Status: _status_ → Update
Additional email recipients can be created as further actions (e.g. Mail to NOC).
Step 3 – Create Alert Template for Critical Sensors
Web Console → Management → Alerts → Templates → Click "Create"
Template: Didactum_Critical_Sensors
| Field | Value |
|---|---|
| Template name | Didactum_Critical_Sensors |
| Condition type | Critical (module is in Critical status) |
| Time threshold | 0 (immediately on first critical value) |
| Min. number of alerts | 1 |
| Max. number of alerts | empty (unlimited) |
| Recovery notify | Yes (send email also on normalization) |
Template: Didactum_Warning_Sensors
| Field | Value |
|---|---|
| Template name | Didactum_Warning_Sensors |
| Condition type | Warning |
| Time threshold | 300 (only after 5 min in Warning status) |
| Min. number of alerts | 1 |
| Recovery notify | Yes |
Save templates with Create.
Step 4 – Assign Alerts to Modules
Web Console → Management → Resources → Manage agents → Open agent "Didactum-Serverroom" → Tab "Alerts" → Click "Add alert"
| Module | Template | Action |
|---|---|---|
| Temperature_Sensor_01 | Didactum_Critical_Sensors | Mail to admin |
| Temperature_Sensor_01 | Didactum_Warning_Sensors | Mail to admin |
| Temperature_Sensor_02 | Didactum_Critical_Sensors | Mail to admin |
| Leakage_Sensor_01 | Didactum_Critical_Sensors | Mail to admin |
| Leakage_Sensor_02 | Didactum_Critical_Sensors | Mail to admin |
| SmokeDetector_01 | Didactum_Critical_Sensors | Mail to admin |
| DoorContact_01 | Didactum_Warning_Sensors | Mail to admin |
| Humidity_Sensor_01 | Didactum_Warning_Sensors | Mail to admin |
| Device_Status | Didactum_Warning_Sensors | Mail to admin |
Multiple templates (Warning + Critical) can be assigned per module.
8. Configure SNMP Trap Console (optional)
In addition to active SNMP polling, Pandora FMS can receive SNMP Traps that the Didactum device sends automatically on events. This enables immediate notification without waiting for the next polling cycle.
Step 1 – Activate SNMP Trap Console in pandora_server.conf
# /etc/pandora/pandora_server.conf snmpconsole 1 snmpconsole_threads 1 # Restart sudo systemctl restart pandora_server
Step 2 – Configure snmptrapd
# /etc/snmp/snmptrapd.conf authCommunity log,execute,net didactum_pfms disableAuthorization yes # Forward to Pandora FMS traphandle default /usr/lib/pandora/pandora_snmptrapd.pl
sudo systemctl restart snmptrapd
Step 3 – Create Trap Alert Rule
Web Console → Operation → Monitoring → SNMP → SNMP Console → Tab "SNMP Traps" → Click "Add trap alert"
| Field | Value |
|---|---|
| Source IP | 192.168.1.50 (Didactum device) |
| OID (Enterprise) | .1.3.6.1.4.1.46501 |
| Custom OID (Regex) | .*107.* (Leakage Traps) or .* (all) |
| Trap type | Generic (v2c) |
| Alert action | Mail to admin |
| Alert template | Didactum_Critical_Sensors |
Click Create. Received traps appear in the SNMP Console under Operation → Monitoring → SNMP → SNMP Console.
9. Test & Troubleshooting
Test SNMP Connection and OIDs
# From the Pandora FMS server: snmpwalk -v2c -c didactum_pfms 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1 # Check single temperature value (raw value / 10 = °C) snmpget -v2c -c didactum_pfms 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001 # Example output: INTEGER: 215 → 21.5 °C # Leakage status (0=dry, 1=water detected) snmpget -v2c -c didactum_pfms 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.107001
Check Polling Status
Web Console → Monitoring → Views → Agent detail → Select agent "Didactum-Serverroom" → All modules with current value and status visible → Module status color: Green = OK, Yellow = Warning, Red = Critical, Gray = Unknown
Error Messages and Solutions
| Problem | Cause & Solution |
|---|---|
| Module remains in "Unknown" status | Network Server not reachable or polling not yet executed → check Network Server status: pandora_server --status; wait for agent interval |
| SNMP polling fails | Community String wrong; UDP 161 blocked; SNMP not active on Didactum → test snmpwalk manually |
| Temperature value wrong (10× too high) | Post-process missing or set to 1 → set Post-process to 0.1 (÷ 10) |
| Leakage does not trigger Critical status | Critical threshold wrong → set Critical max to 0.5 (at value 1 Critical is triggered) |
| MIB upload fails | Invalid MIB syntax or missing dependencies → upload SNMPv2-SMI and SNMPv2-TC first |
| No email on alarm | Check SMTP settings; alert action not assigned to module; template condition not met |
| SNMP Traps do not appear in console | snmptrapd not started; Community String not entered in snmptrapd.conf; Pandora FMS snmpconsole not enabled |
View Pandora FMS Logs
# Server log tail -f /var/log/pandora/pandora_server.log # Network Server specific grep "network" /var/log/pandora/pandora_server.log | tail -50 # SNMP Trap Log tail -f /var/log/pandora/pandora_snmptrapd.log # Events in the Web Console Operation → Events → View events → Filter: Agent "Didactum-Serverroom"
10. Final Checklist
Didactum Device
- SNMP enabled (v2c or v3)
- Community String set (not "public"): didactum_pfms
- Device reachable via ping from Pandora FMS server
- Trap receiver IP set to Pandora FMS server (optional)
- MIB file downloaded
- snmpwalk from Pandora FMS server successful
Pandora FMS – Basic Configuration
- Network Server enabled (networkserver 1 in pandora_server.conf)
- MIB DIDACTUM-ENV-MIB.mib imported via MIB Uploader
- Agent Didactum-Serverroom created (IP: 192.168.1.50, Server: Network Server)
Modules
- Remote SNMP module created for each sensor
- Post-process 0.1 set for all temperature sensors
- Warning and Critical thresholds configured in °C (thanks to post-process directly in degrees)
- Leakage modules: Critical max = 0.5 (from raw value 1 = Critical)
- All modules show current value in the agent detail view
Alerts & Notification
- SMTP settings configured, test email received
- Alert action Mail to admin configured with correct email address
- Alert templates Didactum_Critical_Sensors and Didactum_Warning_Sensors created
- Alerts assigned to all relevant modules (Temperature, Leakage, Smoke, Door, Humidity)
- Test alarm triggered and email received
- Recovery notification enabled (normalization email)
SNMP Trap Console (optional)
- SNMP Trap Console enabled (snmpconsole 1 in pandora_server.conf)
- snmptrapd configured and started
- Trap alert rules created for Didactum Enterprise OID
- Test trap received and visible in SNMP Console