Language selection:
Skip to main navigation Skip to main content Skip to page footer

Didactum Monitoring & FreeRADIUS Integration

Complete step-by-step guide for integrating Didactum monitoring devices into a FreeRADIUS server – including OID reference and MIB import configuration.

  • Server: FreeRADIUS 3.x (Ubuntu / Debian)
  • Protocol: RADIUS + SNMP v1/v2c/v3
  • Device: Didactum Monitoring System 100 / 300T / 500T / 550T

1. Prerequisites and System Overview

Server Requirements

  • Ubuntu 20.04 / 22.04 LTS or Debian 11/12
  • At least 512 MB RAM, 1 CPU
  • Static IP address (e.g. 192.168.1.10)
  • Root or sudo access
  • UDP ports 1812 (authentication) and 1813 (accounting) open

Didactum Device

  • Monitoring System 100T, 300T / 500T or 550T
  • Firmware with RADIUS support
  • Network access to the RADIUS server
  • SNMP enabled (v1/v2c/v3)
  • MIB file (downloadable from the web interface)

What does RADIUS provide for Didactum?

Didactum monitoring devices support RADIUS for centralized user authentication in the web interface. Instead of local user accounts directly on the device, login credentials are verified against a central RADIUS server. This enables unified user management for multiple Didactum devices at the same time.

Network Architecture

[Administrator Browser]
       | HTTPS login
       v
[Didactum Monitoring System]  --RADIUS-->  [FreeRADIUS Server]
  IP: 192.168.1.50                           IP: 192.168.1.10
  Port: 443 (WebUI)                          Port: 1812/UDP
       |
       | SNMP (OID queries)
       v
[NMS / PRTG / Zabbix / Nagios]

2. Installing FreeRADIUS and Basic Configuration

Step 1 – Update system and install FreeRADIUS

sudo apt update && sudo apt upgrade -y
sudo apt install freeradius freeradius-utils -y

Check status:

sudo systemctl status freeradius

Step 2 – Start FreeRADIUS in debug mode

sudo systemctl stop freeradius
sudo freeradius -X

Successful start: 

At the end of the output, the following must appear: Ready to process requests — exit with Ctrl+C.

Step 3 – Configuration directory

/etc/freeradius/3.0/
├── radiusd.conf     <-- Main configuration
├── clients.conf     <-- RADIUS clients (e.g. Didactum devices)
├── users            <-- Local users
├── mods-available/  <-- Available modules
├── mods-enabled/    <-- Active modules (symlinks)
└── sites-enabled/   <-- Active virtual servers

Important: 

Create a backup before each change:

sudo cp /etc/freeradius/3.0/clients.conf /etc/freeradius/3.0/clients.conf.bak

3. Configure Didactum as a RADIUS Client

Every device that is allowed to send RADIUS requests must be entered in the clients.conf file.

Step 1 – Open clients.conf

sudo nano /etc/freeradius/3.0/clients.conf

Step 2 – Add Didactum entry at the end of the file

# -------------------------------------------------------
# Didactum Monitoring System – RADIUS Client
# -------------------------------------------------------
client didactum-monitor-01 {
    ipaddr     = 192.168.1.50
    secret     = Change_Your_Secret_Here
    shortname  = didactum-01
    nastype    = other
}

Security note: The secret must be at least 16 characters long and is configured identically in the Didactum web interface.

Step 3 – Option: Enable entire subnet

client didactum-netz {
    ipaddr     = 192.168.1.0/24
    secret     = Subnet_Secret
    shortname  = didactum-subnet
    nastype    = other
}

4. Configure User Authentication

Step 1 – Create local users

sudo nano /etc/freeradius/3.0/users

Insert the following entries at the beginning of the file (before the DEFAULT block). The indentation of the second line is syntactically mandatory:

admin       Cleartext-Password := "SecurePassword123!"
            Reply-Message = "Welcome, Administrator"

readonly    Cleartext-Password := "ReadOnly456#"
            Reply-Message = "Welcome, Read Access"

techniker   Cleartext-Password := "Technician789$"
            Reply-Message = "Welcome, Technician"

Step 2 – Enable PAP module

ls -la /etc/freeradius/3.0/mods-enabled/ | grep pap

sudo ln -s /etc/freeradius/3.0/mods-available/pap \\
           /etc/freeradius/3.0/mods-enabled/pap

Step 3 – Restart service

sudo systemctl restart freeradius
sudo systemctl status freeradius

5. Configure the Didactum Web Interface

Open web interface: 192.168.1.50 (adjust device IP)

Navigation

System Settings → Network → RADIUS

Enter the following values

Field in the Didactum web interfaceValue
Enable RADIUSEnabled
Server IP / Primary Server192.168.1.10
Port1812
Shared SecretIdentical to secret from clients.conf
Authentication methodPAP
Timeout5 seconds
Retry / Attempts3
Fallback to local accountsEnabled

Important: 

Test and note the local admin access beforehand – it is the fallback if RADIUS is not reachable.

6. 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

FieldMeaningExample (Sensor ID 101001)
.1.x.SENSOR_IDSensor ID.1.3.6.1.4.1.46501.5.1.1.1.101001
.5.x.SENSOR_IDSensor name.1.3.6.1.4.1.46501.5.1.1.5.101001
.6.x.SENSOR_IDStatus (0=OK, 1=Alarm).1.3.6.1.4.1.46501.5.1.1.6.101001
.7.x.SENSOR_IDMeasured value (current).1.3.6.1.4.1.46501.5.1.1.7.101001

Specific OIDs by sensor type

Sensor typeSensor IDOID – Measured valueOID – Status
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
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
Water sensor / leakage107001.1.3.6.1.4.1.46501.5.1.1.7.107001.1.3.6.1.4.1.46501.5.1.1.6.107001
Humidity102001.1.3.6.1.4.1.46501.5.1.1.7.102001.1.3.6.1.4.1.46501.5.1.1.6.102001
Potential-free contact101003.1.3.6.1.4.1.39052.5.1.1.7.101003.1.3.6.1.4.1.39052.5.1.1.6.101003
Door contact104001.1.3.6.1.4.1.46501.5.1.1.7.104001.1.3.6.1.4.1.46501.5.1.1.6.104001
Smoke detector106001.1.3.6.1.4.1.46501.5.1.1.7.106001.1.3.6.1.4.1.46501.5.1.1.6.106001

Determine sensor ID: In the Didactum web interface under System tree → Sensor → Details.

Temperature value: Raw value ÷ 10 = degrees Celsius (example: 235 = 23.5 °C)

Test SNMP query

# Temperature value (SNMPv2c)

snmpget -v 2c -c public 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001

# Leakage status (SNMPv2c)

snmpget -v 2c -c public 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.6.107001

# Temperature value (SNMPv3)

snmpget -v 3 -l authPriv -u snmpuser -a SHA -A "AuthPassword" \\
    -x AES -X "PrivPassword" 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001

7. MIB Import Configuration

Step 1 – Download MIB file

System Settings → SNMP → "Download MIB file" → didactum.mib

Step 2 – MIB reference configuration

-- ============================================================
-- DIDACTUM-MIB import configuration
-- Compatible with: iReasoning MIB Browser, PRTG, Zabbix,
--                  Nagios, Check_MK, OpenNMS
-- ============================================================

DIDACTUM-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 Ltd."
    CONTACT-INFO    "support@didactum.eu"
    DESCRIPTION     "Didactum Monitoring System MIB"
    ::= { enterprises 46501 }

-- Columns of the sensor table:
-- .1  = Sensor ID      .5  = Sensor name
-- .6  = Status         .7  = Measured value
--
-- Temperature:  raw value x 0.1 = degrees Celsius (235 = 23.5 C)
-- Leakage:      0 = dry, 1 = water detected
-- Contact:      0 = open,   1 = closed

sensorName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Configured name of the sensor"
    ::= { enterprises 46501 5 1 1 5 }

sensorStatus OBJECT-TYPE
    SYNTAX      INTEGER { ok(0), alarm(1), noConnect(2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "0=OK, 1=Alarm, 2=No signal"
    ::= { enterprises 46501 5 1 1 6 }

sensorValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Measured value of the sensor"
    ::= { enterprises 46501 5 1 1 7 }

END

Step 3 – Install MIB on Linux

sudo cp didactum.mib /usr/share/snmp/mibs/
echo "mibdirs /usr/share/snmp/mibs" >> ~/.snmp/snmp.conf
echo "mibs ALL" >> ~/.snmp/snmp.conf
snmpwalk -v 2c -c public -m ALL 192.168.1.50 enterprises.46501.5.1.1

Step 4 – Import MIB into PRTG

1. Copy didactum.mib to:
   C:\\Program Files (x86)\\PRTG Network Monitor\\snmpmibs\\
2. Restart PRTG service
3. Add sensor: "SNMP Custom OID"
   OID: .1.3.6.1.4.1.46501.5.1.1.7.SENSOR_ID
4. Temperature sensor: scaling factor 0.1, unit °C

8. Troubleshooting

Step 1 – Test RADIUS locally

radtest admin SecurePassword123! 127.0.0.1 1812 testing123
# Success: Received Access-Accept

Step 2 – Debug mode

sudo systemctl stop freeradius
sudo freeradius -X 2>&1 | tee /tmp/radius-debug.log

Error messages and solutions

MessageCause & solution
Access-AcceptAuthentication successful
Access-RejectIncorrect password or user missing → check users file
Client not foundIP not in clients.conf → add Didactum IP
Shared secret is incorrectSecret does not match → align in clients.conf and WebUI
No responseFirewall blocks port 1812/UDP → check rule

Step 3 – Firewall rules (Ubuntu UFW)

sudo ufw allow 1812/udp
sudo ufw allow 1813/udp
sudo ufw allow from 192.168.1.50 to any port 1812 proto udp

Step 4 – View logs

sudo tail -f /var/log/freeradius/radius.log
sudo journalctl -u freeradius -f --since "1 hour ago"

9. Completion Checklist

FreeRADIUS Server

  • FreeRADIUS installed and service running
  • clients.conf: Didactum IP and secret configured
  • users file: At least one user created
  • PAP module enabled (mods-enabled/pap)
  • Ports 1812 and 1813 UDP opened in the firewall
  • radtest successful locally (Access-Accept)
  • Autostart enabled: sudo systemctl enable freeradius

Didactum device

  • RADIUS enabled in the web interface
  • RADIUS server IP entered
  • Port 1812 entered
  • Shared secret identical to clients.conf
  • Fallback to local accounts enabled
  • SNMP enabled (v1/v2c or v3)
  • MIB file downloaded
  • Login test with RADIUS user successful

SNMP / OIDs

  • MIB file imported into NMS
  • snmpwalk / snmpget successfully tested
  • Sensor IDs noted from the web interface
  • Temperature sensor OID configured in NMS
  • Leakage OID monitored and alerting configured

Security

  • Strong shared secret (at least 16 characters)
  • Secure user passwords set
  • Only required IPs in clients.conf
  • SNMP community string changed (not “public")
  • SNMPv3 evaluated for production environments
  • Log rotation configured for radius.log

This website uses cookies

This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with our Cookie Policy.

Essential cookies enable basic functions and are necessary for the website to function properly.
Statistics cookies collect information anonymously. This information helps us to understand how our visitors use our website.
Marketing cookies are used by third parties or publishers to display personalized advertisements. They do this by tracking visitors across websites.