docs/en/zigbee/ep_thermostat.rst
################ ZigbeeThermostat ################
The ZigbeeThermostat class provides a thermostat endpoint for Zigbee networks.
This endpoint implements the Zigbee Home Automation (HA) standard for thermostats that can bind to temperature and humidity sensors and receive temperature and humidity readings.
Features:
Constructor
ZigbeeThermostat ^^^^^^^^^^^^^^^^
Creates a new Zigbee thermostat endpoint.
.. code-block:: arduino
ZigbeeThermostat(uint8_t endpoint);
endpoint - Endpoint number (1-254)Event Handling
onTempReceive ^^^^^^^^^^^^^
Sets a callback function for receiving temperature data.
.. code-block:: arduino
void onTempReceive(void (*callback)(float temperature));
callback - Function to call when temperature data is receivedtemperature - Temperature value in degrees CelsiusonTempReceiveWithSource ^^^^^^^^^^^^^^^^^^^^^^^
Sets a callback function for receiving temperature data with source information.
.. code-block:: arduino
void onTempReceiveWithSource(void (*callback)(float temperature, uint8_t src_endpoint, esp_zb_zcl_addr_t src_address));
callback - Function to call when temperature data is receivedtemperature - Temperature value in degrees Celsiussrc_endpoint - Source endpoint that sent the temperature datasrc_address - Source address informationonTempConfigReceive ^^^^^^^^^^^^^^^^^^^
Sets a callback function for receiving sensor configuration data.
.. code-block:: arduino
void onTempConfigReceive(void (*callback)(float min_temp, float max_temp, float tolerance));
callback - Function to call when sensor configuration is receivedmin_temp - Minimum temperature supported by the sensormax_temp - Maximum temperature supported by the sensortolerance - Temperature tolerance of the sensoronHumidityReceive ^^^^^^^^^^^^^^^^^
Sets a callback function for receiving humidity data.
.. code-block:: arduino
void onHumidityReceive(void (*callback)(float humidity));
callback - Function to call when humidity data is receivedhumidity - Humidity value in percentageonHumidityReceiveWithSource ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets a callback function for receiving humidity data with source information.
.. code-block:: arduino
void onHumidityReceiveWithSource(void (*callback)(float humidity, uint8_t src_endpoint, esp_zb_zcl_addr_t src_address));
callback - Function to call when humidity data is receivedhumidity - Humidity value in percentagesrc_endpoint - Source endpoint that sent the humidity datasrc_address - Source address informationonHumidityConfigReceive ^^^^^^^^^^^^^^^^^^^^^^^
Sets a callback function for receiving humidity sensor configuration data.
.. code-block:: arduino
void onHumidityConfigReceive(void (*callback)(float min_humidity, float max_humidity, float tolerance));
callback - Function to call when humidity sensor configuration is receivedmin_humidity - Minimum humidity supported by the sensormax_humidity - Maximum humidity supported by the sensortolerance - Humidity tolerance of the sensorTemperature Data Retrieval
getTemperature ^^^^^^^^^^^^^^
Requests temperature data from all bound sensors.
.. code-block:: arduino
void getTemperature();
getTemperature (Group) ^^^^^^^^^^^^^^^^^^^^^^
Requests temperature data from a specific group.
.. code-block:: arduino
void getTemperature(uint16_t group_addr);
group_addr - Group address to send the request togetTemperature (Endpoint + Short Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests temperature data from a specific endpoint using short address.
.. code-block:: arduino
void getTemperature(uint8_t endpoint, uint16_t short_addr);
endpoint - Target endpoint numbershort_addr - Short address of the target devicegetTemperature (Endpoint + IEEE Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests temperature data from a specific endpoint using IEEE address.
.. code-block:: arduino
void getTemperature(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr);
endpoint - Target endpoint numberieee_addr - IEEE address of the target deviceHumidity Data Retrieval
getHumidity ^^^^^^^^^^^
Requests humidity data from all bound sensors.
.. code-block:: arduino
void getHumidity();
getHumidity (Group) ^^^^^^^^^^^^^^^^^^^
Requests humidity data from a specific group.
.. code-block:: arduino
void getHumidity(uint16_t group_addr);
group_addr - Group address to send the request togetHumidity (Endpoint + Short Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests humidity data from a specific endpoint using short address.
.. code-block:: arduino
void getHumidity(uint8_t endpoint, uint16_t short_addr);
endpoint - Target endpoint numbershort_addr - Short address of the target devicegetHumidity (Endpoint + IEEE Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests humidity data from a specific endpoint using IEEE address.
.. code-block:: arduino
void getHumidity(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr);
endpoint - Target endpoint numberieee_addr - IEEE address of the target deviceTemperature Settings Retrieval
getTemperatureSettings ^^^^^^^^^^^^^^^^^^^^^^
Requests temperature sensor settings from all bound sensors.
.. code-block:: arduino
void getTemperatureSettings();
getTemperatureSettings (Group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests temperature sensor settings from a specific group.
.. code-block:: arduino
void getTemperatureSettings(uint16_t group_addr);
group_addr - Group address to send the request togetTemperatureSettings (Endpoint + Short Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests temperature sensor settings from a specific endpoint using short address.
.. code-block:: arduino
void getTemperatureSettings(uint8_t endpoint, uint16_t short_addr);
endpoint - Target endpoint numbershort_addr - Short address of the target devicegetTemperatureSettings (Endpoint + IEEE Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests temperature sensor settings from a specific endpoint using IEEE address.
.. code-block:: arduino
void getTemperatureSettings(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr);
endpoint - Target endpoint numberieee_addr - IEEE address of the target deviceHumidity Settings Retrieval
getHumiditySettings ^^^^^^^^^^^^^^^^^^^
Requests humidity sensor settings from all bound sensors.
.. code-block:: arduino
void getHumiditySettings();
getHumiditySettings (Group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests humidity sensor settings from a specific group.
.. code-block:: arduino
void getHumiditySettings(uint16_t group_addr);
group_addr - Group address to send the request togetHumiditySettings (Endpoint + Short Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests humidity sensor settings from a specific endpoint using short address.
.. code-block:: arduino
void getHumiditySettings(uint8_t endpoint, uint16_t short_addr);
endpoint - Target endpoint numbershort_addr - Short address of the target devicegetHumiditySettings (Endpoint + IEEE Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Requests humidity sensor settings from a specific endpoint using IEEE address.
.. code-block:: arduino
void getHumiditySettings(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr);
endpoint - Target endpoint numberieee_addr - IEEE address of the target deviceTemperature Reporting Configuration
setTemperatureReporting ^^^^^^^^^^^^^^^^^^^^^^^
Configures temperature reporting for all bound sensors.
.. code-block:: arduino
void setTemperatureReporting(uint16_t min_interval, uint16_t max_interval, float delta);
min_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in temperature to trigger a reportsetTemperatureReporting (Group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configures temperature reporting for a specific group.
.. code-block:: arduino
void setTemperatureReporting(uint16_t group_addr, uint16_t min_interval, uint16_t max_interval, float delta);
group_addr - Group address to configuremin_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in temperature to trigger a reportsetTemperatureReporting (Endpoint + Short Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configures temperature reporting for a specific endpoint using short address.
.. code-block:: arduino
void setTemperatureReporting(uint8_t endpoint, uint16_t short_addr, uint16_t min_interval, uint16_t max_interval, float delta);
endpoint - Target endpoint numbershort_addr - Short address of the target devicemin_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in temperature to trigger a reportsetTemperatureReporting (Endpoint + IEEE Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configures temperature reporting for a specific endpoint using IEEE address.
.. code-block:: arduino
void setTemperatureReporting(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr, uint16_t min_interval, uint16_t max_interval, float delta);
endpoint - Target endpoint numberieee_addr - IEEE address of the target devicemin_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in temperature to trigger a reportHumidity Reporting Configuration
setHumidityReporting ^^^^^^^^^^^^^^^^^^^^
Configures humidity reporting for all bound sensors.
.. code-block:: arduino
void setHumidityReporting(uint16_t min_interval, uint16_t max_interval, float delta);
min_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in humidity to trigger a reportsetHumidityReporting (Group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configures humidity reporting for a specific group.
.. code-block:: arduino
void setHumidityReporting(uint16_t group_addr, uint16_t min_interval, uint16_t max_interval, float delta);
group_addr - Group address to configuremin_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in humidity to trigger a reportsetHumidityReporting (Endpoint + Short Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configures humidity reporting for a specific endpoint using short address.
.. code-block:: arduino
void setHumidityReporting(uint8_t endpoint, uint16_t short_addr, uint16_t min_interval, uint16_t max_interval, float delta);
endpoint - Target endpoint numbershort_addr - Short address of the target devicemin_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in humidity to trigger a reportsetHumidityReporting (Endpoint + IEEE Address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configures humidity reporting for a specific endpoint using IEEE address.
.. code-block:: arduino
void setHumidityReporting(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr, uint16_t min_interval, uint16_t max_interval, float delta);
endpoint - Target endpoint numberieee_addr - IEEE address of the target devicemin_interval - Minimum reporting interval in secondsmax_interval - Maximum reporting interval in secondsdelta - Minimum change in humidity to trigger a reportThermostat Implementation
.. literalinclude:: ../../../libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino :language: arduino