Skip to content

Commit 3822a68

Browse files
IDF release/v5.3 (#10599)
* fix(zigbee): Bump zigbee version and use 1.6.0 (#10563) Co-authored-by: Me No Dev <[email protected]> * fix(zigbee): Add require public for zigbee libs * fix(zigbee): Guard the Zigbee library * fix(zigbee): Fix removed cluster_role attribute (#10576) * fix(hosted): Update hosted configuration * fix(hosted): Fix Hosted deinit and protect reinit for now * IDF release/v5.3 a0f798cf * IDF release/v5.3 a0f798cf --------- Co-authored-by: Jan Procházka <[email protected]>
1 parent cc40718 commit 3822a68

20 files changed

+92
-63
lines changed

idf_component.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,13 @@ dependencies:
5252
espressif/esp_modem:
5353
version: "^1.1.0"
5454
espressif/esp-zboss-lib:
55-
version: "^1.0.1"
55+
version: "==1.6.0"
56+
require: public
5657
rules:
5758
- if: "target not in [esp32c2, esp32p4]"
5859
espressif/esp-zigbee-lib:
59-
version: "^1.0.1"
60+
version: "==1.6.0"
61+
require: public
6062
rules:
6163
- if: "target not in [esp32c2, esp32p4]"
6264
espressif/esp-dsp:
@@ -101,7 +103,7 @@ dependencies:
101103
rules:
102104
- if: "target in [esp32s3]"
103105
espressif/esp_hosted:
104-
version: "^0.0.22"
106+
version: "^0.0.25"
105107
rules:
106108
- if: "target == esp32p4"
107109
espressif/esp_wifi_remote:

libraries/WiFi/src/WiFiGeneric.cpp

+29-6
Original file line numberDiff line numberDiff line change
@@ -240,18 +240,34 @@ extern "C" void phy_bbpll_en_usb(bool en);
240240
#endif
241241

242242
#if CONFIG_ESP_WIFI_REMOTE_ENABLED
243-
extern "C" esp_err_t esp_hosted_init(void *);
243+
extern "C" {
244+
//#include "esp_hosted.h"
245+
#include "esp_hosted_transport_config.h"
246+
extern esp_err_t esp_hosted_init();
247+
extern esp_err_t esp_hosted_deinit();
248+
};
249+
static bool hosted_initialized = false;
244250

245251
static bool wifiHostedInit() {
246-
static bool initialized = false;
247-
if (!initialized) {
248-
initialized = true;
249-
if (esp_hosted_init(NULL) != ESP_OK) {
252+
if (!hosted_initialized) {
253+
hosted_initialized = true;
254+
struct esp_hosted_sdio_config conf = INIT_DEFAULT_HOST_SDIO_CONFIG();
255+
conf.pin_clk.pin = CONFIG_ESP_SDIO_PIN_CLK;
256+
conf.pin_cmd.pin = CONFIG_ESP_SDIO_PIN_CMD;
257+
conf.pin_d0.pin = CONFIG_ESP_SDIO_PIN_D0;
258+
conf.pin_d1.pin = CONFIG_ESP_SDIO_PIN_D1;
259+
conf.pin_d2.pin = CONFIG_ESP_SDIO_PIN_D2;
260+
conf.pin_d3.pin = CONFIG_ESP_SDIO_PIN_D3;
261+
//conf.pin_rst.pin = CONFIG_ESP_SDIO_GPIO_RESET_SLAVE;
262+
// esp_hosted_sdio_set_config() will fail on second attempt but here temporarily to not cause exception on reinit
263+
if (esp_hosted_sdio_set_config(&conf) != ESP_OK || esp_hosted_init() != ESP_OK) {
250264
log_e("esp_hosted_init failed!");
265+
hosted_initialized = false;
251266
return false;
252267
}
268+
log_v("ESP-HOSTED initialized!");
253269
}
254-
// Attach pins to periman here
270+
// Attach pins to PeriMan here
255271
// Slave chip model is CONFIG_IDF_SLAVE_TARGET
256272
// CONFIG_ESP_SDIO_PIN_CMD
257273
// CONFIG_ESP_SDIO_PIN_CLK
@@ -337,6 +353,13 @@ static bool wifiLowLevelDeinit() {
337353
arduino_event_t arduino_event;
338354
arduino_event.event_id = ARDUINO_EVENT_WIFI_OFF;
339355
Network.postEvent(&arduino_event);
356+
#if CONFIG_ESP_WIFI_REMOTE_ENABLED
357+
if (hosted_initialized && esp_hosted_deinit() == ESP_OK) {
358+
hosted_initialized = false;
359+
log_v("ESP-HOSTED uninitialized!");
360+
// detach SDIO pins from PeriMan
361+
}
362+
#endif
340363
}
341364
}
342365
return !lowLevelInitDone;

libraries/Zigbee/src/ZigbeeCore.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Zigbee Core Functions */
22

33
#include "ZigbeeCore.h"
4-
#if SOC_IEEE802154_SUPPORTED
4+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
55

66
#include "ZigbeeHandlers.cpp"
77
#include "Arduino.h"
@@ -407,4 +407,4 @@ const char *ZigbeeCore::getDeviceTypeString(esp_zb_ha_standard_devices_t deviceI
407407

408408
ZigbeeCore Zigbee = ZigbeeCore();
409409

410-
#endif //SOC_IEEE802154_SUPPORTED
410+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ZigbeeCore.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44

55
#include "soc/soc_caps.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#include "sdkconfig.h"
7+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
78

89
#include "esp_zigbee_core.h"
910
#include "zdo/esp_zigbee_zdo_common.h"
@@ -122,4 +123,4 @@ class ZigbeeCore {
122123

123124
extern ZigbeeCore Zigbee;
124125

125-
#endif //SOC_IEEE802154_SUPPORTED
126+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ZigbeeEP.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#include "ZigbeeEP.h"
44

5-
#if SOC_IEEE802154_SUPPORTED
5+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
66

77
#include "esp_zigbee_cluster.h"
88
#include "zcl/esp_zigbee_zcl_power_config.h"
@@ -104,7 +104,6 @@ void ZigbeeEP::reportBatteryPercentage() {
104104
esp_zb_zcl_report_attr_cmd_t report_attr_cmd;
105105
report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
106106
report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_REMAINING_ID;
107-
report_attr_cmd.cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE;
108107
report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_POWER_CONFIG;
109108
report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint;
110109

@@ -210,4 +209,4 @@ void ZigbeeEP::zbIdentify(const esp_zb_zcl_set_attr_value_message_t *message) {
210209
}
211210
}
212211

213-
#endif //SOC_IEEE802154_SUPPORTED
212+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ZigbeeEP.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#pragma once
44

55
#include "ZigbeeCore.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
77

88
#include <Arduino.h>
99

@@ -126,4 +126,4 @@ class ZigbeeEP {
126126
friend class ZigbeeCore;
127127
};
128128

129-
#endif //SOC_IEEE802154_SUPPORTED
129+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ZigbeeHandlers.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#include "ZigbeeCore.h"
33
#include "Arduino.h"
44

5-
#if SOC_IEEE802154_SUPPORTED
5+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
66

77
// forward declaration of all implemented handlers
88
static esp_err_t zb_attribute_set_handler(const esp_zb_zcl_set_attr_value_message_t *message);
@@ -138,4 +138,4 @@ static esp_err_t zb_cmd_default_resp_handler(const esp_zb_zcl_cmd_default_resp_m
138138
return ESP_OK;
139139
}
140140

141-
#endif //SOC_IEEE802154_SUPPORTED
141+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "ZigbeeColorDimmableLight.h"
2-
#if SOC_IEEE802154_SUPPORTED
2+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
33

44
ZigbeeColorDimmableLight::ZigbeeColorDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) {
55
_device_id = ESP_ZB_HA_COLOR_DIMMABLE_LIGHT_DEVICE_ID;
@@ -109,4 +109,4 @@ void ZigbeeColorDimmableLight::lightChanged() {
109109
}
110110
}
111111

112-
#endif //SOC_IEEE802154_SUPPORTED
112+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44

55
#include "soc/soc_caps.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#include "sdkconfig.h"
7+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
78

89
#include "ZigbeeEP.h"
910
#include "ha/esp_zigbee_ha_standard.h"
@@ -38,4 +39,4 @@ class ZigbeeColorDimmableLight : public ZigbeeEP {
3839
uint16_t _current_blue;
3940
};
4041

41-
#endif //SOC_IEEE802154_SUPPORTED
42+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "ZigbeeColorDimmerSwitch.h"
2-
#if SOC_IEEE802154_SUPPORTED
2+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
33

44
// Initialize the static instance pointer
55
ZigbeeColorDimmerSwitch *ZigbeeColorDimmerSwitch::_instance = nullptr;
@@ -400,4 +400,4 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t
400400
}
401401
}
402402

403-
#endif //SOC_IEEE802154_SUPPORTED
403+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44

55
#include "soc/soc_caps.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#include "sdkconfig.h"
7+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
78

89
#include "ZigbeeEP.h"
910
#include "ha/esp_zigbee_ha_standard.h"
@@ -57,4 +58,4 @@ class ZigbeeColorDimmerSwitch : public ZigbeeEP {
5758
void calculateXY(uint8_t red, uint8_t green, uint8_t blue, uint16_t &x, uint16_t &y);
5859
};
5960

60-
#endif //SOC_IEEE802154_SUPPORTED
61+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeLight.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "ZigbeeLight.h"
2-
#if SOC_IEEE802154_SUPPORTED
2+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
33

44
ZigbeeLight::ZigbeeLight(uint8_t endpoint) : ZigbeeEP(endpoint) {
55
_device_id = ESP_ZB_HA_ON_OFF_LIGHT_DEVICE_ID;
@@ -33,4 +33,4 @@ void ZigbeeLight::lightChanged() {
3333
}
3434
}
3535

36-
#endif //SOC_IEEE802154_SUPPORTED
36+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeLight.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44

55
#include "soc/soc_caps.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#include "sdkconfig.h"
7+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
78

89
#include "ZigbeeEP.h"
910
#include "ha/esp_zigbee_ha_standard.h"
@@ -30,4 +31,4 @@ class ZigbeeLight : public ZigbeeEP {
3031
bool _current_state;
3132
};
3233

33-
#endif //SOC_IEEE802154_SUPPORTED
34+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeSwitch.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "ZigbeeSwitch.h"
2-
#if SOC_IEEE802154_SUPPORTED
2+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
33

44
// Initialize the static instance pointer
55
ZigbeeSwitch *ZigbeeSwitch::_instance = nullptr;
@@ -230,4 +230,4 @@ void ZigbeeSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on,
230230
}
231231
}
232232

233-
#endif //SOC_IEEE802154_SUPPORTED
233+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeSwitch.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44

55
#include "soc/soc_caps.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#include "sdkconfig.h"
7+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
78

89
#include "ZigbeeEP.h"
910
#include "ha/esp_zigbee_ha_standard.h"
@@ -39,4 +40,4 @@ class ZigbeeSwitch : public ZigbeeEP {
3940
static void findCb(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t endpoint, void *user_ctx);
4041
};
4142

42-
#endif //SOC_IEEE802154_SUPPORTED
43+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "ZigbeeTempSensor.h"
2-
#if SOC_IEEE802154_SUPPORTED
2+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
33

44
ZigbeeTempSensor::ZigbeeTempSensor(uint8_t endpoint) : ZigbeeEP(endpoint) {
55
_device_id = ESP_ZB_HA_TEMPERATURE_SENSOR_DEVICE_ID;
@@ -80,7 +80,6 @@ void ZigbeeTempSensor::reportTemperature() {
8080
esp_zb_zcl_report_attr_cmd_t report_attr_cmd;
8181
report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
8282
report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID;
83-
report_attr_cmd.cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE;
8483
report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT;
8584
report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint;
8685

@@ -121,7 +120,6 @@ void ZigbeeTempSensor::reportHumidity() {
121120
esp_zb_zcl_report_attr_cmd_t report_attr_cmd;
122121
report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
123122
report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID;
124-
report_attr_cmd.cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE;
125123
report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT;
126124
report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint;
127125

@@ -161,4 +159,4 @@ void ZigbeeTempSensor::setHumidityReporting(uint16_t min_interval, uint16_t max_
161159
esp_zb_zcl_update_reporting_info(&reporting_info);
162160
}
163161

164-
#endif //SOC_IEEE802154_SUPPORTED
162+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeTempSensor.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44

55
#include "soc/soc_caps.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#include "sdkconfig.h"
7+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
78

89
#include "ZigbeeEP.h"
910
#include "ha/esp_zigbee_ha_standard.h"
@@ -41,4 +42,4 @@ class ZigbeeTempSensor : public ZigbeeEP {
4142
void reportHumidity();
4243
};
4344

44-
#endif //SOC_IEEE802154_SUPPORTED
45+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeThermostat.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "ZigbeeThermostat.h"
2-
#if SOC_IEEE802154_SUPPORTED
2+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
33

44
static float zb_s16_to_temperature(int16_t value) {
55
return 1.0 * value / 100;
@@ -185,7 +185,7 @@ void ZigbeeThermostat::setTemperatureReporting(uint16_t min_interval, uint16_t m
185185
int16_t report_change = (int16_t)delta * 100;
186186
esp_zb_zcl_config_report_record_t records[] = {
187187
{
188-
.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV,
188+
.direction = ESP_ZB_ZCL_REPORT_DIRECTION_SEND,
189189
.attributeID = ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID,
190190
.attrType = ESP_ZB_ZCL_ATTR_TYPE_S16,
191191
.min_interval = min_interval,
@@ -202,4 +202,4 @@ void ZigbeeThermostat::setTemperatureReporting(uint16_t min_interval, uint16_t m
202202
esp_zb_lock_release();
203203
}
204204

205-
#endif //SOC_IEEE802154_SUPPORTED
205+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

libraries/Zigbee/src/ep/ZigbeeThermostat.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44

55
#include "soc/soc_caps.h"
6-
#if SOC_IEEE802154_SUPPORTED
6+
#include "sdkconfig.h"
7+
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
78

89
#include "ZigbeeEP.h"
910
#include "ha/esp_zigbee_ha_standard.h"
@@ -61,4 +62,4 @@ class ZigbeeThermostat : public ZigbeeEP {
6162
void zbAttributeRead(uint16_t cluster_id, const esp_zb_zcl_attribute_t *attribute) override;
6263
};
6364

64-
#endif //SOC_IEEE802154_SUPPORTED
65+
#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED

0 commit comments

Comments
 (0)