smart-green-house/project_ZigBee/Components/stack/zcl/zcl_hvac.h

318 lines
18 KiB
C

/**************************************************************************************************
Filename: zcl_hvac.h
Revised: $Date: 2011-05-19 11:53:12 -0700 (Thu, 19 May 2011) $
Revision: $Revision: 26031 $
Description: This file contains the ZCL HVAC definitions.
Copyright 2006-2011 Texas Instruments Incorporated. All rights reserved.
IMPORTANT: Your use of this Software is limited to those specific rights
granted under the terms of a software license agreement between the user
who downloaded the software, his/her employer (which must be your employer)
and Texas Instruments Incorporated (the "License"). You may not use this
Software unless you agree to abide by the terms of the License. The License
limits your use, and you acknowledge, that the Software may not be modified,
copied or distributed unless embedded on a Texas Instruments microcontroller
or used solely and exclusively in conjunction with a Texas Instruments radio
frequency transceiver, which is integrated into your product. Other than for
the foregoing purpose, you may not use, reproduce, copy, prepare derivative
works of, modify, distribute, perform, display or sell this Software and/or
its documentation for any purpose.
YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
(INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
Should you have any questions regarding your right to use this Software,
contact Texas Instruments Incorporated at www.TI.com.
**************************************************************************************************/
#ifndef ZCL_HVAC_H
#define ZCL_HVAC_H
#ifdef __cplusplus
extern "C"
{
#endif
/*********************************************************************
* INCLUDES
*/
#include "zcl.h"
/*********************************************************************
* CONSTANTS
*/
/**************************************************************************/
/*** HVAC: Pump Config and Control Cluster Attributes ***/
/**************************************************************************/
// Pump information attribute set
#define ATTRID_HVAC_PUMP_MAX_PRESSURE 0x0000
#define ATTRID_HVAC_PUMP_MAX_SPEED 0x0001
#define ATTRID_HVAC_PUMP_MAX_FLOW 0x0002
#define ATTRID_HVAC_PUMP_MIN_CONST_PRESSURE 0x0003
#define ATTRID_HVAC_PUMP_MAX_CONST_PRESSURE 0x0004
#define ATTRID_HVAC_PUMP_MIN_COMP_PRESSURE 0x0005
#define ATTRID_HVAC_PUMP_MAX_COMP_PRESSURE 0x0006
#define ATTRID_HVAC_PUMP_MIN_CONST_SPEED 0x0007
#define ATTRID_HVAC_PUMP_MAX_CONST_SPEED 0x0008
#define ATTRID_HVAC_PUMP_MIN_CONST_FLOW 0x0009
#define ATTRID_HVAC_PUMP_MAX_CONST_FLOW 0x000A
#define ATTRID_HVAC_PUMP_MIN_CONST_TEMP 0x000B
#define ATTRID_HVAC_PUMP_MAX_CONST_TEMP 0x000C
// Pump Dynamic Information attribute set
#define ATTRID_HVAC_PUMP_STATUS 0x0010
#define ATTRID_HVAC_PUMP_EFECTIVE_OPERATION_MODE 0x0011
#define ATTRID_HVAC_PUMP_EFFECTIVE_CONTROL_MODE 0x0012
#define ATTRID_HVAC_PUMP_CAPACITY 0x0013
#define ATTRID_HVAC_PUMP_SPEED 0x0014
#define ATTRID_HVAC_PUMP_LIFETIME_RUNNING_HOURS 0x0015
#define ATTRID_HVAC_PUMP_POWER 0x0016
#define ATTRID_HVAC_LIFETIME_ENERGY_CONSUMED 0x0017
/*** Pump status attribute values ***/
#define HVAC_PUMP_DEVICE_FAULT 0x0000
#define HVAC_PUMP_SUPPLY_FAULT 0x0001
#define HVAC_PUMP_SPEED_LOW 0x0002
#define HVAC_PUMP_SPEED_HIGH 0x0003
#define HVAC_PUMP_LOCAL_OVERRIDE 0x0004
#define HVAC_PUMP_RUNNING 0x0005
#define HVAC_PUMP_REMOTE_PRESSURE 0x0006
#define HVAC_PUMP_REMOTE_FLOW 0x0007
#define HVAC_PUMP_REMOTE_TEMPERATURE 0x0008
// Pump Settings attributes set
#define ATTRID_HVAC_PUMP_OPERATION_MODE 0x0020
#define ATTRID_HVAC_PUMP_CONTROL_MODE 0x0021
#define ATTRID_HVAC_PUMP_ALARM_MASK 0x0022
//#define ATTRID_HVAC_PUMP_CAPACITY_MIN_PERCENT_CHANGE 0x0023
//#define ATTRID_HVAC_PUMP_CAPACITY_MIN_ABSOLUTE_CHANGE 0x0024
/*** Operation mode attribute values ***/
#define HVAC_PUMP_OPERATION_MODE_NORMAL 0x00
#define HVAC_PUMP_OPERATION_MODE_MINIMUM 0x01
#define HVAC_PUMP_OPERATION_MODE_MAXIMUM 0x02
#define HVAC_PUMP_OPERATION_MODE_LOCAL 0x03
/*** Control mode attribute values ***/
#define HVAC_PUMP_CONTROL_MODE_CONSTANT_SPEED 0x00
#define HVAC_PUMP_CONTROL_MODE_CONSTANT_PRESSURE 0x01
#define HVAC_PUMP_CONTROL_MODE_PR0PORTIONAL_PRESSURE 0x02
#define HVAC_PUMP_CONTROL_MODE_CONSTANT_FLOW 0x03
#define HVAC_PUMP_CONTROL_MODE_CONSTANT_TEMPERATURE 0x05
#define HVAC_PUMP_CONTROL_MODE_CONSTANT_AUTOMATIC 0x07
/*** Alarm Mask attribute values ***/
#define HVAC_PUMP_SUPPLY_VOLTAGE_TOO_LOW 0x0001
#define HVAC_PUMP_SUPPLY_VOLTAGE_TOO_HIGH 0x0002
#define HVAC_PUMP_POWER_MISSING_PHASE 0x0004
#define HVAC_PUMP_SYSTEM_PRESSURE_TOO_LOW 0x0008
#define HVAC_PUMP_SYSTEM_PRESSURE_TOO_HIGH 0x0010
#define HVAC_PUMP_DRY_RUNNING 0x0020
#define HVAC_PUMP_MOTOR_TEMPERATURE_TOO_HIGH 0x0040
#define HVAC_PUMP_MOTOR_HAS_FATAL_FAILURE 0x0080
#define HVAC_PUMP_ELECTRONIC_TEMPERATURE_TOO_HIGH 0x0100
#define HVAC_PUMP_BLOCKED 0x0200
#define HVAC_PUMP_SENSOR_FAILURE 0x0400
#define HVAC_PUMP_ELECTRONIC_NON_FATAL_FAILURE 0x0800
#define HVAC_PUMP_ELECTRONIC_FATAL_FAILURE 0x1000
#define HVAC_PUMP_GENERAL_FAULT 0x2000
// Pump Unit Table attributes set
//#define ATTRID_HVAC_PUMP_POWER_UNIT 0x0030
/*** Power Unit attribute values ***/
//#define HVAC_PUMP_POWER_UNIT_POWER_IN_WATTS 0x00
//#define HVAC_PUMP_POWER_UNIT_POWER_IN_KILOWATTS 0x01
/**************************************************************************/
/*** HVAC: Thermostat Cluster Attributes ***/
/**************************************************************************/
// Thermostat information attribute set
#define ATTRID_HVAC_THERMOSTAT_LOCAL_TEMPERATURE 0x0000
#define ATTRID_HVAC_THERMOSTAT_OUTDOOR_TEMPERATURE 0x0001
#define ATTRID_HVAC_THERMOSTAT_OCCUPANCY 0x0002
#define ATTRID_HVAC_THERMOSTAT_ABS_MIN_HEAT_SETPOINT_LIMIT 0x0003
#define ATTRID_HVAC_THERMOSTAT_ABS_MAX_HEAT_SETPOINT_LIMIT 0x0004
#define ATTRID_HVAC_THERMOSTAT_ABS_MIN_COOL_SETPOINT_LIMIT 0x0005
#define ATTRID_HVAC_THERMOSTAT_ABS_MAX_COOL_SETPOINT_LIMIT 0x0006
#define ATTRID_HVAC_THERMOSTAT_PI_COOLING_DEMAND 0x0007
#define ATTRID_HVAC_THERMOSTAT_PI_HEATING_DEMAND 0x0008
// Thermostat settings attribute set
#define ATTRID_HVAC_THERMOSTAT_LOCAL_TEMP_CALIBRATION 0x0010
#define ATTRID_HVAC_THERMOSTAT_OCCUPIED_COOLING_SETPOINT 0x0011
#define ATTRID_HVAC_THERMOSTAT_OCCUPIED_HEATING_SETPOINT 0x0012
#define ATTRID_HVAC_THERMOSTAT_UNOCCUPIED_COOLING_SETPOINT 0x0013
#define ATTRID_HVAC_THERMOSTAT_UNOCCUPIED_HEATING_SETPOINT 0x0014
#define ATTRID_HVAC_THERMOSTAT_MIN_HEAT_SETPOINT_LIMIT 0x0015
#define ATTRID_HVAC_THERMOSTAT_MAX_HEAT_SETPOINT_LIMIT 0x0016
#define ATTRID_HVAC_THERMOSTAT_MIN_COOL_SETPOINT_LIMIT 0x0017
#define ATTRID_HVAC_THERMOSTAT_MAX_COOL_SETPOINT_LIMIT 0x0018
#define ATTRID_HVAC_THERMOSTAT_MIN_SETPOINT_DEAD_BAND 0x0019
#define ATTRID_HVAC_THERMOSTAT_REMOTE_SENSING 0x001A
#define ATTRID_HVAC_THERMOSTAT_CTRL_SEQ_OF_OPER 0x001B
#define ATTRID_HVAC_THERMOSTAT_SYSTEM_MODE 0x001C
#define ATTRID_HVAC_THERMOSTAT_ALAM_MASK 0x001D
/*** Remote Sensing attribute values ***/
#define HVAC_THERMOSTAT_REMOTE_SENSING_LOCAL_TEMPERATURE 0x0001
#define HVAC_THERMOSTAT_REMOTE_SENSING_OUTDOOR_TEMPERATURE 0x0002
#define HVAC_THERMOSTAT_REMOTE_SENSING_OCCUPANCY 0x0004
/*** Control Sequence of Operation attribute values ***/
#define HVAC_THERMOSTAT_CTRL_SEQ_OF_OPER_COOLING_ONLY 0x00
#define HVAC_THERMOSTAT_CTRL_SEQ_OF_OPER_COOLING_WITH_REHEAT 0x01
#define HVAC_THERMOSTAT_CTRL_SEQ_OF_OPER_HEATING_ONLY 0x02
#define HVAC_THERMOSTAT_CTRL_SEQ_OF_OPER_HEATING_WITH_REHEAT 0x03
#define HVAC_THERMOSTAT_CTRL_SEQ_OF_OPER_COOLING_HEATING 0x04
#define HVAC_THERMOSTAT_CTRL_SEQ_OF_OPER_COOLING_HEATING_WITH_REHEAT 0x05
/*** System Mode attribute values ***/
#define HVAC_THERMOSTAT_SYSTEM_MODE_OFF 0x00
#define HVAC_THERMOSTAT_SYSTEM_MODE_AUTO 0x01
#define HVAC_THERMOSTAT_SYSTEM_MODE_COOL 0x03
#define HVAC_THERMOSTAT_SYSTEM_MODE_HEAT 0x04
#define HVAC_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING 0x05
#define HVAC_THERMOSTAT_SYSTEM_MODE_PRECOOLING 0x06
#define HVAC_THERMOSTAT_SYSTEM_MODE_FAN_ONLY 0x07
/*** Alarm Mask attribute values ***/
#define HVAC_THERMOSTAT_INITIALIZATION_FAILURE 0x01
#define HVAC_THERMOSTAT_HARDWARE_FAILURE 0x02
#define HVAC_THERMOSTAT_SELF_CALIBRATION_FAILURE 0x03
// command IDs received by Server
#define COMMAND_THERMOSTAT_SETPOINT_RAISE_LOWER 0x00
// Mode field values for the setpoint raise/lower command
#define HVAC_THERMOSTAT_MODE_HEAT 0x00
#define HVAC_THERMOSTAT_MODE_COOL 0x01
#define HVAC_THERMOSTAT_MODE_BOTH 0x02
/**************************************************************************/
/*** HVAC: Fan Control Cluster Attributes ***/
/**************************************************************************/
// Fan Control attribute set
#define ATTRID_HVAC_FAN_CTRL_FAN_MODE 0x0000
#define ATTRID_HVAC_FAN_CTRL_FAN_SEQUENCE 0x0001
/*** Fan Mode attribute values ***/
#define HVAC_FAN_CTRL_FAN_MODE_OFF 0x00
#define HVAC_FAN_CTRL_FAN_MODE_LOW 0x01
#define HVAC_FAN_CTRL_FAN_MODE_MEDIUM 0x02
#define HVAC_FAN_CTRL_FAN_MODE_HIGH 0x03
#define HVAC_FAN_CTRL_FAN_MODE_ON 0x04
#define HVAC_FAN_CTRL_FAN_MODE_AUTO 0x05
#define HVAC_FAN_CTRL_FAN_MODE_SMART 0x06
/*** Fan Mode Sequence attribute values ***/
#define HVAC_FAN_CTRL_FAN_MODE_SEQ_LOW_MED_HI 0x00
#define HVAC_FAN_CTRL_FAN_MODE_SEQ_LOW_HI 0x01
#define HVAC_FAN_CTRL_FAN_MODE_SEQ_LOW_MED_HI_AUTO 0x02
#define HVAC_FAN_CTRL_FAN_MODE_SEQ_LOW_HI_AUTO 0x03
#define HVAC_FAN_CTRL_FAN_MODE_SEQ_ON_AUTO 0x04
/**************************************************************************/
/*** HVAC: Dehumidifcation Control Cluster Attributes ***/
/**************************************************************************/
// Dehumidifcation Control Information attribute set
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_RELATIVE_HUMIDITY 0x0000
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_DEHUMID_COOLING 0x0001
// Dehumidifcation Control Settings attribute set
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_RHDEHUMID_SETPOINT 0x0010
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_RELATIVE_HUMIDITY_MODE 0x0011
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_DEHUMID_LOCKOUT 0x0012
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_DEHUMID_HYSTERESIS 0x0013
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_DEHUMID_MAX_COOL 0x0014
#define ATTRID_HVAC_DEHUMIDIFICATION_CTRL_RELATIVE_HUMIDITY_DISPLAY 0x0015
/*** Relative Humidity Mode attribute values ***/
#define HVAC_DEHUMIDIFICATION_CTRL_RELATIVE_HUMIDITY_MEASURED_LOCALLY 0x00
#define HVAC_DEHUMIDIFICATION_CTRL_RELATIVE_HUMIDITY_UPDATED_OVER_NET 0x00
/*** Dehumidification Lockout attribute values ***/
#define HVAC_DEHUMIDIFICATION_CTRL_DEHIMID_NOT_ALLOWED 0x00
#define HVAC_DEHUMIDIFICATION_CTRL_DEHIMID_ALLOWED 0x01
/*** Relative Humidity Display attribute values ***/
#define HVAC_DEHUMIDIFICATION_CTRL_RELATIVE_HUMIDITY_NOT_DISPLAYED 0x00
#define HVAC_DEHUMIDIFICATION_CTRL_RELATIVE_HUMIDITY_DISPLAYED 0x01
/**************************************************************************/
/*** HVAC: Thermostat User Interface Config Cluster Attributes ***/
/**************************************************************************/
// Thermostat User Interface Config attribute set
#define ATTRID_HVAC_THERMOSTAT_UI_CONFIG_TEMP_DISPLAY_MODE 0x0000
#define ATTRID_HVAC_THERMOSTAT_UI_CONFIG_KEYPAD_LOCKOUT 0x0001
/*** Display Mode attribute values ***/
#define ATTRID_HVAC_THERMOSTAT_UI_CONFIG_DISPLAY_MODE_IN_C 0x00
#define ATTRID_HVAC_THERMOSTAT_UI_CONFIG_DISPLAY_MODE_IN_F 0x01
/*** Keypad Lockout attribute values ***/
#define ATTRID_HVAC_THERMOSTAT_UI_KEYPAD_NO_LOCOUT 0x00
#define ATTRID_HVAC_THERMOSTAT_UI_KEYPAD_LEVEL1_LOCOUT 0x01
#define ATTRID_HVAC_THERMOSTAT_UI_KEYPAD_LEVEL2_LOCOUT 0x02
#define ATTRID_HVAC_THERMOSTAT_UI_KEYPAD_LEVEL3_LOCOUT 0x03
#define ATTRID_HVAC_THERMOSTAT_UI_KEYPAD_LEVEL4_LOCOUT 0x04
#define ATTRID_HVAC_THERMOSTAT_UI_KEYPAD_LEVEL5_LOCOUT 0x05
/*********************************************************************
* VARIABLES
*/
/*********************************************************************
* MACROS
*/
/*********************************************************************
* TYPEDEFS
*/
/*** ZCL HVAC Thermostat Cluster: Setpoint Raise/Lower Cmd payload ***/
typedef struct
{
uint8 mode; // which setpoint is to be configured
int8 amount; // amount setpoint(s) are to be increased (or decreased) by, in steps of 0.1°C
} zclCmdThermostatSetpointRaiseLowerPayload_t;
// This callback is called to process a Setpoint Raise/Lower command
// mode - which setpoint to be configured
// amount - the amount the setpoints are to be increased (or decreased) by, in steps of 0.1°C
typedef void (*zclHVAC_SetpointRaiseLower_t)( zclCmdThermostatSetpointRaiseLowerPayload_t *pCmd );
// Register Callbacks table entry - enter function pointers for callbacks that
// the application would like to receive
typedef struct
{
zclHVAC_SetpointRaiseLower_t pfnHVAC_SetpointRaiseLower;
} zclHVAC_AppCallbacks_t;
/*********************************************************************
* VARIABLES
*/
/*********************************************************************
* FUNCTIONS
*/
/*
* Register for callbacks from this cluster library
*/
extern ZStatus_t zclHVAC_RegisterCmdCallbacks( uint8 endpoint, zclHVAC_AppCallbacks_t *callbacks );
/*
* Send a Setpoint Raise/Lower Command
*/
ZStatus_t zclHVAC_SendSetpointRaiseLower( uint8 srcEP, afAddrType_t *dstAddr,
uint8 mode, int8 amount,
uint8 disableDefaultRsp, uint8 seqNum );
/*********************************************************************
*********************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* ZCL_HVAC_H */