我想做一个简单的协调器向终端设备发送消息,通过创建custom_cluser然后绑定,直接发送消息。但目前的问题是一切看起来都是正常的,但是绑定表里面的内容是错误的,导致无法发送消息。
static void user_find_cb1(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t endpoint, void *user_ctx)
{
if (zdo_status == ESP_ZB_ZDP_STATUS_SUCCESS) {
ESP_LOGI(TAG, "Found device for cluster match");
ESP_LOGI(TAG, "Device short address: 0x%04x, endpoint: %d", addr, endpoint);
esp_zb_zdo_bind_req_param_t bind_req;
memset(&bind_req, 0, sizeof(bind_req));
esp_zb_get_long_address(bind_req.src_address);
esp_zb_ieee_addr_t dst_address;
esp_zb_ieee_address_by_short(addr, dst_address);
memcpy(bind_req.dst_address_u.addr_long, dst_address, sizeof(esp_zb_ieee_addr_t));
bind_req.src_endp = CUSTOM_CLIENT_ENDPOINT;
bind_req.cluster_id = CUSTOM_CLUSTER_ID; //自定义集群ID
bind_req.dst_addr_mode = ESP_ZB_ZDO_BIND_DST_ADDR_MODE_64_BIT_EXTENDED;
bind_req.dst_endp = endpoint;
ESP_LOGI(TAG, "Custom device endpoint: %d", bind_req.dst_endp);
bind_req.req_dst_addr = esp_zb_get_short_address();
ESP_LOGI(TAG, "Binding Request Details:");
ESP_LOGI(TAG, " Source Address: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
bind_req.src_address[7], bind_req.src_address[6], bind_req.src_address[5], bind_req.src_address[4],
bind_req.src_address[3], bind_req.src_address[2], bind_req.src_address[1], bind_req.src_address[0]);
ESP_LOGI(TAG, " Source Endpoint: %d", bind_req.src_endp);
ESP_LOGI(TAG, " Cluster ID: 0x%04x", bind_req.cluster_id);
ESP_LOGI(TAG, " Destination Address Mode: 0x%02x", bind_req.dst_addr_mode);
ESP_LOGI(TAG, " Destination Address: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
bind_req.dst_address_u.addr_long[7], bind_req.dst_address_u.addr_long[6],
bind_req.dst_address_u.addr_long[5], bind_req.dst_address_u.addr_long[4],
bind_req.dst_address_u.addr_long[3], bind_req.dst_address_u.addr_long[2],
bind_req.dst_address_u.addr_long[1], bind_req.dst_address_u.addr_long[0]);
ESP_LOGI(TAG, " Destination Endpoint: %d", bind_req.dst_endp);
ESP_LOGI(TAG, " Request Destination Address: 0x%04x", bind_req.req_dst_addr);
ESP_LOGI(TAG, "Try to bind custom cluster");
esp_zb_zdo_device_bind_req(&bind_req, bind_cb2, NULL);
}
}
这是绑定请求
I (4744) ESP_ZB_ON_OFF_SWITCH: Found device for cluster match
I (4754) ESP_ZB_ON_OFF_SWITCH: Device short address: 0xdb8a, endpoint: 3
I (4754) ESP_ZB_ON_OFF_SWITCH: Custom device endpoint: 3
I (4764) ESP_ZB_ON_OFF_SWITCH: Binding Request Details:
I (4764) ESP_ZB_ON_OFF_SWITCH: Source Address: 58:8c:81:ff:fe:33:91:f0
I (4774) ESP_ZB_ON_OFF_SWITCH: Source Endpoint: 2
I (4774) ESP_ZB_ON_OFF_SWITCH: Cluster ID: 0xff00
I (4784) ESP_ZB_ON_OFF_SWITCH: Destination Address Mode: 0x03
I (4784) ESP_ZB_ON_OFF_SWITCH: Destination Address: 60:55:f9:ff:fe:f7:46:56
I (4794) ESP_ZB_ON_OFF_SWITCH: Destination Endpoint: 3
I (4804) ESP_ZB_ON_OFF_SWITCH: Request Destination Address: 0x0000
I (4804) ESP_ZB_ON_OFF_SWITCH: Try to bind custom cluster
信息都没有问题,但是在回调函数打印的绑定表就是错误的信息。
I (4814) ESP_ZB_ON_OFF_SWITCH: Bound custom cluster successfully! Requesting binding table...
I (4824) ESP_ZB_ON_OFF_SWITCH: Binding table info: total count in response: 3, total records in device: 10
I (4834) ESP_ZB_ON_OFF_SWITCH: Record [0]:
I (4834) ESP_ZB_ON_OFF_SWITCH: Source: Addr(58:8c:81:ff:fe:33:91:f0), Endp(1)
I (4844) ESP_ZB_ON_OFF_SWITCH: Cluster ID: 0x0006
I (4844) ESP_ZB_ON_OFF_SWITCH: Dest Mode: 0x03
I (4844) ESP_ZB_ON_OFF_SWITCH: Dest Addr: 60:55:f9:ff:fe:f7:46:56, Endp(10)
I (4854) ESP_ZB_ON_OFF_SWITCH: Record [1]:
I (4864) ESP_ZB_ON_OFF_SWITCH: Source: Addr(58:8c:81:ff:fe:33:91:f0), Endp(1)
I (4864) ESP_ZB_ON_OFF_SWITCH: Cluster ID: 0xff00
I (4874) ESP_ZB_ON_OFF_SWITCH: Dest Mode: 0x03
I (4874) ESP_ZB_ON_OFF_SWITCH: Dest Addr: 00:00:00:00:00:00:40:81, Endp(255)
I (4884) ESP_ZB_ON_OFF_SWITCH: Record [2]:
I (4884) ESP_ZB_ON_OFF_SWITCH: Source: Addr(58:8c:81:ff:fe:33:91:f0), Endp(1)
I (4894) ESP_ZB_ON_OFF_SWITCH: Cluster ID: 0xff00
I (4894) ESP_ZB_ON_OFF_SWITCH: Dest Mode: 0x01
I (4904) ESP_ZB_ON_OFF_SWITCH: Dest Group Addr: 0xffff
绑定表的第二条的目标地址和端点完全是错误的。不理解为什么会这样。
我是按照开关控制灯的绑定编写的,理论上都是协调器发送命令,但开关成功绑定了,我自定义的custom_cluster绑定表就是有问题
ESP32 Zigbee custom_cluster
Moderator: Bob
-
unclezheng
- Posts: 3
- Joined: Fri Jan 09, 2026 7:13 am
Return to “ESP IoT Solution 中文讨论版”
Jump to
- English Forum
- Explore
- News
- General Discussion
- FAQ
- Documentation
- Documentation
- Sample Code
- Discussion Forum
- ESP32-S31
- Hardware
- ESP-IDF
- ESP-BOX
- ESP-ADF
- ESP-MDF
- ESP-WHO
- ESP-SkaiNet
- ESP32 Arduino
- IDEs for ESP-IDF
- ESP-AT
- ESP IoT Solution
- ESP RainMaker
- Rust
- ESP8266
- Report Bugs
- Showcase
- Chinese Forum 中文社区
- 活动区
- 乐鑫活动专区
- 讨论区
- ESP32-S31 中文讨论版
- 喵伴 中文讨论版
- ESP-IDF 中文讨论版
- 《ESP32-C3 物联网工程开发实战》书籍讨论版
- 中文文档讨论版
- ESP-AT 中文讨论版
- ESP-BOX 中文讨论版
- ESP IoT Solution 中文讨论版
- ESP-ADF 中文讨论版
- ESP Mesh 中文讨论版
- ESP Cloud 中文讨论版
- ESP-WHO 中文讨论版
- ESP-SkaiNet 中文讨论版
- ESP 生产支持讨论版
- 硬件问题讨论
- 项目展示
Who is online
Users browsing this forum: No registered users and 1 guest
- All times are UTC
- Top
- Delete cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. ESP8266EX and ESP32 are some of our products.
Information
Espressif ESP32 ... Available now!