| /* |
| * |
| * 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 |