
-- Title        :  Chloride Power Environment Sensor MIB
-- Date         :  March 24, 2005
-- By           :  Eric Peterson and Doug Griffin ( Chloride Power )

------------------------------------------------------------
-- Revision History

-- April 04, 2005
-- Initial release. Open for comments. 

------------------------------------------------------------

CHLORIDE-ENVIRONMENT-SENSOR-MIB DEFINITIONS ::= BEGIN

	chloride OBJECT IDENTIFIER ::= {enterprises 1364}
	environmentSensor OBJECT IDENTIFIER ::= {chloride 10}

-- TEMPERATURE SENSOR TABLE

numSensors OBJECT-TYPE
	SYNTAX     INTEGER
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        	"The number of sensors that are currently connected."
	::= { environmentSensor 1 }


sensorTable OBJECT-TYPE
	SYNTAX 	SEQUENCE OF Sensor
	ACCESS 	not-accessible
	STATUS	mandatory
	DESCRIPTION
	"A list of sensor table entries."
	::= { environmentSensor 2 }

-- TEMPERATURE SENSOR ENTRY
	
sensorEntry OBJECT-TYPE
	SYNTAX 	Sensor
	ACCESS 	not-accessible
	STATUS 	mandatory
	DESCRIPTION 
	""	
	INDEX
	{ address }
	::= { sensorTable 1 }

Sensor ::= SEQUENCE {
	name 			DisplayString (SIZE(0..63)), 			
	address			INTEGER,
	status			INTEGER,	
	--temperature attributes
	temperature 		INTEGER,
	tempStatus 		INTEGER,
	tempHiSeverity 		INTEGER,
	tempLoSeverity		INTEGER,
	tempHiThreshold		INTEGER,
	tempLoThreshold		INTEGER,
	--humidity attributes
	humidity		INTEGER,
	humidityStatus 		INTEGER,
	humidityHiSeverity 	INTEGER,
	humidityLoSeverity	INTEGER,
	humidityHiThreshold	INTEGER,
	humidityLoThreshold	INTEGER
	--input device attributes
	inputName1 		DisplayString (SIZE(0..63)), 			
	inputStatus1		INTEGER,	
	inputNormalState1	INTEGER,
	inputFaultSeverity1	INTEGER,
	inputUrl1		DisplayString (SIZE(0..63))
	inputName2 		DisplayString (SIZE(0..63)), 			
	inputStatus2		INTEGER,	
	inputNormalState2	INTEGER,
	inputFaultSeverity2	INTEGER,
	inputUrl2		DisplayString (SIZE(0..63))
	inputName3 		DisplayString (SIZE(0..63)), 			
	inputStatus3		INTEGER,	
	inputNormalState3	INTEGER,
	inputFaultSeverity3	INTEGER,
	inputUrl3		DisplayString (SIZE(0..63)),
	--output device attributes
	outputName 		DisplayString (SIZE(0..63)), 			
	outputState		INTEGER,	
	outputUrl		DisplayString (SIZE(0..63))
}

name OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        	"A string identifying the sensor."
	::= { sensorEntry 1 }

status OBJECT-TYPE
	SYNTAX	INTEGER {
		normal(1),				
		informational(2),
           	warning(3),
           	severe(4)           	
       	}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"Overall status of the sensor determined by the most severe sensor alarm present."
	::= { sensorEntry 2 }

address OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"The Blue Bus address of the environment sensor."
	::= { sensorEntry 3 }

--temperature attributes

temperature OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"Current temperature reading in celsius."
	::= { sensorEntry 4 }

tempStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		normal(1),		
		informational(2),
           	warning(3),
           	severe(4)           	
       	}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"Temperature status determined by tempLoSeverity and tempHiSeverity objects."
	::= { sensorEntry 5 }

tempHiSeverity OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(1),
		informational(2),
           	warning(3),
           	severe(4)		
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Severity level when temperature is greater than or equal to tempHiThreshold."
	::= { sensorEntry 6 }

tempLoSeverity OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(1),
		informational(2),
           	warning(3),
           	severe(4)
		
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Severity level when temperature is less than or equal to tempLoThreshold."
	::= { sensorEntry 7 }

tempHiThreshold OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"When the the temperature is greater than or equal to this value, the sensorHiTemperature alarm is generated."
	::= { sensorEntry 8 }

tempLoThreshold OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"When the the temperature is less than or equal to this value, the sensorLoTemperature alarm is generated."
	::= { sensorEntry 9 }

--humidity attributes

humidity OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"Current relative humidity reading in percent."
	::= { sensorEntry 10 }

humidityStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		normal(1),		
		informational(2),
           	warning(3),
           	severe(4)           	
       	}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"Relative humidity status determined by humidityHiSeverity and humidityLoSeverity objects."
	::= { sensorEntry 11 }

humidityHiSeverity OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(1),
		informational(2),
           	warning(3),
           	severe(4)
	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Severity level when relative humidity is greater than or equal to humidityHiThreshold."
	::= { sensorEntry 12 }

humidityLoSeverity OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(1),
		informational(2),
           	warning(3),
           	severe(4)
	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Severity level when relative humidity is less than or equal to humidityLoThreshold."
	::= { sensorEntry 13 }

humidityHiThreshold OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"When the the relative humidity is greater than or equal to this value, the sensorHiRelativeHumidity alarm is generated."
	::= { sensorEntry 14 }

humidityLoThreshold OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"When the relative humidity is less than or equal to this value, the sensorLoRelativeHumidity alarm is generated."
	::= { sensorEntry 15 }

--input attributes

inputName1 OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        "A string identifying the device on input 1."
	::= { sensorEntry 16 }

inputStatus1 OBJECT-TYPE
	SYNTAX	INTEGER {
		normal(1),		
		informational(2),
           	warning(3),
           	severe(4)           	
       	}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"The status of the current state of input 1."
	::= { sensorEntry 17 }

inputNormalState1 OBJECT-TYPE
	SYNTAX	INTEGER {
		open(1),
           	closed(2)           	
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"The normal state of input 1 ( open or closed )."
	::= { sensorEntry 18 }

inputFaultSeverity1 OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(1),
		informational(2),
           	warning(3),
           	severe(4)		
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Severity level when input 1 is not in its normal state as defined by inputNormalState1."
	::= { sensorEntry 19 }

inputUrl1 OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        "An optional string identifying the URL associated with the device on input 1."
	::= { sensorEntry 20 }

inputName2 OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        "A string identifying the device on input 2."
	::= { sensorEntry 21 }

inputStatus2 OBJECT-TYPE
	SYNTAX	INTEGER {
		normal(1),		
		informational(2),
           	warning(3),
           	severe(4)           	
       	}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"The status of the current state of input 2."
	::= { sensorEntry 22 }

inputNormalState2 OBJECT-TYPE
	SYNTAX	INTEGER {
		open(1),
           	closed(2)           	
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"The normal state of input 2 ( open or closed )."
	::= { sensorEntry 23 }

inputFaultSeverity2 OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(1),
		informational(2),
           	warning(3),
           	severe(4)		
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Severity level when input 2 is not in its normal state as defined by inputNormalState2."
	::= { sensorEntry 24 }

inputUrl2 OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        "An optional string identifying the URL associated with the device on input 2."
	::= { sensorEntry 25 }

inputName3 OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
	"A string identifying the device on input 3."        	
	::= { sensorEntry 26 }

inputStatus3 OBJECT-TYPE
	SYNTAX	INTEGER {
		normal(1),		
		informational(2),
           	warning(3),
           	severe(4)           	
       	}
	ACCESS		read-only
	STATUS		mandatory
	DESCRIPTION
	"The status of the current state of input 3."
	::= { sensorEntry 27 }

inputNormalState3 OBJECT-TYPE
	SYNTAX	INTEGER {
		open(1),
           	closed(2)           	
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"The normal state of input 3 ( open or closed )."
	::= { sensorEntry 28 }

inputFaultSeverity3 OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(1),
		informational(2),
           	warning(3),
           	severe(4)		
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Severity level when input 3 is not in its normal state as defined by inputNormalState3."
	::= { sensorEntry 29 }

inputUrl3 OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
	"An optional string identifying the URL associated with the device on input 3."        	
	::= { sensorEntry 30 }

outputName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        "A string identifying the device attached to the output relay."        	
	::= { sensorEntry 31 }

outputState OBJECT-TYPE
	SYNTAX	INTEGER {
		on(1),
           	off(2)           	
       	}
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"The state of the output relay ( on = energized, off = de-energized )."
	::= { sensorEntry 32 }

outputUrl OBJECT-TYPE
	SYNTAX     DisplayString (SIZE(0..63))
       	MAX-ACCESS read-write
       	STATUS     current
       	DESCRIPTION
        "An optional string identifying the URL associated with the device attached to the output relay."        	
	::= { sensorEntry 33 }

--alarm conditions
  
sensorAlarm OBJECT IDENTIFIER ::= { environmentSensor 3 }

sensorAlarmsPresent OBJECT-TYPE
	SYNTAX		INTEGER
	ACCESS		read-write
	STATUS		mandatory
	DESCRIPTION
	"Number of alarms present."
	::= { sensorAlarm 1 }

alarmTable OBJECT-TYPE
	SYNTAX 	SEQUENCE OF Alarm
	ACCESS 	not-accessible
	STATUS	mandatory
	DESCRIPTION
	"A list of alarm entries. "
	::= { sensorAlarm 2 }
	
alarmEntry OBJECT-TYPE
	SYNTAX 	Alarm
	ACCESS 	not-accessible
	STATUS 	mandatory
	DESCRIPTION 
	""	
	INDEX
	{ address }
	::= { alarmTable 1 }

Alarm ::= SEQUENCE {
  	alarmAddress     INTEGER,
  	alarmDescr       AutonomousType,
       	alarmTime        TimeStamp
}

alarmAddress OBJECT-TYPE
	SYNTAX     INTEGER
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
	"The Blue Bus address of the sensor which generated the alarm."
       	::= { alarmEntry 1 }

alarmDescr OBJECT-TYPE
	SYNTAX     AutonomousType
       	MAX-ACCESS read-only
       	STATUS     current
       	DESCRIPTION
        "The OID of the alarm generated."
       	::= { alarmEntry 2 }

alarmTime OBJECT-TYPE
	SYNTAX     TimeStamp
       	MAX-ACCESS read-only
       	STATUS     current
       	DESCRIPTION
        "The value of sysUpTime when the alarm condition was detected."
       	::= { alarmEntry 3 }

sensorAlarms OBJECT IDENTIFIER ::= { sensorAlarm 3 }

sensorLostComms OBJECT-IDENTITY
	STATUS     current
	DESCRIPTION
        "Blue Bus communications to the sensor have been lost."
       	::= { sensorAlarms  1 }

sensorHiRelativeHumidity OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "Current relative humidity is greater than or equal to humidityHiThreshold."
	::= { sensorAlarms  2 }

sensorLoRelativeHumidity OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "Current relative humidity is less than or equal to humidityLoThreshold."
	::= { sensorAlarms  3 }

sensorHiTemperature OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "Current temperature is greater than or equal to tempHiThreshold."
	::= { sensorAlarms  4 }

sensorLoTemperature OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "Current temperature is less than or equal to tempLoThreshold."
	::= { sensorAlarms  5 }

sensorInputFault1 OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "The current state of input 1 does not equal inputNormalState1."
	::= { sensorAlarms  6 }

sensorInputFault2 OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "The current state of input 2 does not equal inputNormalState2."
	::= { sensorAlarms  7 }

sensorInputFault3 OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "The current state of input 3 does not equal inputNormalState3."
	::= { sensorAlarms  8 }

sensorOutputRelayEnergized OBJECT-IDENTITY
	STATUS     current
       	DESCRIPTION
        "The outputState object equals on."
	::= { sensorAlarms  9 }

sensorTraps OBJECT IDENTIFIER ::= { environmentSensor 4 }

trapEntryAdded NOTIFICATION-TYPE
       OBJECTS { address, sensorAlarmOid  }
       STATUS  current
       DESCRIPTION
               "This trap is sent each time an alarm is inserted into
               to the alarm table. "
     ::= { sensorTraps 1 }

trapEntryRemoved NOTIFICATION-TYPE
	OBJECTS { address, sensorAlarmOid  }
       	STATUS  current
       	DESCRIPTION
        	"This trap is sent each time an alarm is removed from
               	the alarm table."
     ::= { sensorTraps 2 }

END
