Zigbee Router Thermostat Sink Example App

Introduction

This document discusses how to use the Zigbee Thermostat Example App and the different parts that compose it. Zigbee Thermostat Application is an example which exercises different features of TI Z-Stack. This example has the same behavior as the Zigbee Thermostat but with addition of Green Power (GP) Sink functionality to process Green Power Device Temperature Sensor commands.

Some of the features exercised include:

Hardware Prerequisites

Software Prerequisites

Functional Description

Software Overview

This section describes the software components and the corresponding source files.

Application Files

Configuration With SysConfig

SysConfig is a GUI configuration tool that allows for TI driver and stack configurations.

To configure using SysConfig, import the SysConfig-enabled project into CCS. Double click the *.syscfg file from the CCS project explorer, where * is the name of the example project. The SysConfig GUI window will appear, where Zigbee stack and TI driver configurations can be adjusted. These settings will be reflected in the generated files.

The example project comes with working default settings for SysConfig. For the purposes of this README, it is not recommended to change the default driver settings, as any changes may impact the functionality of the example. The Zigbee stack settings may be changed as required for your use case.

Note that some Z-Stack settings are stored in non-volatile storage, and Z-Stack prioritizes stored settings over SysConfig settings. To guarantee SysConfig settings are applied, perform a factory reset of the device to clear non-volatile storage.

Example Usage

This section describes how to use this sample application.

Buttons

LEDs

Serial interface

The connection will have the following settings:

    Baud-rate:     115200
    Data bits:          8
    Stop bits:          1
    Parity:          None
    Flow Control:    None

Note: The serial output is known to be formatted incorrectly in Tera Term and in the CCS Terminal.

The serial interface allows you to control the commissioning configuration as well as application behavior. The commissioning interface is common for all applications and is implemented in the module zcl_sampleapps_ui.c/.h. Any application specific behavior of the serial interface is implemented in the example application files.

The serial interface implements a common set of menus described in 'Application Overview' within the Zigbee docs in this SDK. This common menu can be used to commission the device into a network.

Commissioning the Device Into the Network

Zigbee router devices can create a network with limited security capabilities (Distributed network) or join a network. The commissioning process to be done can be configured in the Config screen menu. Note that if both Formation Mode and Steering Mode are enabled when Commissioning is executed, the device will first try to join a network, after which if it fails, the device will create its own network.

This sample applications uses the stack notifications (zstackmsg_CmdIDs_BDB_NOTIFICATION) on a successful network formation process to open the network and allow new devices join, even if the Steering Mode is not enabled from the common user interface. In the same way, if the device joins a network, it will open the network for 180 seconds. If the network is closed, it can be open again by enabling the Steering Mode and execute the commissioning process in the Commissioning Screen.

Interfacing with the Green Power Device Temperature Sensor Example App

Once the Thermostat Sink and another routing device are in the same network, put the Thermostat Sink in GP Commissioning Mode from the App Menu in the Green Power Sink Commissioning Screen. Executing this screen will change the GPS Commissioning status from 'DISABLED' to 'ENABLED'

AppMenu

AppMenu

Send the Commissioning GPDF from the Green Power Device Temperature Sensor. Then from the Green Power Sink Commissioning Screen disable the GP commissioning mode.

Once the GP commissioning mode is disabled, sending the Attribute Reporting GPDF with the Green Power Device Temperature Sensor will update the remote temperature value in the application status line.

NOTE: If the temperature is not updated just repeat the commissioning process and try again.

Interfacing with the Temperature Sensor Example App

Once the Temperature Sensor and Thermostat are in the same network, enable the Finding and Binding Mode and execute it from the Commissioning Screen. When Finding and Binding is executed, the Thermostat device is set in Identify mode for 180 seconds. During this time the Temperature Sensor device must perform Finding and Binding as well to find the Thermostat device in Identify mode and create a bind to it. The status of the Identify process is shown in the BDB status line.

FindingBinding

Finding and binding status in the BDB status line

IdXXX shows the remaining XXX seconds in Identify mode, SrchYYY/ZZ shows the remaining YYY seconds searching for devices in Identify mode and ZZ the number of binds created during this process.

Once the Temperature Sensor device has the bind to the Thermostat, it will periodically send Reporting Attribute commands according to the reporting configuration set by Zstackapi_bdbRepAddAttrCfgRecordDefaultToListReq(). The Thermostat will process those reporting attributes by updating zclSampleThermostat_LocalTemperature (which is actually the temperature of the remote device) which will also be displayed in the application status line.

Remote temperature

Remote temperature received screen in Thermostat device

Note: The temperature displayed by Remote Temperature may lie (inclusively) between SAMPLETEMPERATURESENSOR_MIN_MEASURED_VALUE and SAMPLETEMPERATURESENSOR_MAX_MEASURED_VALUE (these values are defined in zcl_sampletemperaturesensor_data.c).

The temperature reported will also control the state of the heating and cooling system of the Thermostat device as described in LEDs section. The state of the heating cooling system is also displayed at the end of the application status line. The heating and cooling set point can be set in the Application menu of the user interface:

Setting Heating

Heating setpoint screen in Thermostat device

Setting Cooling

Cooling setpoint screen in Thermostat device