Trident IoT Zigbee SDK
Loading...
Searching...
No Matches
tr_thermostat_server.h
Go to the documentation of this file.
1
10#ifndef TR_THERMOSTAT_SERVER_H
11#define TR_THERMOSTAT_SERVER_H
12
13#include "tr_af.h"
14
18#if defined(TR_THERMOSTAT_SERVER_PLUGIN_PRINT_ENABLE) && (TR_THERMOSTAT_SERVER_PLUGIN_PRINT_ENABLE == 1)
19#define tr_thermostat_server_printf(...) tr_zcl_printf(__VA_ARGS__)
20#define tr_thermostat_server_println(...) tr_zcl_println(__VA_ARGS__)
21#else
22#define tr_thermostat_server_printf(...)
23#define tr_thermostat_server_println(...)
24#endif
25
26#ifdef TR_THERMOSTAT_SERVER_PLUGIN_SCHEDULE_ENABLE
27
28// @brief the maximum number of transitions we can have which creates the max payload
29#define TR_THERMOSTAT_SERVER_MAX_TRANSITIONS_IN_SET_CMD 10
30#define TR_THERMOSTAT_SERVER_MAX_SET_CMD_PAYLOAD (TR_THERMOSTAT_SERVER_MAX_TRANSITIONS_IN_SET_CMD * 6)
31
32// @brief the maximum number of schedules per day and per week, which define the schedule table size
33#define TR_THERMOSTAT_SERVER_MAX_SCHEDULES_PER_DAY TR_THERMOSTAT_SERVER_PLUGIN_SCHEDULES_PER_DAY
34#define TR_THERMOSTAT_SERVER_MAX_SCHEDULES_PER_WEEK (TR_THERMOSTAT_SERVER_PLUGIN_SCHEDULES_PER_DAY * 7)
35#define TR_THERMOSTAT_SERVER_SCHEDULE_TABLE_SIZE TR_THERMOSTAT_SERVER_MAX_SCHEDULES_PER_WEEK
36
37#else // TR_THERMOSTAT_SERVER_PLUGIN_SCHEDULE_ENABLE
38
39#define TR_THERMOSTAT_SERVER_MAX_SET_CMD_PAYLOAD 1
40
41#endif // TR_THERMOSTAT_SERVER_PLUGIN_SCHEDULE_ENABLE
42
43typedef ZB_PACKED_PRE struct
44{
50
51
57
61
65zb_bool_t tr_thermostat_server_command_received_cb(zb_zcl_parsed_hdr_t *cmd_info);
66
73 zb_uint16_t attr_id,
74 zb_uint8_t *new_value,
75 zb_uint16_t manuf_code);
76
82zb_bool_t tr_thermostat_server_setpoint_raise_lower_cb(zb_zcl_parsed_hdr_t *cmd_info,
83 zb_uint8_t endpoint,
84 zb_uint8_t mode,
85 zb_int8_t amount);
86
94zb_bool_t tr_thermostat_server_set_weekly_schedule_cb(zb_zcl_parsed_hdr_t *cmd_info,
95 zb_uint8_t endpoint,
97 zb_uint8_t day_of_week_for_sequence,
98 zb_uint8_t mode_for_sequence,
99 zb_uint8_t *payload);
100
106zb_bool_t tr_thermostat_server_get_weekly_schedule_cb(zb_zcl_parsed_hdr_t *cmd_info,
107 zb_uint8_t endpoint,
108 zb_uint8_t days_to_return,
109 zb_uint8_t mode_to_return);
110
114zb_bool_t tr_thermostat_server_clear_weekly_schedule_cb(zb_zcl_parsed_hdr_t *cmd_info,
115 zb_uint8_t endpoint);
116
120zb_bool_t tr_thermostat_server_get_relay_status_log_cb(zb_zcl_parsed_hdr_t *cmd_info,
121 zb_uint8_t endpoint);
122
130zb_bool_t tr_thermostat_server_get_time_day_cb(zb_uint16_t *curr_time_in_mins,
131 zb_uint8_t *curr_day_of_the_week,
132 zb_uint8_t *curr_day,
133 zb_uint8_t *curr_month);
134
139zb_bool_t tr_thermostat_server_next_schedule_cb(zb_uint16_t mins_until_schedule);
140
142
148
151
153
158
160 zb_int16_t new_value,
161 zb_uint8_t endpoint);
162
163#endif // TR_THERMOSTAT_SERVER_H
zb_int8_t amount
Definition tr_zcl_cmd_structs.h:1521
zb_uint8_t mode_to_return
Definition tr_zcl_cmd_structs.h:1537
zb_uint8_t mode
Definition tr_zcl_cmd_structs.h:180
zb_uint8_t days_to_return
Definition tr_zcl_cmd_structs.h:1536
void tr_thermostat_server_schedule_run(void)
if the app is handling the scheduling, call this to tell the plugin to run the next schedule
zb_bool_t tr_thermostat_server_command_received_cb(zb_zcl_parsed_hdr_t *cmd_info)
Callback that user can declare to handle any Thermostat server commands.
zb_bool_t tr_thermostat_server_get_weekly_schedule_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint8_t days_to_return, zb_uint8_t mode_to_return)
Callback that user can declare to handle thermostat cluster get weekly schedule command.
zb_bool_t tr_thermostat_server_set_weekly_schedule_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint8_t number_of_transitions_for_sequence, zb_uint8_t day_of_week_for_sequence, zb_uint8_t mode_for_sequence, zb_uint8_t *payload)
Callback that user can declare to handle thermostat cluster set weekly schedule command.
void tr_thermostat_server_init_cb(zb_uint8_t endpoint)
Callback fires when the Thermostat server cluster plugin is initialized.
zb_bool_t tr_thermostat_server_clear_weekly_schedule_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint)
Callback that user can declare to handle thermostat cluster clear weekly schedule command.
zb_bool_t tr_thermostat_server_get_relay_status_log_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint)
Callback that user can declare to handle thermostat cluster get relay status log command.
void tr_thermostat_server_write_attr_cb(zb_uint8_t endpoint, zb_uint16_t attr_id, zb_uint8_t *new_value, zb_uint16_t manuf_code)
Callback fires when an Thermostat server attribute is about to be written.
zb_bool_t tr_thermostat_server_setpoint_raise_lower_cb(zb_zcl_parsed_hdr_t *cmd_info, zb_uint8_t endpoint, zb_uint8_t mode, zb_int8_t amount)
Callback that user can declare to handle thermostat cluster setpoint raise lower command.
zb_bool_t tr_thermostat_server_get_time_day_cb(zb_uint16_t *curr_time_in_mins, zb_uint8_t *curr_day_of_the_week, zb_uint8_t *curr_day, zb_uint8_t *curr_month)
Callback that happens when the thermostat server needs to check the current time (in minutes) and day...
zb_bool_t tr_thermostat_server_next_schedule_cb(zb_uint16_t mins_until_schedule)
Callback that happens when the thermostat server is about to schedule a ZBOSS alarm to run the next p...
Trident application framework include.
zb_uint8_t endpoint
Definition tr_nvram_attr.h:176
zb_uint16_t manuf_code
Definition tr_nvram_attr.h:180
zb_uint16_t attr_id
Definition tr_nvram_attr.h:178
zb_uint8_t day_of_week_for_sequence
Definition tr_thermostat_server.h:46
void tr_thermostat_server_init(void)
zb_uint8_t payload[TR_THERMOSTAT_SERVER_MAX_SET_CMD_PAYLOAD]
Definition tr_thermostat_server.h:48
zb_uint8_t mode_for_sequence
Definition tr_thermostat_server.h:47
zb_uint8_t number_of_transitions_for_sequence
Definition tr_thermostat_server.h:45
zb_zcl_status_t tr_thermostat_server_change_setpoint_to_value(zb_uint8_t mode, zb_int16_t new_value, zb_uint8_t endpoint)
ZB_PACKED_PRE struct @066361253260101207217065352213124155151245321234 tr_thermostat_current_weekly_schedule_command_t
#define TR_THERMOSTAT_SERVER_MAX_SET_CMD_PAYLOAD
Definition tr_thermostat_server.h:39