G6-SMARTOFFICE-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Counter32, enterprises,NOTIFICATION-TYPE
		FROM SNMPv2-SMI
	DisplayString, MacAddress
		FROM SNMPv2-TC
	g6	FROM MICROSENS-G6-MIB
	;

device MODULE-IDENTITY --Category
	LAST-UPDATED "201802121619Z"
	ORGANIZATION "MICROSENS GmbH & Co. KG"
	CONTACT-INFO
		"Kueferstrasse 16
		D-59067 Hamm
		Germany
		support@microsens.de
		http://www.microsens.de"
	DESCRIPTION
		"Microsens private MIB for Generation 6 Ethernet Switches"

	REVISION "201802121619Z"
	DESCRIPTION
		"File creation"
	::= { g6 4 }

smartoffice  OBJECT IDENTIFIER ::= { device 99 }



-- *************************** CONFIGURATION SECTION ********************************


smartofficeEnableSmartOffice OBJECT-TYPE   -- enable_smart_office
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Generally enable the SmartOffice solution."
	::= { smartoffice 1 }


-- ******************* Begin of directorConfigTable *************************

directorConfigTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF DirectorConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"General configuration of the director."
	::= { smartoffice 2 }

directorConfigEntry	OBJECT-TYPE
	SYNTAX DirectorConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { directorConfigIndex }
	::= { directorConfigTable 1 }


	DirectorConfigEntry ::= SEQUENCE {
	directorConfigIndex INTEGER,
	directorConfigDomainName DisplayString,
	directorConfigGeneralMode INTEGER ,
	directorConfigActOnUngroupedSensors INTEGER ,
	directorConfigScanLightControllers DisplayString
	}

directorConfigIndex	OBJECT-TYPE
	SYNTAX INTEGER (0)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { directorConfigEntry 1 }

directorConfigDomainName OBJECT-TYPE   -- domain_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	""
	::= { directorConfigEntry 2 }

directorConfigGeneralMode OBJECT-TYPE   -- general_mode
	SYNTAX INTEGER 
		{
		disabled (0),
		automatic (1),
		passive (2)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	""
	::= { directorConfigEntry 3 }

directorConfigActOnUngroupedSensors OBJECT-TYPE   -- act_on_ungrouped_sensors
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When set any sensor attributes which are not configured to be part of a sensor group, will also trigger the regular script execution. This may be selected in smaller setups to save the effort of defining groups. Note that no event rate limiting can be applied to ungrouped sensors and thus using this mode can result in overloading the system leading to sluggish response times."
	::= { directorConfigEntry 4 }

directorConfigScanLightControllers OBJECT-TYPE   -- scan_light_controllers
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Scan the local network for reachable SmartLightController and display a list."
	::= { directorConfigEntry 5 }


-- ********************* End of directorConfigTable ***********************


-- ******************* Begin of deviceConfigTable *************************

deviceConfigTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF DeviceConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Defines the configuration of each device under control. A device may contain one or more actor or sensor functions."
	::= { smartoffice 3 }

deviceConfigEntry	OBJECT-TYPE
	SYNTAX DeviceConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { deviceConfigIndex }
	::= { deviceConfigTable 1 }


	DeviceConfigEntry ::= SEQUENCE {
	deviceConfigIndex INTEGER,
	deviceConfigDeviceName DisplayString,
	deviceConfigLocation DisplayString,
	deviceConfigLatitude DisplayString,
	deviceConfigLongitude DisplayString,
	deviceConfigAltitude DisplayString,
	deviceConfigPlacement INTEGER ,
	deviceConfigProductType INTEGER ,
	deviceConfigDeviceId DisplayString,
	deviceConfigNetworkAddress DisplayString,
	deviceConfigAdditionalParameter DisplayString,
	deviceConfigNetworkFailureAction INTEGER ,
	deviceConfigIdentify DisplayString,
	deviceConfigRestart DisplayString,
	deviceConfigCalibrate DisplayString,
	deviceConfigPair DisplayString,
	deviceConfigUnpair DisplayString,
	deviceConfigUpdateFirmware DisplayString
	}

deviceConfigIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..63)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { deviceConfigEntry 1 }

deviceConfigDeviceName OBJECT-TYPE   -- device_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Unique group name referenced by the director"
	::= { deviceConfigEntry 2 }

deviceConfigLocation OBJECT-TYPE   -- location
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Free text to describe the position of the controller on the premesis. This value need NOT be savedwithin the sensor itself."
	::= { deviceConfigEntry 3 }

deviceConfigLatitude OBJECT-TYPE   -- latitude
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"A value in degrees such as: 50,123"
	::= { deviceConfigEntry 4 }

deviceConfigLongitude OBJECT-TYPE   -- longitude
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"A value in degrees such as: 50,123"
	::= { deviceConfigEntry 5 }

deviceConfigAltitude OBJECT-TYPE   -- altitude
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"A value in meters."
	::= { deviceConfigEntry 6 }

deviceConfigPlacement OBJECT-TYPE   -- placement
	SYNTAX INTEGER 
		{
		unset (0),
		floor (1),
		wall (2),
		ceiling (3),
		duct (4),
		outside (5),
		desk (6)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Information where to find the controller"
	::= { deviceConfigEntry 7 }

deviceConfigProductType OBJECT-TYPE   -- product_type
	SYNTAX INTEGER 
		{
		virtual (0),
		smartlightController (1),
		directorCascade (2),
		hm (3),
		fhem (4),
		ip500 (5),
		enocean (6),
		knx (7)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Defines via which network the sensor is reachable."
	::= { deviceConfigEntry 8 }

deviceConfigDeviceId OBJECT-TYPE   -- device_id
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Unique manufacturer dependent identifier of the device. For SmartLightController the MAC address of the controller is entered here."
	::= { deviceConfigEntry 9 }

deviceConfigNetworkAddress OBJECT-TYPE   -- network_address
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"May be an IP or other type of address depending on the given network access method. Can be left blank for a SmartLightController."
	::= { deviceConfigEntry 10 }

deviceConfigAdditionalParameter OBJECT-TYPE   -- additional_parameter
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Comma separated list of any parameter specific for this device. Example: panel=type A,refresh_rate=12"
	::= { deviceConfigEntry 11 }

deviceConfigNetworkFailureAction OBJECT-TYPE   -- network_failure_action
	SYNTAX INTEGER 
		{
		keepCurrent (0),
		off (1),
		on (2),
		dimmed (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Defines what the actor does if the network connection fails or after reboot until communication is established."
	::= { deviceConfigEntry 12 }

deviceConfigIdentify OBJECT-TYPE   -- identify
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"The actor will blink with its status led to signal its presence and physical location."
	::= { deviceConfigEntry 13 }

deviceConfigRestart OBJECT-TYPE   -- restart
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Restart the actor."
	::= { deviceConfigEntry 14 }

deviceConfigCalibrate OBJECT-TYPE   -- calibrate
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Start calibration process (if available for this actor type)."
	::= { deviceConfigEntry 15 }

deviceConfigPair OBJECT-TYPE   -- pair
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Start pairing process that couples individual device to this director."
	::= { deviceConfigEntry 16 }

deviceConfigUnpair OBJECT-TYPE   -- unpair
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Discard exisiting pairing between an individual device and this director."
	::= { deviceConfigEntry 17 }

deviceConfigUpdateFirmware OBJECT-TYPE   -- update_firmware
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Update the device firmware. When no file name is supplied, the latest version is automatically selected. Alternatively, a specific file name can be supplied to use another version. Use Management.files.firmware.display_files to view a list of available files under the SLC section. (applies to SmartLight Controllers)"
	::= { deviceConfigEntry 18 }


-- ********************* End of deviceConfigTable ***********************


-- ******************* Begin of actorGroupConfigTable *************************

actorGroupConfigTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF ActorGroupConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Defines a group of actors that support the same attribute and which shall be set toghter to the same value."
	::= { smartoffice 4 }

actorGroupConfigEntry	OBJECT-TYPE
	SYNTAX ActorGroupConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { actorGroupConfigIndex }
	::= { actorGroupConfigTable 1 }


	ActorGroupConfigEntry ::= SEQUENCE {
	actorGroupConfigIndex INTEGER,
	actorGroupConfigGroupName DisplayString,
	actorGroupConfigAttribute DisplayString,
	actorGroupConfigAssociatedDevices DisplayString,
	actorGroupConfigAdditionalParameter DisplayString,
	actorGroupConfigDefaultValue DisplayString,
	actorGroupConfigValueCaching INTEGER ,
	actorGroupConfigAdditionalScriptName DisplayString,
	actorGroupConfigManualSetValue DisplayString
	}

actorGroupConfigIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..63)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { actorGroupConfigEntry 1 }

actorGroupConfigGroupName OBJECT-TYPE   -- group_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Unique group name referenced by the director"
	::= { actorGroupConfigEntry 2 }

actorGroupConfigAttribute OBJECT-TYPE   -- attribute
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"The attribute which is configured. Locally, identical attributes of the associated devices listed below are grouped."
	::= { actorGroupConfigEntry 3 }

actorGroupConfigAssociatedDevices OBJECT-TYPE   -- associated_devices
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"List of all actors that supply information to a particular group. When an instance is used, here the syntax devicename.instance is used. All records are comma separated."
	::= { actorGroupConfigEntry 4 }

actorGroupConfigAdditionalParameter OBJECT-TYPE   -- additional_parameter
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Comma separated list of any parameter specific for this attribute if needed."
	::= { actorGroupConfigEntry 5 }

actorGroupConfigDefaultValue OBJECT-TYPE   -- default_value
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	""
	::= { actorGroupConfigEntry 6 }

actorGroupConfigValueCaching OBJECT-TYPE   -- value_caching
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When enabled the group target value is saved to local non volaive memory. Should the director restart, the cached values will be restored and send to the devices. This feature is useful to ensure uninterrupted operation even in the event of a system failure or to restore conditions after a power outage."
	::= { actorGroupConfigEntry 7 }

actorGroupConfigAdditionalScriptName OBJECT-TYPE   -- additional_script_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When the actor group is updated, an additional script, defined here, can be executed to run time consuming functions outside of the standard processing loop. Usually, this field is left empty."
	::= { actorGroupConfigEntry 8 }

actorGroupConfigManualSetValue OBJECT-TYPE   -- manual_set_value
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"This command permits setting of the group value manually bypassing the defined script logic. This is intended for testing only. Important: This manual setting always acts on priority level 8."
	::= { actorGroupConfigEntry 9 }


-- ********************* End of actorGroupConfigTable ***********************


-- ******************* Begin of sensorGroupConfigTable *************************

sensorGroupConfigTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF SensorGroupConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Defines a group of sensors that support the same attribute and whose data should be interpreted together."
	::= { smartoffice 5 }

sensorGroupConfigEntry	OBJECT-TYPE
	SYNTAX SensorGroupConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { sensorGroupConfigIndex }
	::= { sensorGroupConfigTable 1 }


	SensorGroupConfigEntry ::= SEQUENCE {
	sensorGroupConfigIndex INTEGER,
	sensorGroupConfigGroupName DisplayString,
	sensorGroupConfigAttribute DisplayString,
	sensorGroupConfigAssociatedDevices DisplayString,
	sensorGroupConfigValueCaching INTEGER ,
	sensorGroupConfigRunScriptWhen INTEGER ,
	sensorGroupConfigRunScriptDelta DisplayString,
	sensorGroupConfigScriptName DisplayString,
	sensorGroupConfigAdditionalScriptName DisplayString,
	sensorGroupConfigReportMode INTEGER ,
	sensorGroupConfigAdditionalParameter DisplayString,
	sensorGroupConfigLowerBoundary DisplayString,
	sensorGroupConfigUpperBoundary DisplayString,
	sensorGroupConfigBoundaryHysteresis INTEGER ,
	sensorGroupConfigUpdateDelta DisplayString,
	sensorGroupConfigRateLimit Unsigned32,
	sensorGroupConfigClearValues DisplayString
	}

sensorGroupConfigIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..63)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { sensorGroupConfigEntry 1 }

sensorGroupConfigGroupName OBJECT-TYPE   -- group_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Unique group name referenced by the director"
	::= { sensorGroupConfigEntry 2 }

sensorGroupConfigAttribute OBJECT-TYPE   -- attribute
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"The attribute which is configured. Locally, identical attributes of the associated devices listed below are grouped."
	::= { sensorGroupConfigEntry 3 }

sensorGroupConfigAssociatedDevices OBJECT-TYPE   -- associated_devices
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"List of all sensors that supply information to a particular group. When an instance is used, here the syntax devicename.instance is used. All records are comma separated."
	::= { sensorGroupConfigEntry 4 }

sensorGroupConfigValueCaching OBJECT-TYPE   -- value_caching
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When enabled the group target value is saved to local non volaive memory. Should the director restart, the cached values will be restored and send to the devices. This feature is useful to ensure uninterrupted operation even in the event of a system failure or to restore conditions after a power outage."
	::= { sensorGroupConfigEntry 5 }

sensorGroupConfigRunScriptWhen OBJECT-TYPE   -- run_script_when
	SYNTAX INTEGER 
		{
		disabled (0),
		anyChange (1),
		limitCrossed (2),
		avgAbsolute (3),
		avgPercent (4),
		totalAbsolute (5),
		totalPercent (6),
		newPeakLevel (7),
		anyUpdate (8),
		zeroCrossing (9)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Defines which sensor group status needs to change in order to run the standard (and optional additional_script). This can be used to limit the number of script runs by not following little changes that lead to no effect. This filter is logically behind the sensor specific limits defined elsewhere is this table. When the sensor filter is setup well, then this filter here can be relaxed."
	::= { sensorGroupConfigEntry 6 }

sensorGroupConfigRunScriptDelta OBJECT-TYPE   -- run_script_delta
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Defines how much the value can deviate before a value change is reported automatically. Depending on the setting of the report_mode an absolute or a percent value is expected."
	::= { sensorGroupConfigEntry 7 }

sensorGroupConfigScriptName OBJECT-TYPE   -- script_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When the group is updated and the required conditions are met, the script specified in this parameter is executed. If the parameter is left blank, the standard MS_SmartOfficeControl.ms  script is executed. The specified script should not contain any time consuming functions. Syntax: = appname/filename:subroutine  The appname and subroutine name are optional. Without appname, the script must be located in xml_cli_scripts folder."
	::= { sensorGroupConfigEntry 8 }

sensorGroupConfigAdditionalScriptName OBJECT-TYPE   -- additional_script_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When the group is updated and the required conditions are met and a script is defined here, this script is executed in the background after the standard processing for this group has taken place. An additional script, defined here, can be used to run time consuming functions outside of the standard processing loop. Usually, this field is left empty."
	::= { sensorGroupConfigEntry 9 }

sensorGroupConfigReportMode OBJECT-TYPE   -- report_mode
	SYNTAX INTEGER 
		{
		disabled (0),
		passive (1),
		deltaPercent (2),
		deltaAbsolute (3),
		onThreshold (4),
		test (5)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Defines if the sensor is passive or actively reports changes and error conditions"
	::= { sensorGroupConfigEntry 10 }

sensorGroupConfigAdditionalParameter OBJECT-TYPE   -- additional_parameter
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Comma separated list of any parameter specific for this attribute if needed."
	::= { sensorGroupConfigEntry 11 }

sensorGroupConfigLowerBoundary OBJECT-TYPE   -- lower_boundary
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When the measured value of any sensor is equal or below this value an event is raised. The value may be configured directly with a numerical value optionally followed by a unit."
	::= { sensorGroupConfigEntry 12 }

sensorGroupConfigUpperBoundary OBJECT-TYPE   -- upper_boundary
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When the measured value of any sensor is equal or above this value an event is raised. The value may be configured directly with a numerical value optionally followed by a unit."
	::= { sensorGroupConfigEntry 13 }

sensorGroupConfigBoundaryHysteresis OBJECT-TYPE   -- boundary_hysteresis
	SYNTAX INTEGER 
		{
		none (0),
		low (1),
		high (2)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"How much the value must return within bounds before the alarm condition is cleared."
	::= { sensorGroupConfigEntry 14 }

sensorGroupConfigUpdateDelta OBJECT-TYPE   -- update_delta
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Defines how much the value can deviate before a value change is reported automatically. Depending on the setting of the report_mode an absolute or a percent value is expected."
	::= { sensorGroupConfigEntry 15 }

sensorGroupConfigRateLimit OBJECT-TYPE   -- rate_limit
	SYNTAX Unsigned32
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Defines how quickly the value is reported. Defined In units of 100ms. 0 means no rate limiting."
	::= { sensorGroupConfigEntry 16 }

sensorGroupConfigClearValues OBJECT-TYPE   -- clear_values
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Clear status values for minimum_peak_hold and maximum_peak_hold."
	::= { sensorGroupConfigEntry 17 }


-- ********************* End of sensorGroupConfigTable ***********************



-- ****************************** STATUS SECTION ********************************


-- ******************* Begin of deviceInformationTable *************************

deviceInformationTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF DeviceInformationEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Summarizes the most important inventory information of each detected device."
	::= { smartoffice 100 }

deviceInformationEntry	OBJECT-TYPE
	SYNTAX DeviceInformationEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { deviceInformationIndex }
	::= { deviceInformationTable 1 }


	DeviceInformationEntry ::= SEQUENCE {
	deviceInformationIndex INTEGER,
	deviceInformationName DisplayString,
	deviceInformationHardwareId DisplayString,
	deviceInformationDeviceType INTEGER ,
	deviceInformationOperationalState INTEGER ,
	deviceInformationActorAttributes DisplayString,
	deviceInformationSensorAttributes DisplayString,
	deviceInformationVendorName DisplayString,
	deviceInformationArticleNumber DisplayString,
	deviceInformationSerialNumber DisplayString,
	deviceInformationHardwareRevision DisplayString,
	deviceInformationSoftwareVersion DisplayString,
	deviceInformationAdditionalInfo DisplayString
	}

deviceInformationIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..63)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { deviceInformationEntry 1 }

deviceInformationName OBJECT-TYPE   -- name
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Unique name for reference. This is name of the base device."
	::= { deviceInformationEntry 2 }

deviceInformationHardwareId OBJECT-TYPE   -- hardware_id
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"A product specific hardware identification. May for example contain the MAC address."
	::= { deviceInformationEntry 3 }

deviceInformationDeviceType OBJECT-TYPE   -- device_type
	SYNTAX INTEGER 
		{
		unused (0),
		sensor (1),
		actor (2),
		actorSensor (3),
		gateway (4),
		other (5)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates if this is an actor or sensor device."
	::= { deviceInformationEntry 4 }

deviceInformationOperationalState OBJECT-TYPE   -- operational_state
	SYNTAX INTEGER 
		{
		unknown (0),
		failed (1),
		normal (2),
		testMode (3),
		configError (4),
		unpaired (5),
		notReady (6),
		pairing (7),
		inConfig (8),
		unregistered (9)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates the operational state of the device. Device (not attribute) specific errors will be indicated here."
	::= { deviceInformationEntry 5 }

deviceInformationActorAttributes OBJECT-TYPE   -- actor_attributes
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Lists which setable actor attributes are provided by this device."
	::= { deviceInformationEntry 6 }

deviceInformationSensorAttributes OBJECT-TYPE   -- sensor_attributes
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Lists which readable sensor attributes are provided by this device."
	::= { deviceInformationEntry 7 }

deviceInformationVendorName OBJECT-TYPE   -- vendor_name
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Vendor or manufacturer name of the device."
	::= { deviceInformationEntry 8 }

deviceInformationArticleNumber OBJECT-TYPE   -- article_number
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This device article number."
	::= { deviceInformationEntry 9 }

deviceInformationSerialNumber OBJECT-TYPE   -- serial_number
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This device serial number."
	::= { deviceInformationEntry 10 }

deviceInformationHardwareRevision OBJECT-TYPE   -- hardware_revision
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This device hardware version."
	::= { deviceInformationEntry 11 }

deviceInformationSoftwareVersion OBJECT-TYPE   -- software_version
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This device software / firmware version."
	::= { deviceInformationEntry 12 }

deviceInformationAdditionalInfo OBJECT-TYPE   -- additional_info
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Optional comma separated list of status fields specific for this type of device."
	::= { deviceInformationEntry 13 }


-- ********************* End of deviceInformationTable ***********************


-- ******************* Begin of actorListTable *************************

actorListTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF ActorListEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"This table lists all currenly registered actors with all their attributes."
	::= { smartoffice 101 }

actorListEntry	OBJECT-TYPE
	SYNTAX ActorListEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { actorListIndex }
	::= { actorListTable 1 }


	ActorListEntry ::= SEQUENCE {
	actorListIndex INTEGER,
	actorListDevice DisplayString,
	actorListInstance DisplayString,
	actorListAttribute DisplayString,
	actorListAssociatedGroups DisplayString,
	actorListValue DisplayString,
	actorListActorState INTEGER ,
	actorListLastUpdate Counter32
	}

actorListIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..255)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { actorListEntry 1 }

actorListDevice OBJECT-TYPE   -- device
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This is name of the base device which controls this actor. There may be several actor types (attributes)  in the same device and these share the same name but use different attributes. There may also be several similar actor attribues. These are differentiated with the instance parameter."
	::= { actorListEntry 2 }

actorListInstance OBJECT-TYPE   -- instance
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Describes a unique instance when several similar functional attributes are existing in the same device"
	::= { actorListEntry 3 }

actorListAttribute OBJECT-TYPE   -- attribute
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The kind of function this actor is acting on"
	::= { actorListEntry 4 }

actorListAssociatedGroups OBJECT-TYPE   -- associated_groups
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates in which actor_groups this actor takes part."
	::= { actorListEntry 5 }

actorListValue OBJECT-TYPE   -- value
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The currently set value as text string followed by the unit such as mA or Lux."
	::= { actorListEntry 6 }

actorListActorState OBJECT-TYPE   -- actor_state
	SYNTAX INTEGER 
		{
		unknown (0),
		ok (1),
		requested (2),
		retrying (3),
		confirmed (4),
		denied (5),
		failed (6),
		restored (7),
		manually (8)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates wether the indicated value was successfully written to the actual device."
	::= { actorListEntry 7 }

actorListLastUpdate OBJECT-TYPE   -- last_update
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates the time when this record was last updated."
	::= { actorListEntry 8 }


-- ********************* End of actorListTable ***********************


-- ******************* Begin of sensorListTable *************************

sensorListTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF SensorListEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"This table lists all currenly registered sensors with all their attributes."
	::= { smartoffice 102 }

sensorListEntry	OBJECT-TYPE
	SYNTAX SensorListEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { sensorListIndex }
	::= { sensorListTable 1 }


	SensorListEntry ::= SEQUENCE {
	sensorListIndex INTEGER,
	sensorListDevice DisplayString,
	sensorListInstance DisplayString,
	sensorListAttribute DisplayString,
	sensorListAssociatedGroups DisplayString,
	sensorListValue DisplayString,
	sensorListSensorState INTEGER ,
	sensorListLastUpdate Counter32
	}

sensorListIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..255)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { sensorListEntry 1 }

sensorListDevice OBJECT-TYPE   -- device
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This is name of the base device which controls this sensor. There may be several different sensor types (attributes) in the same device. These share the same name but use different attributes. There may also be several similar sensors in the device. These are differentiated with the instance parameter."
	::= { sensorListEntry 2 }

sensorListInstance OBJECT-TYPE   -- instance
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Describes a unique instance when several similar functional attributes are existing in the same device"
	::= { sensorListEntry 3 }

sensorListAttribute OBJECT-TYPE   -- attribute
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The kind of measurement this sensor is reporting."
	::= { sensorListEntry 4 }

sensorListAssociatedGroups OBJECT-TYPE   -- associated_groups
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates in which sensor_groups this sensor takes part."
	::= { sensorListEntry 5 }

sensorListValue OBJECT-TYPE   -- value
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The last reported value as text string followed by the unit such as mA or Lux."
	::= { sensorListEntry 6 }

sensorListSensorState OBJECT-TYPE   -- sensor_state
	SYNTAX INTEGER 
		{
		unknown (0),
		ok (1),
		lowBatt (2),
		lowerLimit (3),
		upperLimit (4),
		commFailed (5),
		deviceFailed (6),
		manually (8)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates particular sensor states such hitting a boundary."
	::= { sensorListEntry 7 }

sensorListLastUpdate OBJECT-TYPE   -- last_update
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates the time when this record was last updated."
	::= { sensorListEntry 8 }


-- ********************* End of sensorListTable ***********************


-- ******************* Begin of actorGroupStatusTable *************************

actorGroupStatusTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF ActorGroupStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Calculated status of the defined actor groups. The listed value reflects the value all associated actors should use. The values update when an actor group is set by a script or manually."
	::= { smartoffice 103 }

actorGroupStatusEntry	OBJECT-TYPE
	SYNTAX ActorGroupStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { actorGroupStatusIndex }
	::= { actorGroupStatusTable 1 }


	ActorGroupStatusEntry ::= SEQUENCE {
	actorGroupStatusIndex INTEGER,
	actorGroupStatusGroupName DisplayString,
	actorGroupStatusAttribute DisplayString,
	actorGroupStatusNumAssignedActors Integer32 ,
	actorGroupStatusNumFailedActors Integer32 ,
	actorGroupStatusGroupState INTEGER ,
	actorGroupStatusValue DisplayString,
	actorGroupStatusActivePriority Unsigned32,
	actorGroupStatusPriorityValueChain DisplayString,
	actorGroupStatusCacheStatus INTEGER ,
	actorGroupStatusLastUpdate Counter32
	}

actorGroupStatusIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..63)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { actorGroupStatusEntry 1 }

actorGroupStatusGroupName OBJECT-TYPE   -- group_name
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This is name mirrors the actor_group_configuration."
	::= { actorGroupStatusEntry 2 }

actorGroupStatusAttribute OBJECT-TYPE   -- attribute
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The name of the controlled attribute."
	::= { actorGroupStatusEntry 3 }

actorGroupStatusNumAssignedActors OBJECT-TYPE   -- num_assigned_actors
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Number of actors that are configured for this group."
	::= { actorGroupStatusEntry 4 }

actorGroupStatusNumFailedActors OBJECT-TYPE   -- num_failed_actors
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Number of actors that have not responded as expected."
	::= { actorGroupStatusEntry 5 }

actorGroupStatusGroupState OBJECT-TYPE   -- group_state
	SYNTAX INTEGER 
		{
		unknown (0),
		ok (1),
		updating (2),
		unreliable (3),
		manually (8)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { actorGroupStatusEntry 6 }

actorGroupStatusValue OBJECT-TYPE   -- value
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This value is set by the decision logic. May contain simple on,OFF or for example a sound file name"
	::= { actorGroupStatusEntry 7 }

actorGroupStatusActivePriority OBJECT-TYPE   -- active_priority
	SYNTAX Unsigned32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates which priority level is currently controlling the group value. Lower values have higher priority."
	::= { actorGroupStatusEntry 8 }

actorGroupStatusPriorityValueChain OBJECT-TYPE   -- priority_value_chain
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Displays the prority=value pairs of all currently defined priority levels. Relinquished priorites are not shown."
	::= { actorGroupStatusEntry 9 }

actorGroupStatusCacheStatus OBJECT-TYPE   -- cache_status
	SYNTAX INTEGER 
		{
		unknown (0),
		disabled (1),
		pending (2),
		saved (3),
		failed (4)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates if this group_status is saved even upon system power loss or reboot."
	::= { actorGroupStatusEntry 10 }

actorGroupStatusLastUpdate OBJECT-TYPE   -- last_update
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates the time when this group status was last updated."
	::= { actorGroupStatusEntry 11 }


-- ********************* End of actorGroupStatusTable ***********************


-- ******************* Begin of sensorGroupStatusTable *************************

sensorGroupStatusTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF SensorGroupStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Calculated status for all sensor groups. The sensor values of all contributing sensors are used to calculate min, max and average values. The values update each time a sensor reports changes."
	::= { smartoffice 104 }

sensorGroupStatusEntry	OBJECT-TYPE
	SYNTAX SensorGroupStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { sensorGroupStatusIndex }
	::= { sensorGroupStatusTable 1 }


	SensorGroupStatusEntry ::= SEQUENCE {
	sensorGroupStatusIndex INTEGER,
	sensorGroupStatusGroupName DisplayString,
	sensorGroupStatusAttribute DisplayString,
	sensorGroupStatusNumAssignedSensors Integer32 ,
	sensorGroupStatusNumFailedSensors Integer32 ,
	sensorGroupStatusGroupState INTEGER ,
	sensorGroupStatusMinimumPeakHold DisplayString,
	sensorGroupStatusMinimumValue DisplayString,
	sensorGroupStatusAverageValue DisplayString,
	sensorGroupStatusMaximumValue DisplayString,
	sensorGroupStatusMaximumPeakHold DisplayString,
	sensorGroupStatusTotalValue DisplayString,
	sensorGroupStatusLowerBoundaryReached Integer32 ,
	sensorGroupStatusUpperBoundaryReached Integer32 ,
	sensorGroupStatusUpdatingSensorIndex Integer32 ,
	sensorGroupStatusCacheStatus INTEGER ,
	sensorGroupStatusLastUpdate Counter32
	}

sensorGroupStatusIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..63)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { sensorGroupStatusEntry 1 }

sensorGroupStatusGroupName OBJECT-TYPE   -- group_name
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This is name mirrors the sensor_group_configuration."
	::= { sensorGroupStatusEntry 2 }

sensorGroupStatusAttribute OBJECT-TYPE   -- attribute
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The name of the attribute measured. E.g. brightness, motion, switch."
	::= { sensorGroupStatusEntry 3 }

sensorGroupStatusNumAssignedSensors OBJECT-TYPE   -- num_assigned_sensors
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Number of sensors that are configured for this group."
	::= { sensorGroupStatusEntry 4 }

sensorGroupStatusNumFailedSensors OBJECT-TYPE   -- num_failed_sensors
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Number of sensors that have not responded as expected."
	::= { sensorGroupStatusEntry 5 }

sensorGroupStatusGroupState OBJECT-TYPE   -- group_state
	SYNTAX INTEGER 
		{
		unknown (0),
		ok (1),
		updating (2),
		unreliable (3),
		manually (8)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Informs when not all sensors operate as expected."
	::= { sensorGroupStatusEntry 6 }

sensorGroupStatusMinimumPeakHold OBJECT-TYPE   -- minimum_peak_hold
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Minimum value ever reported in this group since last value clear."
	::= { sensorGroupStatusEntry 7 }

sensorGroupStatusMinimumValue OBJECT-TYPE   -- minimum_value
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Minimum value out of all sensors that report to this group."
	::= { sensorGroupStatusEntry 8 }

sensorGroupStatusAverageValue OBJECT-TYPE   -- average_value
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Average value out of all sensors that report to this group. Uses the number of reporting sensors to calculate the average."
	::= { sensorGroupStatusEntry 9 }

sensorGroupStatusMaximumValue OBJECT-TYPE   -- maximum_value
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Maximum value out of all sensors that report to this group."
	::= { sensorGroupStatusEntry 10 }

sensorGroupStatusMaximumPeakHold OBJECT-TYPE   -- maximum_peak_hold
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Maximum value ever reported in this group since last value clear."
	::= { sensorGroupStatusEntry 11 }

sensorGroupStatusTotalValue OBJECT-TYPE   -- total_value
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The total sum of all individual sensor values in this group."
	::= { sensorGroupStatusEntry 12 }

sensorGroupStatusLowerBoundaryReached OBJECT-TYPE   -- lower_boundary_reached
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Number of sensors that have reached their lower threshold. A value of 0 means no sensor has reached a lower boundary."
	::= { sensorGroupStatusEntry 13 }

sensorGroupStatusUpperBoundaryReached OBJECT-TYPE   -- upper_boundary_reached
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Number of sensors that have reached their upper threshold. A value of 0 means no sensor has reached an upper boundary."
	::= { sensorGroupStatusEntry 14 }

sensorGroupStatusUpdatingSensorIndex OBJECT-TYPE   -- updating_sensor_index
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates the index to the sensor_list which has caused the latest group update."
	::= { sensorGroupStatusEntry 15 }

sensorGroupStatusCacheStatus OBJECT-TYPE   -- cache_status
	SYNTAX INTEGER 
		{
		unknown (0),
		disabled (1),
		pending (2),
		saved (3),
		failed (4)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates if this attribute is saved even upon system power loss or reboot."
	::= { sensorGroupStatusEntry 16 }

sensorGroupStatusLastUpdate OBJECT-TYPE   -- last_update
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates the time when this group status was last updated."
	::= { sensorGroupStatusEntry 17 }


-- ********************* End of sensorGroupStatusTable ***********************



END

