blob: 6a41a55a8d64b74de977f8ee8aed275da49a8d76 [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 Boiler Profile
*/
#ifndef WEAVE_PROFILES_NEST_BOILER_CONSTANTS
#define WEAVE_PROFILES_NEST_BOILER_CONSTANTS
namespace nl {
namespace Weave {
namespace Profiles {
namespace Vendor {
namespace Nestlabs {
namespace Boiler {
enum EquipmentInterface {
UnknownEquipmentInterface = 0,
Relay = 1,
OpenTherm = 2,
};
enum ProductionSource {
UnknownSource = 0,
Electricity = 1,
NaturalGas = 2,
Propane = 3,
};
// Generic boiler tag space (0x0001 - 0xFFFF)
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability OT
// -----------------------------------------------------------------------------------------------------
enum {
kTag_EquipmentInterface = 0x0001, // Profile-specific UINT32 EquipmentInterface Mandatory Any -
kTag_ProductionSource = 0x0002, // Profile-specific UINT32 ProductionSource Mandatory Any -
//Modulation settings
kTag_ModulationCapable = 0x0003, // Profile-specific Bool - Optional Any - 3.1
kTag_MaxRelativeModulationLevel = 0x0004, // Profile-specific UINT32 0 to 1000 0.1% Optional - Any 14
kTag_MinimumModulationLevel = 0x0005, // Profile-specific UINT32 0 to 1000 0.1% Optional Any - 15.LB
kTag_RelativeModulationLevel = 0x0006, // Profile-specific UINT32 0 to 1000 0.1% Optional Any - 17
//Other settings
kTag_MaximumCapacity = 0x0007, // Profile-specific UINT32 0 to 1000 KW Optional Any - 15.HB
kTag_OutsideTempCompEnabled = 0x0008, // Profile-specific Bool - Optional - Any 0.HB.3
//Faults
kTag_Fault = 0x0009, // Profile-specific Bool - Optional Any - 0.LB.0
kTag_SourceOn = 0x000A, // Profile-specific Bool - Optional Any - 0.LB.3
kTag_DiagOrServiceIndication = 0x000B, // Profile-specific Bool - Optional Any - 0.LB.6
//Is pump control allowed
kTag_PumpControlAllowed = 0x000C, // Profile-specific Bool - Optional Any - 3.4
//Remote water filling function
kTag_RemoteWaterFilling = 0x000D, // Profile-specific Bool - Optional Any Any R=3.6, W=4.2
};
// Boiler OpenTherm (OT) specific tag space (0x10001 - 0x1FFFF)
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability
// -------------------------------------------------------------------------------------------------
enum {
kTag_OT_ProtocolVersion = 0x10001, // Profile-specific UINT32 OT reg 125 Optional Any -
kTag_OT_ProductType = 0x10002, // Profile-specific UINT32 OT reg 127.HB Optional Any -
kTag_OT_ProductVersion = 0x10003, // Profile-specific UINT32 OT reg 127.LB Optional Any -
kTag_OT_DiagnosticCode = 0x10004, // Profile-specific UINT32 OT reg 115 Optional Any -
kTag_OT_OEMFaultCode = 0x10005, // Profile-specific UINT32 OT reg 5.LB Optional Any -
kTag_OT_ServiceRequestRequired = 0x10006, // Profile-specific Bool OT bit 5.HB.0 Optional Any -
kTag_OT_LockoutResetFault = 0x10007, // Profile-specific Bool OT bit 5.HB.1 Optional Any -
kTag_OT_LowWaterPressureFault = 0x10008, // Profile-specific Bool OT bit 5.HB.2 Optional Any -
kTag_OT_GasOrFlameOutFault = 0x10009, // Profile-specific Bool OT bit 5.HB.3 Optional Any -
kTag_OT_AirPressureFault = 0x1000A, // Profile-specific Bool OT bit 5.HB.4 Optional Any -
kTag_OT_WaterOverTempFault = 0x1000B, // Profile-specific Bool OT bit 5.HB.5 Optional Any -
kTag_OT_DirectAccess = 0x1000C, // Profile-specific UINT32 VAL[15:0],ID[23:16] Optional Any Any
};
// Boiler sensor tag space (0x20001 - 0x2FFFF)
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability OT
// ------------------------------------------------------------------------------------------------------
enum {
kTag_Sensor_SupplyWaterOutTemp = 0x20001, // Profile-specific UINT32 0 to 1000 0.1degC Optional Any - 25
kTag_Sensor_ReturnWaterInTemp = 0x20002, // Profile-specific UINT32 0 to 1000 0.1degC Optional Any - 28
};
// Boiler fuel-based production source counters tag space (0x30001 - 0x3FFFF). Write 0 to clear
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability OT
// --------------------------------------------------------------------------------------------------------
enum {
kTag_Counter_NumTimesFlameTooLow = 0x30001, // Profile-specific UINT32 - Optional Any Any 114
kTag_Counter_NumSuccessfulBurnerStarts = 0x30002, // Profile-specific UINT32 - Optional Any Any 116
kTag_Counter_NumUnsuccessfulBurnerStarts = 0x30003, // Profile-specific UINT32 - Optional Any Any 113
kTag_Counter_NumBurnerOperationHours = 0x30004, // Profile-specific UINT32 - Optional Any Any 120
};
// Boiler electricity-based production source counters tag space (0x40001 - 0x4FFFF). Write 0 to clear
//
// Tag Tag Element
// Number Category Type Constraints Disposition Readability Writability OT
// --------------------------------------------------------------------------------------------------------
enum {
kTag_Counter_NumTimesHeatingElementOn = 0x40001, // Profile-specific UINT32 - Optional Any Any 116
kTag_Counter_NumHoursHeatingElementOn = 0x40002, // Profile-specific UINT32 - Optional Any Any 120
};
// Boiler status codes
enum {
kStatus_BoilerFault = 0x0001, // Boiler in fault condition
kStatus_CannotSetMaxModulationLevel = 0x0002, // The maximum relative modulation level cannot be set
};
}; // namespace Boiler
}; // namespace Nestlabs
}; // namespace Vendor
}; // namespace Profiles
}; // namespace Weave
}; // namespace nl
#endif // WEAVE_PROFILES_NEST_BOILER_CONSTANTS