Index: includes/definitions/mibs/snr.inc.php
===================================================================
--- includes/definitions/mibs/snr.inc.php	(revision 11305)
+++ includes/definitions/mibs/snr.inc.php	(working copy)
@@ -18,7 +18,7 @@
 
 // SNR-SWITCH-MIB::sysHardwareVersion.0 = STRING: "1.0.1"
 // SNR-SWITCH-MIB::sysSoftwareVersion.0 = STRING: "7.5.3.2(R0004.0281)"
-$config['mibs'][$mib]['version'][]  = [ 'oid' => 'sysSoftwareVersion.0', 'transform' => [ 'action' => 'explode', 'delimiter' => '(', 'index' => 'first' ] ];
+$config['mibs'][$mib]['version'][]  = [ 'oid' => 'sysSoftwareVersion.0'];
 $config['mibs'][$mib]['features'][] = [ 'oid' => 'sysHardwareVersion.0' ];
 
 // Include unified DCN clone definitions
@@ -73,6 +73,7 @@
 $config['mibs'][$mib]['states'][$type][1] = array('name' => 'up',       'event' => 'ok');
 $config['mibs'][$mib]['states'][$type][2] = array('name' => 'unknown',  'event' => 'ok');
 
+// SNR ERD (Ethernet Remote Device)
 $mib = 'SNR-ERD-2';
 $config['mibs'][$mib]['enable'] = 1;
 $config['mibs'][$mib]['identity_num'] = '.1.3.6.1.4.1.40418.2.2';
@@ -81,85 +82,161 @@
 
 //$config['mibs'][$mib]['sensor'][] = array ('oid' => 'temperatureSensor','descr' => 'Temperature', 'class' => 'temperature', 'measured' => 'device', 'oid_num' => '.1.3.6.1.4.1.40418.2.2.4.1');
 
+// SNR-ERD-2::ipAddress.0 = IpAddress: 192.168.15.3
+// SNR-ERD-2::ipGatewayAddress.0 = IpAddress: 192.168.15.254
+// SNR-ERD-2::ipMonitoringDevice.0 = IpAddress: 0.0.0.0
+// SNR-ERD-2::ipForTrap.0 = IpAddress: 192.168.12.250
+// SNR-ERD-2::resetSmartContactDO1.0 = INTEGER: bypass(0)
+// SNR-ERD-2::numberOfResetPositives.0 = INTEGER: 1
+// SNR-ERD-2::remoteControlContactDO2.0 = INTEGER: manOFF(1)
+// SNR-ERD-2::monitorAlarmSignalContactDIA.0 = INTEGER: doorIsOpen(2)
+// SNR-ERD-2::numberOfAlarmPositives.0 = INTEGER: 43
+// SNR-ERD-2::monitorAnySensorSignal1contactDI1.0 = INTEGER: sensorIs1(2)
+// SNR-ERD-2::monitorAnySensorSignal2contactDI2.0 = INTEGER: sensorIs1(2)
+// SNR-ERD-2::monitorAnySensorSignal3contactDI3.0 = INTEGER: sensorIs1(2)
+// SNR-ERD-2::monitorVoltageSignal.0 = INTEGER: voltageIsNo(1)
+// SNR-ERD-2::temperatureSensor.0 = INTEGER: 24
+// SNR-ERD-2::voltageSensorContactADCIN.0 = INTEGER: 0
+// SNR-ERD-2::sysVoltageAlarm.0 = INTEGER: 0
+// SNR-ERD-2::communityString.0 = STRING: "secret"
+// SNR-ERD-2::trapMode.0 = INTEGER: cyclically(0)
+// SNR-ERD-2::alarmSenseName.0 = STRING: "Door ALARM"
+// SNR-ERD-2::userSense1Name.0 = STRING: "1st sensor"
+// SNR-ERD-2::userSense2Name.0 = STRING: "2nd sensor"
+// SNR-ERD-2::userSense3Name.0 = STRING: "3rd sensor"
+
 // Statuses
-$config['mibs'][$mib]['status'][] = array(
-  'oid'              => 'monitorAlarmSignalContact3',
-  'descr'            => 'ALARM', // Fallback
-  'oid_descr'        => 'alarmSenseName.0',
-  'type'             => 'monitorAlarmSignalContact2',
+$type = 'erd2monitorAlarmSignalContactDIA';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'sensorOff',   'event' => 'exclude'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'doorIsClose', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'doorIsOpen',  'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'sensorOn',    'event' => 'exclude'];
+
+$type = 'erd2monitorAnySensorDI';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'sensorOff', 'event' => 'exclude'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'sensorIs0', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'sensorIs1', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'sensorOn',  'event' => 'exclude'];
+
+$type = 'erd2monitorVoltageSignal';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'sensorOff',    'event' => 'exclude'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'voltageIsNo',  'event' => 'alert'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'voltageIsYes', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'sensorOn',     'event' => 'exclude'];
+
+$type = 'erd2resetSmartContactDO1';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'bypass',         'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'reset',          'event' => 'alert'];
+
+$type = 'erd2remoteControlContactDO2';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'manON',          'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'manOFF',         'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'manualSetON',    'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'termostatSetON', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][4] = ['name' => 'switch',         'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][5] = ['name' => 'autoON',         'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][6] = ['name' => 'autoOFF',        'event' => 'ok'];
+
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'monitorAlarmSignalContactDIA',
+  'descr'            => 'Alarm Signal Contact DIA (%alarmSenseName%)',
+  'oid_extra'        => 'alarmSenseName',
+  'type'             => 'erd2monitorAlarmSignalContactDIA',
   'measured'         => 'other',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.2.3.1'
-);
+];
 
-$type = 'monitorAlarmSignalContact2';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'sensorOff', 'event' => 'exclude');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'doorIsClose', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'doorIsOpen', 'event' => 'alert');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'sensorOn', 'event' => 'exclude');
-
-$config['mibs'][$mib]['status'][] = array(
-  'oid'              => 'monitorAnySensorSignal1contact4',
-  'descr'            => '1st sensor', // Fallback
-  'oid_descr'        => 'userSense1Name.0',
-  'type'             => 'monitorAnySensorSignal2',
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'monitorAnySensorSignal1contactDI1',
+  'descr'            => 'sensor DI1 (%userSense1Name%)',
+  'oid_extra'        => 'userSense1Name',
+  'type'             => 'erd2monitorAnySensorDI',
   'measured'         => 'other',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.2.3.3'
-);
-$config['mibs'][$mib]['status'][] = array(
-  'oid'              => 'monitorAnySensorSignal2contact7',
-  'descr'            => '2nd sensor', // Fallback
-  'oid_descr'        => 'userSense2Name.0',
+];
+
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'monitorAnySensorSignal2contactDI2',
+  'descr'            => 'sensor DI2 (%userSense2Name%)',
+  'oid_extra'        => 'userSense2Name',
+  'type'             => 'erd2monitorAnySensorDI',
   'measured'         => 'other',
-  'type'             => 'monitorAnySensorSignal2',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.2.3.4'
-);
-$config['mibs'][$mib]['status'][] = array(
-  'oid'              => 'monitorAnySensorSignal3contact9',
-  'descr'            => '3rd sensor', // Fallback
-  'oid_descr'        => 'userSense3Name.0',
+];
+
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'monitorAnySensorSignal3contactDI3',
+  'descr'            => 'sensor DI3 (%userSense3Name%)',
+  'oid_extra'        => 'userSense3Name',
   'measured'         => 'other',
-  'type'             => 'monitorAnySensorSignal2',
+  'type'             => 'erd2monitorAnySensorDI',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.2.3.5'
-);
+];
 
-$type = 'monitorAnySensorSignal2';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'sensorOff', 'event' => 'exclude');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'sensorIs0', 'event' => 'alert');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'sensorIs1', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'sensorOn', 'event' => 'exclude');
-
-$config['mibs'][$mib]['status'][] = array(
+$config['mibs'][$mib]['status'][] = [
   'oid'      => 'monitorVoltageSignal',
   'descr'    => 'voltage on sensor',
   'measured' => 'power',
-  'type'     => 'monitorVoltageSignal',
+  'type'     => 'erd2monitorVoltageSignal',
   'oid_num'  => '.1.3.6.1.4.1.40418.2.2.3.6'
-);
+];
 
-$type = 'monitorVoltageSignal';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'sensorOff', 'event' => 'exclude');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'voltageIsNo', 'event' => 'alert');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'voltageIsYes', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'sensorOn', 'event' => 'exclude');
+$config['mibs'][$mib]['status'][] = [
+  'oid'      => 'resetSmartContactDO1',
+  'descr'    => 'Reset Smart Contact DO1',
+  'measured' => 'other',
+  'type'     => 'erd2resetSmartContactDO1',
+  'oid_num'  => '.1.3.6.1.4.1.40418.2.2.2.1'
+];
 
-$config['mibs'][$mib]['status'][] = array(
-  'oid'      => 'remoteControlContact8',
-  'descr'    => 'Remote Control',
+$config['mibs'][$mib]['status'][] = [
+  'oid'      => 'remoteControlContactDO2',
+  'descr'    => 'Remote Control DO2',
   'measured' => 'other',
-  'type'     => 'remoteControlContact',
+  'type'     => 'erd2remoteControlContactDO2',
   'oid_num'  => '.1.3.6.1.4.1.40418.2.2.2.3'
-);
+];
 
-$type = 'remoteControlContact';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'manON', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'manOFF', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'manualSetON', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'termostatSetON', 'event' => 'warning');
-$config['mibs'][$mib]['states'][$type][4] = array('name' => 'switch', 'event' => 'warning');
-$config['mibs'][$mib]['states'][$type][5] = array('name' => 'autoON', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][6] = array('name' => 'autoOFF', 'event' => 'ok');
+// Mike says it is not counter
+/*
+ $config['mibs'][$mib]['counter'][] = [
+  'oid'                 => 'numberOfResetPositives',
+  'descr'               => 'Number Of Reset Positives',
+  'class'               => 'other',
+  'measured'            => 'other',
+  'scale'               => 1,
+  'oid_num'             => '.1.3.6.1.4.1.40418.2.2.2.2'
+];
 
+$config['mibs'][$mib]['counter'][] = [
+  'oid'                 => 'numberOfAlarmPositives',
+  'descr'               => 'Number Of Alarm Positives',
+  'class'               => 'other',
+  'measured'            => 'other',
+  'scale'               => 1,
+  'oid_num'             => '.1.3.6.1.4.1.40418.2.2.3.2'
+];
+*/
 
+$config['mibs'][$mib]['sensor'][] = [
+  'oid'      => 'temperatureSensor',
+  'class'    => 'temperature',
+  'descr'    => 'Temperature',
+  'oid_num'  => '.1.3.6.1.4.1.40418.2.2.4.1',
+  'measured' => 'other',
+  'scale'    => 1
+];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'oid'      => 'voltageSensorContactADCIN',
+  'class'    => 'voltage',
+  'descr'    => 'Voltage Sensor Contact ADC IN',
+  'oid_num'  => '.1.3.6.1.4.1.40418.2.2.4.2.0',
+  'measured' => 'power',
+  'scale'    => 1
+];
+
+//====================
 $mib = 'SNR-ERD-3';
 $config['mibs'][$mib]['enable'] = 1;
 $config['mibs'][$mib]['identity_num'] = '.1.3.6.1.4.1.40418.2.3';
@@ -166,121 +243,185 @@
 $config['mibs'][$mib]['mib_dir'] = 'snr';
 $config['mibs'][$mib]['descr'] = 'SNR Ethernet Remote Device v3';
 
+// SNR-ERD-3::ipAddress.0 = IpAddress: 192.168.12.19
+// SNR-ERD-3::ipGatewayAddress.0 = IpAddress: 192.168.12.1
+// SNR-ERD-3::ipMonitoringDevice.0 = IpAddress: 0.0.0.0
+// SNR-ERD-3::ipForTrap.0 = IpAddress: 192.168.12.113
+// SNR-ERD-3::resetSmartContact7.0 = INTEGER: bypass(0)
+// SNR-ERD-3::numberOfResetPositives.0 = INTEGER: resetPositives(0)
+// SNR-ERD-3::remoteControlContact8.0 = INTEGER: manON(0)
+// SNR-ERD-3::monitorAlarmSignal1Contact5.0 = INTEGER: sensorOff(0)
+// SNR-ERD-3::monitorAlarmSignal2Contact6.0 = INTEGER: sensorOff(0)
+// SNR-ERD-3::numberOfAlarmPositives.0 = INTEGER: resetPositives(0)
+// SNR-ERD-3::monitorAnySensorSignal1contact2.0 = INTEGER: sensorOff(0)
+// SNR-ERD-3::monitorAnySensorSignal2contact3.0 = INTEGER: sensorOff(0)
+// SNR-ERD-3::monitorAnySensorSignal3contact4.0 = INTEGER: sensorOff(0)
+// SNR-ERD-3::monitorVoltageSignal1.0 = INTEGER: sensorOff(0)
+// SNR-ERD-3::monitorVoltageSignal2.0 = INTEGER: sensorOff(0)
+// SNR-ERD-3::temperatureSensor.0 = INTEGER: 3
+// SNR-ERD-3::temperatureSensorsOut.0 = INTEGER: 1
+// SNR-ERD-3::voltageSensor1Contact10.0 = INTEGER: 0
+// SNR-ERD-3::sysVoltageAlarm.0 = INTEGER: 0
+// SNR-ERD-3::voltageSensor2Contact11.0 = INTEGER: 0
+// SNR-ERD-3::sysVoltage2Alarm.0 = INTEGER: 0
+// SNR-ERD-3::communityString.0 = STRING: "secret"
+// SNR-ERD-3::trapMode.0 = INTEGER: cyclically(0)
+// SNR-ERD-3::alarmSense1Name.0 = STRING: "ALARM"
+// SNR-ERD-3::alarmSense2Name.0 = STRING: "ALARM2"
+// SNR-ERD-3::userSense1Name.0 = STRING: "1st sensor"
+// SNR-ERD-3::userSense2Name.0 = STRING: "2nd sensor"
+// SNR-ERD-3::userSense3Name.0 = STRING: "3rd sensor"
+
 // Statuses
-$config['mibs'][$mib]['status'][] = [
-  'oid'              => 'resetSmartContact7',
-  'descr'            => 'Smart Contact 7',
-  'type'             => 'resetSmartContact',
-  'measured'         => 'other',
-  'oid_num'          => '.1.3.6.1.4.1.40418.2.3.2.1'
-];
+$type = 'erd3monitorAlarmSignalContact';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'sensorOff',   'event' => 'exclude'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'doorIsClose', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'doorIsOpen',  'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'sensorOn',    'event' => 'exclude'];
 
-$type = 'resetSmartContact';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'bypass', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'reset', 'event' => 'ok');
+$type = 'monitorAnySensorSignalcontact';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'sensorOff', 'event' => 'exclude'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'sensorIs0', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'sensorIs1', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'sensorOn',  'event' => 'exclude'];
 
-$config['mibs'][$mib]['status'][] = array(
-  'oid'              => 'remoteControlContact8',
-  'descr'            => 'Remote Control Contact 8',
-  'type'             => 'remoteControlContact',
-  'measured'         => 'other',
-  'oid_num'          => '1.3.6.1.4.1.40418.2.3.2.3'
-);
+$type = 'monitorVoltageSignal';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'sensorOff',    'event' => 'exclude'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'voltageIsNo',  'event' => 'alert'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'voltageIsYes', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'sensorOn',     'event' => 'exclude'];
 
-$type = 'remoteControlContact';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'manON', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'manOFF', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'manualSetON', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'termostatSetON', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][4] = array('name' => 'switch', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][5] = array('name' => 'autoON', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][6] = array('name' => 'autoOFF', 'event' => 'ok');
+$type = 'erd3resetSmartContact7';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'bypass', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'reset',  'event' => 'ok'];
 
-$config['mibs'][$mib]['status'][] = array(
+$type = 'erd3remoteControlContact8';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'manON',          'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'manOFF',         'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'manualSetON',    'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][3] = ['name' => 'termostatSetON', 'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][4] = ['name' => 'switch',         'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][5] = ['name' => 'autoON',         'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][6] = ['name' => 'autoOFF',        'event' => 'ok'];
+
+$config['mibs'][$mib]['status'][] = [
   'oid'              => 'monitorAlarmSignal1Contact5',
-  'descr'            => 'Alarm Signal 1 Contact 5',
+  'descr'            => 'Alarm Signal Contact 5 (%alarmSense1Name%)',
+  'oid_extra'        => 'alarmSense1Name',
+  'type'             => 'erd3monitorAlarmSignalContact',
   'measured'         => 'other',
-  'type'             => 'monitorAlarmSignalContact',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.1'
-);
+];
 
-$config['mibs'][$mib]['status'][] = array(
+$config['mibs'][$mib]['status'][] = [
   'oid'              => 'monitorAlarmSignal2Contact6',
-  'descr'            => 'Alarm Signal 2 Contact 6',
+  'descr'            => 'Alarm Signal Contact 6 (%alarmSense2Name%)',
+  'oid_extra'        => 'alarmSense2Name',
+  'type'             => 'erd3monitorAlarmSignalContact',
   'measured'         => 'other',
-  'type'             => 'monitorAlarmSignalContact',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.2'
-);
+];
 
-$type = 'monitorAlarmSignalContact';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'sensorOff', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'doorIsClose', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'doorIsOpen', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'sensorOn', 'event' => 'ok');
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'resetSmartContact7',
+  'descr'            => 'Reset Smart Contact 7',
+  'measured'         => 'other',
+  'type'             => 'erd3resetSmartContact7',
+  'oid_num'          => '.1.3.6.1.4.1.40418.2.3.2.1'
+];
 
-$config['mibs'][$mib]['status'][] = array(
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'remoteControlContact8',
+  'descr'            => 'Remote Control 8',
+  'measured'         => 'other',
+  'type'             => 'erd3remoteControlContact8',
+  'oid_num'          => '.1.3.6.1.4.1.40418.2.3.2.3'
+];
+
+$config['mibs'][$mib]['status'][] = [
   'oid'              => 'monitorAnySensorSignal1contact2',
-  'descr'            => 'Any Sensor Signal 1 Contact 2',
+  'descr'            => 'Any Sensor Signal Contact 2 (%userSense1Name%)',
+  'oid_extra'        => 'userSense1Name',
   'measured'         => 'other',
   'type'             => 'monitorAnySensorSignalcontact',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.4'
-);
+];
 
-$config['mibs'][$mib]['status'][] = array(
+$config['mibs'][$mib]['status'][] = [
   'oid'              => 'monitorAnySensorSignal2contact3',
-  'descr'            => 'Any Sensor Signal 2 Contact 3',
+  'descr'            => 'Any Sensor Signal Contact 3 (%userSense2Name%)',
+  'oid_descr'        => 'userSense2Name',
   'measured'         => 'other',
   'type'             => 'monitorAnySensorSignalcontact',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.5'
-);
+];
 
-$type = 'monitorAnySensorSignalcontact';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'sensorOff', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'sensorIs0', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'sensorIs1', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'sensorOn', 'event' => 'ok');
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'monitorAnySensorSignal3contact4',
+  'descr'            => 'Any Sensor Signal Contact 4 (%userSense3Name%)',
+  'oid_descr'        => 'userSense3Name',
+  'measured'         => 'other',
+  'type'             => 'monitorAnySensorSignalcontact',
+  'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.6'
+];
 
-$config['mibs'][$mib]['status'][] = array(
+$config['mibs'][$mib]['status'][] = [
   'oid'              => 'monitorVoltageSignal1',
   'descr'            => 'voltage on sensor1',
   'measured'         => 'other',
   'type'             => 'monitorVoltageSignal',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.7'
-);
+];
 
-$config['mibs'][$mib]['status'][] = array(
+$config['mibs'][$mib]['status'][] = [
   'oid'              => 'monitorVoltageSignal2',
   'descr'            => 'voltage on sensor2',
   'measured'         => 'other',
   'type'             => 'monitorVoltageSignal',
   'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.8'
-);
+];
 
-$type = 'monitorVoltageSignal';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'sensorOff', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'voltageIsNo', 'event' => 'alert');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'voltageIsYes', 'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][3] = array('name' => 'sensorOn', 'event' => 'ok');
+// Mike says it is not counter
+/*
+$config['mibs'][$mib]['counter'][] = [
+  'oid'              => 'numberOfResetPositives',
+  'descr'            => 'Number Of Reset Positives',
+  'class'            => 'other',
+  'measured'         => 'other',
+  'scale'            => 1,
+  'oid_num'          => '.1.3.6.1.4.1.40418.2.3.2.2'
+];
 
-$config['mibs'][$mib]['sensor'][] = array(
+$config['mibs'][$mib]['counter'][] = [
+  'oid'              => 'numberOfAlarmPositives',
+  'descr'            => 'Number Of Alarm Positives',
+  'class'            => 'other',
+  'measured'         => 'other',
+  'scale'            => 1,
+  'oid_num'          => '.1.3.6.1.4.1.40418.2.3.3.3'
+];
+*/
+
+// Sensors
+$config['mibs'][$mib]['sensor'][] = [
   'oid'      => 'temperatureSensor',
   'class'    => 'temperature',
   'descr'    => 'Temperature',
   'oid_num'  => '.1.3.6.1.4.1.40418.2.3.4.1',
-  'measured' => 'device',
+  'measured' => 'other',
   'scale'    => 1
-);
+];
 
-$config['mibs'][$mib]['sensor'][] = array(
+$config['mibs'][$mib]['sensor'][] = [
   'oid'      => 'temperatureSensorsOut',
   'class'    => 'temperature',
   'descr'    => 'Temperature OUT',
   'oid_num'  => '.1.3.6.1.4.1.40418.2.3.4.2',
-  'measured' => 'device',
+  'measured' => 'other',
   'scale'    => 1
-);
+];
 
-$config['mibs'][$mib]['sensor'][] = array(
+$config['mibs'][$mib]['sensor'][] = [
   'oid'      => 'voltageSensor1Contact10',
   'class'    => 'voltage',
   'descr'    => 'Sensor 1 Contact 10',
@@ -287,9 +428,9 @@
   'oid_num'  => '.1.3.6.1.4.1.40418.2.3.4.3.0',
   'measured' => 'device',
   'scale'    => 0.01
-);
+];
 
-$config['mibs'][$mib]['sensor'][] = array(
+$config['mibs'][$mib]['sensor'][] = [
   'oid'      => 'voltageSensor2Contact11',
   'class'    => 'voltage',
   'descr'    => 'Sensor 2 Contact 11',
@@ -296,8 +437,9 @@
   'oid_num'  => '.1.3.6.1.4.1.40418.2.3.4.5.0',
   'measured' => 'device',
   'scale'    => 0.01
-);
+];
 
+//==========
 $mib = 'SNR-ERD-4';
 $config['mibs'][$mib]['enable'] = 1;
 $config['mibs'][$mib]['identity_num'] = '.1.3.6.1.4.1.40418.2.6';
@@ -304,87 +446,252 @@
 $config['mibs'][$mib]['mib_dir'] = 'snr';
 $config['mibs'][$mib]['descr'] = 'SNR Ethernet Remote Device v4';
 
-// SNR-ERD-4::adcSensor.0 = INTEGER: 0
-// SNR-ERD-4::temperatureDHT.0 = Wrong Type (should be INTEGER): NULL
-// SNR-ERD-4::humidityDHT.0 = Wrong Type (should be INTEGER): NULL
-$config['mibs'][$mib]['sensor'][] = array(
-  'oid'      => 'adcSensor',
-  'class'    => 'voltage',
-  'descr'    => 'ADC IN',
-  'oid_num'  => '.1.3.6.1.4.1.40418.2.6.1.2',
-  'measured' => 'device',
-  'scale'    => 1
-);
+//enterprises.snr.snr-erd.snr-erd-4.measurements.adcSensor.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.measurements.temperatureDHT.0 = INTEGER: 25
+//enterprises.snr.snr-erd.snr-erd-4.measurements.humidityDHT.0 = INTEGER: 14
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.rsshtpIdent.2181170325 = STRING: "F8:F0:82:02:04:95:00:00"
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.rsshtpName.2181170325 = STRING: "SNR-RSSensor-H/T/P"
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.rsshtpTemp.2181170325 = INTEGER: 27
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.rsshtpHum.2181170325 = INTEGER: 19
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.rsshtpPssr.2181170325 = INTEGER: 746
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.tempCritNotif.2181170325 = INTEGER: Yes(1)
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.tempCritMin.2181170325 = INTEGER: 11
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtpTable.rsshtpEntry.tempCritMax.2181170325 = INTEGER: 29
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtp1WTable.rsshtp1WEntry.rsshtp1WIdent.4278893648 = Gauge32: 4278893648
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtp1WTable.rsshtp1WEntry.rsshtp1WName.4278893648 = STRING: "4278893648"
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtp1WTable.rsshtp1WEntry.rsshtp1WTemp.4278893648 = INTEGER: 25
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sp.rsshtp1WTable.rsshtp1WEntry.rsshtp1WMaster.4278893648 = Hex-STRING: F8 F0 82 02 03 6D 00 00 
+//enterprises.snr.snr-erd.snr-erd-4.measurements.sensorsTemplate.sensorsTemplateTotalConnected.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diName.1.1 = STRING: "DI1"
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diName.1.2 = STRING: "DI2"
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diName.1.3 = STRING: "DI3"
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diAlarmName.1.1 = STRING: "BalconButton"
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diAlarmName.1.2 = STRING: "BalconDOOR"
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diAlarmName.1.3 = STRING: "EMPTY 3"
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diState.1.1 = INTEGER: high(1)
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diState.1.2 = INTEGER: high(1)
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diState.1.3 = INTEGER: high(1)
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diCnt.1.1 = Counter32: 20
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diCnt.1.2 = Counter32: 3
+//enterprises.snr.snr-erd.snr-erd-4.dio.diTable.diEntry.diCnt.1.3 = Counter32: 0
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doName.1.1 = STRING: "Relay"
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doName.1.5 = STRING: "DO4"
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doName.1.6 = STRING: "DO5"
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doDeviceName.1.1 = ""
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doDeviceName.1.5 = STRING: "EMPTY 4"
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doDeviceName.1.6 = STRING: "EMPTY 5"
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doState.1.1 = INTEGER: off(0)
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doState.1.5 = INTEGER: off(0)
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doState.1.6 = INTEGER: off(0)
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doResetDelay.1.1 = INTEGER: 3
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doResetDelay.1.5 = INTEGER: 3
+//enterprises.snr.snr-erd.snr-erd-4.dio.doTable.doEntry.doResetDelay.1.6 = INTEGER: 3
+//enterprises.snr.snr-erd.snr-erd-4.dio.uSenseState.0 = INTEGER: off(0)
+//enterprises.snr.snr-erd.snr-erd-4.serial.rs485.connectStatusRS485.0 = INTEGER: Yes(1)
+//enterprises.snr.snr-erd.snr-erd-4.serial.rs485.ipAddrRS485.0 = IpAddress: 192.168.15.10
+//enterprises.snr.snr-erd.snr-erd-4.serial.rs232.connectStatusRS232.0 = INTEGER: Yes(1)
+//enterprises.snr.snr-erd.snr-erd-4.serial.rs232.ipAddrRS232.0 = IpAddress: 192.168.15.10
+//enterprises.snr.snr-erd.snr-erd-4.modules.gsm.gsmModuleStatus.0 = INTEGER: Error(3)
+//enterprises.snr.snr-erd.snr-erd-4.modules.gsm.gsmStrength.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.modules.gsm.gsmReconnCount.0 = INTEGER: 2273
+//enterprises.snr.snr-erd.snr-erd-4.options.dataType.0 = INTEGER: integer(0)
+//enterprises.snr.snr-erd.snr-erd-4.options.crit.humCrit.0 = INTEGER: 97
+//enterprises.snr.snr-erd.snr-erd-4.options.crit.adcCritMin.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.options.crit.adcCritMax.0 = INTEGER: 10
+//enterprises.snr.snr-erd.snr-erd-4.options.crit.adcHysteresis.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.upsStatus.statusUPS.0 = INTEGER: unknown(2)
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.upsStatus.beeperStatusUPS.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.upsStatus.shutdownStatusUPS.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.upsStatus.lastBatteryChangeUPS.0 = ""
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.upsStatus.shutdownTimeUPS.0 = INTEGER: 1
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.upsStatus.turnOnTimeUPS.0 = INTEGER: 1
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.upsStatus.startLongTestUPS.0 = INTEGER: 1
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.pid.inputPID.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.pid.outputPercentPID.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.pid.outputRealPID.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.pid.ypPID.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.pid.yiPID.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.pid.ydPID.0 = INTEGER: 0
+//enterprises.snr.snr-erd.snr-erd-4.diffparams.pid.errorPID.0 = INTEGER: 0
 
-$config['mibs'][$mib]['sensor'][] = array(
-  'oid'      => 'temperatureDHT',
-  'class'    => 'temperature',
-  'descr'    => 'DHT Temperature',
-  'oid_num'  => '.1.3.6.1.4.1.40418.2.6.1.8',
-  'measured' => 'device',
-  'scale'    => 1
-);
+$type = 'doStatus';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'OFF',    'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'ON',     'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'RELOAD', 'event' => 'alert'];
 
-$config['mibs'][$mib]['sensor'][] = array(
-  'oid'      => 'humidityDHT',
-  'class'    => 'humidity',
-  'descr'    => 'DHT Humidity',
-  'oid_num'  => '.1.3.6.1.4.1.40418.2.6.1.9',
-  'measured' => 'device',
-  'scale'    => 1
-);
+$type = 'diStatus';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'LOW',    'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'HIGH',   'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'OFF',    'event' => 'ok'];
 
-$config['mibs'][$mib]['sensor'][] = array(
-  'table'               => 'dtsEntry',
-  'class'               => 'temperature',
-  'oid'                 => 'dtsTemp',
-  'oid_num'             => '.1.3.6.1.4.1.40418.2.6.1.1.1.1.3',
-  'oid_descr'           => 'dtsName',
-  'oid_limit_low_warn'  => 'tempCritMin',
-  'oid_limit_high_warn' => 'tempCritMax'
-);
+$type = 'erd4SerialState';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'NO',    'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'YES',   'event' => 'ok'];
 
-$config['mibs'][$mib]['status'][] = array(
+$type = 'erd4statusUPS';
+$config['mibs'][$mib]['states'][$type][0] = ['name' => 'ok',      'event' => 'ok'];
+$config['mibs'][$mib]['states'][$type][1] = ['name' => 'fail',    'event' => 'alert'];
+$config['mibs'][$mib]['states'][$type][2] = ['name' => 'unknown', 'event' => 'ignore'];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'oid'            => 'adcSensor',
+  'class'          => 'voltage',
+  'descr'          => 'ADC IN',
+  'oid_num'        => '.1.3.6.1.4.1.40418.2.6.1.2',
+  'measured'       => 'device',
+  'scale'          => 1,
+  'oid_limit_low'  => 'adcCritMin',
+  'oid_limit_high' => 'adcCritMax'
+];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'oid'            => 'temperatureDHT',
+  'measured'       => 'other',
+  'class'          => 'temperature',
+  'descr'          => 'Temperature DHT',
+  'oid_num'        => '.1.3.6.1.4.1.40418.2.6.1.8',
+  'measured'       => 'device',
+  'scale'          => 1
+];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'oid'            => 'humidityDHT',
+  'measured'       => 'other',
+  'class'          => 'humidity',
+  'descr'          => 'Humidity DHT',
+  'oid_num'        => '.1.3.6.1.4.1.40418.2.6.1.9',
+  'measured'       => 'device',
+  'scale'          => 1,
+  'oid_limit_high' => 'humCrit'
+];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'table'          => 'rsshtpTable',
+  'measured'       => 'other',
+  'class'          => 'temperature',
+  'oid'            => 'rsshtpTemp',
+  'descr'          => 'Temperature rsshtp (%rsshtpName%)',
+  'oid_limit_low'  => 'tempCritMin',
+  'oid_limit_high' => 'tempCritMax'
+];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'table'          => 'rsshtpTable',
+  'measured'       => 'other',
+  'class'          => 'humidity',
+  'oid'            => 'rsshtpHum',
+  'descr'          => 'Humidity rsshtp (%rsshtpName%)',
+  'oid_limit_high' => 'humCrit'
+];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'table'          => 'rsshtpTable',
+  'measured'       => 'other',
+  'class'          => 'pressure',
+  'oid'            => 'rsshtpPssr',
+  'descr'          => 'Pressure rsshtp (%rsshtpName%)',
+//1 мм рт. ст.     = 133,322 Па
+  'scale'          => 133,322
+];
+
+$config['mibs'][$mib]['sensor'][] = [
+  'table'          => 'rsshtp1WTable',
+  'measured'       => 'other',
+  'class'          => 'temperature',
+  'oid'            => 'rsshtp1WTemp',
+  'descr'          => 'Temperature rsshtp 1wire (%rsshtp1WName%)',
+  'oid_limit_low'  => 'tempCritMin',
+  'oid_limit_high' => 'tempCritMax'
+];
+
+//check it
+$config['mibs'][$mib]['sensor'][] = [
+  'table'          => 'dtsEntry',
+  'class'          => 'temperature',
+  'measured'       => 'other',
+  'oid'            => 'dtsTemp',
+  'oid_num'        => '.1.3.6.1.4.1.40418.2.6.1.1.1.1.3',
+  'oid_descr'      => 'dtsName',
+  'oid_limit_low'  => 'tempCritMin',
+  'oid_limit_high' => 'tempCritMax'
+];
+
+$config['mibs'][$mib]['status'][] = [
   'table'                 => 'diEntry',
-  'descr'                 => 'Digital Input', // Fallback
-  'oid_descr'             => 'diAlarmName',
+  'descr'                 => '%diName% (%diAlarmName%)',
   'oid'                   => 'diState',
   'oid_num'               => '.1.3.6.1.4.1.40418.2.6.2.1.1.3',
-  'type'                  => 'diState',
+  'type'                  => 'diStatus',
   'measured'              => 'contact'
-);
+];
 
-$type = 'diState';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'LOW',    'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'HIGH',   'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'OFF',    'event' => 'ok');
+// Mike says it is not counter
+/*
+$config['mibs'][$mib]['counter'][] = [
+  'table'                 => 'diEntry',
+  'oid'                   => 'diCnt',
+  'descr'                 => '%diName% (%diAlarmName%)',
+  'class'                 => 'other',
+  'measured'              => 'other',
+//  'unit'                  => 'pages',
+  'scale'                 => 1,
+//  'min'                 => 0,
+  'oid_num'               => '.1.3.6.1.4.1.40418.2.6.2.1.1.4'
+];
+*/
 
-$config['mibs'][$mib]['status'][] = array(
+$config['mibs'][$mib]['status'][] = [
   'table'                 => 'doEntry',
-  'descr'                 => 'Digital Output', // Fallback
-  'oid_descr'             => 'doDeviceName',
+  'descr'                 => '%doName% (%doDeviceName%)',
   'oid'                   => 'doState',
   'oid_num'               => '.1.3.6.1.4.1.40418.2.6.2.2.1.3',
-  'type'                  => 'doState',
+  'type'                  => 'diStatus',
   'measured'              => 'contact'
-);
+];
 
-$type = 'doState';
-$config['mibs'][$mib]['states'][$type][0] = array('name' => 'OFF',    'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][1] = array('name' => 'ON',     'event' => 'ok');
-$config['mibs'][$mib]['states'][$type][2] = array('name' => 'RELOAD', 'event' => 'alert');
+$config['mibs'][$mib]['status'][] = [
+  'descr'                 => 'RS485 TCP connection status',
+  'oid'                   => 'connectStatusRS485',
+  'oid_num'               => '.1.3.6.1.4.1.40418.2.6.4.1.1',
+  'type'                  => 'erd4SerialState',
+  'measured'              => 'contact'
+];
 
+$config['mibs'][$mib]['status'][] = [
+  'descr'                 => 'RS232 TCP connection status',
+  'oid'                   => 'connectStatusRS232',
+  'oid_num'               => '.1.3.6.1.4.1.40418.2.6.4.2.1',
+  'type'                  => 'erd4SerialState',
+  'measured'              => 'contact'
+];
 
-// SNR-ERD-4::rsshtpIdent.1 = STRING: "F8:F0:82:02:03:6D:00:00"
-// SNR-ERD-4::rsshtpName.1 = ""
-// SNR-ERD-4::rsshtpTemp1.1 = INTEGER: 27
-// SNR-ERD-4::rsshtpHum.1 = INTEGER: 37
-// SNR-ERD-4::rsshtpTemp2.1 = INTEGER: 27
-// SNR-ERD-4::rsshtpPssr.1 = INTEGER: 733
+$config['mibs'][$mib]['sensor'][] = [
+  'class'                 => 'dbm',
+  'oid'                   => 'gsmStrength',
+  'measured'              => 'other',
+  'oid_num'               => '.1.3.6.1.4.1.40418.2.6.5.1.2',
+  'descr'                 => 'GSM Strength',
+  'invalid'               => 0
+];
 
-$config['mibs'][$mib]['sensor'][] = array('table' => 'rsshtpTable', 'measured' => 'device', 'class' => 'temperature', 'oid' => 'rsshtpTemp1', 'oid_descr' => 'rsshtpName');
-$config['mibs'][$mib]['sensor'][] = array('table' => 'rsshtpTable', 'measured' => 'device', 'class' => 'temperature', 'oid' => 'rsshtpTemp2', 'oid_descr' => 'rsshtpName');
-$config['mibs'][$mib]['sensor'][] = array('table' => 'rsshtpTable', 'measured' => 'device', 'class' => 'humidity',    'oid' => 'rsshtpHum',   'oid_descr' => 'rsshtpName');
-$config['mibs'][$mib]['sensor'][] = array('table' => 'rsshtpTable', 'measured' => 'device', 'class' => 'pressure',    'oid' => 'rsshtpPssr',  'oid_descr' => 'rsshtpName');
+// Mike says it is not counter
+/*
+$config['mibs'][$mib]['counter'][] = [
+  'oid'                   => 'gsmReconnCount',
+  'descr'                 => 'Number of GSM connection attempts',
+  'class'                 => 'other',
+  'measured'              => 'other',
+  'scale'                 => 1,
+  'oid_num'               => '.1.3.6.1.4.1.40418.2.6.5.1.10'
+];
+*/
 
+$config['mibs'][$mib]['status'][] = [
+  'oid'              => 'statusUPS',
+  'descr'            => 'UPS battery status',
+  'type'             => 'erd4statusUPS',
+  'measured'         => 'other',
+  'oid_num'          => '.1.3.6.1.4.1.40418.2.6.11.1.1'
+];
+
 // EOF
Index: includes/definitions/os/nag.inc.php
===================================================================
--- includes/definitions/os/nag.inc.php	(revision 11305)
+++ includes/definitions/os/nag.inc.php	(working copy)
@@ -29,6 +29,7 @@
 $os = "snr-erd";
 $config['os'][$os]['text']                  = "SNR ERD";
 $config['os'][$os]['vendor']                = "SNR";
+$config['os'][$os]['group']                 = "environment";
 $config['os'][$os]['type']                  = "environment";
 $config['os'][$os]['model']                 = "snr";
 $config['os'][$os]['ports_ignore']['allow_empty'] = TRUE; // Do not check empty ifType
Index: mibs/snr/SNR-ERD-4
===================================================================
--- mibs/snr/SNR-ERD-4	(revision 11305)
+++ mibs/snr/SNR-ERD-4	(working copy)
@@ -1,1208 +1,1275 @@
-SNR-ERD-4 DEFINITIONS ::= BEGIN
-
-IMPORTS
-	MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
-		FROM SNMPv2-SMI
-	enterprises, IpAddress, Counter					
-		FROM RFC1155-SMI
-	DisplayString
-		FROM RFC1213-MIB
-	NOTIFICATION-GROUP
-		FROM SNMPv2-CONF
-	; 
-
-snr MODULE-IDENTITY
-	LAST-UPDATED	"201810261200Z"
-	ORGANIZATION	"NAG "
-	CONTACT-INFO	"erd@nag.ru"
-	DESCRIPTION
-		"The MIB module for SNR-ERD"
-	REVISION		"201504291200Z"
-	DESCRIPTION
-		"Initial revision." 
-	::= { enterprises 40418 }
-
-
-snr-erd		OBJECT IDENTIFIER	::= { snr 2 }
-snr-erd-4	OBJECT IDENTIFIER	::= { snr-erd 6 }
-
-measurements		OBJECT IDENTIFIER	 ::= { snr-erd-4 1 }
-
-dio			OBJECT IDENTIFIER	::= { snr-erd-4 2 }
-modules			OBJECT IDENTIFIER	::= { snr-erd-4 5 }
-options			OBJECT IDENTIFIER	::= { snr-erd-4 10 }
-diffparams		OBJECT IDENTIFIER	::= { snr-erd-4 11 }
-
-
-oneWire		OBJECT IDENTIFIER	::= { measurements 1 }
-sp			OBJECT IDENTIFIER	::= { measurements 30 }
-
-GSM			OBJECT IDENTIFIER	::= { modules 1 }
-RF			OBJECT IDENTIFIER	::= { modules 2 }
-
-upsStatus		OBJECT IDENTIFIER	::= { diffparams 1 }
-
-pid			OBJECT IDENTIFIER	::= { diffparams 10 }
-
-traps			OBJECT IDENTIFIER	::= { snr-erd-4 0 }
-
-crit			OBJECT IDENTIFIER	::= { options 10 }
-
--- measurements
-
-adcSensor		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"ADC sensor value"
-::= { measurements 2 }
-
-temperatureDHT		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"DHT temperature value"
-::= { measurements 8 }
-
-humidityDHT		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"DHT humidity value"
-::= { measurements 9 }
-
--- dtsTable
-
-dtsTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF dtsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION	"A list of temperature sensors values"
-    ::= { oneWire 1 }
-
-dtsEntry OBJECT-TYPE
-    SYNTAX      dtsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION	"An entry (conceptual row) in the dtsTable"
-    INDEX   { dtsId } 
-::= { dtsTable 1 }
-
-dtsEntry ::=
-    SEQUENCE {
-        dtsId           	UInteger32,
-	dtsName			OctetString,
-        dtsTemp            	Integer,
-		tempCritNotif		Integer,
-		tempCritMin			Integer,
-		tempCritMax			Integer
-    }
-
-dtsId 		OBJECT-TYPE
-    SYNTAX      UInteger32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION	"Temperature sensor id"
-    ::= { dtsEntry 1 }
-
-dtsName 	OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION	"Name (max 20)"
-    ::= { dtsEntry 2 }
-
-dtsTemp 	OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Temperature value"
-    ::= { dtsEntry 3 }
-	
-tempCritNotif	OBJECT-TYPE
-	SYNTAX		INTEGER
-		{
-				No	(0),
-				Yes	(1),
-		}
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Enable notifications on the critical temperature"
-::= { dtsEntry 10 }
-	
-tempCritMin		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Minimal critical temperature. 
-Up to -55 \B0C"
-::= { dtsEntry 15 }
-
-tempCritMax	OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Maximum critical temperature. 
-Up to +125\B0C"
-::= { dtsEntry 16 }
-
--- shuntTable
-
-shuntTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF shuntEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "A list of SNR-SHUNT values"
-    ::= { oneWire 2 }
-
-shuntEntry OBJECT-TYPE
-    SYNTAX      shuntEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "An entry (conceptual row) in the shuntTable"
-    INDEX   { pwrSensIdent }
-    ::= { shuntTable 1 }
-
-shuntEntry ::=
-    SEQUENCE {
-        shuntId      	UInteger32,
-	shuntName	OctetString,
-        shuntTemp       Integer,
-        shuntVolt       Integer,
-	shuntCurrent	Integer,
-	shuntCapacity	Integer,
-	shuntChrgCap	Integer,
-	shuntDischCap	Integer,
-	shuntEndOfChrg	OctetString,
-	shuntDiscn	OctetString,
-	shuntBatLive	TimeTicks,
-	shuntDischTime	TimeTicks
-    }
-
-shuntId 	OBJECT-TYPE
-    SYNTAX      UInteger32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "SNR-SHUNT id"
-    ::= { shuntEntry 1 }
-
-shuntName OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "Name (max 20)"
-    ::= { shuntEntry 2 }
-
-shuntTemp OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Temperature value"
-    ::= { shuntEntry 3 }
-
-shuntVolt OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "Voltage"
-    ::= { shuntEntry 4 }
-
-shuntCurrent OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "Current"
-    ::= { shuntEntry 5 }
-
-shuntChrgLvl OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "Battery charge level (0..100%)"
-    ::= { shuntEntry 6 }
-
-shuntChrgCap 	OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Charge capacity"
-    ::= { shuntEntry 7 }
-
-shuntDischCap OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Discharge capacity"
-    ::= { shuntEntry 8 }
-
-shuntEndOfChrg OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "End of charge time"
-    ::= { shuntEntry 9 }
-
-shuntDiscn OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Disconnect time"
-    ::= { shuntEntry 10 }
-
-shuntBatLive OBJECT-TYPE
-    SYNTAX      TimeTicks
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Battery using period"
-    ::= { shuntEntry 11 }
-
-shuntDischTime OBJECT-TYPE
-    SYNTAX      TimeTicks
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Time to full discharge"
-    ::= { shuntEntry 12 }
-
-
--- wirelessSensors
-
-rfshtpTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF rfshtpEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "A list of wireless sensors values"
-    ::= { measurements 10 }
-
-rfshtpEntry OBJECT-TYPE
-    SYNTAX      rfshtpEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "An entry (conceptual row) 
-in the wrlssSensTable"
-    INDEX   { wrlssSensIdent }
-    ::= { rfshtpTable 1 }
-
-rfshtpEntry ::=
-    SEQUENCE {
-        rfshtpId           OctetString,
-        rfshtpName         OctetString,
-        rfshtpTemp         Integer,
-	rfshtpHum	   Integer,
-	rfshtpPres	   Integer
-    }
-
-rfshtpId OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Wireless sensor id"
-    ::= { rfshtpEntry 1 }
-
-rfshtpName OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "Name (max 20)"
-    ::= { rfshtpEntry 2 }
-
-rfshtpTemp OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Temperature value"
-    ::= { rfshtpEntry 3 }
-
-rfshtpHum OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Humidity value"
-    ::= { rfshtpEntry 4 }
-
-rfshtpPres OBJECT-TYPE
-    SYNTAX      INTEGER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "Pressure value"
-    ::= { rfshtpEntry 5 }
-
--- sp
-
--- rsshtpTable
-rsshtpTable		OBJECT-TYPE
-	SYNTAX		SEQUENCE OF rsshtpEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"A list of SNR-RSsensor-H/T/P values"
-::= { sp 1 }
-
-rsshtpEntry OBJECT-TYPE
-	SYNTAX		rsshtpEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"An entry (conceptual row) 
-in the rsshtpTable"
-	INDEX		{ rsshtpIdent }
-::= { rsshtpTable 1 }
-
-rsshtpEntry ::= SEQUENCE 
-{
-    rsshtpIdent	OctetString,
-	rsshtpName	OctetString,
-    rsshtpTemp	Integer,
-	rsshtpHum	Integer,
-	rsshtpPssr	Integer,
-	tempCritNotif		Integer,
-	tempCritMin			Integer,
-	tempCritMax			Integer
-}
-
-rsshtpIdent		OBJECT-TYPE
-	SYNTAX		OCTET STRING
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"SNR-RSsensor-H/T/P id"
-::= { rsshtpEntry 1 }
-
-rsshtpName		OBJECT-TYPE
-    	SYNTAX      	OCTET STRING
-    	MAX-ACCESS  	read-write
-    	STATUS      	current
-    	DESCRIPTION 	"Name (max 20)"
-::= { rsshtpEntry 2 }
-
-rsshtpTemp		OBJECT-TYPE
-	SYNTAX		INTEGER
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Temperature value 1"
-::= { rsshtpEntry 3 }
-
-rsshtpHum		OBJECT-TYPE
-	SYNTAX		INTEGER
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Humidity value"
-::= { rsshtpEntry 4 }
-
-rsshtpPssr		OBJECT-TYPE
-	SYNTAX		INTEGER
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Pressure value"
-::= { rsshtpEntry 6 }
-
-tempCritNotif	OBJECT-TYPE
-	SYNTAX		INTEGER
-		{
-				No	(0),
-				Yes	(1),
-		}
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Enable notifications on the critical temperature"
-::= { rsshtpEntry 10 }
-	
-tempCritMin		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Minimal critical temperature. 
-Up to -55 \B0C"
-::= { rsshtpEntry 15 }
-
-tempCritMax	OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Maximum critical temperature. 
-Up to +125\B0C"
-::= { rsshtpEntry 16 }
-
--- rscounterTable
-
-rscounterTable		OBJECT-TYPE
-	SYNTAX		SEQUENCE OF rscounterEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"A list of SNR-RS-Counter"
-::= { sp 5 }
-
-rscounterEntry OBJECT-TYPE
-	SYNTAX		rscounterEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"An entry (conceptual row) 
-in the rscounterTable"
-	INDEX		{ rscounterIdent }
-::= { rscounterTable 1 }
-
-rscounterEntry ::= SEQUENCE 
-{
-    rscounterIdent	OctetString,
-	rscounterName	OctetString,
-}
-
-rscounterIdent		OBJECT-TYPE
-	SYNTAX		OCTET STRING
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"SNR-RS-Counter id"
-::= { rscounterEntry 1 }
-
-rscounterName		OBJECT-TYPE
-    	SYNTAX      	OCTET STRING
-    	MAX-ACCESS  	read-write
-    	STATUS      	current
-    	DESCRIPTION 	"Name (max 20)"
-::= { rscounterEntry 2 }
-
-
--- rsshtp1WTable
-rsshtp1WTable		OBJECT-TYPE
-	SYNTAX		SEQUENCE OF rsshtp1WEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"A list of temperature sensors 
-are connected to SNR-RSsensor-H/T/P"
-::= { sp 100 }
-
-rsshtp1WEntry 		OBJECT-TYPE
-	SYNTAX		rsshtp1WEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"An entry (conceptual row) 
-in the rsshtp1WTable"
-	INDEX		{ rsshtp1WIdent }
-::= { rsshtp1WTable 1 }
-
-rsshtp1WEntry ::= SEQUENCE 
-{
-        rsshtp1WIdent	UInteger32,
-	rsshtp1WName	OctetString,
-        rsshtp1WTemp	Integer,
-	rsshtp1WMaster	OctetString,
-	tempCritNotif		Integer,
-	tempCritMin			Integer,
-	tempCritMax			Integer
-}
-
-rsshtp1WIdent		OBJECT-TYPE
-	SYNTAX		UInteger32
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Temperature sensor id"
-::= { rsshtp1WEntry 1 }
-
-rsshtp1WName OBJECT-TYPE
-    	SYNTAX      OCTET STRING
-    	MAX-ACCESS  read-write
-    	STATUS      current
-    	DESCRIPTION "Name (max 20)"
-::= { rsshtp1WEntry 2 }
-
-rsshtp1WTemp		OBJECT-TYPE
-	SYNTAX		INTEGER
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Temperature value"
-::= { rsshtp1WEntry 3 }
-
-rsshtp1WMaster		OBJECT-TYPE
-	SYNTAX		OCTET STRING
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Name of the SNR-RSsensor-H/T/P 
-which this temperature sensor 
-is connected to"
-::= { rsshtp1WEntry 4 }
-
-tempCritNotif	OBJECT-TYPE
-	SYNTAX		INTEGER
-		{
-				No	(0),
-				Yes	(1),
-		}
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Enable notifications on the critical temperature"
-::= { rsshtp1WEntry 10 }
-	
-tempCritMin		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Minimal critical temperature. 
-Up to -55 \B0C"
-::= { rsshtp1WEntry 15 }
-
-tempCritMax	OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Maximum critical temperature. 
-Up to +125\B0C"
-::= { rsshtp1WEntry 16 }
-
--- dio
-
-diTable			OBJECT-TYPE
-	SYNTAX		SEQUENCE OF diEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"A list of digital inputs values"
-::= { dio 1 }
-
-diEntry 		OBJECT-TYPE
-	SYNTAX		diEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"An entry (conceptual row) 
-in the diTable"
-::= { diTable 1 }
-
-diEntry ::= SEQUENCE 
-{
-	diName		OctetString,
-    diAlarmName	OctetString,
-	diState		Integer,
-	diCnt		Counter
-}
-
-diName			OBJECT-TYPE
-	SYNTAX		OCTET STRING
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Digital input name"
-::= { diEntry 1 }
-
-diAlarmName		OBJECT-TYPE
-	SYNTAX		OCTET STRING
-	MAX-ACCESS	read-write
-	STATUS		current
-	DESCRIPTION	"Alarm name"
-::= { diEntry 2 }
-
-diState			OBJECT-TYPE
-	SYNTAX		INTEGER
-			{
-				low	(0),
-				high	(1),
-				off	(2)
-			}
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Digital input state"
-::= { diEntry 3 }
-
-diCnt			OBJECT-TYPE
-	SYNTAX		Counter
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Digital input impulse counter"
-::= { diEntry 4 }
-
-
-doTable			OBJECT-TYPE
-	SYNTAX		SEQUENCE OF doEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"A list of digital outputs values"
-::= { dio 2 }
-
-doEntry 		OBJECT-TYPE
-	SYNTAX		doEntry
-	MAX-ACCESS	not-accessible
-	STATUS		current
-	DESCRIPTION	"An entry (conceptual row) 
-in the doTable"
-::= { doTable 1 }
-
-doEntry ::= SEQUENCE 
-{
-	doName			OctetString,
-	doDeviceName	OctetString,
-	doState			Integer,
-	doResetTime		Integer
-}
-
-doName			OBJECT-TYPE
-	SYNTAX		OCTET STRING
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Digital output name"
-::= { doEntry 1 }
-
-doDeviceName	OBJECT-TYPE
-	SYNTAX		OCTET STRING
-	MAX-ACCESS	read-write
-	STATUS		current
-	DESCRIPTION	"Digital output custom name"
-::= { doEntry 2 }
-
-doState			OBJECT-TYPE
-	SYNTAX		INTEGER
-			{
-				off	(0),
-				on	(1),
-				reload	(2)
-			}
-	MAX-ACCESS	read-write
-	STATUS		current
-	DESCRIPTION	"Digital output state"
-::= { doEntry 3 }
-
-doResetDelay		OBJECT-TYPE
-	SYNTAX		INTEGER
-	MAX-ACCESS	read-write
-	STATUS		current
-	DESCRIPTION	"Reload period (sec)"
-::= { doEntry 4 }
-
-uSenseState		OBJECT-TYPE
-	SYNTAX		INTEGER
-			{
-				off	(0),
-				on	(1)
-			}
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"Voltage sensor state"
-::= { dio 3 }
-
--- GSM
-
-GsmModuleStatus		OBJECT-TYPE
-	SYNTAX		INTEGER
-			{
-				No	(0),
-				Yes	(1),
-				NoSim	(2),
-				Error	(3),
-				Connected	(4)
-			}
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"the status of the gsm module"
-::= { GSM 1 }
-
-GsmStrength		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"the level of signal in dBm"
-::= { GSM 2 }
-
-ReconnCount		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"the number of connection attempts"
-::= { GSM 10 }
-
--- RF
-
-RfModuleStatus		OBJECT-TYPE
-	SYNTAX		INTEGER
-			{
-				No	(0),
-				Yes	(1)
-			}
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"the status of the rf module"
-::= { RF 1 }
-
--- options
-
-dataType		OBJECT-TYPE
-	SYNTAX		INTEGER
-			{
-				integer	(0),
-				float	(1),
-				ufloat	(2)
-			}
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Values data type"
-::= { options 1 }
-
--- crit
-
-tempCritDHT		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Critical temperature. 
-From -55 to +125\B0C"
-::= { crit 10 }
-
-humCrit		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"Critical humidity. 
-From 0 to 100%"
-::= { crit 20 }
-
-adcCritMin		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"ADC IN critical min"
-::= { crit 30 }
-
-adcCritMax		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"ADC IN critical max"
-::= { crit 31 }
-
-adcHysteresis	OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-write
-        STATUS		current
-        DESCRIPTION	"ADC IN hysteresis"
-::= { crit 35 }
-
--- diffparams
-
--- upsStatus
-
-statusUPS		OBJECT-TYPE
-	SYNTAX		INTEGER
-			{
-				fail	(1),
-				ok	(0),
-				unknown	(2) 
-			}
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"UPS status"
-::= { upsStatus 1 }
-
-batteryVoltageUPS	OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"Battery voltage value"
-::= { upsStatus 2 }
-
-temperatureUPS		OBJECT-TYPE
-	SYNTAX		INTEGER
-	MAX-ACCESS	read-only
-	STATUS		current
-	DESCRIPTION	"Temperature value"
-::= { upsStatus 3 }
-
-inputVoltageUPS		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"Input voltage value"
-::= { upsStatus 4 }
-
-outputVoltageUPS	OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"Output voltage value"
-::= { upsStatus 5 }
-
-currentUPS		OBJECT-TYPE
-	SYNTAX		INTEGER
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"Current value"
-::= { upsStatus 6 }
-
-lastBatteryChangeUPS	OBJECT-TYPE
-	SYNTAX		OCTET STRING
-        MAX-ACCESS	read-only
-        STATUS		current
-        DESCRIPTION	"Last battery change date and time. 
-APC only"
-::= { upsStatus 7 }
-
-
--- pid
-
-inputPID		OBJECT-TYPE
-	
-	SYNTAX		INTEGER
-        
-	MAX-ACCESS	read-write
-
-        STATUS		current
-
-        DESCRIPTION	"PID SNMP input value"
-
-::= { pid 1 }
-
-
-	
-outputPercentPID	OBJECT-TYPE
-
-	SYNTAX		INTEGER
-
-        MAX-ACCESS	read-only
-
-        STATUS		current
-
-        DESCRIPTION	"PID output value. 
-0 to 100%"
-
-::= { pid 2 }
-
-
-
-outputRealPID		OBJECT-TYPE
-
-	SYNTAX		INTEGER
-
-        MAX-ACCESS	read-only
-
-        STATUS		current
-
-        DESCRIPTION	"PID output value 
-(voltage if PID runs in analog mode 
-or time if PID runs in PWM mode)"
-
-::= { pid 3 }
-
-
-
-ypPID			OBJECT-TYPE
-
-	SYNTAX		INTEGER
-
-        MAX-ACCESS	read-only
-
-        STATUS		current
-
-        DESCRIPTION	"Proportional gain"
-
-::= { pid 4 }
-
-
-
-yiPID			OBJECT-TYPE
-
-	SYNTAX		INTEGER
-
-        MAX-ACCESS	read-only
-
-        STATUS		current
-
-        DESCRIPTION	"Integral gain"
-
-::= { pid 5 }
-
-
-
-ydPID			OBJECT-TYPE
-
-	SYNTAX		INTEGER
-
-        MAX-ACCESS	read-only
-
-        STATUS		current
-
-        DESCRIPTION	"Derivative gain"
-
-::= { pid 6 }
-
-
-
-errorPID		OBJECT-TYPE
-
-	SYNTAX		INTEGER
-
-        MAX-ACCESS	read-only
-
-        STATUS		current
-
-        DESCRIPTION	"Error. Difference between setpoint 
-and input value"
-
-::= { pid 7 }
-
-
--- Traps
-
-DI1Alarm		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 1 Alarm fires"		
-::= { traps 1 }
-
-DI1Release		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 1 Alarm released"		
-::= { traps 2 }
-
-DI2Alarm		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 2 Alarm fires"		
-::= { traps 3 }
-
-DI2Release		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 2 Alarm released"		
-::= { traps 4 }
-
-DI3Alarm		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 3 Alarm fires"		
-::= { traps 5 }
-
-DI3Release		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 3 Alarm released"		
-::= { traps 6 }
-
-DI4Alarm		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 4 Alarm fires"		
-::= { traps 7 }
-
-DI4Release		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 4 Alarm released"		
-::= { traps 8 }
-
-DI5Alarm		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 5 Alarm fires"		
-::= { traps 9 }
-
-DI5Release		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Input 5 Alarm released"		
-::= { traps 10 }
-
-uSenseAlarm		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Phase sensor 
-Alarm fires"		
-::= { traps 11 }
-
-uSenseRelease	NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Phase sensor 
-Alarm released"		
-::= { traps 12 }
-
-reloutOn		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Rele was swithed on 
-by Thermostat or Gigrostat mode"		
-::= { traps 13 }
-
-reloutOff		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Rele was swithed off 
-by Thermostat or Gigrostat mode"		
-::= { traps 14 }
-
-DO1On			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 1 was swithed on 
-by Thermostat or Gigrostat mode"		
-::= { traps 15 }
-
-DO1Off			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 1 was swithed off 
-by Thermostat or Gigrostat mode"		
-::= { traps 16 }
-
-DO2On			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 2 was swithed on 
-by Thermostat or Gigrostat mode"		
-::= { traps 17 }
-
-DO2Off			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 2 was swithed off 
-by Thermostat or Gigrostat mode"		
-::= { traps 18 }
-
-DO3On			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 3 was swithed on 
-by Thermostat or Gigrostat mode"		
-::= { traps 19 }
-
-DO3Off			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 3 was swithed off 
-by Thermostat or Gigrostat mode"		
-::= { traps 20 }
-
-DO4On			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 4 was swithed on 
-by Thermostat or Gigrostat mode"		
-::= { traps 21 }
-
-DO4Off			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 4 was swithed off 
-by Thermostat or Gigrostat mode"		
-::= { traps 22 }
-
-DO5On			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 5 was swithed on 
-by Thermostat or Gigrostat mode"		
-::= { traps 23 }
-
-DO5Off			NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Signifies that Output 5 was swithed off 
-by Thermostat or Gigrostat mode"		
-::= { traps 24 }
-
-tempSensorAlarm		NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"Temperature alarm"		
-::= { traps 29 }
-
-tempSensorRelease	NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"Temperature release"		
-::= { traps 30 }
-
-adcSensorAlarm		NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"Voltage sensor alarm"		
-::= { traps 31 }
-
-adcSensorRelease	NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Voltage sensor release"		
-::= { traps 32 }
-
-humSensorAlarm		NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"Humidity alarm"		
-::= { traps 33 }
-
-humSensorRelease	NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"Humidity release"		
-::= { traps 34 }
-
-task1Done		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Task 1 done"		
-::= { traps 36 }
-
-task2Done		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Task 2 done"		
-::= { traps 37 }
-
-task3Done		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Task 3 done"		
-::= { traps 38 }
-
-task4Done		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Task 4 done"		
-::= { traps 39 }
-
-pingLost		NOTIFICATION-TYPE
-	STATUS		current
-	DESCRIPTION	"Ping lost"		
-::= { traps 45 }
-
-batteryChargeLow	NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"Battery charge is low"		
-::= { traps 47 }
-
-upsUtilityFail		NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"UPS utility fail"		
-::= { traps 50 }
-
-upsUtilityOk		NOTIFICATION-TYPE
-	STATUS			current
-	DESCRIPTION		"UPS utility OK"		
-::= { traps 51 }
-
--- erd4Group
-
-erd4Group		NOTIFICATION-GROUP  
-	NOTIFICATIONS 
-	{
-		DI1Alarm,
-		DI1Release,
-		DI2Alarm,
-		DI2Release,
-		DI3Alarm,
-		DI3Release,
-		DI4Alarm,
-		DI4Release,
-		DI5Alarm,
-		DI5Release,
-		uSenseAlarm,
-		uSenseRelease,
-		reloutOn,
-		reloutOff,
-		DO1On,
-		DO1Off,
-		DO2On,
-		DO2Off,
-		DO3On,
-		DO3Off,
-		DO4On,
-		DO4Off,
-		DO5On,
-		DO5Off,
-		tempSensorAlarm,
-		tempSensorRelease,
-		adcSensorAlarm,
-		adcSensorRelease,
-		humSensorAlarm,
-		humSensorRelease,
-		task1Done,
-		task2Done,
-		task3Done,
-		task4Done,
-		pingLost,
-		batteryChargeLow,
-		upsUtilityFail,
-		upsUtilityOk
-	}
-	STATUS			current
-	DESCRIPTION		"Notifications"
-::= { snr-erd-4 99 }
-
-END
+SNR-ERD-4 DEFINITIONS ::= BEGIN
+
+IMPORTS
+	MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
+		FROM SNMPv2-SMI
+	enterprises, IpAddress, Counter			
+		FROM RFC1155-SMI
+	DisplayString
+		FROM RFC1213-MIB
+	NOTIFICATION-GROUP
+		FROM SNMPv2-CONF
+	; 
+
+snr-erd-4 MODULE-IDENTITY
+	LAST-UPDATED	"202103021200Z"
+	ORGANIZATION	"NAG "
+	CONTACT-INFO	"erd@nag.ru"
+	DESCRIPTION
+		"The MIB module for SNR-ERD-4"
+	REVISION	"202104271200Z"
+	DESCRIPTION
+		"Unofficial version for ERD-4 that fix compatibility for 202103021200Z"
+	REVISION	"202102151200Z"
+	DESCRIPTION
+		"Official version for ERD-4 that broke compatibility because all oid renamed"
+	REVISION	"202103021200Z"
+	DESCRIPTION
+		"UNofficial version for ERD-4 with firmware 2.x
+		add units in MIB, change MIB style"
+	REVISION	"202008221200Z"
+	DESCRIPTION
+		"version for ERD-4 with firmware 2.x"
+	REVISION	"201907291200Z"
+	DESCRIPTION
+		"version for ERD-4 with firmware 0.2.x indutrial"
+	REVISION	"201812291200Z"
+	DESCRIPTION
+		"version 1.9 for ERD-4 with firmware 1.x"
+	REVISION	"201809121200Z"
+	DESCRIPTION
+		"version 1.8 for ERD-4 with firmware 1.x"
+	REVISION	"201805181200Z"
+	DESCRIPTION
+		"version 1.7 for ERD-4 with firmware 1.x"
+	REVISION	"201712271200Z"
+	DESCRIPTION
+		"version 1.6 for ERD-4 with firmware 1.x"
+	REVISION	"201504291200Z"
+	DESCRIPTION
+		"Initial revision."
+::= { snr-erd 6 }
+
+snr		OBJECT IDENTIFIER	::= { enterprises 40418 }
+snr-erd		OBJECT IDENTIFIER	::= { snr 2 }
+
+SensorID ::= TEXTUAL-CONVENTION
+	DISPLAY-HINT "d"
+	STATUS       current
+	DESCRIPTION
+		"This data type is a non-negative value."
+	SYNTAX       Unsigned32 (0..4294967295)
+
+measurements	OBJECT IDENTIFIER	 ::= { snr-erd-4 1 }
+dio		OBJECT IDENTIFIER	::= { snr-erd-4 2 }
+serial		OBJECT IDENTIFIER	::= { snr-erd-4 4 }
+modules		OBJECT IDENTIFIER	::= { snr-erd-4 5 }
+options		OBJECT IDENTIFIER	::= { snr-erd-4 10 }
+diffparams	OBJECT IDENTIFIER	::= { snr-erd-4 11 }
+
+
+oneWire		OBJECT IDENTIFIER	::= { measurements 1 }
+sp		OBJECT IDENTIFIER	::= { measurements 30 }
+sensorsTemplate	OBJECT IDENTIFIER	::= { measurements 50 }
+
+rs485		OBJECT IDENTIFIER	::= { serial 1 }
+rs232		OBJECT IDENTIFIER	::= { serial 2 }
+
+gsm		OBJECT IDENTIFIER	::= { modules 1 }
+rf		OBJECT IDENTIFIER	::= { modules 2 }
+
+upsStatus	OBJECT IDENTIFIER	::= { diffparams 1 }
+
+pid		OBJECT IDENTIFIER	::= { diffparams 10 }
+
+traps		OBJECT IDENTIFIER	::= { snr-erd-4 0 }
+
+crit		OBJECT IDENTIFIER	::= { options 10 }
+
+-- measurements
+
+adcSensor OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"Volt DC"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"ADC sensor value"
+::= { measurements 2 }
+
+temperatureDHT OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"DHT temperature value"
+::= { measurements 8 }
+
+humidityDHT OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"%"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"DHT humidity value"
+::= { measurements 9 }
+
+-- dtsTable
+
+dtsTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF dtsEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of temperature sensors values"
+::= { oneWire 1 }
+
+dtsEntry OBJECT-TYPE
+	SYNTAX		dtsEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the dtsTable"
+	INDEX   { dtsId } 
+::= { dtsTable 1 }
+
+dtsEntry ::=
+    SEQUENCE {
+	dtsId		SensorID,
+	dtsName		OctetString,
+	dtsTemp		Integer,
+	tempCritNotif	Integer,
+	tempCritMin	Integer,
+	tempCritMax	Integer
+    }
+
+dtsId OBJECT-TYPE
+	SYNTAX		SensorID
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Temperature sensor id"
+::= { dtsEntry 1 }
+
+dtsName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Name (max 20)"
+::= { dtsEntry 2 }
+
+dtsTemp OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Temperature value"
+::= { dtsEntry 3 }
+	
+tempCritNotif OBJECT-TYPE
+	SYNTAX		INTEGER
+		{
+			No	(0),
+			Yes	(1),
+		}
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Enable notifications on the critical temperature"
+::= { dtsEntry 10 }
+
+tempCritMin OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Minimal critical temperature. Up to -55 C"
+::= { dtsEntry 15 }
+
+tempCritMax OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Maximum critical temperature. Up to +125 C"
+::= { dtsEntry 16 }
+
+-- shuntTable
+shuntTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF shuntEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of SNR-SHUNT values"
+::= { oneWire 2 }
+
+shuntEntry OBJECT-TYPE
+	SYNTAX		shuntEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the shuntTable"
+	INDEX   { shuntId }
+::= { shuntTable 1 }
+
+shuntEntry ::=
+    SEQUENCE {
+	shuntId		SensorID,
+	shuntName	OctetString,
+	shuntTemp	Integer,
+	shuntVolt	Integer,
+	shuntCurrent	Integer,
+	shuntCapacity	Integer,
+	shuntChrgCap	Integer,
+	shuntDischCap	Integer,
+	shuntEndOfChrg	OctetString,
+	shuntDiscn	OctetString,
+	shuntBatLive	TimeTicks,
+	shuntDischTime	TimeTicks
+    }
+
+shuntId OBJECT-TYPE
+	SYNTAX		SensorID
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"SNR-SHUNT id"
+::= { shuntEntry 1 }
+
+shuntName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Name (max 20)"
+::= { shuntEntry 2 }
+
+shuntTemp OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Temperature value"
+::= { shuntEntry 3 }
+
+shuntVolt OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"Volt DC"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Voltage"
+::= { shuntEntry 4 }
+
+shuntCurrent OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"Amp DC"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Current"
+::= { shuntEntry 5 }
+
+shuntChrgLvl OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"%"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Battery charge level (0..100%)"
+::= { shuntEntry 6 }
+
+shuntChrgCap OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Charge capacity"
+::= { shuntEntry 7 }
+
+shuntDischCap OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Discharge capacity"
+::= { shuntEntry 8 }
+
+shuntEndOfChrg OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"End of charge time"
+::= { shuntEntry 9 }
+
+shuntDiscn OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Disconnect time"
+::= { shuntEntry 10 }
+
+shuntBatLive OBJECT-TYPE
+	SYNTAX		TimeTicks
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Battery using period"
+::= { shuntEntry 11 }
+
+shuntDischTime OBJECT-TYPE
+	SYNTAX		TimeTicks
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Time to full discharge"
+::= { shuntEntry 12 }
+
+
+-- wirelessSensors
+
+rfshtpTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF rfshtpEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of wireless sensors values"
+::= { measurements 10 }
+
+rfshtpEntry OBJECT-TYPE
+	SYNTAX		rfshtpEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the wrlssSensTable"
+	INDEX   { wrlssSensIdent }
+::= { rfshtpTable 1 }
+
+rfshtpEntry ::=
+    SEQUENCE {
+	rfshtpId	OctetString,
+	rfshtpName	OctetString,
+	rfshtpTemp	Integer,
+	rfshtpHum	Integer,
+	rfshtpPres	Integer
+    }
+
+rfshtpId OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Wireless sensor id"
+::= { rfshtpEntry 1 }
+
+rfshtpName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Name (max 20)"
+::= { rfshtpEntry 2 }
+
+rfshtpTemp OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Temperature value"
+::= { rfshtpEntry 3 }
+
+rfshtpHum OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"%"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Humidity value"
+::= { rfshtpEntry 4 }
+
+rfshtpPres OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"mm Hg"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Pressure value"
+::= { rfshtpEntry 5 }
+
+-- sp
+
+-- rsshtpTable
+rsshtpTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF rsshtpEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of SNR-RSsensor-H/T/P values"
+::= { sp 1 }
+
+rsshtpEntry OBJECT-TYPE
+	SYNTAX		rsshtpEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the rsshtpTable"
+	INDEX		{ rsshtpIdent }
+::= { rsshtpTable 1 }
+
+rsshtpEntry ::=
+    SEQUENCE {
+	rsshtpIdent	OctetString,
+	rsshtpName	OctetString,
+	rsshtpTemp	Integer32,
+	rsshtpHum	Integer32,
+	rsshtpPssr	Integer32,
+	tempCritNotif	Integer,
+	tempCritMin	Integer32,
+	tempCritMax	Integer32
+    }
+
+rsshtpIdent OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"SNR-RSsensor-H/T/P id"
+::= { rsshtpEntry 1 }
+
+rsshtpName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION 	"Name (max 20)"
+::= { rsshtpEntry 2 }
+
+rsshtpTemp OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Temperature value"
+::= { rsshtpEntry 3 }
+
+rsshtpHum OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"%"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Humidity value"
+::= { rsshtpEntry 4 }
+
+rsshtpPssr OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"mm Hg"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Pressure value"
+::= { rsshtpEntry 6 }
+
+tempCritNotif OBJECT-TYPE
+	SYNTAX		INTEGER
+		{
+			No	(0),
+			Yes	(1)
+		}
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Enable notifications on the critical temperature"
+::= { rsshtpEntry 10 }
+	
+tempCritMin OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Minimal critical temperature. Up to -55 C"
+::= { rsshtpEntry 15 }
+
+tempCritMax OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Maximum critical temperature. Up to +125 C"
+::= { rsshtpEntry 16 }
+
+-- rscounterTable
+
+rscounterTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF rscounterEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of SNR-RS-Counter"
+::= { sp 5 }
+
+rscounterEntry OBJECT-TYPE
+	SYNTAX		rscounterEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) 
+in the rscounterTable"
+	INDEX		{ rscounterIdent }
+::= { rscounterTable 1 }
+
+rscounterEntry ::=
+    SEQUENCE {
+	rscounterIdent	OctetString,
+	rscounterName	OctetString,
+    }
+
+rscounterIdent OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"SNR-RS-Counter id"
+::= { rscounterEntry 1 }
+
+rscounterName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Name (max 20)"
+::= { rscounterEntry 2 }
+
+
+-- rsshtp1WTable
+rsshtp1WTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF rsshtp1WEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of temperature sensors are connected to SNR-RSsensor-H/T/P"
+::= { sp 100 }
+
+rsshtp1WEntry OBJECT-TYPE
+	SYNTAX		rsshtp1WEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the rsshtp1WTable"
+	INDEX		{ rsshtp1WIdent }
+::= { rsshtp1WTable 1 }
+
+rsshtp1WEntry ::=
+    SEQUENCE {
+	rsshtp1WIdent	SensorID,
+	rsshtp1WName	OctetString,
+	rsshtp1WTemp	Integer32,
+	rsshtp1WMaster	OctetString,
+	tempCritNotif	Integer,
+	tempCritMin	Integer32,
+	tempCritMax	Integer32
+    }
+
+rsshtp1WIdent OBJECT-TYPE
+	SYNTAX		SensorID
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Temperature sensor id"
+::= { rsshtp1WEntry 1 }
+
+rsshtp1WName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Name (max 20)"
+::= { rsshtp1WEntry 2 }
+
+rsshtp1WTemp OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Temperature value"
+::= { rsshtp1WEntry 3 }
+
+rsshtp1WMaster OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Name of the SNR-RSsensor-H/T/P which this temperature sensor is connected to"
+::= { rsshtp1WEntry 4 }
+
+tempCritNotif OBJECT-TYPE
+	SYNTAX	INTEGER
+		{
+			No	(0),
+			Yes	(1)
+		}
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Enable notifications on the critical temperature"
+::= { rsshtp1WEntry 10 }
+	
+tempCritMin OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Minimal critical temperature. Up to -55 \B0C"
+::= { rsshtp1WEntry 15 }
+
+tempCritMax OBJECT-TYPE
+	SYNTAX		Integer32
+	UNITS		"degrees Centigrade"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Maximum critical temperature. Up to +125\B0C"
+::= { rsshtp1WEntry 16 }
+
+-- sensorsTemplate
+
+sensorsTemplateTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF sensorsTemplateEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of sensors values"
+::= { sensorsTemplate 1 }
+
+sensorsTemplateEntry OBJECT-TYPE
+	SYNTAX		sensorsTemplateEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the rsshtp1WTable"
+	INDEX		{ sensorsTemplateValue }
+::= { sensorsTemplateTable 1 }
+
+sensorsTemplateEntry ::=
+    SEQUENCE {
+	sensorsTemplateValue	Integer,
+	sensorsTemplateName	OctetString
+    }
+
+sensorsTemplateValue OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Current value"
+::= { sensorsTemplateEntry 1 }
+
+sensorsTemplateName OBJECT-TYPE
+    	SYNTAX      OCTET STRING
+    	MAX-ACCESS  read-write
+    	STATUS      current
+    	DESCRIPTION "Name"
+::= { sensorsTemplateEntry 2 }
+
+sensorsTemplateTotalConnected OBJECT-TYPE
+	SYNTAX		Integer32
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Total value of connected sensors"
+::= { sensorsTemplate 2 }
+
+-- dio
+
+diTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF diEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of digital inputs values"
+::= { dio 1 }
+
+diEntry OBJECT-TYPE
+	SYNTAX		diEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the diTable"
+::= { diTable 1 }
+
+diEntry ::= SEQUENCE 
+{
+	diName		OctetString,
+	diAlarmName	OctetString,
+	diState		Integer,
+	diCnt		Counter
+}
+
+diName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Digital input name"
+::= { diEntry 1 }
+
+diAlarmName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Alarm name"
+::= { diEntry 2 }
+
+diState OBJECT-TYPE
+	SYNTAX		INTEGER
+			{
+				low	(0),
+				high	(1),
+				off	(2)
+			}
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Digital input state"
+::= { diEntry 3 }
+
+diCnt OBJECT-TYPE
+	SYNTAX		Counter
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Digital input impulse counter. Writable for reset only. Set 0 to reset"
+::= { diEntry 4 }
+
+
+doTable OBJECT-TYPE
+	SYNTAX		SEQUENCE OF doEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"A list of digital outputs values"
+::= { dio 2 }
+
+doEntry OBJECT-TYPE
+	SYNTAX		doEntry
+	MAX-ACCESS	not-accessible
+	STATUS		current
+	DESCRIPTION	"An entry (conceptual row) in the doTable"
+::= { doTable 1 }
+
+doEntry ::=
+    SEQUENCE {
+	doName		OctetString,
+	doDeviceName	OctetString,
+	doState		Integer,
+	doResetTime	Integer
+    }
+
+doName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Digital output name"
+::= { doEntry 1 }
+
+doDeviceName OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Digital output custom name"
+::= { doEntry 2 }
+
+doState OBJECT-TYPE
+	SYNTAX	INTEGER
+		{
+			off	(0),
+			on	(1),
+			reload	(2)
+		}
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Digital output state"
+::= { doEntry 3 }
+
+doResetDelay OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"sec"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Reload period"
+::= { doEntry 4 }
+
+uSenseState OBJECT-TYPE
+	SYNTAX	INTEGER
+		{
+			off	(0),
+			on	(1)
+		}
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Voltage sensor state"
+::= { dio 3 }
+
+--serial
+
+connectStatusRS485 OBJECT-TYPE
+	SYNTAX	INTEGER
+		{
+			No	(0),
+			Yes	(1)
+		}
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"RS485 TCP connection status"
+::= { rs485 1 }
+
+ipAddrRS485 OBJECT-TYPE
+	SYNTAX		IPADDRESS
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"RS485 TCP connection IP address"
+::= { rs485 2 }
+
+connectStatusRS232 OBJECT-TYPE
+	SYNTAX	INTEGER
+		{
+			No	(0),
+			Yes	(1)
+		}
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"RS232 TCP connection status"
+::= { rs232 1 }
+	
+ipAddrRS232 OBJECT-TYPE
+	SYNTAX		IPADDRESS
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"RS232 TCP connection IP address"
+::= { rs232 2 }
+
+
+-- gsm
+
+gsmModuleStatus OBJECT-TYPE
+	SYNTAX		INTEGER
+			{
+				No		(0),
+				Yes		(1),
+				NoSim		(2),
+				Error		(3),
+				Connected	(4)
+			}
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"GSM module status"
+::= { gsm 1 }
+
+gsmStrength OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"dBm"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Signal level"
+::= { gsm 2 }
+
+gsmReconnCount OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Number of connection attempts"
+::= { gsm 10 }
+
+-- rf
+
+rfModuleStatus OBJECT-TYPE
+	SYNTAX		INTEGER
+			{
+				No	(0),
+				Yes	(1)
+			}
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Status of the rf module"
+::= { rf 1 }
+
+-- options
+
+dataType OBJECT-TYPE
+	SYNTAX		INTEGER
+			{
+				integer	(0),
+				float	(1),
+				ufloat	(2)
+			}
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Values data type"
+::= { options 1 }
+
+reboot OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	write-only
+	STATUS		current
+	DESCRIPTION	"Send 1 to reboot"
+::= { options 300 }
+
+-- crit
+
+humCrit OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"%"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Critical humidity. From 0 to 100%"
+::= { crit 20 }
+
+adcCritMin OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"Volt DC"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"ADC IN critical min"
+::= { crit 30 }
+
+adcCritMax OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"Volt DC"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"ADC IN critical max"
+::= { crit 31 }
+
+adcHysteresis OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"ADC IN hysteresis"
+::= { crit 35 }
+
+-- diffparams
+
+-- upsStatus
+
+statusUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+			{
+				fail	(1),
+				ok	(0),
+				unknown	(2) 
+			}
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"UPS status"
+::= { upsStatus 1 }
+
+beeperStatusUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Beeper status. Megatec only"
+::= { upsStatus 8 }
+
+shutdownStatusUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Shutdown is active. Megatec only"
+::= { upsStatus 10 }
+
+lastBatteryChangeUPS OBJECT-TYPE
+	SYNTAX		OCTET STRING
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Last battery change date (mm/dd/yyyy). Smart only"
+::= { upsStatus 20 }
+
+shutdownTimeUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Shutdown period, minutes for Megatec, seconds for Smart. Writeble for Megatec only"
+::= { upsStatus 51 }
+
+turnOnTimeUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"min"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Turn on period, minutes. Megatec only"
+::= { upsStatus 52 }
+
+startShutdownTurnOnUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+			{
+				stop	(0),
+				start	(1) 
+			}
+	MAX-ACCESS	write-only
+	STATUS		current
+	DESCRIPTION	"Shutdown after shutdownTimeUPS and turn on after turnOnTimeUPS for Megatec. Shutdown after shutdownTimeUPS for Smart."
+::= { upsStatus 53 }
+
+startTurnOnUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+			{
+				turn-on	(1)
+			}
+	MAX-ACCESS	write-only
+	STATUS		current
+	DESCRIPTION	"Turn on immediately, send 1 to turn on. Smart only"
+::= { upsStatus 54 }
+
+startLongTestUPS OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"min"
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"Start specified time period test. Send period in minutes to start. Megatec only"
+::= { upsStatus 71 }
+
+-- pid
+
+inputPID OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-write
+	STATUS		current
+	DESCRIPTION	"PID SNMP input value"
+::= { pid 1 }
+
+outputPercentPID OBJECT-TYPE
+	SYNTAX		INTEGER
+	UNITS		"%"
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"PID output value. 0 to 100%"
+::= { pid 2 }
+
+outputRealPID OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"PID output value 
+(voltage if PID runs in analog mode or time if PID runs in PWM mode)"
+::= { pid 3 }
+
+ypPID OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Proportional gain"
+::= { pid 4 }
+
+yiPID OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Integral gain"
+::= { pid 5 }
+
+ydPID OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Derivative gain"
+::= { pid 6 }
+
+errorPID OBJECT-TYPE
+	SYNTAX		INTEGER
+	MAX-ACCESS	read-only
+	STATUS		current
+	DESCRIPTION	"Error. Difference between setpoint and input value"
+::= { pid 7 }
+
+
+-- Traps
+
+DI1Alarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 1 Alarm fires"
+::= { traps 1 }
+
+DI1Release NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 1 Alarm released"
+::= { traps 2 }
+
+DI2Alarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 2 Alarm fires"
+::= { traps 3 }
+
+DI2Release NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 2 Alarm released"
+::= { traps 4 }
+
+DI3Alarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 3 Alarm fires"
+::= { traps 5 }
+
+DI3Release NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 3 Alarm released"
+::= { traps 6 }
+
+DI4Alarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 4 Alarm fires"
+::= { traps 7 }
+
+DI4Release  NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 4 Alarm released"
+::= { traps 8 }
+
+DI5Alarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 5 Alarm fires"
+::= { traps 9 }
+
+DI5Release NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Input 5 Alarm released"
+::= { traps 10 }
+
+uSenseAlarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Phase sensor Alarm fires"
+::= { traps 11 }
+
+uSenseRelease NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Phase sensor Alarm released"
+::= { traps 12 }
+
+reloutOn NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Rele was swithed on by Thermostat or Gigrostat mode"
+::= { traps 13 }
+
+reloutOff NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Rele was swithed off by Thermostat or Gigrostat mode"
+::= { traps 14 }
+
+DO1On NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 1 was swithed on by Thermostat or Gigrostat mode"
+::= { traps 15 }
+
+DO1Off NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 1 was swithed off by Thermostat or Gigrostat mode"
+::= { traps 16 }
+
+DO2On NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 2 was swithed on by Thermostat or Gigrostat mode"
+::= { traps 17 }
+
+DO2Off NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 2 was swithed off by Thermostat or Gigrostat mode"
+::= { traps 18 }
+
+DO3On NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 3 was swithed on by Thermostat or Gigrostat mode"
+::= { traps 19 }
+
+DO3Off NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 3 was swithed off by Thermostat or Gigrostat mode"
+::= { traps 20 }
+
+DO4On NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 4 was swithed on by Thermostat or Gigrostat mode"
+::= { traps 21 }
+
+DO4Off NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 4 was swithed off by Thermostat or Gigrostat mode"
+::= { traps 22 }
+
+DO5On NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 5 was swithed on 
+by Thermostat or Gigrostat mode"
+::= { traps 23 }
+
+DO5Off NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Signifies that Output 5 was swithed off by Thermostat or Gigrostat mode"
+::= { traps 24 }
+
+tempSensorAlarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Temperature alarm"
+::= { traps 29 }
+
+tempSensorRelease NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Temperature release"
+::= { traps 30 }
+
+adcSensorAlarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Voltage sensor alarm"
+::= { traps 31 }
+
+adcSensorRelease NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Voltage sensor release"
+::= { traps 32 }
+
+humSensorAlarm NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Humidity alarm"
+::= { traps 33 }
+
+humSensorRelease NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Humidity release"
+::= { traps 34 }
+
+task1Done NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Task 1 done"
+::= { traps 36 }
+
+task2Done NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Task 2 done"
+::= { traps 37 }
+
+task3Done NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Task 3 done"
+::= { traps 38 }
+
+task4Done NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Task 4 done"
+::= { traps 39 }
+
+pingLost NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Ping lost"
+::= { traps 45 }
+
+batteryChargeLow NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"Battery charge is low"
+::= { traps 47 }
+
+upsUtilityFail NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"UPS utility fail"
+::= { traps 50 }
+
+upsUtilityOk NOTIFICATION-TYPE
+	STATUS		current
+	DESCRIPTION	"UPS utility OK"
+::= { traps 51 }
+
+-- erd4Group
+
+erd4Group NOTIFICATION-GROUP
+	NOTIFICATIONS 
+	{
+		DI1Alarm,
+		DI1Release,
+		DI2Alarm,
+		DI2Release,
+		DI3Alarm,
+		DI3Release,
+		DI4Alarm,
+		DI4Release,
+		DI5Alarm,
+		DI5Release,
+		uSenseAlarm,
+		uSenseRelease,
+		reloutOn,
+		reloutOff,
+		DO1On,
+		DO1Off,
+		DO2On,
+		DO2Off,
+		DO3On,
+		DO3Off,
+		DO4On,
+		DO4Off,
+		DO5On,
+		DO5Off,
+		tempSensorAlarm,
+		tempSensorRelease,
+		adcSensorAlarm,
+		adcSensorRelease,
+		humSensorAlarm,
+		humSensorRelease,
+		task1Done,
+		task2Done,
+		task3Done,
+		task4Done,
+		pingLost,
+		batteryChargeLow,
+		upsUtilityFail,
+		upsUtilityOk
+	}
+	STATUS			current
+	DESCRIPTION		"Notifications"
+::= { snr-erd-4 99 }
+
+END
