Skip to content

Commit 580084c

Browse files
committed
Merge remote-tracking branch 'upstream/master' into feat/zigbee-time-cluster
2 parents 6d62a3c + 2a2b81a commit 580084c

31 files changed

+117
-46
lines changed

.github/ISSUE_TEMPLATE/config.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
blank_issues_enabled: false
22
contact_links:
3-
- name: Arduino ESP32 Gitter Channel
4-
url: https://gitter.im/espressif/arduino-esp32
5-
about: Community channel for questions and help
3+
- name: Arduino Core for Espressif Discord Server
4+
url: https://discord.gg/8xY6e9crwv
5+
about: Community Discord server for questions and help
66
- name: ESP32 Forum - Arduino
77
url: https://esp32.com/viewforum.php?f=19
88
about: Official Forum for questions

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
[![External Libraries Test](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/lib.yml?branch=master&event=schedule&label=External%20Libraries%20Test)](https://github.com/espressif/arduino-esp32/blob/gh-pages/LIBRARIES_TEST.md)
66
[![Runtime Tests](https://github.com/espressif/arduino-esp32/blob/gh-pages/runtime-tests-results/badge.svg)](https://github.com/espressif/arduino-esp32/actions/workflows/tests_results.yml)
77

8-
### Need help or have a question? Join the chat at [Gitter](https://gitter.im/espressif/arduino-esp32) or [open a new Discussion](https://github.com/espressif/arduino-esp32/discussions)
8+
### Need help or have a question? Join the chat at [Discord](https://discord.gg/8xY6e9crwv) or [open a new Discussion](https://github.com/espressif/arduino-esp32/discussions)
9+
10+
[![Discord invite](https://img.shields.io/discord/1327272229427216425?logo=discord&logoColor=white&logoSize=auto&label=Discord)](https://discord.gg/8xY6e9crwv)
911

1012
## Contents
1113

boards.txt

+24-6
Original file line numberDiff line numberDiff line change
@@ -450,15 +450,24 @@ esp32h2.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
450450
#esp32h2.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB
451451
#esp32h2.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB
452452
#esp32h2.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4116480
453-
esp32h2.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs
454-
esp32h2.menu.PartitionScheme.zigbee.build.partitions=zigbee
455-
esp32h2.menu.PartitionScheme.zigbee.upload.maximum_size=1310720
456453
esp32h2.menu.PartitionScheme.zigbee_2MB=Zigbee 2MB with spiffs
457454
esp32h2.menu.PartitionScheme.zigbee_2MB.build.partitions=zigbee_2MB
458455
esp32h2.menu.PartitionScheme.zigbee_2MB.upload.maximum_size=1310720
456+
esp32h2.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs
457+
esp32h2.menu.PartitionScheme.zigbee.build.partitions=zigbee
458+
esp32h2.menu.PartitionScheme.zigbee.upload.maximum_size=1310720
459+
esp32h2.menu.PartitionScheme.zigbee_8MB=Zigbee 8MB with spiffs
460+
esp32h2.menu.PartitionScheme.zigbee_8MB.build.partitions=zigbee_8MB
461+
esp32h2.menu.PartitionScheme.zigbee_8MB.upload.maximum_size=3407872
462+
esp32h2.menu.PartitionScheme.zigbee_zczr_2MB=Zigbee ZCZR 2MB with spiffs
463+
esp32h2.menu.PartitionScheme.zigbee_zczr_2MB.build.partitions=zigbee_zczr_2MB
464+
esp32h2.menu.PartitionScheme.zigbee_zczr_2MB.upload.maximum_size=1310720
459465
esp32h2.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
460466
esp32h2.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
461467
esp32h2.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
468+
esp32h2.menu.PartitionScheme.zigbee_zczr_8MB=Zigbee ZCZR 8MB with spiffs
469+
esp32h2.menu.PartitionScheme.zigbee_zczr_8MB.build.partitions=zigbee_zczr_8MB
470+
esp32h2.menu.PartitionScheme.zigbee_zczr_8MB.upload.maximum_size=3407872
462471
esp32h2.menu.PartitionScheme.custom=Custom
463472
esp32h2.menu.PartitionScheme.custom.build.partitions=
464473
esp32h2.menu.PartitionScheme.custom.upload.maximum_size=16777216
@@ -645,15 +654,24 @@ esp32c6.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656
645654
esp32c6.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB
646655
esp32c6.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB
647656
esp32c6.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4116480
648-
esp32c6.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs
649-
esp32c6.menu.PartitionScheme.zigbee.build.partitions=zigbee
650-
esp32c6.menu.PartitionScheme.zigbee.upload.maximum_size=1310720
651657
esp32c6.menu.PartitionScheme.zigbee_2MB=Zigbee 2MB with spiffs
652658
esp32c6.menu.PartitionScheme.zigbee_2MB.build.partitions=zigbee_2MB
653659
esp32c6.menu.PartitionScheme.zigbee_2MB.upload.maximum_size=1310720
660+
esp32c6.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs
661+
esp32c6.menu.PartitionScheme.zigbee.build.partitions=zigbee
662+
esp32c6.menu.PartitionScheme.zigbee.upload.maximum_size=1310720
663+
esp32c6.menu.PartitionScheme.zigbee_8MB=Zigbee 8MB with spiffs
664+
esp32c6.menu.PartitionScheme.zigbee_8MB.build.partitions=zigbee_8MB
665+
esp32c6.menu.PartitionScheme.zigbee_8MB.upload.maximum_size=3407872
666+
esp32c6.menu.PartitionScheme.zigbee_zczr_2MB=Zigbee ZCZR 2MB with spiffs
667+
esp32c6.menu.PartitionScheme.zigbee_zczr_2MB.build.partitions=zigbee_zczr_2MB
668+
esp32c6.menu.PartitionScheme.zigbee_zczr_2MB.upload.maximum_size=1310720
654669
esp32c6.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
655670
esp32c6.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
656671
esp32c6.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
672+
esp32c6.menu.PartitionScheme.zigbee_zczr_8MB=Zigbee ZCZR 8MB with spiffs
673+
esp32c6.menu.PartitionScheme.zigbee_zczr_8MB.build.partitions=zigbee_zczr_8MB
674+
esp32c6.menu.PartitionScheme.zigbee_zczr_8MB.upload.maximum_size=3407872
657675
esp32c6.menu.PartitionScheme.custom=Custom
658676
esp32c6.menu.PartitionScheme.custom.build.partitions=
659677
esp32c6.menu.PartitionScheme.custom.upload.maximum_size=16777216

cores/esp32/Arduino.h

+4-5
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,17 @@
3333
#include "freertos/FreeRTOS.h"
3434
#include "freertos/task.h"
3535
#include "freertos/semphr.h"
36-
#include "esp32-hal.h"
3736
#include "esp8266-compat.h"
3837
#include "soc/gpio_reg.h"
3938

4039
#include "stdlib_noniso.h"
4140
#include "binary.h"
4241
#include "extra_attr.h"
4342

43+
#include "pins_arduino.h"
44+
#include "io_pin_remap.h"
45+
#include "esp32-hal.h"
46+
4447
#define PI 3.1415926535897932384626433832795
4548
#define HALF_PI 1.5707963267948966192313216916398
4649
#define TWO_PI 6.283185307179586476925286766559
@@ -248,8 +251,4 @@ void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
248251
void noTone(uint8_t _pin);
249252

250253
#endif /* __cplusplus */
251-
252-
#include "pins_arduino.h"
253-
#include "io_pin_remap.h"
254-
255254
#endif /* _ESP32_CORE_ARDUINO_H_ */

cores/esp32/FirmwareMSC.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
#include "esp_partition.h"
2020
#include "esp_ota_ops.h"
2121
#include "esp_image_format.h"
22-
#include "esp32-hal.h"
2322
#include "pins_arduino.h"
23+
#include "esp32-hal.h"
2424
#include "firmware_msc_fat.h"
2525
#include "spi_flash_mmap.h"
2626

cores/esp32/esp32-hal-gpio.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
extern "C" {
2525
#endif
2626

27+
#include "pins_arduino.h"
2728
#include "esp32-hal.h"
2829
#include "soc/soc_caps.h"
29-
#include "pins_arduino.h"
3030
#include "driver/gpio.h"
3131

3232
#if (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3)

docs/en/getting_started.rst

+5-3
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ Here are some community channels where you may find information and ask for some
102102
- `ESP32 Forum`_: Official Espressif Forum.
103103
- `ESP32 Forum - Arduino`_: Official Espressif Forum for Arduino related discussions.
104104
- `ESP32 Forum - Hardware`_: Official Espressif Forum for Hardware related discussions.
105-
- `Gitter`_
105+
- `Espressif Developer Portal`_: Official Espressif Developer Portal with tutorials, examples, workshops, and more.
106+
- `Arduino Core for Espressif (Discord)`_: Official Espressif Discord channel for the Arduino Core.
106107
- `Espressif MCUs (Discord)`_
107108
- `ESP32 on Reddit`_
108109

@@ -148,12 +149,13 @@ Resources
148149

149150
.. _Espressif Systems: https://www.espressif.com
150151
.. _Espressif Product Selector: https://products.espressif.com/
152+
.. _Espressif Developer Portal: https://developer.espressif.com/
151153
.. _Arduino.cc: https://www.arduino.cc/en/Main/Software
152154
.. _Arduino Reference: https://www.arduino.cc/reference/en/
153155
.. _ESP32 Forum: https://esp32.com
154156
.. _ESP32 Forum - Arduino: https://esp32.com/viewforum.php?f=19
155157
.. _ESP32 Forum - Hardware: https://esp32.com/viewforum.php?f=12
156-
.. _Gitter: https://gitter.im/espressif/arduino-esp32
158+
.. _Arduino Core for Espressif (Discord): https://discord.gg/8xY6e9crwv
157159
.. _Adafruit (Discord): https://discord.gg/adafruit
158-
.. _Espressif MCUs (Discord): https://discord.gg/nKxMTnkD
160+
.. _Espressif MCUs (Discord): https://discord.com/invite/XqnZPbF
159161
.. _ESP32 on Reddit: https://www.reddit.com/r/esp32

libraries/ESP_I2S/src/ESP_I2S.cpp

+9-3
Original file line numberDiff line numberDiff line change
@@ -719,9 +719,15 @@ bool I2SClass::end() {
719719
#if SOC_I2S_SUPPORTS_TDM
720720
case I2S_MODE_TDM:
721721
#endif
722-
perimanClearPinBus(_mclk);
723-
perimanClearPinBus(_bclk);
724-
perimanClearPinBus(_ws);
722+
if (_mclk >= 0) {
723+
perimanClearPinBus(_mclk);
724+
}
725+
if (_bclk >= 0) {
726+
perimanClearPinBus(_bclk);
727+
}
728+
if (_ws >= 0) {
729+
perimanClearPinBus(_ws);
730+
}
725731
if (_dout >= 0) {
726732
perimanClearPinBus(_dout);
727733
}

libraries/Matter/examples/MatterMinimum/MatterMinimum.ino

+12-5
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ bool onOffLightCallback(bool state) {
5555
}
5656

5757
void setup() {
58+
Serial.begin(115200);
59+
5860
// Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node
5961
pinMode(buttonPin, INPUT_PULLUP);
6062
// Initialize the LED GPIO
@@ -63,9 +65,14 @@ void setup() {
6365
// Manually connect to WiFi
6466
WiFi.begin(ssid, password);
6567
// Wait for connection
68+
Serial.println();
69+
Serial.print("Connecting to ");
70+
Serial.println(ssid);
6671
while (WiFi.status() != WL_CONNECTED) {
72+
Serial.print('.');
6773
delay(500);
6874
}
75+
Serial.println();
6976

7077
// Initialize at least one Matter EndPoint
7178
OnOffLight.begin();
@@ -77,11 +84,11 @@ void setup() {
7784
Matter.begin();
7885

7986
if (!Matter.isDeviceCommissioned()) {
80-
log_i("Matter Node is not commissioned yet.");
81-
log_i("Initiate the device discovery in your Matter environment.");
82-
log_i("Commission it to your Matter hub with the manual pairing code or QR code");
83-
log_i("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str());
84-
log_i("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str());
87+
Serial.println("Matter Node is not commissioned yet.");
88+
Serial.println("Initiate the device discovery in your Matter environment.");
89+
Serial.println("Commission it to your Matter hub with the manual pairing code or QR code");
90+
Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str());
91+
Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str());
8592
}
8693
}
8794

libraries/WebServer/examples/PathArgServer/ci.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"fqbn_append": "PartitionScheme=huge_app",
23
"requires_any": [
34
"CONFIG_SOC_WIFI_SUPPORTED=y",
45
"CONFIG_ESP_WIFI_REMOTE_ENABLED=y"

libraries/Zigbee/src/ZigbeeCore.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ ZigbeeCore::ZigbeeCore() {
2929
}
3030
}
3131
}
32-
ZigbeeCore::~ZigbeeCore() {}
3332

3433
//forward declaration
3534
static esp_err_t zb_action_handler(esp_zb_core_action_callback_id_t callback_id, const void *message);

libraries/Zigbee/src/ZigbeeCore.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class ZigbeeCore {
8686

8787
public:
8888
ZigbeeCore();
89-
~ZigbeeCore();
89+
~ZigbeeCore() {}
9090

9191
std::list<ZigbeeEP *> ep_objects;
9292

libraries/Zigbee/src/ZigbeeEP.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ ZigbeeEP::ZigbeeEP(uint8_t endpoint) {
2727
}
2828
}
2929

30-
ZigbeeEP::~ZigbeeEP() {}
31-
3230
void ZigbeeEP::setVersion(uint8_t version) {
3331
_ep_config.app_device_version = version;
3432
}

libraries/Zigbee/src/ZigbeeEP.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ typedef enum {
5555
class ZigbeeEP {
5656
public:
5757
ZigbeeEP(uint8_t endpoint = 10);
58-
~ZigbeeEP();
58+
~ZigbeeEP() {}
5959

6060
// Set ep config and cluster list
6161
void setEpConfig(esp_zb_endpoint_config_t ep_config, esp_zb_cluster_list_t *cluster_list) {

libraries/Zigbee/src/ZigbeeHandlers.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ static esp_err_t zb_action_handler(esp_zb_core_action_callback_id_t callback_id,
2929
static esp_err_t zb_attribute_set_handler(const esp_zb_zcl_set_attr_value_message_t *message) {
3030
if (!message) {
3131
log_e("Empty message");
32+
return ESP_FAIL;
3233
}
3334
if (message->info.status != ESP_ZB_ZCL_STATUS_SUCCESS) {
3435
log_e("Received message: error status(%d)", message->info.status);
36+
return ESP_ERR_INVALID_ARG;
3537
}
3638

3739
log_v(
@@ -55,9 +57,11 @@ static esp_err_t zb_attribute_set_handler(const esp_zb_zcl_set_attr_value_messag
5557
static esp_err_t zb_attribute_reporting_handler(const esp_zb_zcl_report_attr_message_t *message) {
5658
if (!message) {
5759
log_e("Empty message");
60+
return ESP_FAIL;
5861
}
5962
if (message->status != ESP_ZB_ZCL_STATUS_SUCCESS) {
6063
log_e("Received message: error status(%d)", message->status);
64+
return ESP_ERR_INVALID_ARG;
6165
}
6266
log_v(
6367
"Received report from address(0x%x) src endpoint(%d) to dst endpoint(%d) cluster(0x%x)", message->src_address.u.short_addr, message->src_endpoint,
@@ -75,9 +79,11 @@ static esp_err_t zb_attribute_reporting_handler(const esp_zb_zcl_report_attr_mes
7579
static esp_err_t zb_cmd_read_attr_resp_handler(const esp_zb_zcl_cmd_read_attr_resp_message_t *message) {
7680
if (!message) {
7781
log_e("Empty message");
82+
return ESP_FAIL;
7883
}
7984
if (message->info.status != ESP_ZB_ZCL_STATUS_SUCCESS) {
8085
log_e("Received message: error status(%d)", message->info.status);
86+
return ESP_ERR_INVALID_ARG;
8187
}
8288
log_v(
8389
"Read attribute response: from address(0x%x) src endpoint(%d) to dst endpoint(%d) cluster(0x%x)", message->info.src_address.u.short_addr,
@@ -111,9 +117,11 @@ static esp_err_t zb_cmd_read_attr_resp_handler(const esp_zb_zcl_cmd_read_attr_re
111117
static esp_err_t zb_configure_report_resp_handler(const esp_zb_zcl_cmd_config_report_resp_message_t *message) {
112118
if (!message) {
113119
log_e("Empty message");
120+
return ESP_FAIL;
114121
}
115122
if (message->info.status != ESP_ZB_ZCL_STATUS_SUCCESS) {
116123
log_e("Received message: error status(%d)", message->info.status);
124+
return ESP_ERR_INVALID_ARG;
117125
}
118126
esp_zb_zcl_config_report_resp_variable_t *variable = message->variables;
119127
while (variable) {
@@ -129,9 +137,11 @@ static esp_err_t zb_configure_report_resp_handler(const esp_zb_zcl_cmd_config_re
129137
static esp_err_t zb_cmd_default_resp_handler(const esp_zb_zcl_cmd_default_resp_message_t *message) {
130138
if (!message) {
131139
log_e("Empty message");
140+
return ESP_FAIL;
132141
}
133142
if (message->info.status != ESP_ZB_ZCL_STATUS_SUCCESS) {
134143
log_e("Received message: error status(%d)", message->info.status);
144+
return ESP_ERR_INVALID_ARG;
135145
}
136146
log_v(
137147
"Received default response: from address(0x%x), src_endpoint(%d) to dst_endpoint(%d), cluster(0x%x) with status 0x%x",

libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,11 @@ void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max
5555
reporting_info.u.send_info.max_interval = max_interval;
5656
reporting_info.u.send_info.def_min_interval = min_interval;
5757
reporting_info.u.send_info.def_max_interval = max_interval;
58-
reporting_info.u.send_info.delta.u16 = delta;
5958
reporting_info.dst.profile_id = ESP_ZB_AF_HA_PROFILE_ID;
6059
reporting_info.manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC;
60+
float delta_f = delta / 1000000.0f;
61+
memcpy(&reporting_info.u.send_info.delta.s32, &delta_f, sizeof(float));
62+
6163
esp_zb_lock_acquire(portMAX_DELAY);
6264
esp_zb_zcl_update_reporting_info(&reporting_info);
6365
esp_zb_lock_release();

libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ typedef struct zigbee_carbon_dioxide_sensor_cfg_s {
3939
class ZigbeeCarbonDioxideSensor : public ZigbeeEP {
4040
public:
4141
ZigbeeCarbonDioxideSensor(uint8_t endpoint);
42-
~ZigbeeCarbonDioxideSensor();
42+
~ZigbeeCarbonDioxideSensor() {}
4343

4444
// Set the carbon dioxide value in ppm
4545
void setCarbonDioxide(float carbon_dioxide);

libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
class ZigbeeColorDimmableLight : public ZigbeeEP {
1313
public:
1414
ZigbeeColorDimmableLight(uint8_t endpoint);
15-
~ZigbeeColorDimmableLight();
15+
~ZigbeeColorDimmableLight() {}
1616

1717
void onLightChange(void (*callback)(bool, uint8_t, uint8_t, uint8_t, uint8_t)) {
1818
_on_light_change = callback;

libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
class ZigbeeColorDimmerSwitch : public ZigbeeEP {
1313
public:
1414
ZigbeeColorDimmerSwitch(uint8_t endpoint);
15-
~ZigbeeColorDimmerSwitch();
15+
~ZigbeeColorDimmerSwitch() {}
1616

1717
// methods to control the color dimmable light
1818
void lightToggle();

libraries/Zigbee/src/ep/ZigbeeDimmableLight.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ typedef struct zigbee_dimmable_light_cfg_s {
6767
class ZigbeeDimmableLight : public ZigbeeEP {
6868
public:
6969
ZigbeeDimmableLight(uint8_t endpoint);
70-
~ZigbeeDimmableLight();
70+
~ZigbeeDimmableLight() {}
7171

7272
void onLightChange(void (*callback)(bool, uint8_t)) {
7373
_on_light_change = callback;

libraries/Zigbee/src/ep/ZigbeeFlowSensor.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ typedef struct zigbee_flow_sensor_cfg_s {
3939
class ZigbeeFlowSensor : public ZigbeeEP {
4040
public:
4141
ZigbeeFlowSensor(uint8_t endpoint);
42-
~ZigbeeFlowSensor();
42+
~ZigbeeFlowSensor() {}
4343

4444
// Set the flow value in 0,1 m3/h
4545
void setFlow(float value);

libraries/Zigbee/src/ep/ZigbeeLight.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
class ZigbeeLight : public ZigbeeEP {
1313
public:
1414
ZigbeeLight(uint8_t endpoint);
15-
~ZigbeeLight();
15+
~ZigbeeLight() {}
1616

1717
// Use to set a cb function to be called on light change
1818
void onLightChange(void (*callback)(bool)) {

libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ typedef struct zigbee_occupancy_sensor_cfg_s {
3939
class ZigbeeOccupancySensor : public ZigbeeEP {
4040
public:
4141
ZigbeeOccupancySensor(uint8_t endpoint);
42-
~ZigbeeOccupancySensor();
42+
~ZigbeeOccupancySensor() {}
4343

4444
// Set the occupancy value. True for occupied, false for unoccupied
4545
void setOccupancy(bool occupied);

libraries/Zigbee/src/ep/ZigbeePressureSensor.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ typedef struct zigbee_pressure_sensor_cfg_s {
3939
class ZigbeePressureSensor : public ZigbeeEP {
4040
public:
4141
ZigbeePressureSensor(uint8_t endpoint);
42-
~ZigbeePressureSensor();
42+
~ZigbeePressureSensor() {}
4343

4444
// Set the pressure value in 1 hPa
4545
void setPressure(int16_t value);

0 commit comments

Comments
 (0)