ENVSEMS2D DEFINITIONS ::= BEGIN
IMPORTS
   NOTIFICATION-GROUP, OBJECT-GROUP             FROM SNMPv2-CONF
   MODULE-IDENTITY, OBJECT-TYPE, 
   NOTIFICATION-TYPE, enterprises,
   Integer32                                    FROM  SNMPv2-SMI
   DisplayString, TEXTUAL-CONVENTION             FROM  SNMPv2-TC;
   

 UtfDisplay ::= TEXTUAL-CONVENTION
        DISPLAY-HINT   "t"
        STATUS current
        SYNTAX  DisplayString
              
envSems MODULE-IDENTITY
     LAST-UPDATED "201403251400Z"
     ORGANIZATION "Network Technologies Inc."
     CONTACT-INFO 
         "Network Technologies Inc.
         
          Postal: 1275 Danner Dr,
                  Aurora, OH 442022
                  US
                 
          Tel: 330-562-7070
          Fax: 330-562-1999
             
          WEB: www.networktechinc.com"
	 
     DESCRIPTION 
         "ENVIROMUX-SEMS-2D MIB file." 
     REVISION     "201403251400Z" 
         DESCRIPTION  "Rev. 1.02- added support to change relay status using SNMP"
     REVISION     "201211121400Z" 
         DESCRIPTION  "Rev. 1.01 - added remote inputs and remote relays"
     REVISION     "201201050000Z" 
         DESCRIPTION  "Rev. 1.00 - initial version"
     ::= { hardware 9 }

-- the root of the subtree for Network Technologies Inc
nti		        OBJECT IDENTIFIER ::= { enterprises 3699 }

-- subtree for products
products		        OBJECT IDENTIFIER ::= { nti 1 }
hardware		        OBJECT IDENTIFIER ::= { products 1 }
software		        OBJECT IDENTIFIER ::= { products 2 }
otherProduct            OBJECT IDENTIFIER ::= { hardware 200 }

-- ipdus2 subtree
masterUnit	            OBJECT IDENTIFIER ::= { envSems 1 }
envTraps                OBJECT IDENTIFIER ::= { envSems 100 }
hostSystem              OBJECT IDENTIFIER ::= { masterUnit 1 }
users                   OBJECT IDENTIFIER ::= { masterUnit 2 }
groups			        OBJECT IDENTIFIER ::= { masterUnit 3 }
dewPointSensors         OBJECT IDENTIFIER ::= { masterUnit 4 }
extSensors		        OBJECT IDENTIFIER ::= { masterUnit 5 }
digInputs               OBJECT IDENTIFIER ::= { masterUnit 6 }
ipDevices 		        OBJECT IDENTIFIER ::= { masterUnit 7 }
outRelays 		        OBJECT IDENTIFIER ::= { masterUnit 8 }
pwrSupplies 	        OBJECT IDENTIFIER ::= { masterUnit 9 }
events                  OBJECT IDENTIFIER ::= { masterUnit 10 }
smartAlerts             OBJECT IDENTIFIER ::= { masterUnit 11 }
remoteInputs             OBJECT IDENTIFIER ::= { masterUnit 12 }
remoteRelays             OBJECT IDENTIFIER ::= { masterUnit 13 }
envGroups               OBJECT IDENTIFIER ::= { masterUnit 200 }

-- groups

sysGroup                OBJECT-GROUP
    OBJECTS             { sysTime, sysEnterpriseName, sysEnterpriseLocation, sysEnterpriseContact, sysEnterprisePhone }
    STATUS              current
    DESCRIPTION         "System parameters group"
    ::= {envGroups 1}

extSensorsGrp           OBJECT-GROUP
    OBJECTS             { extSensorIndex, extSensorType, extSensorDescription, extSensorConnector, extSensorGroupNb, extSensorGroup,
                        extSensorValue, extSensorUnit, extSensorUnitName, extSensorStatus, extSensorMinThreshold, extSensorMaxThreshold }
    STATUS              current
    DESCRIPTION         "External sensors group"
    ::= {envGroups 3}

digInputsGrp            OBJECT-GROUP
    OBJECTS             { digInputIndex, digInputType, digInputDescription, digInputConnector, digInputGroupNb, digInputGroup,
                        digInputValue, digInputStatus, digInputNormalValue }
    STATUS              current
    DESCRIPTION         "Dry contacts group"
    ::= {envGroups 5}

ipDeviceGrp            OBJECT-GROUP
    OBJECTS             { ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceGroupNb, ipDeviceGroup, ipDeviceTimeout, ipDeviceRetries, 
                        ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "IP devices group"
    ::= {envGroups 6}

outRelaysGrp           OBJECT-GROUP
    OBJECTS             { outRelayIndex, outRelayDescription, outRelayStatus }
    STATUS              current
    DESCRIPTION         "Dry contacts group"
    ::= {envGroups 7}

miscTrapFields          OBJECT-GROUP
    OBJECTS             { envTrapDescription, envTrapValue }
    STATUS              current
    DESCRIPTION         "General Information Traps"
    ::= {envGroups 8}

extSensorTrapGrp        NOTIFICATION-GROUP
    NOTIFICATIONS       { extSensor1Trap, extSensor2Trap, extSensor3Trap, extSensor4Trap }
    STATUS              current
    DESCRIPTION         "External Sensors Traps Group"
    ::= {envGroups 10}
    

    
digInputTrapGrp        NOTIFICATION-GROUP
    NOTIFICATIONS       { digInput1Trap, digInput2Trap, digInput3Trap, digInput4Trap, digInput5Trap }
    STATUS              current
    DESCRIPTION         "External Sensors Traps Group"
    ::= {envGroups 12}
    
ipDeviceTrapGrp        NOTIFICATION-GROUP
    NOTIFICATIONS       { ipDevice1Trap, ipDevice2Trap, ipDevice3Trap, ipDevice4Trap, ipDevice5Trap, ipDevice6Trap, ipDevice7Trap, ipDevice8Trap, 
                        ipDevice9Trap,  ipDevice10Trap, ipDevice11Trap, ipDevice12Trap, ipDevice13Trap, ipDevice14Trap, ipDevice15Trap, ipDevice16Trap }
    STATUS              current
    DESCRIPTION         "IP Device Traps Group"
    ::= {envGroups 13}

miscNotificationGrp    NOTIFICATION-GROUP
    NOTIFICATIONS       { evLogFileTrap, dataLogFileTrap, remoteDataLogFileTrap}
    STATUS              current
    DESCRIPTION         "Other Traps Group"
    ::= {envGroups 14}

pwrSuppliesGrp         NOTIFICATION-GROUP     
    NOTIFICATIONS       { pwrSupplyIndex, pwrSupplyStatus }
    STATUS              current
    DESCRIPTION         "Power supplies group"
    ::= {envGroups 15}
    
-- hostSystem subtree

sysTime					OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION		    "System time"
	::= { hostSystem 1 }

sysEnterpriseName		OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION		    "Enterprise Name"
	::= { hostSystem 2 }

sysEnterpriseLocation	OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION		    "Enterprise Location"
	::= { hostSystem 3 }

sysEnterpriseContact	OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION		    "Enterprise Contact"
	::= { hostSystem 4 }

sysEnterprisePhone  	OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION		    "Enterprise Phone"
	::= { hostSystem 5 }


-- external Dew point sensors description

dewPointSensorTable		OBJECT-TYPE
	SYNTAX	            SEQUENCE OF	DewPointSensorEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "Table of Dew point sensors entries"
	::= { dewPointSensors 1 }

dewPointSensorEntry		OBJECT-TYPE
    SYNTAX              DewPointSensorEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "A dew point sensor entry"
	INDEX               { dewPointSensorIndex }
	::= { dewPointSensorTable 1 }

DewPointSensorEntry ::= 
	SEQUENCE {
		dewPointSensorIndex
			Integer32,
		dewPointSensorType
			INTEGER,
		dewPointSensorDescription
			DisplayString,
		dewPointSensorConnector
			Integer32,
		dewPointSensorGroupNb
			Integer32,
		dewPointSensorGroup
			DisplayString,
        dewPointSensorValue
            INTEGER,
		dewPointSensorUnit
			Integer32,
		dewPointSensorUnitName
			DisplayString,
		dewPointSensorStatus
			INTEGER,
		dewPointSensorMinThreshold
			Integer32,
		dewPointSensorMaxThreshold
			Integer32
	}

dewPointSensorIndex			OBJECT-TYPE
	SYNTAX				Integer32 
	MAX-ACCESS			accessible-for-notify
	STATUS				current
	DESCRIPTION	        "The index of the Dew point sensor entry 1..4"
	::= { dewPointSensorEntry 1 }

dewPointSensorType		    OBJECT-TYPE
	SYNTAX				INTEGER {  undefined(0), dewPoint(24) }
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Dew point Sensor Type"
	::= { dewPointSensorEntry 2 }

dewPointSensorDescription    OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Dew point Sensor Description"
	::= { dewPointSensorEntry 3 }
    
dewPointSensorConnector      OBJECT-TYPE
	SYNTAX				Integer32 (1..16)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Connector where the Dew point sensor is attached"
	::= { dewPointSensorEntry 4 }
    
dewPointSensorGroupNb        OBJECT-TYPE
	SYNTAX				Integer32 (1..8)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Dew point Sensor's Group"
	::= { dewPointSensorEntry 5 }
    
dewPointSensorGroup          OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Dew point Sensor's Group Name"
	::= { dewPointSensorEntry 6 }
    
dewPointSensorValue			OBJECT-TYPE
	SYNTAX				INTEGER { closed(0), open(1) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the Dew point sensor reading. It is presented in tenths of degrees"
	::= { dewPointSensorEntry 7 }
	
dewPointSensorUnit			OBJECT-TYPE
	SYNTAX				Integer32 (0..1)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The measuremnet unit for this sensor. Can be Celsius or Fahrenheit"
	::= { dewPointSensorEntry 8 }
	
dewPointSensorUnitName   	OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The measuremnet unit for this sensor in readable format"
	::= { dewPointSensorEntry 9 }
	
dewPointSensorStatus			OBJECT-TYPE
	SYNTAX				INTEGER {notconnected(0), normal(1), prealert(2), alert(3), acknowledged(4), dismissed(5), disconnected(6) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The status of the Dew point sensor"
	::= { dewPointSensorEntry 10 }
	
dewPointSensorMinThreshold	OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the sensor lower threshold"
	::= { dewPointSensorEntry 11 }
	
dewPointSensorMaxThreshold	OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the sensor upper threshold"
	::= { dewPointSensorEntry 12 }
	

-- external sensors description

extSensorTable			OBJECT-TYPE
	SYNTAX	            SEQUENCE OF	ExtSensorEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "Table of external Sensors entries"
	::= { extSensors 1 }

extSensorEntry     		OBJECT-TYPE
    SYNTAX              ExtSensorEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "An external sensor entry"
	INDEX               { extSensorIndex }
	::= { extSensorTable 1 }

ExtSensorEntry ::= 
	SEQUENCE {
		extSensorIndex
			Integer32,
		extSensorType
			INTEGER,
		extSensorDescription
			DisplayString,
		extSensorConnector
			Integer32,
		extSensorGroupNb
			Integer32,
		extSensorGroup
			DisplayString,
        extSensorValue
            INTEGER,
		extSensorUnit
			Integer32,
		extSensorUnitName
			DisplayString,
		extSensorStatus
			INTEGER,
		extSensorMinThreshold
			Integer32,
		extSensorMaxThreshold
			Integer32
	}

extSensorIndex			OBJECT-TYPE
	SYNTAX				Integer32 (1..4)
	MAX-ACCESS			accessible-for-notify
	STATUS				current
	DESCRIPTION	        "The index of the external sensor entry 1..4"
	::= { extSensorEntry 1 }

extSensorType		    OBJECT-TYPE
	SYNTAX				INTEGER {  undefined(0), temperature(1), humidity(2), power(3), lowVoltage(4), current(5), aclmvVoltage(6), aclmpVoltage(7), aclmpPower(8),water(9), smoke(10), vibration(11), motion(12), glass(13), door(14), keypad(15), panicButton(16), keyStation(17), digInput(18), light(22), tempHum(513), custom(32767), temperatureCombo(32769), humidityCombo(32770)  }
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor Type"
	::= { extSensorEntry 2 }

extSensorDescription    OBJECT-TYPE
        
	SYNTAX			UtfDisplay
	MAX-ACCESS  		read-only
	STATUS			current
	DESCRIPTION	        "Sensor Description"
	::= { extSensorEntry 3 }
    
extSensorConnector      OBJECT-TYPE
	SYNTAX				Integer32 (1..2)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Connector where the sensor is attached"
	::= { extSensorEntry 4 }
    
extSensorGroupNb        OBJECT-TYPE
	SYNTAX				Integer32 (1..2)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor's Group"
	::= { extSensorEntry 5 }
    
extSensorGroup          OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor's Group Name"
	::= { extSensorEntry 6 }
    
extSensorValue			OBJECT-TYPE
	SYNTAX				INTEGER { closed(0), open(1) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the external sensor reading. For temperature, voltage, current or low voltage,  it is presented in tenths of degrees/volts"
	::= { extSensorEntry 7 }
	
extSensorUnit			OBJECT-TYPE
	SYNTAX				Integer32 (0..1)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The measuremnet unit for this sensor. It is important only for temperature"
	::= { extSensorEntry 8 }
	
extSensorUnitName   	OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The measuremnet unit for this sensor in readable format"
	::= { extSensorEntry 9 }
	
extSensorStatus			OBJECT-TYPE
	SYNTAX				INTEGER {notconnected(0), normal(1), prealert(2), alert(3), acknowledged(4), dismissed(5), disconnected(6) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The status of the sensor"
	::= { extSensorEntry 10 }
	
extSensorMinThreshold	OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the sensor lower threshold"
	::= { extSensorEntry 11 }
	
extSensorMaxThreshold	OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the sensor upper threshold"
	::= { extSensorEntry 12 }
	
extSensorAclmTable		OBJECT-TYPE
	SYNTAX	            SEQUENCE OF	ExtSensorAclmValues
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "Table of external Sensors entries"
	::= { extSensors 2 }

extSensorAclmValues		OBJECT-TYPE
    SYNTAX              ExtSensorAclmValues
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "An external sensor entry"
	INDEX               { extSensorAclmIndex }
	::= { extSensorAclmTable 1 }

ExtSensorAclmValues ::=
        SEQUENCE {
                extSensorAclmIndex
                        Integer32,
                extSensorPeakValue
                        Integer32,
                extSensorFrequency
                        Integer32,
                extSensorCurrent
                        Integer32,
                extSensorSpikes
                        Integer32,
                extSensorSwells
                        Integer32,
                extSensorSags
                        Integer32,
                extSensorRelay
                        INTEGER
        }

extSensorAclmIndex      OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "Index of the sensor in the list"
	::= { extSensorAclmValues 1 }
        
extSensorPeakValue	    OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The peak value of the ACLM sensor presensted in tenths of volts/watts"
	::= { extSensorAclmValues 2 }
	
extSensorFrequency	    OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "Frequency measured by the ACLM sensor presensted in tenths of Hz"
	::= { extSensorAclmValues 3 }
	
extSensorCurrent	    OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "Current measured by the ACLM sensor presensted in tenths of A(mpers)"
	::= { extSensorAclmValues 4 }
	
extSensorSpikes	        OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "Number of spikes read"
	::= { extSensorAclmValues 5 }
	
extSensorSwells	        OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "Number of swells read"
	::= { extSensorAclmValues 6 }
	
extSensorSags	        OBJECT-TYPE
	SYNTAX				Integer32 (0..1000)
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "Number of sags read"
	::= { extSensorAclmValues 7 }

extSensorRelay          OBJECT-TYPE
    SYNTAX              INTEGER { closed(0), open(1) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "Relay status"
	::= { extSensorAclmValues 8 }
	
-- dry contacts description

digInputTable	   	OBJECT-TYPE
	SYNTAX	            SEQUENCE OF	DryContactEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "Table of external Sensors entries"
	::= { digInputs 1 }

digInputEntry   		OBJECT-TYPE
    SYNTAX              DryContactEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "A dry contact entry"
	INDEX               { digInputIndex }
	::= { digInputTable 1 }

DryContactEntry ::= 
	SEQUENCE {
		digInputIndex
			Integer32,
		digInputType
			INTEGER,
		digInputDescription
			DisplayString,
		digInputConnector
			Integer32,
		digInputGroupNb
			Integer32,
		digInputGroup
			DisplayString,
        digInputValue
            INTEGER,
		digInputStatus
			INTEGER,
		digInputNormalValue
			INTEGER
	}

digInputIndex		OBJECT-TYPE
	SYNTAX				Integer32 (1..5)
	MAX-ACCESS			accessible-for-notify
	STATUS				current
	DESCRIPTION	        "The index of the external sensor entry 1..4"
	::= { digInputEntry 1 }

digInputType		    OBJECT-TYPE
	SYNTAX				INTEGER { digInput(18) }
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor Type. Only dry contact type will be used"
	::= { digInputEntry 2 }

digInputDescription  OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor Description"
	::= { digInputEntry 3 }
    
digInputConnector    OBJECT-TYPE
	SYNTAX				Integer32 (1..2)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Connector where the sensor is attached"
	::= { digInputEntry 4 }
    
digInputGroupNb      OBJECT-TYPE
	SYNTAX				Integer32 (1..2)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor's Group"
	::= { digInputEntry 5 }
    
digInputGroup        OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor's Group Name"
	::= { digInputEntry 6 }
    
digInputValue		OBJECT-TYPE
	SYNTAX				INTEGER { closed(0), open(1) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the dry contact reading."
	::= { digInputEntry 7 }
	
digInputStatus		OBJECT-TYPE
	SYNTAX				INTEGER {notconnected(0), normal(1), prealert(2), alert(3), acknowledged(4), dismissed(5), disconnected(6) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The status of the sensor"
	::= { digInputEntry 8 }
	
digInputNormalValue  OBJECT-TYPE
	SYNTAX				INTEGER { closed(0), open(1) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The normal value of the dry contact reading"
	::= { digInputEntry 9 }
	
	
	
-- remote inputs description

remoteInputTable	   	OBJECT-TYPE
	SYNTAX	            SEQUENCE OF	RemoteInputEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "Table of Remote Inputs entries"
	::= { remoteInputs 1 }

remoteInputEntry   		OBJECT-TYPE
    SYNTAX              RemoteInputEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "A remote input entry"
	INDEX               { remoteInputIndex }
	::= { remoteInputTable 1 }

RemoteInputEntry ::= 
	SEQUENCE {
		remoteInputIndex
			Integer32,
		remoteInputType
			INTEGER,
		remoteInputDescription
			DisplayString,
		remoteInputConnector
			Integer32,
		remoteInputGroupNb
			Integer32,
		remoteInputGroup
			DisplayString,
        remoteInputValue
            INTEGER,
		remoteInputStatus
			INTEGER,
		remoteInputNormalValue
			INTEGER
	}

remoteInputIndex		OBJECT-TYPE
	SYNTAX				Integer32 
	MAX-ACCESS			accessible-for-notify
	STATUS				current
	DESCRIPTION	        "The index of the remote input entry 1..4"
	::= { remoteInputEntry 1 }

remoteInputType		    OBJECT-TYPE
	SYNTAX				INTEGER { remoteInput(18) }
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor Type. Remote input contact type will be used"
	::= { remoteInputEntry 2 }

remoteInputDescription  OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor Description"
	::= { remoteInputEntry 3 }
    
remoteInputConnector    OBJECT-TYPE
	SYNTAX				Integer32 (1..256)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Connector where the sensor is attached"
	::= { remoteInputEntry 4 }
    
remoteInputGroupNb      OBJECT-TYPE
	SYNTAX				Integer32 (1..8)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor's Group"
	::= { remoteInputEntry 5 }
    
remoteInputGroup        OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Sensor's Group Name"
	::= { remoteInputEntry 6 }
    
remoteInputValue		OBJECT-TYPE
	SYNTAX				INTEGER { closed(0), open(1) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The value of the remote input reading."
	::= { remoteInputEntry 7 }
	
remoteInputStatus		OBJECT-TYPE
	SYNTAX				INTEGER {notconnected(0), normal(1), prealert(2), alert(3), acknowledged(4), dismissed(5), disconnected(6) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The status of the sensor"
	::= { remoteInputEntry 8 }
	
remoteInputNormalValue  OBJECT-TYPE
	SYNTAX				INTEGER { closed(0), open(1) }
	MAX-ACCESS			read-only
	STATUS				current
	DESCRIPTION	        "The normal value of the remote input reading"
	::= { remoteInputEntry 9 }

	
	
-- IP Devices description

ipDeviceTable           OBJECT-TYPE
    SYNTAX              SEQUENCE OF IpDeviceEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "Table of IP Devices entries"
	::= { ipDevices 1 }

ipDeviceEntry    		OBJECT-TYPE
    SYNTAX              IpDeviceEntry
	MAX-ACCESS          not-accessible
	STATUS	            current
	DESCRIPTION         "An IP Device entry"
	INDEX               { ipDeviceIndex }
	::= { ipDeviceTable 1 }

IpDeviceEntry ::= 
	SEQUENCE {
		ipDeviceIndex
			Integer32,
		ipDeviceAddress
			DisplayString,
		ipDeviceDescription
			DisplayString,
		ipDeviceGroupNb
			Integer32,
		ipDeviceGroup
			DisplayString,
		ipDeviceTimeout
			Integer32,
		ipDeviceRetries
			Integer32,
		ipDeviceValue
			INTEGER,
		ipDeviceStatus
			INTEGER
	}

ipDeviceIndex			OBJECT-TYPE
	SYNTAX				Integer32 (1..8)
	MAX-ACCESS			accessible-for-notify
	STATUS				current
	DESCRIPTION	        "The index of the IP Device entry 1..8"
	::= { ipDeviceEntry 1 }

ipDeviceAddress   OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "IP Device URL"
	::= { ipDeviceEntry 2 }
    
ipDeviceDescription     OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "IP Device Description"
	::= { ipDeviceEntry 3 }
    
ipDeviceGroupNb         OBJECT-TYPE
	SYNTAX				Integer32 (1..2)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Index of the group the IP Device belongs to"
	::= { ipDeviceEntry 4 }
    
ipDeviceGroup           OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Name of the group the IP Device belongs to"
	::= { ipDeviceEntry 5 }
    
ipDeviceTimeout         OBJECT-TYPE
	SYNTAX				Integer32 
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "IP Device ping timeout (in seconds)"
	::= { ipDeviceEntry 6 }
    
ipDeviceRetries         OBJECT-TYPE
	SYNTAX				Integer32 
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Number of ping retries to the IP device, until responding"
	::= { ipDeviceEntry 7 }
    
ipDeviceValue           OBJECT-TYPE
	SYNTAX				INTEGER { notResponding(0), responding(1) }
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Responding status"
	::= { ipDeviceEntry 8 }
    
ipDeviceStatus          OBJECT-TYPE
	SYNTAX				INTEGER {notconnected(0), normal(1), prealert(2), alert(3), acknowledged(4), dismissed(5), disconnected(6) }
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Alarm status of the IP Device"
	::= { ipDeviceEntry 9 }

-- outRelays description

outRelayTable           OBJECT-TYPE
    SYNTAX              SEQUENCE OF OutRelayEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "Table of output relays"
    ::= { outRelays 1 }

outRelayEntry           OBJECT-TYPE
    SYNTAX              OutRelayEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "An output relay entry"
    INDEX               { outRelayIndex }
    ::= { outRelayTable 1 }

OutRelayEntry ::=
    SEQUENCE {
        outRelayIndex
            Integer32,
        outRelayDescription
            DisplayString,            
        outRelayStatus
            INTEGER
    }

outRelayIndex           OBJECT-TYPE
    SYNTAX              Integer32 
    MAX-ACCESS          accessible-for-notify
    STATUS              current
    DESCRIPTION         "The index of relay"
    ::= { outRelayEntry 1 }

outRelayDescription     OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION         "Desciption/name associated with the output relay"
    ::= { outRelayEntry 2 }

outRelayStatus          OBJECT-TYPE
    SYNTAX              INTEGER { active(0), inactive(1) }
    MAX-ACCESS          read-write
    STATUS              current
    DESCRIPTION         "The status of the output relay"
    ::= { outRelayEntry 3 }    
   

-- remoteRelays description

remoteRelayTable           OBJECT-TYPE
    SYNTAX              SEQUENCE OF RemoteRelayEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "Table of remote relays"
    ::= { remoteRelays 1 }

remoteRelayEntry           OBJECT-TYPE
    SYNTAX              RemoteRelayEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "An output relay entry"
    INDEX               { remoteRelayIndex }
    ::= { remoteRelayTable 1 }

RemoteRelayEntry ::=
    SEQUENCE {
        remoteRelayIndex
            Integer32,
        remoteRelayDescription
            DisplayString,            
        remoteRelayStatus
            INTEGER
    }

remoteRelayIndex           OBJECT-TYPE
    SYNTAX              Integer32 
    MAX-ACCESS          accessible-for-notify
    STATUS              current
    DESCRIPTION         "The index of relay"
    ::= { remoteRelayEntry 1 }

remoteRelayDescription     OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION         "Desciption/name associated with the remote relay"
    ::= { remoteRelayEntry 2 }

remoteRelayStatus          OBJECT-TYPE
    SYNTAX              INTEGER { active(0), inactive(1) }
    MAX-ACCESS          read-write
    STATUS              current
    DESCRIPTION         "The status of the remote relay"
    ::= { remoteRelayEntry 3 }    


-- powerSupply description

pwrSupplyTable          OBJECT-TYPE
    SYNTAX              SEQUENCE OF PwrSupplyEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "Table of power supplies"
    ::= { pwrSupplies 1 }

pwrSupplyEntry          OBJECT-TYPE
    SYNTAX              PwrSupplyEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "An output relay entry"
    INDEX               { pwrSupplyIndex }
    ::= { pwrSupplyTable 1 }

PwrSupplyEntry ::=
    SEQUENCE {
        pwrSupplyIndex
            Integer32,
        pwrSupplyStatus
            INTEGER
    }

pwrSupplyIndex          OBJECT-TYPE
    SYNTAX              Integer32 
    MAX-ACCESS          accessible-for-notify
    STATUS              current
    DESCRIPTION         "The index of power supply"
    ::= { pwrSupplyEntry 1 }

pwrSupplyStatus          OBJECT-TYPE
    SYNTAX              INTEGER { failed(0), ok(1), na(2) }
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION         "The status of the output relay"
    ::= { pwrSupplyEntry 2 }    

-- events description

eventTable              OBJECT-TYPE
    SYNTAX              SEQUENCE OF EventEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "Table of events"
    ::= { events 1 }

eventEntry              OBJECT-TYPE
    SYNTAX              EventEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "An event entry"
    INDEX               { eventIndex }
    ::= { eventTable 1 }

EventEntry ::=
    SEQUENCE {
        eventIndex
            Integer32,
        eventDescription
            DisplayString,
        eventStatus
            INTEGER
    }

eventIndex              OBJECT-TYPE
    SYNTAX              Integer32 
    MAX-ACCESS          accessible-for-notify
    STATUS              current
    DESCRIPTION         "The index of the event"
    ::= { eventEntry 1 }

eventDescription        OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION         "Desciption/name associated with the event"
    ::= { eventEntry 2 }

eventStatus             OBJECT-TYPE
    SYNTAX              INTEGER { normal(1), alert(3), acknowledged(4), dismissed(5) }
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION         "The status of the event"
    ::= { eventEntry 3 }    

-- smartAlerts description

smartAlertTable         OBJECT-TYPE
    SYNTAX              SEQUENCE OF SmartAlertEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "Table of smartAlerts"
    ::= { smartAlerts 1 }

smartAlertEntry         OBJECT-TYPE
    SYNTAX              SmartAlertEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION         "A smartAlert entry"
    INDEX               { smartAlertIndex }
    ::= { smartAlertTable 1 }

SmartAlertEntry ::=
    SEQUENCE {
        smartAlertIndex
            Integer32,
        smartAlertDescription
            DisplayString,
        smartAlertStatus
            INTEGER
    }

smartAlertIndex         OBJECT-TYPE
    SYNTAX              Integer32 
    MAX-ACCESS          accessible-for-notify
    STATUS              current
    DESCRIPTION         "The index of the smartAlert"
    ::= { smartAlertEntry 1 }

smartAlertDescription   OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION         "Desciption/name associated with the smartAlert"
    ::= { smartAlertEntry 2 }

smartAlertStatus        OBJECT-TYPE
    SYNTAX              INTEGER { normal(1), alert(3), acknowledged(4), dismissed(5) }
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION         "The status of the smartAlert"
    ::= { smartAlertEntry 3 }    



   
-- Trap Definitions
extSensorsTraps         OBJECT IDENTIFIER ::= { envTraps 5 }
waterSensorsTraps       OBJECT IDENTIFIER ::= { envTraps 6 }
digInputsTraps          OBJECT IDENTIFIER ::= { envTraps 7 }
ipDevicesTraps          OBJECT IDENTIFIER ::= { envTraps 8 }
outRelaysTraps          OBJECT IDENTIFIER ::= { envTraps 9 }

envTrapDescription      OBJECT-TYPE
	SYNTAX				DisplayString
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Message issued together with the trap to explain the reason the trap was sent"
	::= { envTraps 100 }

envTrapValue            OBJECT-TYPE
	SYNTAX				Integer32 (-1000..1000)
	MAX-ACCESS  		read-only
	STATUS				current
	DESCRIPTION	        "Message issued together with the trap to retrieve a value"
	::= { envTraps 101 }

-- sensor traps
    
-- External sensors traps
    
extSensor1Trap          NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, extSensorIndex, extSensorDescription, extSensorValue, extSensorUnitName, extSensorStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when external sensor 1 (Connector #1) has a notification to send"
    ::= {extSensorsTraps 0 1 }

extSensor2Trap          NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, extSensorIndex, extSensorDescription, extSensorValue, extSensorUnitName, extSensorStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when external sensor 2 (Connector #1) has a notification to send"
    ::= {extSensorsTraps 0 2 }

extSensor3Trap          NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, extSensorIndex, extSensorDescription, extSensorValue, extSensorUnitName, extSensorStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when external sensor 3 (Connector #2) has a notification to send"
    ::= {extSensorsTraps 0 3 }

extSensor4Trap          NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, extSensorIndex, extSensorDescription, extSensorValue, extSensorUnitName, extSensorStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when external sensor 4 (Connector #2) has a notification to send"
    ::= {extSensorsTraps 0 4 }

-- Dry contacts traps
    
digInput1Trap         NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, digInputIndex, digInputDescription, digInputValue, digInputStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when dry contact 1 (Connector #1) has a notification to send"
    ::= {digInputsTraps 0 1 }

digInput2Trap         NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, digInputIndex, digInputDescription, digInputValue, digInputStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when dry contact 2 (Connector #2) has a notification to send"
    ::= {digInputsTraps 0 2 }

digInput3Trap         NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, digInputIndex, digInputDescription, digInputValue, digInputStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when dry contact 3 (Connector #3) has a notification to send"
    ::= {digInputsTraps 0 3 }

digInput4Trap         NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, digInputIndex, digInputDescription, digInputValue, digInputStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when dry contact 4 (Connector #4) has a notification to send"
    ::= {digInputsTraps 0 4 }

digInput5Trap         NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, digInputIndex, digInputDescription, digInputValue, digInputStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when dry contact 5 (Connector #5) has a notification to send"
    ::= {digInputsTraps 0 5 }

-- IP Devices traps

ipDevice1Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #1 has a notification to send"
    ::= { ipDevicesTraps 0 1 }

ipDevice2Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #2 has a notification to send"
    ::= { ipDevicesTraps 0 2 }

ipDevice3Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #3 has a notification to send"
    ::= { ipDevicesTraps 0 3 }

ipDevice4Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #4 has a notification to send"
    ::= { ipDevicesTraps 0 4 }

ipDevice5Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #5 has a notification to send"
    ::= { ipDevicesTraps 0 5 }

ipDevice6Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #6 has a notification to send"
    ::= { ipDevicesTraps 0 6 }

ipDevice7Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #7 has a notification to send"
    ::= { ipDevicesTraps 0 7 }

ipDevice8Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #8 has a notification to send"
    ::= { ipDevicesTraps 0 8 }

ipDevice9Trap           NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #9 has a notification to send"
    ::= { ipDevicesTraps 0 9 }

ipDevice10Trap          NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #10 has a notification to send"
    ::= { ipDevicesTraps 0 10 }

ipDevice11Trap          NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #11 has a notification to send"
    ::= { ipDevicesTraps 0 11 }

ipDevice12Trap          NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #12 has a notification to send"
    ::= { ipDevicesTraps 0 12 }

ipDevice13Trap          NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #13 has a notification to send"
    ::= { ipDevicesTraps 0 13 }

ipDevice14Trap          NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #14 has a notification to send"
    ::= { ipDevicesTraps 0 14 }

ipDevice15Trap          NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #15 has a notification to send"
    ::= { ipDevicesTraps 0 15 }

ipDevice16Trap          NOTIFICATION-TYPE    
    OBJECTS             { envTrapDescription, ipDeviceIndex, ipDeviceAddress, ipDeviceDescription, ipDeviceValue, ipDeviceStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when IP device #16 has a notification to send"
    ::= { ipDevicesTraps 0 16 }

-- Output Relay trap

outRelay1Trap           NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, outRelayIndex, outRelayDescription, outRelayStatus }
    STATUS              current
    DESCRIPTION         "Trap issued when output relay changes it's status"
    ::= { outRelaysTraps 0 1 }
    
-- Event Log file trap

evLogFileTrap           NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription }
    STATUS              current
    DESCRIPTION         "Trap issued when the system has an event log file notification to send"
    ::= { envTraps 0 10 }

-- Data Log file trap

dataLogFileTrap         NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription }
    STATUS              current
    DESCRIPTION         "Trap issued when the system has a data log file notification to send (file almost full)"
    ::= { envTraps 0 11 }

remoteDataLogFileTrap   NOTIFICATION-TYPE
    OBJECTS             { envTrapDescription, envTrapValue }
    STATUS              current
    DESCRIPTION         "Trap issued when the system has a data log file reading to send"
    ::= { envTraps 0 12 }
    

END
  
