blob: c2aa6bde4edf415bfdf51d218f4090abac612ab9 [file] [log] [blame]
/*
*
* Copyright (c) 2015 Nest Labs, Inc.
* All rights reserved.
*
* This document is the property of Nest. It is considered
* confidential and proprietary information.
*
* This document may not be reproduced or transmitted in any form,
* in whole or in part, without the express written permission of
* Nest.
*
*/
/**
* @file
* This file defines constants used by the Nest HVAC Equipment Control Profile
*/
#ifndef WEAVE_PROFILES_NEST_HVAC_EQUIPMENT_CONTROL_CONSTANTS
#define WEAVE_PROFILES_NEST_HVAC_EQUIPMENT_CONTROL_CONSTANTS
namespace nl {
namespace Weave {
namespace Profiles {
namespace Vendor {
namespace Nestlabs {
namespace Hvac {
namespace EquipmentControl {
enum EquipmentInterface {
UnknownEquipmentInterface = 0,
Relay = 1,
OpenTherm = 2,
};
enum HeatingProductionSource {
UnknownHeatingSource = 0,
ElectricalHeating = 1,
NaturalGasHeating = 2,
GeothermalHeating = 3,
Boiler = 4,
};
enum CoolingProductionSource {
UnknownCoolingSource = 0,
ElectricalCooling = 1,
};
// Generic HVAC Equipment Control tag space
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability OT
// ------------------------------------------------------------------------------------------------------
enum {
kTag_EquipmentInterface = 0x0001, // Profile-specific UINT32 EquipmentInterface Mandatory Any -
kTag_HeatingProductionSource = 0x0002, // Profile-specific UINT32 HeatingProductionSource Mandatory Any -
kTag_CoolingProductionSource = 0x0003, // Profile-specific UINT32 CoolingProductionSource Mandatory Any -
//Turn on/off Central Heating
kTag_CentralHeatingEnable = 0x0004, // Profile-specific Bool - Mandatory Any Any W=0.HB.0,R=0.LB.1
//Turn on/off Central Heating 2
kTag_CentralHeating2Capable = 0x0005, // Profile-specific Bool - Optional Any - 3.5
kTag_CentralHeating2Enable = 0x0006, // Profile-specific Bool - Optional Any Any W=0.HB.4,R=0.LB.5
//Turn on/off Cooling
kTag_CoolingCapable = 0x0007, // Profile-specific Bool - Optional Any - 3.2
kTag_CoolingEnable = 0x0008, // Profile-specific Bool - Optional Any Any W=0.HB.2,R=0.LB.4
//Setpoints
kTag_ControlSetpoint = 0x0009, // Profile-specific INT32 -400 to 1270 0.1degC Optional - Any 1
kTag_IndoorSetpoint = 0x000A, // Profile-specific INT32 -400 to 1270 0.1degC Optional - Any 16
kTag_MinCentralHeatingSetpoint = 0x000B, // Profile-specific INT32 -400 to 1270 0.1degC Optional - Any 49.LB
kTag_MaxCentralHeatingSetpoint = 0x000C, // Profile-specific INT32 -400 to 1270 0.1degC Optional - Any 49.HB
//Temperatures
kTag_RoomTemperature = 0x000D, // Profile-specific INT32 -400 to 1270 0.1degC Optional - Any 24
kTag_OutdoorTemperature = 0x000E, // Profile-specific INT32 -400 to 1270 0.1degC Optional Any Any 27
//Is cool/heat switching done by thermostat?
kTag_HeatCoolSwitchByThermostat = 0x000F, // Profile-specific Bool - Optional Any - 3.7
kTag_ManualModeControlSetpoint = 0x0010, // Profile-specific INT32 -400 to 1270 0.1degC Optional - Any
};
// HVAC Equipment Control OpenTherm (OT) specific tag space (0x10001 - 0x1FFFF)
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability
// -----------------------------------------------------------------------------------------------
//enum {
//};
// HVAC Equipment Control sensor tag space (0x20001 - 0x2FFFF)
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability OT
// ------------------------------------------------------------------------------------------------------
enum {
kTag_Sensor_WaterPressure = 0x20001, // Profile-specific UINT32 0.1 bar Optional Any 18
};
// HVAC Equipment Control counters tag space (0x30001 - 0x3FFFF). Write 0 to clear
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability OT
// ------------------------------------------------------------------------------------------------------
enum {
kTag_Counter_NumCentralHeatingPumpStarts = 0x30001, // Profile-specific UINT32 - Optional Any Any 117
kTag_Counter_NumCentralHeatingPumpOpHours = 0x30002, // Profile-specific UINT32 - Optional Any Any 121
};
// HVAC Equipment Control status codes
enum {
kStatus_OutdoorTemperatureUnavailable = 0x0001, // Outdoor temp sensor unavailable. Thermostat must provide outdoor temp
kStatus_CentralHeatingEnableFailed = 0x0002, // Error enabling Central Heating
kStatus_CentralHeatingDisableFailed = 0x0003, // Error disabling Central Heating
kStatus_CentralHeatingWriteFailed = 0x0004, // Error enabling or disabling CH due to write error
kStatus_CannotSetControlSetpoint = 0x0005, // Control setpoint cannot be set
kStatus_CannotSetIndoorSetpoint = 0x0006, // Indoor setpoint cannot be set
};
}; // namespace EquipmentConrol
}; // namespace Hvac
}; // namespace Nestlabs
}; // namespace Vendor
}; // namespace Profiles
}; // namespace Weave
}; // namespace nl
#endif // WEAVE_PROFILES_NEST_HVAC_EQUIPMENT_CONTROL_CONSTANTS