-- extracted from draft-ietf-snmpconf-bcp-04.txt -- at Fri Mar 9 06:04:46 2001 BLDG-HVAC-MIB DEFINITIONS ::= BEGIN IMPORTS -- NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-IDENTITY, Counter32, Gauge32, OBJECT-TYPE, Integer32, experimental FROM SNMPv2-SMI -- MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP -- FROM SNMPv2-CONF TEXTUAL-CONVENTION, RowStatus, RowPointer FROM SNMPv2-TC OwnerString FROM RMON-MIB SnmpAdminString FROM SNMP-FRAMEWORK-MIB; bldgHVACMIB MODULE-IDENTITY LAST-UPDATED "200007090000Z" ORGANIZATION "SNMPCONF working group" CONTACT-INFO "www.ietf.org" DESCRIPTION "This example MIB module defines a set of standard management objects for heating ventilation and air conditioning systems. It also includes a simple table that can be used to create policies that are applied to rooms based on a schedule." REVISION "200101040900Z" DESCRIPTION "Initial version of BLDG-HVAC-MIB." ::= { experimental XXX } -- -- Top level delegations -- bldgHVACObjects OBJECT-IDENTITY STATUS current DESCRIPTION "Objects that configure and monitor HVAC in a building." ::= { bldgHVACMIB 1 } -- -- Textual Conventions -- HvacOperation ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Operations supported by a Heating and cooling system. A reference to underlying general systems would go here." SYNTAX INTEGER { heat(1), cool(2) } -- -- HVAC Objects Group -- bldgHVACTable OBJECT-TYPE SYNTAX SEQUENCE OF BldgHVACEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This simple table is an example of objects that are at the instance level of specificity. That is, they are indexed by a specific floor and office number. The configuration parameters and counters are for a specific location, but these are defined with a 'bldgHVACButtonsTable'." ::= { bldgHVACObjects 1 } bldgHVACEntry OBJECT-TYPE SYNTAX BldgHVACEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each row represents a particular room, the desired HVAC settings and usage information for that location since this setting was initialized." INDEX { bldgHVACFloor, bldgHVACOffice } ::= { bldgHVACTable 1 } BldgHVACEntry ::= SEQUENCE { bldgHVACFloor Integer32, bldgHVACOffice Integer32, bldgHVACButtons RowPointer } bldgHVACFloor OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This portion of the index indicates the floor of the building." ::= { bldgHVACEntry 1 } bldgHVACOffice OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This second component of the index that specifies the office number." ::= { bldgHVACEntry 2 } bldgHVACButtons OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS not-accessible STATUS current DESCRIPTION "The pointer to an entry in the 'bldgHVACButtonsTable'. The entry pointed to is a pre-made configuration that represents the description of the bldgHVACPolicyDescr object." ::= { bldgHVACEntry 3 } bldgHVACButtonTable OBJECT-TYPE SYNTAX SEQUENCE OF BldgHVACEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This simple table is an example of objects that are at the instance level of specificity. That is, they are indexed by a specific floor and office number. The configuration parameters and counters are for a specific location, but these are defined with a 'bldgHVACButtonTable'." ::= { bldgHVACObjects 2 } bldgHVACButtonEntry OBJECT-TYPE SYNTAX BldgHVACButtonEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each row represents a particular room, the desired HVAC settings and usage information for that location since this setting was initialized." INDEX { bldgHVACFloor, bldgHVACOffice } ::= { bldgHVACButtonTable 1 } BldgHVACButtonEntry ::= SEQUENCE { bldgHVACButtonIndex Integer32, bldgHVACOffType INTEGER, bldgHVACHeatOrCool INTEGER, bldgHVACFanSpeed Gauge32, bldgHVACDesiredTemp Gauge32, bldgHVACCurrentTemp Gauge32, bldgHVACCoolOrHeatMins Counter32, bldgHVACOwner OwnerString, bldgHVACStatus RowStatus } bldgHVACButtonIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "An index that uniquely defines a set of buttons to be used floor heating." ::= { bldgHVACButtonEntry 1 } bldgHVACHeatOrCool OBJECT-TYPE SYNTAX HvacOperation MAX-ACCESS read-write STATUS current DESCRIPTION "This controls the heating and cooling mechanism and is set-able by building maintenance." ::= { bldgHVACButtonEntry 2 } bldgHVACFanSpeed OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Shows the revolutions per minute of the fan. Fan speed will vary based on the difference between bldgHVACDesiredTemp and bldgHVACurrentTemp." ::= { bldgHVACButtonEntry 3 } bldgHVACDesiredTemp OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-create STATUS current DESCRIPTION "This is the desired temperature setting. It might be changed at different times of the day or based on seasonal conditions. This is a good candidate parameter for control by policy." ::= { bldgHVACButtonEntry 4 } bldgHVACCurrentTemp OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current measured temperature in the office." ::= { bldgHVACButtonEntry 5 } bldgHVACCoolOrHeatMins OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of heating or cooling minutes that have been consumed since the row was activated." ::= { bldgHVACEntry 6 } bldgHVACOwner OBJECT-TYPE SYNTAX OwnerString MAX-ACCESS read-create STATUS current DESCRIPTION "The identity of the operator/system that last modified this entry." ::= { bldgHVACEntry 7 } bldgHVACStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row. This is a good example of latency discussed earlier in this document. A row may be activated with a particular temperature setting but it may take some time before the current temperature is made equal to the desired temperature. This time lag can even be effected by where the sensor is in the office." ::= { bldgHVACEntry 8 } -- -- The Policy Table to specify Mechanism-specific Parameters -- bldgHVACPolicyTable OBJECT-TYPE SYNTAX SEQUENCE OF BldgHVACPolicyEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table can be used to set policy defaults that will be placed on the specific offices that match the pmPolicyFilter. See the policy MIB Module for more information." ::= { bldgHVACObjects 3 } bldgHVACPolicyEntry OBJECT-TYPE SYNTAX BldgHVACPolicyEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each row represents a single set of policy parameters that can be applied to selected instances - in this case offices. These policies will be turned on and off by the policy module through its scheduling facilities." INDEX { bldgHVACPolicyId } ::= { bldgHVACPolicyTable 1 } BldgHVACPolicyEntry ::= SEQUENCE { bldgHVACPolicyId Integer32, bldgHVACPolicyDescr SnmpAdminString, bldgHVACPolicyConfiguration RowPointer, bldgHVACPolicyOwner OwnerString, bldgHVACPolicyStatus RowStatus } bldgHVACPolicyId OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique value for each defined policy in this table. This value be be pointed to from the Policy MIB Module." ::= { bldgHVACPolicyEntry 1 } bldgHVACPolicyDescr OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "A human readable textual convention for this HVAC policy." ::= { bldgHVACPolicyEntry 2 } bldgHVACPolicyConfiguration OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "The pointer to a configuration template for floor heating. This is a pointer to a specific row in thebldgHVACButtonTable." ::= { bldgHVACPolicyEntry 3 } bldgHVACPolicyOwner OBJECT-TYPE SYNTAX OwnerString MAX-ACCESS read-create STATUS current DESCRIPTION "The identity that created this row of the table." ::= { bldgHVACPolicyEntry 5 } bldgHVACPolicyStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row of the table." ::= { bldgHVACPolicyEntry 6 } END -- -- -- Copyright (C) The Internet Society (2000). All Rights Reserved. -- -- -- -- This document and translations of it may be copied and furnished to oth- -- ers, and derivative works that comment on or otherwise explain it or -- assist in its implementation may be prepared, copied, published and dis- -- tributed, in whole or in part, without restriction of any kind, provided -- that the above copyright notice and this paragraph are included on all -- such copies and derivative works. However, this document itself may not -- be modified in any way, such as by removing the copyright notice or ref- -- erences to the Internet Society or other Internet organizations, except -- as needed for the purpose of developing Internet standards in which -- case the procedures for copyrights defined in the Internet Standards -- process must be followed, or as required to translate it into languages -- other than English. -- -- -- -- The limited permissions granted above are perpetual and will not be -- revoked by the Internet Society or its successors or assigns. -- -- -- -- This document and the information contained herein is provided on an "AS -- IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK -- FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT -- INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FIT- -- NESS FOR A PARTICULAR PURPOSE. --