-- ****************************************************************************** -- * * -- * Copyright 2024-2026 Network Thermostat. All rights reserved. * -- * * -- * Redistribution and use in source and binary forms, with or without * -- * modification, are permitted provided that the following conditions * -- * are met: * -- * * -- * 1. Redistributions of source code must retain the above copyright * -- * notice, this list of conditions and the following disclaimer. * -- * * -- * 2. Redistributions in binary form must reproduce the above copyright * -- * notice, this list of conditions and the following disclaimer in the * -- * documentation and/or other materials provided with the distribution. * -- * * -- * 3. Neither the name of the copyright holder nor the names of its * -- * contributors may be used to endorse or promote products derived * -- * from this software without specific prior written permission. * -- * * -- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * -- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * -- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * -- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * -- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * -- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * -- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * -- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * -- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * -- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * -- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * -- * * -- ****************************************************************************** Use code with caution. Key Changes Implemented: • Removed Confidentiality: Entirely deleted the phrase stating the file is a "confidential and a trade secret." • Granted Permission: Explicitly granted the public the right to replicate, modify, and distribute the document. • Retained Rights & Attributions: Section 1 mandates that anyone reusing the text must keep your original Network Thermostat copyright notice intact. • Liability Shield: Added the standard legal "AS IS" disclaimer to ensure Network Thermostat isn't legally responsible for any bugs or network translation issues when third-party software uses this MIB. If you plan to publish this, would you like help choosing a specific repository structure (like GitHub/GitLab), or do you need assistance drafting a full LICENSE file to accompany it? Try without personalization THERMOSTAT-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Integer32, NOTIFICATION-TYPE, IpAddress, Counter32, enterprises FROM SNMPv2-SMI TEXTUAL-CONVENTION, DisplayString FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF; thermostatInfo MODULE-IDENTITY LAST-UPDATED "202409300000Z" ORGANIZATION "Network Thermostat" CONTACT-INFO "networkthermostat.com" DESCRIPTION "X7 SNMP application" REVISION "202409300000Z" DESCRIPTION "Initial version of this MIB" ::= { networkthermostat 1 } networkthermostat OBJECT IDENTIFIER ::= { enterprises 57702 } traps OBJECT IDENTIFIER ::= { thermostatInfo 0 } product OBJECT IDENTIFIER ::= { thermostatInfo 1 } setup OBJECT IDENTIFIER ::= { thermostatInfo 2 } control OBJECT IDENTIFIER ::= { thermostatInfo 3 } netxMIBConformance OBJECT IDENTIFIER ::= { thermostatInfo 8 } netxMIBCompliances OBJECT IDENTIFIER ::= { netxMIBConformance 1 } netxMIBGroups OBJECT IDENTIFIER ::= { netxMIBConformance 2 } -- Textual Conventions FirmwareVersionType ::= TEXTUAL-CONVENTION DISPLAY-HINT "d-2" STATUS current DESCRIPTION "Firmware version as major.minor" SYNTAX Integer32 (0..9999) TempDoublePrecisionType ::= TEXTUAL-CONVENTION DISPLAY-HINT "d-2" STATUS current DESCRIPTION "Temperature with 0.01 degree precision" SYNTAX Integer32 (-5400..12400) -- Range: -54.00 to 124.00 StageDeltaType ::= TEXTUAL-CONVENTION DISPLAY-HINT "d-1" STATUS current DESCRIPTION "Temperature delta with 0.5 C or 1.0 F degree precision, in 0.5 C or 1 F increments." SYNTAX Integer32 (5..60) -- Range: 0.5 to 3 C or 1 to 6 F OverrideRangeType ::= TEXTUAL-CONVENTION DISPLAY-HINT "d-1" STATUS current DESCRIPTION "Temperature range for overrides with a locked display" SYNTAX Integer32 (10..80) -- Range: 1.0-4.0 C or 2.0 to 8.0 F TempCalibrationType ::= TEXTUAL-CONVENTION DISPLAY-HINT "d-2" STATUS current DESCRIPTION "Temperature calibration offset between -3 and 3 C or -6 to 6 F" SYNTAX Integer32 (-600..600) -- Range: -3.0 to 3.0 C or -6.0 to 6.0 F ModeType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Thermostat system mode" SYNTAX INTEGER { off(1), cool(2), heat(3), auto(4), emer(5) } FanType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Fan operation mode, on and fan1 are the same, recirc is intermitent fan. Not all modes are writable in all circumstances except for auto and on." SYNTAX INTEGER { auto(1), on(2), fan2(3), fan3(4), recirc(5) } FanSpeed ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Current fan speed setting, modes are available depending on the HVAC settings. Not all speeds may be writable in all circumstances, except for auto and fan1." SYNTAX INTEGER { auto(1), fan1(2), fan2(3), fan3(4) } TempUnitsType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Temperature units" SYNTAX INTEGER { fahrenheit(1), celsius(2) } ActiveType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Indicates whether something is active or not" SYNTAX INTEGER { inactive(1), active(2) } TrippedType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Indicates whether a binary style sensor is tripped or not" SYNTAX INTEGER { untripped(1), tripped(2) } EnabledType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Indicates whether something is enabled or not" SYNTAX INTEGER { disabled(1), enabled(2) } OnOffType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Indicates whether something is on or not" SYNTAX INTEGER { off(1), on(2) } YesNoType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Indicates a yes or no status" SYNTAX INTEGER { no(1), yes(2) } OccupiedType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Indicates the occupancy state" SYNTAX INTEGER { unoccupied(1), occupied(2) } LockCodeType ::= TEXTUAL-CONVENTION DISPLAY-HINT "4d" STATUS current DESCRIPTION "Physical display lock code" SYNTAX OCTET STRING (SIZE (4)) ScheduleIndexType ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "A combined index representing weekday and period. Calculated as: (weekday * 4) + period Where weekday is 0-6 (Monday-Sunday) and period is 0-3." SYNTAX Integer32 (0..28) ScheduleWeekdayType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Day of the week from monday though sunday" SYNTAX INTEGER { monday(1), tuesday(2), wednesday(3), thursday(4), friday(5), saturday(6), sunday(7) } SchedulePeriodType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Period within each day, 1 through 4, typically maps as morning(1), day(2), evening(3), and night(4), but there is no restriction in how they are used." SYNTAX INTEGER { morning(1), day(2), evening(3), night(4) } TrapEnabledType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Enabled status for IPv4 traps" SYNTAX INTEGER { no(0), yes(1) } -------------------------------- -- Thermostat Control Group -- -------------------------------- -- https://github.com/antonio-salieri/tcpip_18f26k20_demo_app/blob/master/mchip.mib netxCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Group for NetX SNMP" MODULE MANDATORY-GROUPS { netxProductGroup, netxSetupGroup, netxControlGroup, netxTrapsGroup } ::= { netxMIBCompliances 1 } netxProductGroup OBJECT-GROUP OBJECTS { model, version, versionDate, binVersion, faceplateVersion } STATUS current DESCRIPTION "A collection of objects providing setup for traps" ::= { netxMIBGroups 1 } netxSetupGroup OBJECT-GROUP OBJECTS { ipv4TrapEnabled, ipv4TrapReceiverIPAddress, ipv4TrapCommunity } STATUS current DESCRIPTION "A collection of objects providing setup for traps" ::= { netxMIBGroups 2 } netxControlGroup OBJECT-GROUP OBJECTS { indoorTemp, indoorHum, systemMode, fanMode, manualOccupiedCoolSP, manualOccupiedHeatSP, manualUnoccupiedCoolSP, manualUnoccupiedHeatSP, occupancyToggle, manualOperation, coolHeatState, stagesActive, overrideSystemMode, overrideFanMode, overrideCoolSP, overrideHeatSP, overrideStatus, overrideTimeRemaining, snmpTempUnits, displayTempUnits, hvacTypeSetting, hvacCoolingStages, hvacHeatingStages, hvacHeatType, hvacMinOnTime, hvacMinOffTime, hvacEmerHeatEnable, hvacDualFuel, hvacAdaptiveRecovery, hvacRemoteIndoorAvg, hvacFanPurgeTime, hvacLockScreen, hvacLockCode, hvacStage1Diff, hvacStage2Diff, hvacStage2Delay, hvacAuxHeatDelay, hvacTempOverrideRange, hvacOverrideTime, hvacTempCalibration, hvacBalancePointHigh, hvacBalancePointLow, hvacCoolSPHighLimit, hvacCoolSPLowLimit, hvacHeatSPHighLimit, hvacHeatSPLowLimit, hvacFanSpeeds, ntpEnable, ntpServer, digitalInput1, digitalInput2, occupancyInput, outdoorTemp, outdoorHum, remoteIndoorTemp, remoteOutdoorTemp, remoteIndoorHum, remoteAux1, remoteAux2, remoteAux3, remoteAux4, remoteAux5, remoteAux6, remoteAux7, remoteWaterLeak, remoteDoorWindow, remoteOccupancy, co2SensorValue, co2SensorMax, co2HighLimit, co2HighLevelDetected, co2MaxResetSetting, co2DisplaySetting, activeCoolSetpoint, activeHeatSetpoint, activeSetpoint, recircFanTimer, basOutdoorTemp, basOutdoorHum, khdRelayOperation, k2RelayOperation, khdManualOperation, k2ManualOperation, scheduleWeekday, schedulePeriod, scheduleEnable, scheduleTime, scheduleCoolSetpoint, scheduleHeatSetpoint, scheduleOccupied, scheduleMode, scheduleFan, alertHighIndoorTemp, alertLowIndoorTemp, alertInefficientEquipmentRun, alertChangeFilter, alertHighOutdoorTemp, alertLowOutdoorTemp, alertHighHumidity, alertLowHumidity, alertAux1High, alertAux1Low, alertAux2High, alertAux2Low, alertAux3High, alertAux3Low, alertInput1, alertInput2, alertChangeHumidityPad, alertUVLamp, alertFreshAirFilter, alertAux4High, alertAux4Low, alertAux5High, alertAux5Low, alertAux6High, alertAux6Low, alertAux7High, alertAux7Low, alertWaterLeak, alertCO2High, alertCO2Fail, alertAny } STATUS current DESCRIPTION "A collection of objects providing control of the thermostat" ::= { netxMIBGroups 3 } netxTrapsGroup NOTIFICATION-GROUP NOTIFICATIONS { statusTrap, alertsTrap } STATUS current DESCRIPTION "A collection of objects providing setup for traps" ::= { netxMIBGroups 4 } -------------------------------- -- Thermostat Product Objects -- -------------------------------- model OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Product model name" ::= { product 1 } version OBJECT-TYPE SYNTAX FirmwareVersionType MAX-ACCESS read-only STATUS current DESCRIPTION "Main firmware (backplate) version as major.minor" ::= { product 2 } versionDate OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Main firmware (backplate) version date" ::= { product 3 } binVersion OBJECT-TYPE SYNTAX FirmwareVersionType MAX-ACCESS read-only STATUS current DESCRIPTION "Embedded web page version as major.minor" ::= { product 4 } faceplateVersion OBJECT-TYPE SYNTAX FirmwareVersionType MAX-ACCESS read-only STATUS current DESCRIPTION "Faceplate firmware version as major.minor" ::= { product 5 } -------------------------------- -- Thermostat Setup Objects -- -------------------------------- ipv4TrapTable OBJECT-TYPE SYNTAX SEQUENCE OF IPv4TrapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Trap table for IPv4 Destination address configuration" ::= { setup 1 } ipv4TrapEntry OBJECT-TYPE SYNTAX IPv4TrapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Single trap entry containing trap receiver info." INDEX { ipv4TrapReceiverNumber } ::= { ipv4TrapTable 1 } IPv4TrapEntry ::= SEQUENCE { ipv4TrapReceiverNumber Integer32, ipv4TrapEnabled TrapEnabledType, ipv4TrapReceiverIPAddress IpAddress, ipv4TrapCommunity DisplayString } ipv4TrapReceiverNumber OBJECT-TYPE SYNTAX Integer32(0.. 4) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Index of trap receiver" ::= { ipv4TrapEntry 1 } ipv4TrapEnabled OBJECT-TYPE SYNTAX TrapEnabledType MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates if this trap entry is enabled or not." DEFVAL { no } ::= { ipv4TrapEntry 2 } ipv4TrapReceiverIPAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-write STATUS current DESCRIPTION "Trap receiver IP address" DEFVAL { '00000000'H } ::= { ipv4TrapEntry 3 } ipv4TrapCommunity OBJECT-TYPE SYNTAX DisplayString (SIZE (0..32)) MAX-ACCESS read-write STATUS current DESCRIPTION "Trap community to be used by agent to send trap" DEFVAL { "" } ::= { ipv4TrapEntry 4 } -------------------------------- -- Thermostat Control Objects -- -------------------------------- indoorTemp OBJECT-TYPE SYNTAX TempDoublePrecisionType UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Indoor temperature with 0.01 degree precision. The scale is either F or C depending on what is configured for SNMP, see snmpTempUnits." REFERENCE "snmpTempUnits" ::= { control 1 } indoorHum OBJECT-TYPE SYNTAX Integer32 (0..100) UNITS "percent" MAX-ACCESS read-only STATUS current DESCRIPTION "Indoor relative humidity from 0 to 100 percent" ::= { control 2 } systemMode OBJECT-TYPE SYNTAX ModeType MAX-ACCESS read-write STATUS current DESCRIPTION "Current system mode of the thermostat, whether in manual mode or not. Writing to this point will set the manual system mode if in manual mode or start an override otherwise. If an override is already active it will still start the new override from the beginning. If you want to start an override while in manual mode use the overrideSystemMode object. Not all values are writable depending on the HVAC configuration." REFERENCE "overrideSystemMode, manualOperation" ::= { control 3 } fanMode OBJECT-TYPE SYNTAX FanSpeed MAX-ACCESS read-write STATUS current DESCRIPTION "Current fan speed of the thermostat, whether in manual mode or not. Writing to this point will set the manual fan speed if in manual mode or start an override otherwise. If an override is already active it will still start the new override from the beginning. If you want to start an override while in manual mode use the overrideSystemFan object. Not all values are writable depending on the HVAC configuration." REFERENCE "overrideSystemFan, manualOperation" ::= { control 4 } activeCoolSetpoint OBJECT-TYPE SYNTAX Integer32 (16..108) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Current cool setpoint regardless of whether the thermostat is in manual mode or not, or if there is an override active or not. This field will always yield the cool setpoint in use by the thermostat at any given time. The scale is either F or C depending on what is configured for SNMP. When written to, if in manual mode and no override being active, it will modify the current manual mode setpoint (occupied or unoccupied, whichever the device is is). If in manual mode and in override, it will update the override cool setpoint, and finally, if not in manual mode, it will start an override or modify the cool setpoint of an ongoing one. If an override is started as a consequence of writing to this object, the corresponding heat setpoint will be set to whatever the current operating heat setpoint value is. If you want to start an override when in manual mode, the overrideCoolSetpoint object can be used." REFERENCE "snmpTempUnits, activeHeatSetpoint, manualOperation, overrideCoolSetpoint" ::= { control 5 } activeHeatSetpoint OBJECT-TYPE SYNTAX Integer32 (3..88) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Current heat setpoint regardless of whether the thermostat is in manual mode or not, or if there is an override active or not. This field will always yield the heat setpoint in use by the thermostat at any given time. The scale is either F or C depending on what is configured for SNMP. When written to, if in manual mode and no override being active, it will modify the current manual mode setpoint (occupied or unoccupied, whichever the device is is). If in manual mode and in override, it will update the override cool setpoint, and finally, if not in manual mode, it will start an override or modify the cool setpoint of an ongoing one. If an override is started as a consequence of writing to this object, the corresponding cool setpoint will be set to whatever the current operating cool setpoint value is. If you want to start an override when in manual mode, the overrideHeatSetpoint object can be used." REFERENCE "snmpTempUnits, activeCoolSetpoint, manualOperation, overrideHeatSetpoint" ::= { control 6 } activeSetpoint OBJECT-TYPE SYNTAX Integer32 (3..108) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Currently active heat or cool setpoint depending on the mode and status of the thermostat, regardless of whether it is operating in manual mode or not, or whether it is in an override. If the mode is heat or emer, the active heat setpoint is returned, if it is cool, then the active cool setpoint is returned. In any other mode like auto or off, the last active state (cool or heat) setpoint is returned. The scale is either F or C depending on what is configured for SNMP." REFERENCE "snmpTempUnits, activeCoolSetpoint, activeHeatSetpoint" ::= { control 7 } manualOccupiedCoolSP OBJECT-TYPE SYNTAX Integer32 (16..108) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Occupied cool setpoint when operating in Manual Mode, see manualOperation. The cool setpoint must be at least 2 F or 1 C higher than the heat setpoint counterpart manualOccupiedHeatSP, and also within the allowed min max limits hvacCoolSPLowLimit, and hvacCoolSPHighLimit." REFERENCE "snmpTempUnits, manualOperation, manualOccupiedHeatSP, hvacCoolSPHighLimit, hvacCoolSPLowLimit" ::= { control 8 } manualOccupiedHeatSP OBJECT-TYPE SYNTAX Integer32 (3..88) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Occupied heat setpoint when operating in Manual Mode, see manualOperation. The heat setpoint must be at least 2 F or 1 C lower than the cool setpoint counterpart manualOccupiedCoolSP, and also within the allowed min max limits hvacHeatSPLowLimit, and hvacHeatSPHighLimit." REFERENCE "snmpTempUnits, manualOperation, manualOccupiedHeatSP, hvacHeatSPHighLimit, hvacHeatSPLowLimit" ::= { control 9 } manualUnoccupiedCoolSP OBJECT-TYPE SYNTAX Integer32 (16..108) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Unoccupied cool setpoint when operating in Manual Mode, see manualOperation. The cool setpoint must be at least 2 F or 1 C higher than the heat setpoint counterpart manualUnoccupiedHeatSP, and also within the allowed min max limits hvacCoolSPLowLimit, and hvacCoolSPHighLimit." REFERENCE "snmpTempUnits, manualOperation, manualUnoccupiedHeatSP, hvacCoolSPHighLimit, hvacCoolSPLowLimit" ::= { control 10 } manualUnoccupiedHeatSP OBJECT-TYPE SYNTAX Integer32 (3..88) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Unoccupied heat setpoint when operating in Manual Mode, see manualOperation. The heat setpoint must be at least 2 F or 1 C lower than the cool setpoint counterpart manualUnoccupiedCoolSP, and also within the allowed min max limits hvacHeatSPLowLimit, and hvacHeatSPHighLimit." REFERENCE "snmpTempUnits, manualOperation, manualUnoccupiedCoolSP, hvacHeatSPHighLimit, hvacHeatSPLowLimit" ::= { control 11 } occupancyToggle OBJECT-TYPE SYNTAX OccupiedType MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether occupied or unoccupied. This is specially useful to determine which set of setpoints is active when in Manual Mode." REFERENCE "manualOperation, manualUnoccupiedCoolSP, manualUnoccupiedHeatSP, manualOccupiedCoolSP, manualOccupiedHeatSP" ::= { control 12 } manualOperation OBJECT-TYPE SYNTAX ActiveType MAX-ACCESS read-write STATUS current DESCRIPTION "When manual mode is active all native schedules are disabled, though calendar and special events can still run. This mode is typically used with building automation systems. The faceplate is often locked as well to prevent changes, but is also configured to allow an override of a few degrees by the user." REFERENCE "manualOperation, hvacLockScreen, hvacLockCode, hvacTempOverrideRange" DEFVAL { inactive } ::= { control 13 } coolHeatState OBJECT-TYPE SYNTAX INTEGER { cool(1), heat(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "The last active call of the thermostat to the HVAC system, heating or cooling." ::= { control 14 } stagesActive OBJECT-TYPE SYNTAX Integer32 (0..2) MAX-ACCESS read-only STATUS current DESCRIPTION "Number of currently running stages" ::= { control 15 } overrideSystemMode OBJECT-TYPE SYNTAX ModeType MAX-ACCESS read-write STATUS current DESCRIPTION "Reading returns the same as systemMode, but writing modifies an override if already running, without changing the remaining time, or starts a new one if not, even if in manual mode. Not all values are writable depending on the HVAC configuration." REFERENCE "systemMode, manualOperation" ::= { control 16 } overrideFanMode OBJECT-TYPE SYNTAX FanSpeed MAX-ACCESS read-write STATUS current DESCRIPTION "Reading returns the same as fanMode, but writing modifies an override if already running, without changing the remaining time, or starts a new one if not, even if in manual mode. Not all values are writable depending on the HVAC configuration." REFERENCE "fanMode, manualOperation" ::= { control 17 } overrideCoolSP OBJECT-TYPE SYNTAX Integer32 (16..108) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Cool setpoint value during an override. It must be at least 2 F or 1 C higher than the heat setpoint counterpart overrideHeatSP, and also within the allowed min max limits hvacCoolSPLowLimit, and hvacCoolSPHighLimit. Writing this value will attempt to start an override if allowed (see hvacOverrideTime) or modifies the setpoint of an already running override. If starting an override, this will do it whether operating in manual mode or not, and also it will use the current heat setpoint as the initial override heat setpoint counterpart." REFERENCE "snmpTempUnits, overrideHeatSP, hvacCoolSPLowLimit, hvacCoolSPHighLimit, hvacOverrideTime, manualOperation" ::= { control 18 } overrideHeatSP OBJECT-TYPE SYNTAX Integer32 (3..88) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Heat setpoint value during an override. It must be at least 2 F or 1 C lower than the cool setpoint counterpart overrideCoolSP, and also within the allowed min max limits hvacHeatSPLowLimit, and hvacHeatSPHighLimit. Writing this value will attempt to start an override if allowed (see hvacOverrideTime) or modifies the setpoint of an already running override. If starting an override, this will do it whether operating in manual mode or not, and also it will use the current cool setpoint as the initial override cool setpoint counterpart." REFERENCE "snmpTempUnits, overrideCoolSP, hvacHeatSPLowLimit, hvacHeatSPHighLimit, hvacOverrideTime, manualOperation" ::= { control 19 } overrideStatus OBJECT-TYPE SYNTAX ActiveType MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether an override is active or not" REFERENCE "overrideTimeRemaining" ::= { control 20 } overrideTimeRemaining OBJECT-TYPE SYNTAX Integer32 (0..1440) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Time remaining until the end of an active override in minutes. You can also write 0 to this object to cancel an active override." REFERENCE "overrideStatus" ::= { control 21 } snmpTempUnits OBJECT-TYPE SYNTAX TempUnitsType MAX-ACCESS read-write STATUS current DESCRIPTION "Temperature units used to read and write SNMP objects. It is independent from the display units, or other BAS integrations such as BACnet units." REFERENCE "displayTempUnits" DEFVAL { fahrenheit } ::= { control 22 } displayTempUnits OBJECT-TYPE SYNTAX TempUnitsType MAX-ACCESS read-write STATUS current DESCRIPTION "Temperature units used by the physical display. It is independent from the units used to read and write temperature values via SNMP or other BAS integrations such as BACnet." REFERENCE "snmpTempUnits" DEFVAL { fahrenheit } ::= { control 23 } hvacTypeSetting OBJECT-TYPE SYNTAX INTEGER { conventional(1), heatpump(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Type of HVAC system, conventional or heat-pump." DEFVAL { conventional } ::= { control 24 } hvacCoolingStages OBJECT-TYPE SYNTAX Integer32 (0..2) MAX-ACCESS read-write STATUS current DESCRIPTION "Number of cooling stages available to the system." DEFVAL { 1 } ::= { control 25 } hvacHeatingStages OBJECT-TYPE SYNTAX Integer32 (0..2) MAX-ACCESS read-write STATUS current DESCRIPTION "Number of heating stages available to the system." DEFVAL { 1 } ::= { control 26 } hvacHeatType OBJECT-TYPE SYNTAX INTEGER { gas(1), electric(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Heating type, either gas or electric." DEFVAL { electric } ::= { control 27 } hvacMinOnTime OBJECT-TYPE SYNTAX Integer32 (0..5) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Minimum system operating ON time in minutes" DEFVAL { 0 } ::= { control 28 } hvacMinOffTime OBJECT-TYPE SYNTAX Integer32 (2..5) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Minimum system operating OFF time in minutes" DEFVAL { 4 } ::= { control 29 } hvacEmerHeatEnable OBJECT-TYPE SYNTAX EnabledType MAX-ACCESS read-write STATUS current DESCRIPTION "Whether emergency heat is available." DEFVAL { enabled } ::= { control 30 } hvacDualFuel OBJECT-TYPE SYNTAX INTEGER { normal(1), dualfuel(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Whether the system is normal or dual-fuel." DEFVAL { normal } ::= { control 31 } hvacAdaptiveRecovery OBJECT-TYPE SYNTAX EnabledType MAX-ACCESS read-write STATUS current DESCRIPTION "Enable or disable active recovery." DEFVAL { enabled } ::= { control 32 } hvacRemoteIndoorAvg OBJECT-TYPE SYNTAX INTEGER { remoteonly(1), averaged(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Derive the remote indoor sensor value from the remote sensor only or average it with the integrated sensor." DEFVAL { averaged } ::= { control 33 } hvacFanPurgeTime OBJECT-TYPE SYNTAX Integer32 (0..120) UNITS "seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "Fan purge time in seconds, in 30 second increments." DEFVAL { 0 } ::= { control 34 } hvacLockScreen OBJECT-TYPE SYNTAX INTEGER { unlocked(1), locked(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Lock or unlock the physical display user interaction" REFERENCE "hvacLockCode" DEFVAL { unlocked } ::= { control 35 } hvacLockCode OBJECT-TYPE SYNTAX LockCodeType MAX-ACCESS read-write STATUS current DESCRIPTION "A 4-digit code to manage the physical display lock" REFERENCE "hvacLockScreen" DEFVAL { "0000" } ::= { control 36 } hvacStage1Diff OBJECT-TYPE SYNTAX StageDeltaType UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Temperature delta above or below the setpoint needed to turn on the first stage with 1 F or 0.5 C precision and rounding. The default value is 1 F or 0.5 C." REFERENCE "snmpTempUnits" ::= { control 37 } hvacStage2Diff OBJECT-TYPE SYNTAX StageDeltaType UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Temperature delta above or below the setpoint plus stage 1 delta needed to turn on the second stage with 1 F or 0.5 C precision and rounding. The default value is 3 F or 1.5 C." REFERENCE "snmpTempUnits" ::= { control 38 } hvacStage2Delay OBJECT-TYPE SYNTAX Integer32 (5..40) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Delay in minutes to turn on the second stage if the first stage has not had sufficient effect on the termperature, rounded to the nearest 5 minute increment." DEFVAL { 20 } ::= { control 39 } hvacAuxHeatDelay OBJECT-TYPE SYNTAX Integer32 (5..40) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Delay in minutes deemed necessary to turn on aux heat, rounded to the nearest 5 minute increment." DEFVAL { 20 } ::= { control 40 } hvacTempOverrideRange OBJECT-TYPE SYNTAX OverrideRangeType UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Range allowed for setpoint changes during an override while the display is locked. The range is 2.0 to 8.0 F or 1.0 to 4.0 C, with 1 F or 0.5 C resolution, and the scale is either F or C depending on what is configured for SNMP, see snmpTempUnits. A range of 2 F means the temperature can be adjusted -1 F to +1 F relative to the current setpoint, while an 8 F range would imply it can be changed 4 degrees in either direction. The default value is 3 F or 1.5 C." REFERENCE "snmpTempUnits" ::= { control 41 } hvacOverrideTime OBJECT-TYPE SYNTAX Integer32 (0..1440) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Duration of an override when started, in minutes. A value of 0 disables overrides entirely. This is the default duration of an override when started using any of the available methods, or from a locked faceplate. If you want to modify the remaining duration of an active override or cancel it, the overrideTimeRemaining object may be written to accordingly." REFERENCE "overrideTimeRemaining" DEFVAL { 480 } ::= { control 42 } hvacTempCalibration OBJECT-TYPE SYNTAX TempCalibrationType UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Temperature calibration offset between -3 and 3 C or -6 to 6 F." REFERENCE "snmpTempUnits" DEFVAL { 0 } ::= { control 43 } hvacBalancePointHigh OBJECT-TYPE SYNTAX Integer32 (5..120) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "High balance point, between 5 to 48 C or 41 to 120 F. The default value is 120 F or 48 C. If using F as the SNMP scale, values may be rounded one degree above or below the given value, for example -55 may be set internally to -54, and 40 to 39." REFERENCE "snmpTempUnits" ::= { control 44 } hvacBalancePointLow OBJECT-TYPE SYNTAX Integer32 (-55..40) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Low balance point, between -48 to 4 C or -55 to 40 F. The default value is -55 F or -48 C. If using F as the SNMP scale, values may be rounded one degree above or below the given value." REFERENCE "snmpTempUnits" ::= { control 45 } hvacCoolSPHighLimit OBJECT-TYPE SYNTAX Integer32 (16..108) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "The high limit for the cool setpoint, with the hard limit range being 16 to 42 C or 60 to 108 F depending on the SNMP scale in use. However the lower bound is also limited by hvacHeatSPLowLimit plus 2 F or 1 C." REFERENCE "snmpTempUnits, hvacHeatSPLowLimit" ::= { control 46 } hvacCoolSPLowLimit OBJECT-TYPE SYNTAX Integer32 (16..108) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "The low limit for the cool setpoint, between 60 to 108 F or 16 to 42 C depending on the SNMP scale in use." REFERENCE "snmpTempUnits" ::= { control 47 } hvacHeatSPHighLimit OBJECT-TYPE SYNTAX Integer32 (3..88) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "The high limit for the heat setpoint, between 38 to 88 F or 3 to 31 C depending on the SNMP scale in use." REFERENCE "snmpTempUnits" ::= { control 48 } hvacHeatSPLowLimit OBJECT-TYPE SYNTAX Integer32 (3..88) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "The low limit for the heat setpoint, with the hard limit range being 388 to 88 F or 3 to 31 C depending on the SNMP scale in use. However the higher bound is also limited by hvacCoolSPHighLimit minus 2 F or 1 C." REFERENCE "snmpTempUnits, hvacCoolSPHighLimit" -- 37 F or 3 C ::= { control 49 } hvacFanSpeeds OBJECT-TYPE SYNTAX Integer32 (1..3) MAX-ACCESS read-write STATUS current DESCRIPTION "The number of fan speeds available. If 2 speeds are set, the KHD relay will be linked to FAN 2, likewise if set to 3 speeds, the KHD relay will operate FAN 2, and K2 will operate FAN 3." DEFVAL { 1 } ::= { control 50 } ntpEnable OBJECT-TYPE SYNTAX EnabledType MAX-ACCESS read-write STATUS current DESCRIPTION "Enables NTP time synchronization" REFERENCE "ntpServer" DEFVAL { enabled } ::= { control 51 } ntpServer OBJECT-TYPE SYNTAX DisplayString (SIZE (1..31)) MAX-ACCESS read-write STATUS current DESCRIPTION "The hostname or IP address of the NTP server. This string should contain a valid hostname or IP address. Typical values include: - pool.ntp.org - us.pool.ntp.org - ca.pool.ntp.org - mx.pool.ntp.org - time.nist.gov - time-a.nist.gov - time-b.nist.gov The maximum length is 31 characters to accommodate fully qualified domain names (FQDNs). The client uses SNTP v3 to maximize backwards compatibility." REFERENCE "ntpEnable" DEFVAL { "pool.ntp.org" } ::= { control 52 } digitalInput1 OBJECT-TYPE SYNTAX ActiveType MAX-ACCESS read-only STATUS current DESCRIPTION "Digital input 1 state, active being signal is high 24 VAC, inactive is 0 V. If nothing is connected to the input, the value will be reported as inactive." ::= { control 53 } digitalInput2 OBJECT-TYPE SYNTAX ActiveType MAX-ACCESS read-only STATUS current DESCRIPTION "Digital input 2 state, active being signal is high 24 VAC, inactive is 0 V. If nothing is connected to the input, the value will be reported as inactive." ::= { control 54 } occupancyInput OBJECT-TYPE SYNTAX INTEGER { unoccupied(1), occupied(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "State representing the value of the occupancy input terminals." ::= { control 55 } outdoorTemp OBJECT-TYPE SYNTAX Integer32 (-54..118) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Outdoor temperature coming from either basOutdoorTemp being written periodically, from the weather service, if enabled and the zipcode set, or from an external sensor. The value is reported in F or C depending on SNMP scale configuration." REFERENCE "basOutdoorTemp, snmpTempUnits" ::= { control 56 } outdoorHum OBJECT-TYPE SYNTAX Integer32 (0..100) UNITS "percent" MAX-ACCESS read-only STATUS current DESCRIPTION "Outdoor relative humidity from 0 to 100 percent, coming from either basOutdoorHum bein written periodically, or from the weather service if enabled and the zipcode set." REFERENCE "basOutdoorHum" ::= { control 57 } remoteIndoorTemp OBJECT-TYPE SYNTAX Integer32 (0..118) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Remote indoor temperature in F or C depending on the SNMP scale configuration. A value of 2147483647 indicates an invalid reading, typically because a sensor is missing or the data is stale." REFERENCE "snmpTempUnits" ::= { control 58 } remoteOutdoorTemp OBJECT-TYPE SYNTAX Integer32 (-54..118) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Remote outdoor temperature in F or C depending on the SNMP scale configuration. A value of 2147483647 indicates an invalid reading, typically because a sensor is missing or the data is stale." REFERENCE "snmpTempUnits" ::= { control 59 } remoteIndoorHum OBJECT-TYPE SYNTAX Integer32 (0..100) UNITS "percent" MAX-ACCESS read-only STATUS current DESCRIPTION "Remote indoor relative humidity from 0 to 100 percent. A value of 255 indicates an invalid reading, typically because a sensor is missing or the data is stale." ::= { control 60 } remoteAux1 OBJECT-TYPE SYNTAX Integer32 (-40..200) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Aux 1 sensor, typically configured as supply air, temperature in F or C depending on SNMP scale configuration. A value of 2147483647 indicates an invalid reading." REFERENCE "snmpTempUnits" ::= { control 61 } remoteAux2 OBJECT-TYPE SYNTAX Integer32 (-40..200) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Aux 2 sensor, typically configured as return air, temperature in F or C depending on SNMP scale configuration. A value of 2147483647 indicates an invalid reading." REFERENCE "snmpTempUnits" ::= { control 62 } remoteAux3 OBJECT-TYPE SYNTAX Integer32 (-40..200) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Aux 3 sensor, typically configured as spare, temperature in F or C depending on SNMP scale configuration. A value of 2147483647 indicates an invalid reading." REFERENCE "snmpTempUnits" ::= { control 63 } remoteAux4 OBJECT-TYPE SYNTAX Integer32 (-40..200) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Aux 4 sensor temperature in F or C depending on SNMP scale configuration. A value of 2147483647 indicates an invalid reading." REFERENCE "snmpTempUnits" ::= { control 64 } remoteAux5 OBJECT-TYPE SYNTAX Integer32 (-40..200) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Aux 5 sensor temperature in F or C depending on SNMP scale configuration. A value of 2147483647 indicates an invalid reading." REFERENCE "snmpTempUnits" ::= { control 65 } remoteAux6 OBJECT-TYPE SYNTAX Integer32 (-40..200) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Aux 6 sensor temperature in F or C depending on SNMP scale configuration. A value of 2147483647 indicates an invalid reading." REFERENCE "snmpTempUnits" ::= { control 66 } remoteAux7 OBJECT-TYPE SYNTAX Integer32 (-40..200) UNITS "degrees" MAX-ACCESS read-only STATUS current DESCRIPTION "Aux 7 sensor temperature in F or C depending on SNMP scale configuration. A value of 2147483647 indicates an invalid reading." REFERENCE "snmpTempUnits" ::= { control 67 } remoteWaterLeak OBJECT-TYPE SYNTAX TrippedType MAX-ACCESS read-only STATUS current DESCRIPTION "When active indicates water leak is tripped." ::= { control 68 } remoteDoorWindow OBJECT-TYPE SYNTAX TrippedType MAX-ACCESS read-only STATUS current DESCRIPTION "When active indicates door window sensor is tripped." ::= { control 69 } remoteOccupancy OBJECT-TYPE SYNTAX OccupiedType MAX-ACCESS read-only STATUS current DESCRIPTION "Remote occupancy detected status." ::= { control 70 } co2SensorValue OBJECT-TYPE SYNTAX Integer32 (0..40000) UNITS "ppm" MAX-ACCESS read-only STATUS current DESCRIPTION "CO2 reading if a sensor in installed, 65535 indicates an invalid reading or that a CO2 sensor is not present." ::= { control 71 } co2SensorMax OBJECT-TYPE SYNTAX Integer32 (0..40000) UNITS "ppm" MAX-ACCESS read-write STATUS current DESCRIPTION "Tracks the maximum CO2 reading since the last reset of this field. A value of 65535 indicates an invalid reading or that a CO2 sensor is not present. It can also be written, but only with a value of 0 in order to reset it manually." REFERENCE "co2MaxResetSetting" ::= { control 72 } co2HighLimit OBJECT-TYPE SYNTAX Integer32 (500..2000) UNITS "ppm" MAX-ACCESS read-write STATUS current DESCRIPTION "Configurable CO2 limit used to determine if the CO2 sensor value is too high. A value of 65535 indicates an invalid reading or that a CO2 sensor is not present." REFERENCE "co2HighLevelDetected, co2SensorValue" DEFVAL { 1100 } ::= { control 73 } co2HighLevelDetected OBJECT-TYPE SYNTAX ActiveType MAX-ACCESS read-only STATUS current DESCRIPTION "If active, it indicates that the CO2 sensor value is too high according to the value configured in co2HighLimit. A value of 255 being returned indicates an invalid reading or that a CO2 sensor is not present." REFERENCE "co2HighLevelDetected, co2SensorValue" ::= { control 74 } co2MaxResetSetting OBJECT-TYPE SYNTAX INTEGER { manual(1), daily(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Maximum CO2 detected level reset policy, either manual or daily at midnight. A value of 255 indicates an invalid reading or that a CO2 sensor is not present." REFERENCE "co2SensorMax" DEFVAL { manual } ::= { control 75 } co2DisplaySetting OBJECT-TYPE SYNTAX INTEGER { off(1), on(2), alertonly(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "When to display the CO2 data on the display, always unless other alerts happen (on), never (off), or only when a high level is detected (alertonly)." REFERENCE "co2HighLevelDetected" DEFVAL { on } ::= { control 76 } recircFanTimer OBJECT-TYPE SYNTAX Integer32 (0..30) UNITS "minutes per hour" MAX-ACCESS read-write STATUS current DESCRIPTION "Fan recirculation timer in minutes per hour, with a valid range of 0 to 30, inclusive." DEFVAL { 0 } ::= { control 77 } basOutdoorTemp OBJECT-TYPE SYNTAX Integer32 (-54..118) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "Writable version of outdoorTemp in F or C depending on SNMP scale configuration. If data is written periodically within a 30 minute window, it will be taken as the source for outdoor temperature, as long as no external outdoor temperature sensor is enabled. The origin priority for the data is, external sensor if enabled, BAS data point basOutdoorTemp when kept updated periodically, and finally outdoor weather service from the cloud if enabled. A value of 2147483647 indicates an invalid reading." REFERENCE "outdoorTemp, snmpTempUnits" ::= { control 78 } basOutdoorHum OBJECT-TYPE SYNTAX Integer32 (0..100) UNITS "percent" MAX-ACCESS read-write STATUS current DESCRIPTION "Writable version of outdoorHum. If data is written periodically within a 30 minute window, it will be taken as the source for outdoor humidity, as long as no external outdoor humidity sensor is enabled. The origin priority for the data is, external sensor if enabled, BAS data point basOutdoorTemp when kept updated periodically, and finally outdoor weather service from the cloud if enabled. A value of 255 indicates an invalid reading." REFERENCE "outdoorHum" ::= { control 79 } khdRelayOperation OBJECT-TYPE SYNTAX INTEGER { off(1), damper(2), dehum(3), hum(4), manual(5), schedule(6), iaq(7), co2(8) } MAX-ACCESS read-write STATUS current DESCRIPTION "KHD relay operating mode. Note that only KHD, and not K2, supports dehum and hum modes, and that some modes can only be active on either KHD or K2 at a time. The damper, schedule, iaq, and co2 modes may only be assigned to one of the relays. Also co2 mode may only be set if a sensor is installed." REFERENCE "k2RelayOperation" DEFVAL { off } ::= { control 80 } k2RelayOperation OBJECT-TYPE SYNTAX INTEGER { off(1), damper(2), manual(3), schedule(4), iaq(5), co2(6) } MAX-ACCESS read-write STATUS current DESCRIPTION "K2 relay operating mode. Note that only KHD, and not K2, supports dehum and hum modes, and that some modes can only be active on either KHD or K2 at a time. The damper, schedule, iaq, and co2 modes may only be assigned to one of the relays. Also co2 mode may only be set if a sensor is installed." REFERENCE "khdRelayOperation" DEFVAL { off } ::= { control 81 } khdManualOperation OBJECT-TYPE SYNTAX OnOffType MAX-ACCESS read-write STATUS current DESCRIPTION "KHD relay on or off status and toggle. KHD relay mode must be manual for this point to react as expected when written, otherwise the change will not take effect." REFERENCE "khdRelayOperation" DEFVAL { off } ::= { control 82 } k2ManualOperation OBJECT-TYPE SYNTAX OnOffType MAX-ACCESS read-write STATUS current DESCRIPTION "K2 relay on or off status and toggle. K2 relay mode must be manual for this point to react as expected when written, otherwise the change will not take effect." REFERENCE "k2RelayOperation" DEFVAL { off } ::= { control 83 } -- Schedule Table scheduleTable OBJECT-TYPE SYNTAX SEQUENCE OF ScheduleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of thermostat schedule entries." ::= { control 120 } scheduleEntry OBJECT-TYPE SYNTAX ScheduleEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the thermostat schedule table." INDEX { scheduleIndex } ::= { scheduleTable 1 } ScheduleEntry ::= SEQUENCE { scheduleIndex ScheduleIndexType, scheduleWeekday ScheduleWeekdayType, schedulePeriod SchedulePeriodType, scheduleEnable EnabledType, scheduleTime Integer32, scheduleCoolSetpoint Integer32, scheduleHeatSetpoint Integer32, scheduleOccupied OccupiedType, scheduleMode ModeType, scheduleFan FanType } scheduleIndex OBJECT-TYPE SYNTAX ScheduleIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "Index of the schedule accounting for weekday and period" ::= { scheduleEntry 1 } scheduleWeekday OBJECT-TYPE SYNTAX ScheduleWeekdayType MAX-ACCESS read-only STATUS current DESCRIPTION "Day of the week from monday(1) though sunday(7)" ::= { scheduleEntry 2 } schedulePeriod OBJECT-TYPE SYNTAX SchedulePeriodType MAX-ACCESS read-only STATUS current DESCRIPTION "Period within the day, from 1 to 4" ::= { scheduleEntry 3 } scheduleEnable OBJECT-TYPE SYNTAX EnabledType MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether this schedule entry is enabled or disabled. Note schedules will not run regardless if the thermostat is in Manual Operation (see manualOperation)." REFERENCE "manualOperation" ::= { scheduleEntry 4 } scheduleTime OBJECT-TYPE SYNTAX Integer32 (0..1439) UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "The time of day for this schedule entry, in minutes since midnight." ::= { scheduleEntry 5 } scheduleCoolSetpoint OBJECT-TYPE SYNTAX Integer32 (16..108) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "The cool temperature setpoint for this schedule entry. it must be at least 2 F or 1 C higher than the heat setpoint counterpart scheduleHeatSetpoint, and also within the allowed min max limits hvacCoolSPLowLimit, and hvacCoolSPHighLimit. If the aforementioned deadband is not met, the operation will not work." REFERENCE "snmpUnits, scheduleHeatSetpoint, hvacCoolSPLowLimit, hvacCoolSPHighLimit, scheduleHeatSetpoint" ::= { scheduleEntry 6 } scheduleHeatSetpoint OBJECT-TYPE SYNTAX Integer32 (3..88) UNITS "degrees" MAX-ACCESS read-write STATUS current DESCRIPTION "The heat temperature setpoint for this schedule entry. it must be at least 2 F or 1 C lower than the cool setpoint counterpart scheduleCoolSetpoint, and also within the allowed min max limits hvacHeatSPLowLimit, and hvacHeatSPHighLimit. If the aforementioned deadband is not met, the operation will not work." REFERENCE "snmpUnits, scheduleCoolSetpoint, hvacHeatSPLowLimit, hvacHeatSPHighLimit, scheduleCoolSetpoint" ::= { scheduleEntry 7 } scheduleOccupied OBJECT-TYPE SYNTAX OccupiedType MAX-ACCESS read-write STATUS current DESCRIPTION "Whether to consider the space occupied or not when this particular schedule entry is active." ::= { scheduleEntry 8 } scheduleMode OBJECT-TYPE SYNTAX ModeType MAX-ACCESS read-write STATUS current DESCRIPTION "The system mode to set active for this schedule entry. Only valid modes depending on the HVAC configuration of the system will be allowed." DEFVAL { auto } ::= { scheduleEntry 9 } scheduleFan OBJECT-TYPE SYNTAX FanType MAX-ACCESS read-write STATUS current DESCRIPTION "Only auto and on values are supported for schedules, even on multi-speed fan systems." DEFVAL { auto } ::= { scheduleEntry 10 } -- Alerts alertHighIndoorTemp OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High indoor temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 130 } alertLowIndoorTemp OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low indoor temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 131 } alertInefficientEquipmentRun OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Inefficient equipment run alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 132 } alertChangeFilter OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Change filter alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 133 } alertHighOutdoorTemp OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High outdoor temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 134 } alertLowOutdoorTemp OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low outdoor temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 135 } alertHighHumidity OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High humidity alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 136 } alertLowHumidity OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low humidity temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 137 } alertAux1High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High Aux 1 (typically supply air) temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since January 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 138 } alertAux1Low OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low Aux 1 (typically supply air) temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since January 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 139 } alertAux2High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High Aux 1 (typically return air) temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since January 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 140 } alertAux2Low OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low Aux 2 (typically return air) temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since January 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 141 } alertAux3High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High Aux 3 (typically a spare) temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since January 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 142 } alertAux3Low OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low Aux 3 (typically a spare) temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since January 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 143 } alertInput1 OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Digital input 1 alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 144 } alertInput2 OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Digital input 2 alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 145 } alertChangeHumidityPad OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Change humidity pad alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 146 } alertUVLamp OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Change UV lamp alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 147 } alertFreshAirFilter OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Fresh air filter alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 148 } alertAux4High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High Aux 4 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 149 } alertAux4Low OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low Aux 4 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 150 } alertAux5High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High Aux 5 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 151 } alertAux5Low OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low Aux 5 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 152 } alertAux6High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High Aux 6 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 153 } alertAux6Low OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low Aux 6 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 154 } alertAux7High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High Aux 7 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 155 } alertAux7Low OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Low Aux 7 temperature alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 156 } alertWaterLeak OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "Water leak alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 157 } alertCO2High OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "High CO2 alert alert as configured in alert and CO2 settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 158 } alertCO2Fail OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "CO2 sensor failure alert alert as configured in alert settings. The value represents the last trigger date of the alert in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. A value of 0 represents the alert is not triggered. Writing 0 to this object clears this particular alert." ::= { control 159 } alertAny OBJECT-TYPE SYNTAX YesNoType MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates the last triggered alert date, regardless of the source, in seconds since Jan 1, 1970 00:00 LOCAL, factoring in timezone and DST. If the value is 0 it represents no alerts are triggered. Writing 0 to this object clears ALL alerts." ::= { control 160 } -- Notifications statusTrap NOTIFICATION-TYPE OBJECTS { indoorTemp, coolHeatState, stagesActive, activeSetpoint } STATUS current DESCRIPTION "HVAC status trap notification, any change in coolHeatState, stagesActive, or activeSetpoint, will trigger the trap. Changes in indoorTemp will trigger the trap only if a change larger than the delta configured in the BAS configuration page is met, or if said delta is set to zero, changes in indoorTemp will not trigger this trap." REFERENCE "indoorTemp, coolHeatState, stagesActive, activeSetpoint" ::= { traps 1 } alertsTrap NOTIFICATION-TYPE OBJECTS { alertHighIndoorTemp, alertLowIndoorTemp, alertInefficientEquipmentRun, alertChangeFilter, alertHighOutdoorTemp, alertLowOutdoorTemp, alertHighHumidity, alertLowHumidity, alertAux1High, alertAux1Low, alertAux2High, alertAux2Low, alertAux3High, alertAux3Low, alertInput1, alertInput2, alertChangeHumidityPad, alertUVLamp, alertFreshAirFilter, alertAux4High, alertAux4Low, alertAux5High, alertAux5Low, alertAux6High, alertAux6Low, alertAux7High, alertAux7Low, alertWaterLeak, alertCO2High, alertCO2Fail } STATUS current DESCRIPTION "Alerts trap notification, any change in any of the alert objects, as long as setup to send a trap in the alert settings page, will trigger the trap containing the status for that alert object. Only one object will be sent in each trap message. If the alert that triggers the trap is configured in the alert settings page to send periodical messages until cleared, the alert will continue to send the trap until cleared from the page, or a 0 is written via SNMP to the specific alert object or to the alertAny object which clears all alerts at once." REFERENCE "alertAny" ::= { traps 2 } END