Didactum monitoring and Zabbix 6 integration
Complete step-by-step guide for integrating Didactum monitoring devices and sensors into Zabbix 6.x LTS via SNMP – including template import, item configuration, triggers, and OID reference.
- Zabbix version: 6.x LTS
- Protocol: SNMP v1/v2c/v3
- Devices: Didactum Monitoring System 100 / 300T / 500T / 550T
- Sensors: Temperature, leakage, humidity, door contact, smoke
1. Prerequisites and System Overview
Zabbix server
- Zabbix 6.x LTS installed and accessible
- Packages snmp and snmp-mibs-downloader installed
- UDP port 161 (SNMP polling) and UDP port 162 (SNMP traps) opened in the firewall
- Zabbix process SNMPTrapper enabled (for trap reception)
Didactum device
- Monitoring System 100T / 300T / 500T or 550T
- Network access to the Zabbix server
- SNMP enabled (v1/v2c or v3)
- MIB file available in the web interface
Architecture
[Didactum Monitoring System]
IP: 192.168.1.50
|
| SNMP Polling (UDP 161) --Zabbix queries-->
| SNMP Traps (UDP 162) <--Didactum sends--
v
[Zabbix Server]
IP: 192.168.1.10
Web frontend: 192.168.1.10/zabbix
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 – Open SNMP settings
System Settings → SNMP
Step 3 – Enter the following values
| Field in the Didactum web interface | Value |
|---|---|
| Enable SNMP | Enabled |
| SNMP version | v2c (recommended) or v3 for production environments |
| Community string (v1/v2c) | didactum_mon (do not use “public"!) |
| SNMP port | 161 |
| Trap receiver IP | 192.168.1.10 (IP of the Zabbix server) |
| Trap port | 162 |
| Trap version | v2c |
SNMPv3 settings (optional, increased security)
| Field | Value / Example |
|---|---|
| Security name | zabbix_user |
| Auth protocol | SHA |
| Auth password | at least 8 characters |
| Priv protocol | AES |
| Priv password | at least 8 characters |
| Security level | authPriv |
Step 4 – Save settings
Click the save icon. Then test SNMP from the Zabbix server:
snmpwalk -v 2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501
If lines with OID values appear, SNMP is configured correctly.
3. Download the MIB file and install it on the Zabbix server.
Step 1 – Download MIB from the Didactum web interface
System Settings → SNMP → "Download MIB file" → didactum.mib
Step 2 – Install MIB on the Zabbix server
# Install SNMP tools (if not already installed) sudo apt install snmp snmp-mibs-downloader -y # Copy MIB file sudo cp didactum.mib /usr/share/snmp/mibs/ # Adjust SNMP configuration echo "mibdirs /usr/share/snmp/mibs" >> /etc/snmp/snmp.conf echo "mibs ALL" >> /etc/snmp/snmp.conf # Test with MIB name snmpwalk -v 2c -c didactum_mon -m ALL 192.168.1.50 DIDACTUM-MIB::sensorValue
4. Create Didactum Host in Zabbix
Step 1 – Navigation
Configuration → Hosts → Create Host
Step 2 – Fill in the “Host” tab
| Field | Value |
|---|---|
| Host name | Didactum-Monitor-01 |
| Visible name | Didactum Monitoring System 01 |
| Groups | Didactum master modules (create new or select existing) |
| Interfaces → Add | Select type: SNMP |
| IP address | 192.168.1.50 |
| Port | 161 |
Step 3 – Fill in the “Macros” tab
Store the SNMP community string here as a macro:
| Macro | Value |
|---|---|
| {$SNMP_COMMUNITY} | didactum_mon |
For SNMPv3 additionally:
| Macro | Value |
|---|---|
| {$SNMPV3_USER} | zabbix_user |
| {$SNMPV3_AUTHPASSPHRASE} | Your auth password |
| {$SNMPV3_PRIVPASSPHRASE} | Your priv password |
Step 4 – Save host
Click Add.
The host now appears in the host list. The icon next to “SNMP” turns green once the connection works (may take a few minutes).
5. Import and Assign the Didactum Zabbix Template
Step 1 – Download official Didactum template
Didactum provides a free template. Download sources:
- Directly from Didactum: https://www.didactum-security.com → Downloads → Zabbix Template
- Filename: zbx_didactum_template.xml
Step 2 – Import template into Zabbix
Configuration → Templates → Import (top right)
Select the file zbx_didactum_template.xml, leave all options enabled, click Import.
Step 3 – Assign template to the host
Configuration → Hosts → Didactum-Monitor-01 → Tab "Templates" → "Link new templates" → search for "Didactum" → select template → Add → Update
Step 4 – Check data
Monitoring → Latest data → Host: Didactum-Monitor-01
After a few minutes, the first measured values of all connected sensors will appear.
6. Manually Create SNMP Items (Without a Template)
If the Didactum template is not used or additional sensors are to be integrated, items can be created manually.
Navigation
Configuration → Hosts → Didactum-Monitor-01 → Items → Create Item
Item: Temperature value
| Field | Value |
|---|---|
| Name | Temperature Sensor 01 |
| Type | SNMP agent |
| Key | didactum.temp[101001] |
| SNMP OID | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
| SNMP community | {$SNMP_COMMUNITY} |
| Type of information | Numeric (float) |
| Units | °C |
| Multiplier | 0.1 (raw value ÷ 10 = degrees Celsius) |
| Update interval | 60s |
| History storage period | 90d |
| Trend storage period | 365d |
| Applications | Didactum Sensors |
Item: Temperature sensor status
| Field | Value |
|---|---|
| Name | Temperature Sensor 01 – Status |
| Type | SNMP agent |
| SNMP OID | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| Type of information | Numeric (unsigned) |
| Units | leave empty |
Item: Water sensor / leakage
| Field | Value |
|---|---|
| Name | Leakage Sensor 01 |
| Type | SNMP agent |
| SNMP OID | .1.3.6.1.4.1.46501.5.1.1.7.107001 |
| Type of information | Numeric (unsigned) |
| Value mapping | Didactum Leak Status (see below) |
| Update interval | 30s |
Create value mapping (for leakage and status sensors)
Administration → General → Value mapping → Create value map Name: Didactum Sensor Status 0 → OK / Dry 1 → ALARM / Water detected 2 → No connection Name: Didactum Leak Status 0 → Dry 1 → Water detected
7. Configure Triggers
Define triggers to specify when Zabbix generates an alert.
Navigation:
Configuration → Hosts → Didactum-Monitor-01 → Triggers → Create Trigger
Trigger: Temperature too high
| Field | Value |
|---|---|
| Name | Temperature too high: {HOST.NAME} |
| Severity | High |
| Expression | last(/Didactum-Monitor-01/didactum.temp[101001])>28 |
| Recovery expression | last(/Didactum-Monitor-01/didactum.temp[101001])<26 |
| Description | Temperature exceeds 28°C – check cooling system! |
Trigger: Temperature critical
| Field | Value |
|---|---|
| Name | Temperature CRITICAL: {HOST.NAME} |
| Severity | Disaster |
| Expression | last(/Didactum-Monitor-01/didactum.temp[101001])>35 |
| Description | Critical temperature – immediate action required! |
Trigger: Leakage detected
| Field | Value |
|---|---|
| Name | LEAKAGE detected: {HOST.NAME} |
| Severity | Disaster |
| Expression | last(/Didactum-Monitor-01/didactum.leak[107001])=1 |
| Recovery expression | last(/Didactum-Monitor-01/didactum.leak[107001])=0 |
| Description | Water leakage detected – immediate action required! |
Trigger: Sensor not reachable
| Field | Value |
|---|---|
| Name | Sensor connection error: {HOST.NAME} |
| Severity | Average |
| Expression | last(/Didactum-Monitor-01/didactum.temp.status[101001])=2 |
Note on thresholds:
- The values 28°C and 35°C are examples.
- Adjust them to the actual requirements of your infrastructure (e.g. server room: warning from 25°C, critical from 30°C).
8. SNMP OID Reference
All Didactum OIDs start with .1.3.6.1.4.1.46501 (older firmware) or .1.3.6.1.4.1.39052 (newer models). The sensor ID is appended at the end.
OID fields per sensor
| Field | Meaning | Example |
|---|---|---|
| .1.x.SENSOR_ID | Sensor ID | .1.3.6.1.4.1.46501.5.1.1.1.101001 |
| .5.x.SENSOR_ID | Sensor name | .1.3.6.1.4.1.46501.5.1.1.5.101001 |
| .6.x.SENSOR_ID | Status (0=OK, 1=Alarm, 2=No signal) | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| .7.x.SENSOR_ID | Measured value (current value) | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
Sensor types and corresponding OIDs
| Sensor type | Sensor ID | OID measured value | OID status | Unit / Note |
|---|---|---|---|---|
| Temperature sensor (digital) | 101001 | .1.3.6.1.4.1.46501.5.1.1.7.101001 | .1.3.6.1.4.1.46501.5.1.1.6.101001 | Raw value ÷ 10 = °C (e.g. 235 = 23.5 °C) |
| Temperature sensor (analog) | 201001 | .1.3.6.1.4.1.39052.5.2.1.7.201001 | .1.3.6.1.4.1.39052.5.2.1.6.201001 | Raw value ÷ 10 = °C |
| Water sensor / leakage | 107001 | .1.3.6.1.4.1.46501.5.1.1.7.107001 | .1.3.6.1.4.1.46501.5.1.1.6.107001 | 0 = dry, 1 = water detected |
| Humidity | 102001 | .1.3.6.1.4.1.46501.5.1.1.7.102001 | .1.3.6.1.4.1.46501.5.1.1.6.102001 | Value in % (e.g. 65 = 65 %) |
| Potential-free contact | 101003 | .1.3.6.1.4.1.39052.5.1.1.7.101003 | .1.3.6.1.4.1.39052.5.1.1.6.101003 | 0 = open, 1 = closed |
| Door contact | 104001 | .1.3.6.1.4.1.46501.5.1.1.7.104001 | .1.3.6.1.4.1.46501.5.1.1.6.104001 | 0 = closed, 1 = open |
| Smoke detector | 106001 | .1.3.6.1.4.1.46501.5.1.1.7.106001 | .1.3.6.1.4.1.46501.5.1.1.6.106001 | 0 = no smoke, 1 = alarm |
Determine sensor ID:
In the Didactum web interface under System tree → select sensor → Details. The displayed ID is appended to the end of the OID.
MIB prefix per model:
Older devices use .1.3.6.1.4.1.46501, newer ones may use .1.3.6.1.4.1.39052. Refer to the MIB file of your device for the exact OIDs.
9. Receiving SNMP Traps
In addition to active polling, Zabbix can also receive SNMP traps that the Didactum device sends automatically in case of an alarm.
Step 1 – Install snmptrapd
sudo apt install snmptrapd snmptt -y
Step 2 – Configure snmptrapd
sudo nano /etc/snmp/snmptrapd.conf
Enter the following content:
authCommunity execute,log,net didactum_mon traphandle default /usr/sbin/snmptthandler
Step 3 – Configure Zabbix server for trap reception
sudo nano /etc/zabbix/zabbix_server.conf
Find and enable the following lines:
SNMPTrapperFile=/tmp/zabbix_traps.tmp StartSNMPTrapper=1
Step 4 – Restart services
sudo systemctl restart snmptrapd sudo systemctl restart zabbix-server
Step 5 – Create trap item in Zabbix
Configuration → Hosts → Didactum-Monitor-01 → Items → Create Item
| Field | Value |
|---|---|
| Name | SNMP Trap – Didactum Alarm |
| Type | SNMP trap |
| Key | snmptrap.fallback |
| Type of information | Log |
| Log time format | hh:mm:ss yyyy/MM/dd |
10. Set Up Email Notifications
Step 1 – Configure media type
Administration → Media types → Email → edit
| Field | Value |
|---|---|
| SMTP server | Your mail server, e.g. mail.yourdomain.com |
| SMTP server port | 587 (TLS) or 465 (SSL) |
| SMTP helo | yourdomain.com |
| SMTP email | [zabbix@yourdomain.com](mailto:zabbix@yourdomain.com) |
| Connection security | STARTTLS |
Step 2 – Add email address for admin
Administration → Users → Admin → Media → Add Type: Email Send to: [your@email-address.com](mailto:your@email-address.com) When active: 1-7,00:00-24:00 Severity: enable all
Step 3 – Create action for trigger alerts
Configuration → Actions → Trigger actions → Create action
| Field | Value |
|---|---|
| Name | Didactum alarm notification |
| Conditions → Add | Trigger value = Problem |
| Operations → Add | Operation type: Send message |
| Send to users | Admin (or custom user group) |
| Send only to |
Message template (Subject / Message)
Subject:
ALARM: {TRIGGER.NAME} on {HOST.NAME}
Message:
Time: {EVENT.DATE} {EVENT.TIME}
Host: {HOST.NAME} ({HOST.IP})
Trigger: {TRIGGER.NAME}
Severity: {TRIGGER.SEVERITY}
Status: {TRIGGER.STATUS}
Item: {ITEM.NAME} = {ITEM.VALUE}
11. Troubleshooting
Test SNMP connection
# Simple connection test snmpget -v 2c -c didactum_mon 192.168.1.50 sysDescr.0 # Retrieve all sensor values snmpwalk -v 2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1 # Retrieve a single temperature value snmpget -v 2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001
Check Zabbix Latest Data
Monitoring → Latest data → Filter: Host = Didactum-Monitor-01
If values appear and the timestamp updates, polling works correctly.
Error messages and solutions
| Problem | Cause & solution |
|---|---|
| Host icon remains red / grey | SNMP connection failed → check IP, port, community string; allow UDP 161 in firewall |
| “No SNMP response" | SNMP not enabled on the Didactum device or wrong community string |
| Temperature value appears 10x too high | Multiplier missing → edit item, set multiplier to 0.1 |
| Item shows “Not supported" | OID incorrect or sensor ID wrong → check sensor ID in the Didactum web interface |
| No SNMP trap received | Trap receiver IP incorrect in the Didactum web interface → enter Zabbix server IP; allow port 162 |
| No email on alarm | Check media type, user media and action; view Zabbix log: /var/log/zabbix/zabbix_server.log |
View Zabbix logs
sudo tail -f /var/log/zabbix/zabbix_server.log sudo tail -f /var/log/zabbix/zabbix_agentd.log
Check Zabbix processes
sudo systemctl status zabbix-server sudo systemctl status zabbix-agent sudo systemctl status snmptrapd
12. Final Checklist
Didactum device
- SNMP enabled (v2c or v3)
- Community string set (not “public")
- Trap receiver IP set to Zabbix server
- Trap port 162 configured
- MIB file downloaded
Zabbix server
- Packages snmp, snmp-mibs-downloader installed
- MIB file stored in /usr/share/snmp/mibs/
- snmpwalk test successful
- Didactum host created (SNMP interface, correct IP)
- Macro {$SNMP_COMMUNITY} set with community string
- Didactum template imported and assigned to the host
- Latest Data shows sensor values
Items & triggers
- Temperature item: multiplier 0.1 set, unit °C
- Leakage item: value mapping configured
- Trigger for temperature warning created
- Trigger for leakage created (severity: Disaster)
- Trigger for sensor connection error created
Alerting
- Email media type configured
- Admin user assigned an email address
- Trigger action “Didactum Alarm” created
- Test alarm triggered and email received
SNMP traps (optional)
- snmptrapd installed and configured
- zabbix_server.conf: StartSNMPTrapper=1 set
- Trap item (snmptrap.fallback) created
- Test trap received and visible in Latest Data