{"id":326660,"date":"2021-07-19T15:00:23","date_gmt":"2021-07-19T15:00:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=326660"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=326660","title":{"rendered":"Hello NXP JN5169 Zigbee World: \u043f\u0440\u044f\u043c\u043e\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 (Binding)"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a!&nbsp;<\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432 \u0441\u0435\u0442\u044f\u0445 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 Zigbee \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043b\u0438 \u0445\u0430\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u0441\u0435\u0442\u0438 Zigbee. \u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432 \u0441\u0435\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u043e\u0434\u043d\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043a \u0434\u0440\u0443\u0433\u0438\u043c. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u043e\u0442\u043a\u0430\u0437\u0430 &#8212; \u0435\u0441\u043b\u0438 \u0441 \u043d\u0438\u043c \u0447\u0442\u043e \u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0442\u043e \u0441\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Zigbee \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f (Bind) \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441\u0435\u0442\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u0422\u0430\u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0435 (\u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0433\u0440\u0443\u043f\u043f\u0435 \u043b\u0430\u043c\u043f\u043e\u0447\u0435\u043a), \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442. \u0410 \u0434\u0430\u0442\u0447\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u043a\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c (\u043a\u043e\u043d\u0434\u0438\u0446\u0438\u043e\u043d\u0435\u0440\u043e\u043c, \u043a\u043e\u0442\u043b\u043e\u043c, \u0438\u043b\u0438 \u0442\u0435\u043f\u043b\u044b\u043c \u043f\u043e\u043b\u043e\u043c). \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 (<a href=\"https:\/\/habr.com\/ru\/post\/547374\/\" rel=\"noopener noreferrer nofollow\"><u>\u0440\u0430\u0437<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/550660\/\" rel=\"noopener noreferrer nofollow\"><u>\u0434\u0432\u0430<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/561280\/\" rel=\"noopener noreferrer nofollow\"><u>\u0442\u0440\u0438<\/u><\/a>) \u043f\u0440\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 NXP JN5169 \u0438 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0441\u0435\u0442\u044f\u0445 Zigbee. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (binding) \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u0441\u0435\u0442\u044f\u0445 Zigbee. \u0421\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u0430 \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u043c\u0435\u0441\u044f\u0446\u0430 \u0448\u0435\u043b \u0432 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u043d\u043e \u0437\u0430\u0442\u043e \u043d\u0430\u043a\u043e\u043f\u0430\u043b \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0438\u043d\u0444\u044b \u043f\u0440\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 JN5169 \u0438 \u0441\u0442\u0435\u043a Zigbee.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0435\u0445\u0430\u043b\u0438!<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 1: \u043f\u0440\u043e Binding, \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b<\/h3>\n<p><strong>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 BDB Find and Bind<\/strong><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0442 NXP \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043d\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0435 Find and Bind. \u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 <a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/12\/docs-13-0402-13-00zi-Base-Device-Behavior-Specification-2-1.pdf\" rel=\"noopener noreferrer nofollow\"><u>Zigbee Base Device Behavior Specification<\/u><\/a> \u0438, \u043a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/post\/561280\/\" rel=\"noopener noreferrer nofollow\"><u>\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/u><\/a> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c Zigbee SDK (\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 BDB). \u0421\u0443\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0445\u043e\u0434\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c.<\/p>\n<ul>\n<li>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f (Find and Bind as Initiator)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0435\u0436\u0438\u043c \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435-\u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0435 (Find and Bind as Target)<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430 \u043f\u043e\u0441\u044b\u043b\u0430\u044f \u0432 \u044d\u0444\u0438\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u0434\u0440\u0443\u0433 \u0443 \u0434\u0440\u0443\u0433\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438, \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043a\u043e\u0434\u0430 \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c BDB. \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043a\u043d\u043e\u043f\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u0443\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437 BDB, \u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. API \u0434\u043b\u044f Find And Bind \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<pre><code class=\"cpp\">PUBLIC BDB_teStatus BDB_eFbTriggerAsInitiator(uint8 u8SourceEndPointId); PUBLIC void BDB_vFbExitAsInitiator(); PUBLIC BDB_teStatus BDB_eFbTriggerAsTarget(uint8 u8EndPointId); PUBLIC void BDB_vFbExitAsTarget(uint8 u8SourceEndpoint);<\/code><\/pre>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: \u0434\u043e\u0441\u0442\u0430\u043b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u043f\u043e\u043d\u0430\u0436\u0438\u043c\u0430\u043b \u043a\u043d\u043e\u043f\u043a\u0438 \u0438 \u0432\u0443\u0430\u043b\u044f &#8212; \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u043f\u0430\u0440\u0438\u043b\u0438\u0441\u044c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043c\u043d\u0435 \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ol>\n<li>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u044e\u0442 \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e \u043c\u0430\u0433\u0438\u044e Find and Bind \u0432 \u0441\u0432\u043e\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043e\u0442 Xiaomi, Tuya, Moes, \u0438 \u0434\u0440\u0443\u0433\u0438\u0445.&nbsp;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u044f Zigbee \u0441\u0435\u0442\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 <a href=\"https:\/\/www.zigbee2mqtt.io\/\" rel=\"noopener noreferrer nofollow\">zigbee2mqtt<\/a>, \u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043e\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0447\u0435\u0442\u043a\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u043e\u0433\u043e, \u0441 \u043a\u0435\u043c, \u0438 \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c. \u041d\u043e, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 BDB \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 &#8212; \u0442\u0430\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0438 \u0430\u0434\u0440\u0435\u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0448\u043b\u0438 \u043e\u0442 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 BDB, \u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0434\u0442\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<p><strong>Direct Binding \u0434\u043b\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432<\/strong><\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 zigbee2mqtt. \u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u044f \u0431\u0443\u0434\u0443 \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u0436\u0435\u043b\u0435\u0437\u043e\u043c \u0438 \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u041a\u043e\u043c\u0443 \u043b\u0435\u043d\u044c \u0447\u0438\u0442\u0430\u0442\u044c, \u044f \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u043d\u0435\u043a\u0438\u0439 \u0443\u043c\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c. \u042d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f-\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0440\u0430\u043f\u043e\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043b\u0435 Xiaomi.<\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u043c \u0434\u0430\u0448\u0431\u043e\u0440\u0434 zigbee2mqtt \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a37\/c08\/1a3\/a37c081a32d2a0d5ca79f33f2fc8ca85.png\" width=\"1122\" height=\"330\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Bind \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 Bind Request \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u043c\u0435\u0440\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438, \u0430\u0434\u0440\u0435\u0441\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u043e\u043c\u0435\u0440\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c (\u043f\u043e \u0441\u0443\u0442\u0438 \u0432\u0441\u0435 \u0442\u043e, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f\u0445 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u0432\u044b\u0448\u0435).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e3a\/fd4\/e6d\/e3afd4e6d84f643677bee4ee1d2c2178.png\" width=\"1121\" height=\"420\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/post\/550660\/\" rel=\"noopener noreferrer nofollow\"><u>\u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/u><\/a>. \u0415\u0441\u043b\u0438 \u0432 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432\u0430\u0445, \u0442\u043e \u043f\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f Zigbee \u0441\u0442\u0435\u043a \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442, \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0438 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 (bind\/unbind) \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u0443\u044e \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 ZigbeeDevice::handleZdoEvents(). \u041f\u043e\u043a\u0430 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u044e \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"cpp\">PRIVATE void vPrintAddr(ZPS_tuAddress addr, uint8 mode) {    if(mode == ZPS_E_ADDR_MODE_IEEE)        DBG_vPrintf(TRUE, \"%016llx\", addr.u64Addr);    else if(mode == ZPS_E_ADDR_MODE_SHORT)        DBG_vPrintf(TRUE, \"%04x\", addr.u16Addr);    else        DBG_vPrintf(TRUE, \"unknown addr mode %d\", mode); }  void vDumpBindEvent(ZPS_tsAfZdoBindEvent * pEvent) {    DBG_vPrintf(TRUE, \"ZPS_EVENT_ZDO_BIND: SrcEP=%d DstEP=%d DstAddr=\", pEvent-&gt;u8SrcEp, pEvent-&gt;u8DstEp);    vPrintAddr(pEvent-&gt;uDstAddr, pEvent-&gt;u8DstAddrMode);    DBG_vPrintf(TRUE, \"\\n\"); }  void ZigbeeDevice::handleZdoEvents(ZPS_tsAfEvent* psStackEvent) { ...    switch(psStackEvent-&gt;eType)    {        case ZPS_EVENT_ZDO_BIND:            vDumpBindEvent(&amp;psStackEvent-&gt;uEvent.sZdoBindEvent);            break; ... <\/code><\/pre>\n<p>\u041a \u043c\u043e\u0435\u043c\u0443 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u044e \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 ZPS_tsAfZdoBindEvent \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435 \u0434\u043e\u0435\u0445\u0430\u043b\u043e \u043f\u043e\u043b\u0435 ClusterID, \u0445\u043e\u0442\u044f \u043e\u043d\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 Zigbee, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0441\u043d\u0438\u0444\u0444\u0435\u0440. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u043b\u044f ClusterID \u0441\u0431\u0438\u043b\u043e \u043c\u0435\u043d\u044f \u0441 \u043f\u0443\u0442\u0438 \u043d\u0430 \u0446\u0435\u043b\u044b\u0445 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u043c\u0435\u0441\u044f\u0446\u0430 (\u0447\u0435\u043c\u0443 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438). \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u0430\u043d \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f ZPS_EVENT_ZDO_BIND, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e ZPS_eAplZdoBind(), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 ClusterID \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u042f \u0442\u0449\u0435\u0442\u043d\u043e \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0435\u0433\u043e \u0440\u0430\u0437\u0434\u043e\u0431\u044b\u0442\u044c \u0432\u0441\u0435\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0445\u0430\u043a\u0430\u043c\u0438, \u0438 \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u043e\u043c. \u0418 \u0432 \u044d\u0442\u043e\u043c \u0434\u0430\u0436\u0435 \u0431\u044b\u043b \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441, \u043d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0448\u0435\u043b \u043d\u0435 \u0432 \u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438.<\/p>\n<p>\u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a vDumpBindEvent() \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0436\u0438\u0432\u0443\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 Zigbee \u0441\u0442\u0435\u043a\u0430. \u042d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 vDisplayBindingTable() \u0438 vDisplayAddressMapTable(), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Zigbee \u0441\u0442\u0435\u043a\u043e\u043c. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u0432\u043e\u0438 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0447\u0443\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u043b \u0433\u043e\u0442\u043e\u0432\u044b\u0435.<\/p>\n<pre><code class=\"cpp\">PRIVATE void vDisplayBindTableEntry(ZPS_tsAplApsmeBindingTableEntry * entry) {     DBG_vPrintf(TRUE, \"    ClusterID=%04x SrcEP=%d DstEP=%d DstAddr=\", entry-&gt;u16ClusterId, entry-&gt;u8SourceEndpoint, entry-&gt;u8DestinationEndPoint);     vPrintAddr(entry-&gt;uDstAddress, entry-&gt;u8DstAddrMode);     DBG_vPrintf(TRUE, \"\\n\"); }  void vDisplayBindTable() {    \/\/ Get pointers    ZPS_tsAplAib * aib = ZPS_psAplAibGetAib();    ZPS_tsAplApsmeBindingTableType * bindingTable = aib-&gt;psAplApsmeAibBindingTable;    ZPS_tsAplApsmeBindingTableCache* cache = bindingTable-&gt;psAplApsmeBindingTableCache;    ZPS_tsAplApsmeBindingTable* table = bindingTable-&gt;psAplApsmeBindingTable;     \/\/ Print header    DBG_vPrintf(TRUE, \"\\n+++++++ Binding Table\\n\");    DBG_vPrintf(TRUE, \"    Cache ptr=%04x:\\n\", cache);    DBG_vPrintf(TRUE, \"    Table ptr=%04x:\\n\", table);     \/\/ Dump cache    if(cache)    {        DBG_vPrintf(TRUE, \"Cache:\\n\");        vDisplayBindTableEntry(cache-&gt;pvAplApsmeBindingTableForRemoteSrcAddr);        DBG_vPrintf(TRUE, \"Cache size = %d\\n\", cache-&gt;u32SizeOfBindingCache);        for(uint32 i=0; i &lt; cache-&gt;u32SizeOfBindingCache; i++)            DBG_vPrintf(TRUE, \"    %016llx\\n\", cache-&gt;pu64RemoteDevicesList[i]);    }     \/\/ Dump table    if(table)    {        DBG_vPrintf(TRUE, \"Binding table (size=%d)\\n\", table-&gt;u32SizeOfBindingTable);        for(uint32 i=0; i&lt;table-&gt;u32SizeOfBindingTable; i++)        {            ZPS_tsAplApsmeBindingTableStoreEntry * entry = table-&gt;pvAplApsmeBindingTableEntryForSpSrcAddr + i;             DBG_vPrintf(TRUE, \"    Addr=%016llx ClusterID=%04x addrMode=%d SrcEP=%d DstEP=%d\\n\",                        ZPS_u64NwkNibGetMappedIeeeAddr(ZPS_pvAplZdoGetNwkHandle(), entry-&gt;u16AddrOrLkUp),                        entry-&gt;u16ClusterId,                        entry-&gt;u8DstAddrMode,                        entry-&gt;u8SourceEndpoint,                        entry-&gt;u8DestinationEndPoint);        }    } }  void vDisplayAddressMap() {    ZPS_tsNwkNib * nib = ZPS_psNwkNibGetHandle(ZPS_pvAplZdoGetNwkHandle());     uint16 mapsize = nib-&gt;sTblSize.u16AddrMap;    DBG_vPrintf(TRUE, \"Address map (size=%d)\\n\", mapsize);     for(uint16 i=0; i&lt;mapsize; i++)    {        DBG_vPrintf(TRUE, \"    Addr=%04x ieeeAddr=%016llx\\n\",                    nib-&gt;sTbl.pu16AddrMapNwk[i],                    ZPS_u64NwkNibGetMappedIeeeAddr(ZPS_pvAplZdoGetNwkHandle(),nib-&gt;sTbl.pu16AddrLookup[i]));    } }  <\/code><\/pre>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u044d\u0442\u043e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/814\/c78\/6d4\/814c786d483b5c27f04767c4b94cda94.png\" width=\"720\" height=\"186\"><figcaption><\/figcaption><\/figure>\n<p>\u041a \u043c\u043e\u0435\u043c\u0443 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u044e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u0438 \u044d\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430. \u0422.\u0435. \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c, \u0445\u043e\u0442\u044f \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0442\u043e-\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 (\u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0435 \u0432 \u0441\u0447\u0435\u0442). \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044f \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u043f\u043e\u043d\u044f\u043b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435&nbsp; ZPS_EVENT_ZDO_BIND &#8212; \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0438\u0448\u0435\u0442, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0423\u0416\u0415 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0435\u043a\u0430, \u0430 \u043d\u0430\u0441 \u043e\u0431 \u044d\u0442\u043e\u043c \u043b\u0438\u0448\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442. \u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 &#8212; Zigbee \u0441\u0442\u0435\u043a \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430 \u043d\u0430\u0441.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/787\/271\/467\/787271467c9f003e099e5e16b2ca7816.png\" width=\"795\" height=\"243\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e &#8212; \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043f\u043e\u0437\u0436\u0435. \u0410 \u043f\u043e\u043a\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0418 \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u0438\u0434\u0438\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0435\u0442 &#8212; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a69\/4de\/37d\/a694de37def5817030ff267bec5d7efb.png\" width=\"1600\" height=\"814\"><figcaption><\/figcaption><\/figure>\n<p>\u042d\u0442\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u043e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043e\u0436\u0438\u0434\u0430\u043b \u043e\u0442 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u044f \u043e\u0436\u0438\u0434\u0430\u043b \u0431\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 Report Attributes \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c.<\/p>\n<p><em>\u0415\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u043e\u0447\u0442\u0438\u0442\u0435 \u0436\u0435, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e (\u0421) \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/em><\/p>\n<p>\u041e\u043a, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0447\u0442\u043e \u043d\u0430\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f&#8230;. \u0422\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a\u0430\u044f? \u042f \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u043d\u0430\u0447\u0430\u043b \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u0441\u043b\u043e\u0432\u0443 Bind \u0432\u043e \u0432\u0441\u0435\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u043e\u0442 NXP \u0438 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0434\u043e\u043b\u0433\u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u043d\u0430\u0448\u0435\u043b \u0440\u0430\u0437\u0434\u0435\u043b Bound Transmission Management \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435 ZigBee Cluster Library (for ZigBee 3.0)<\/p>\n<p>User Guide JN-UG-3115. \u0421\u0443\u0434\u044f \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e. \u041c\u0443\u0440\u0437\u0438\u043b\u043a\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u043c \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0446\u0438\u0439 \u0432 zcl_options.h<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/257\/f5b\/2dd\/257f5b2ddc5961039d2dc64c635eee6e.png\" width=\"934\" height=\"578\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0432\u0443\u0447\u0438\u0442 \u0440\u0430\u0437\u0443\u043c\u043d\u043e. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c, \u0442\u043e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0433\u0434\u0435-\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0442\u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f. \u0418 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Bind Server \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u0435\u0439 CLD_BIND_SERVER.&nbsp;<\/p>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0421\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434 Zigbee \u0441\u0442\u0435\u043a\u0430 (\u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e) \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u0434\u0435\u0444\u0430\u0439\u043d\u043e\u043c CLD_BIND_SERVER. \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0432 \u0444\u0430\u0439\u043b\u0435 zcl_transmit.c, \u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0435\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 eZCL_TransmitDataRequest(). \u042d\u0442\u0438 \u043a\u0443\u0441\u043a\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u043a\u043e\u0439 \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0418 \u0445\u043e\u0442\u044f \u043d\u0430 \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u044d\u0442\u043e \u043f\u043e\u0434\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u043e \u043c\u0435\u043d\u044f \u043a \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u0430 \u043a\u0430\u043a \u0436\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 eZCL_TransmitDataRequest() \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0434\u043e\u0440\u043e\u0432\u0435\u043d\u043d\u044b\u0439 switch \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430, \u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u0432\u0435\u043b\u0430 \u043c\u0435\u043d\u044f \u043a \u0442\u0430\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0435<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/780\/e2a\/158\/780e2a1588e42f2e6911f998849b78b0.png\" width=\"921\" height=\"695\"><figcaption><\/figcaption><\/figure>\n<p>\u0422.\u0435. \u043f\u0430\u043a\u0435\u0442 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0446\u0435\u043b\u043e\u0439 \u043a\u0443\u0447\u0435\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432: \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441, \u043d\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441, \u0441 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0438\u043b\u0438 \u0431\u0435\u0437. \u0418 \u043f\u043e\u043c\u0438\u043c\u043e \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u043f\u043e \u0432\u0441\u0435\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c (E_ZCL_AM_BOUND*), \u0442\u0430\u043a\u0436\u0435 \u0446\u0435\u043b\u043e\u0439 \u043a\u0443\u0447\u0435\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432. \u0422\u0430\u043a \u044d\u0442\u043e \u0436\u0435 \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e! \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043a\u043e\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f.<\/p>\n<pre><code class=\"cpp\">void SwitchEndpoint::reportStateChange() {    \/\/ Destination address - 0x0000 (coordinator)    tsZCL_Address addr;    addr.uAddress.u16DestinationAddress = 0x0000;    addr.eAddressMode = E_ZCL_AM_SHORT;     DBG_vPrintf(TRUE, \"Reporting attribute EP=%d value=%d... \", getEndpointId(), sSwitch.sOnOffServerCluster.bOnOff);    PDUM_thAPduInstance myPDUM_thAPduInstance = hZCL_AllocateAPduInstance();    teZCL_Status status = eZCL_ReportAttribute(&amp;addr,                                               GENERAL_CLUSTER_ID_ONOFF,                                               E_CLD_ONOFF_ATTR_ID_ONOFF,                                               getEndpointId(),                                               1,                                               myPDUM_thAPduInstance);    PDUM_eAPduFreeAPduInstance(myPDUM_thAPduInstance);    DBG_vPrintf(TRUE, \"status: %02x\\n\", status); } <\/code><\/pre>\n<p>\u041d\u0443 \u043a\u043e\u043d\u0435\u0447\u043d\u043e! \u0420\u0430\u043d\u044c\u0448\u0435 \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443 \u043f\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 (0x0000, E_ZCL_AM_SHORT). \u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 E_ZCL_AM_BOUND?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/297\/993\/ce5\/297993ce50bcb4c8a99f0cfdc9920e52.png\" width=\"1600\" height=\"562\"><figcaption><\/figcaption><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043c\u0435\u043d\u044f \u043a \u0432\u0430\u043c \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c: \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (0x8f6b) \u0443\u043b\u0435\u0442\u0435\u043b\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 (0x8428) \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043c\u0438\u043d\u0443\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440.&nbsp;<\/p>\n<p>\u041f\u043b\u043e\u0445\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c: \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044d\u0442\u043e \u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u044f \u0431\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0435\u043b, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0437\u043d\u0430\u043b \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u043e \u0441\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435.&nbsp;<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043c\u043e\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442, \u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u043e \u0441\u043b\u043e\u0432\u043e\u043c Bind \u0432 \u0441\u0435\u0442\u044c \u043d\u0435 \u043a\u0438\u0434\u0430\u0435\u0442. \u041d\u043e \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b <a href=\"https:\/\/www.zigbee2mqtt.io\/devices\/QS-Zigbee-S04-2C-LN.html#lonsonho-qs-zigbee-s04-2c-ln\" rel=\"noopener noreferrer nofollow\"><u>\u0434\u0432\u0443\u0445\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0435 Zigbee \u0440\u0435\u043b\u0435 Lonsonho<\/u><\/a>. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0441\u043d\u0438\u0444\u0444\u0435\u0440\u043e\u043c \u043a\u0430\u043a \u043e\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f, \u0438 \u0443\u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u043e\u0439 \u0436\u0435\u043b\u0435\u0437\u043a\u0435 \u0434\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/774\/5fd\/aa3\/7745fdaa30e018a058e286bc753a8bc6.png\" width=\"1600\" height=\"468\"><figcaption><\/figcaption><\/figure>\n<p>\u042f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u0438\u0432\u0438\u043b\u0441\u044f, \u0438 \u043f\u043e\u043b\u0435\u0437 \u0432 \u043a\u043e\u0434 zigbee2mqtt. \u0418 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0435 \u043a \u0441\u0435\u0442\u0438, zigbee2mqtt <a href=\"https:\/\/github.com\/Koenkk\/zigbee-herdsman-converters\/blob\/master\/devices\/lonsonho.js#L165\" rel=\"noopener noreferrer nofollow\"><u>\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0440\u0435\u043b\u0435 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u043e\u043c<\/u><\/a>. \u042f \u0434\u0430\u0436\u0435 <a href=\"https:\/\/github.com\/Koenkk\/zigbee2mqtt\/issues\/782#issuecomment-858681727\" rel=\"noopener noreferrer nofollow\"><u>\u0441\u043f\u0440\u043e\u0441\u0438\u043b \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 zigbee2mqtt<\/u><\/a> \u0437\u0430\u0447\u0435\u043c \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u0432\u043d\u044f\u0442\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0442\u0430\u043a \u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b. \u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0430 \u0441\u0432\u043e\u0438 \u043c\u0435\u0441\u0442\u0430. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e \u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0440\u0430\u043f\u043e\u0440\u0442\u0443\u044e\u0442 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/p>\n<ul>\n<li>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0448\u043b\u044e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 (unicast) \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0414\u0440\u0443\u0433\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u043f\u043e\u0440\u0442\u0443\u044e\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432\u0441\u0435\u043c \u043a\u0442\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043b\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e bind request\u2019\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0445\u043e\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c, \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d \u0441\u0430\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0435\u043f\u043e\u0440\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e bind\u2019\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a\u0436\u0435 &#8212; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e zigbee2mqtt \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430 (\u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u0441 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u043b\u0435). \u041d\u0430\u0436\u0430\u0432 \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0432 \u0441\u043d\u0438\u0444\u0444\u0435\u0440\u0435 \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/37f\/7bc\/1ee\/37f7bc1ee1e3d07f88ec2c423e7fc947.png\" width=\"1491\" height=\"1116\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0443\u0430\u043b\u044f, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443, \u0438 \u0434\u0432\u0443\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c (0xa6da \u0438 0xab1c). \u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u043c, \u0447\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437, \u043d\u043e \u0442\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e &#8212; \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u043e\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 \u0440\u0435\u043b\u0435. \u041c\u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0443 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0438 \u0432\u0441\u0435\u043c \u0438\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043e\u0441\u043b\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. Zigbee \u0441\u0442\u0435\u043a \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c.&nbsp;<\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438 \u0433\u043e\u0432\u043e\u0440\u044f, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0435 \u0441\u043f\u043b\u043e\u0448\u043d\u044b\u043c \u043f\u043e\u0442\u043e\u043a\u043e\u043c, \u0430 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443, \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Zigbee3ConfigEditor \u0434\u0430\u0436\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u0435\u0441\u0442\u044c ZDO Configuration-&gt;Bind Request Server-&gt;Time Interval, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0441\u044b\u043b\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0447\u0430\u0441\u0442\u043e. \u041a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b, zigbee \u0441\u0442\u0435\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 ZPS_EVENT_BIND_REQUEST_SERVER \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0442\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 &#8212; \u0432\u0441\u0435 \u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u043e\u0442\u043e\u0441\u043b\u0430\u043d\u044b, \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b\u0430 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430. \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0441\u043e\u0431\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439, \u043d\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0434\u043e\u0436\u0438\u0434\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u0441\u044b\u043b\u043a\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435.<\/p>\n<p><strong>Commands binding<\/strong><\/p>\n<p><em>\u0421 \u043c\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u0443\u043b\u0438 \u0432\u044b\u043b\u0435\u0442\u0435\u043b\u0438, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 (\u0421) \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0430\u043d\u0435\u043a\u0434\u043e\u0442 \u043f\u0440\u043e \u0441\u0438\u0441\u0430\u0434\u043c\u0438\u043d\u0430<\/em><\/p>\n<p>\u041e\u043a, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u043d\u043e \u043a\u0430\u043a \u043d\u0430 \u043d\u0438\u0445 \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430? \u0410 \u043d\u0438\u043a\u0430\u043a \ud83d\ude42&nbsp;<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0435\u043c. \u041c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 Report Attribute. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u044d\u0442\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u041d\u043e \u0432\u043e\u0442 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u044d\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432\u0440\u043e\u0434\u0435 \u201c\u0441\u043b\u044b\u0448\u044c, \u0447\u0443\u0432\u0430\u043a, \u0443 \u043c\u0435\u043d\u044f \u0442\u0443\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c\u201d. \u041a\u0430\u043a \u043f\u043e\u0440\u044f\u0434\u043e\u0447\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043d\u0430 \u044d\u0442\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c? \u0412\u0435\u0434\u044c \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0435\u0433\u043e \u0441 \u043a\u0435\u043c-\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043b\u0438, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0449\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430\u043b\u0438\u0432\u0430\u044e\u0442.&nbsp;<\/p>\n<p>\u041d\u0443 \u0447\u0438\u0441\u0442\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0442\u0430\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0445\u043e\u0442\u044f \u0431\u044b \u0443\u0432\u0435\u0434\u043e\u043c\u0438\u0442\u044c. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a? \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b Zigbee \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0447\u0435\u0442 \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442.<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u0441\u0435\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0410 \u0440\u0430\u0437 \u0442\u0430\u043a, \u0442\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043c\u043e\u043b \u201c\u043a\u0430\u0436\u0434\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 Report Attribute \u0442\u0430\u043a\u0438\u043c-\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c\u201d. \u041d\u043e \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442.<\/p>\n<p>\u041e\u043a, \u0437\u0430\u0439\u0434\u0435\u043c \u0432 \u043d\u0430\u0448\u0438\u0445 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u0445 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 zigbee \u044d\u0442\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u043e\u0439. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443: \u043f\u0443\u0441\u043a\u0430\u0439 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u043e\u0434\u043d\u043e\u0439 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u043e\u0439. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u0435\u0431\u0435, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0440\u0430\u043f\u043e\u0440\u0442\u0443\u0435\u0442, \u0447\u0442\u043e \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u201c\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e\u201d, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439, \u0447\u0442\u043e \u201c\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e\u201d. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0435\u0434\u043d\u043e\u0439 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0435?<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68f\/296\/46f\/68f29646f54effe2c31054adc6a85bbe.png\" width=\"761\" height=\"277\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0440\u0430\u0432\u044b\u0439 \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 &#8212; \u044d\u0442\u043e \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0430. \u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 \u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043b\u0438\u0431\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0437\u043d\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0440\u0435\u043f\u043e\u0440\u0442\u043e\u0432 \u044d\u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0438), \u043b\u0438\u0431\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u0432\u0441\u043b\u0435\u043f\u0443\u044e \u0441\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0442\u0440\u0435\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0412\u041a\u041b\u042e\u0427\u0418\u0421\u042c, \u0412\u042b\u041a\u041b\u042e\u0427\u0418\u0421\u042c, \u0438\u043b\u0438 \u041f\u0415\u0420\u0415\u041a\u041b\u042e\u0427\u0418\u0421\u042c. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u0448 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c, \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u043f\u043e\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0438\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432, \u0430 \u043b\u0438\u0448\u044c \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\/\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.&nbsp;<\/p>\n<p>\u042d\u0442\u0430 \u0442\u0435\u043e\u0440\u0438\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c\u0438. \u0412\u043e\u0442 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 zigbee2mqtt \u0438 home assistant \u0442\u043e\u0436\u0435 \u043d\u0435 \u0445\u0440\u0430\u043d\u044f\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0435\u043b\u0435 \u0432 \u0441\u0435\u0442\u0438 Zigbee, \u0430 \u043b\u0438\u0448\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u0435\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u043f\u043e\u0440\u0442\u043e\u0432. \u0410 \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0435\u043b\u0435, Z2M \u0448\u043b\u044e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\/\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.&nbsp;<\/p>\n<p>\u0422\u0443\u0442 \u043c\u044b \u043f\u043b\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u043c \u043a \u0442\u0435\u043c\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432. \u041d\u043e \u0447\u0442\u043e \u0436\u0435 \u043f\u0438\u0448\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f? \u0412\u043e\u0442 \u044d\u0442\u043e\u0442 \u043a\u0443\u0441\u043e\u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043f\u0440\u043e\u0448\u0435\u043b \u043c\u0438\u043c\u043e \u043c\u0435\u043d\u044f. \u041d\u0435 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0442\u0430\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0431\u0435\u0437 \u0430\u043a\u0446\u0435\u043d\u0442\u0430. \u041d\u0443 \u0442\u0438\u043f\u0430 \u201c\u0432\u043e\u0442 \u0435\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0432\u043e\u0442 \u0435\u0441\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435, \u0432\u043e\u0442 \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c\u201d. \u041d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a, \u0438 \u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a &#8212; \u043d\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442\u0441\u044f. \u0417\u0430\u0431\u0435\u0433\u0430\u044f \u0432\u043f\u0435\u0440\u0435\u0434, \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u0430\u0436\u043d\u043e. \u0418\u0442\u0430\u043a.<\/p>\n<ul>\n<li>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e (\u0438\u043b\u0438 \u0442\u043e\u0447\u043d\u0435\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440) \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0430 \u0438\u043b\u0438 \u0440\u0435\u043b\u0435), \u0438\u043b\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u0442\u0447\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0438\u043b\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u0438)<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u043f\u043e\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c. \u041f\u0440\u0438\u0447\u0435\u043c \u0434\u0435\u043b\u0430\u044e\u0442 \u043e\u043d\u0438 \u0443\u043c\u0435\u044e\u0442 \u043f\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043f\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443 (\u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e (\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440) \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f.<\/p>\n<ul>\n<li>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434 (\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443) \u0438\u043b\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0435\u043f\u043e\u0440\u0442\u044b (\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0443)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u0418 \u0432\u043e\u0442 \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u044e\u0441\u044c \u043d\u0430 \u0432\u0438\u0434\u0430\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0422\u0430\u043a \u0447\u0442\u043e \u0436\u0435 \u043b\u0443\u0447\u0448\u0435, \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043b\u0438 \u0440\u0435\u043f\u043e\u0440\u0442\u044b? \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 (\u043b\u0438\u0448\u044c) 2 \u043f\u0440\u0438\u043c\u0435\u0440\u0430:<\/p>\n<ul>\n<li>\n<p>\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u043e\u0439. \u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u044d\u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0431\u0443\u0434\u0438\u0442\u044c \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0443 (\u0441\u0435\u0440\u0432\u0435\u0440) \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0448\u043b\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440 \u0441\u043d\u0430\u0431\u0436\u0430\u0435\u0442 \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b. \u0422\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0438 \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u201c\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430\u201d. \u0422\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u0443 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442 (\u043a\u043b\u0438\u0435\u043d\u0442) \u043d\u0435 \u043f\u043e\u0431\u0443\u0436\u0434\u0430\u0435\u0442 \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440 (\u0441\u0435\u0440\u0432\u0435\u0440) \u043d\u0438 \u043a \u043a\u0430\u043a\u043e\u043c\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e, \u043d\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u043f\u043e\u0440\u0442\u044b \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b.&nbsp;<\/p>\n<ul>\n<li>\n<p>\u041a \u0441\u043b\u043e\u0432\u0443, \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0435 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u043e\u0432. \u041d\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442-\u0441\u0435\u0440\u0432\u0435\u0440 \u044d\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u041a\u043e\u0440\u043e\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0432\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u0443\u0442\u043d\u043e. \u041a\u0442\u043e \u043a\u043e\u0433\u043e \u043f\u043e\u0431\u0443\u0436\u0434\u0430\u0435\u0442 \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043b\u0438 \u0440\u0435\u043f\u043e\u0440\u0442\u044b &#8212; \u0432\u0441\u0435 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043d\u0435\u0436\u0435\u043b\u0438 \u043a\u0430\u043a-\u0442\u043e \u043f\u0440\u044f\u043c\u043e \u0434\u0438\u043a\u0442\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439. \u0418\u0437 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439 \u0432\u044b\u0448\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c-\u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043f\u043e\u0440\u0442\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043d\u0435\u0443\u043c\u0435\u0441\u0442\u043d\u043e &#8212; \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u043e.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0448 SwitchEndpoint \u0438\u0437 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0443. \u0420\u0430\u043d\u0435\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 tsZLO_OnOffLightDevice, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0434\u0435\u043b\u044f\u043b\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u043c\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e On\/Off \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 tsZLO_OnOffLightSwitchDevice, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 On\/Off \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e.&nbsp;<\/p>\n<pre><code class=\"cpp\">class SwitchEndpoint: public Endpoint {    protected:    tsZLO_OnOffLightSwitchDevice sSwitch;<\/code><\/pre>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0446\u0435\u043b\u043e\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430\u044f, \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438.<\/p>\n<pre><code class=\"cpp\">void SwitchEndpoint::init() {    \/\/ Initialize the endpoint    DBG_vPrintf(TRUE, \"SwitchEndpoint::init(): register On\/Off endpoint #%d...  \", getEndpointId());    teZCL_Status status = eZLO_RegisterOnOffLightSwitchEndPoint(getEndpointId(), &amp;EndpointManager::handleZclEvent, &amp;sSwitch);    DBG_vPrintf(TRUE, \"eApp_ZCL_RegisterEndpoint() status %d\\n\", status); ...<\/code><\/pre>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0442\u043e\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e<\/p>\n<pre><code class=\"cpp\">void SwitchEndpoint::reportStateChange() {    \/\/ Destination address - 0x0000 (coordinator)    tsZCL_Address addr;    addr.uAddress.u16DestinationAddress = 0x0000;    addr.eAddressMode = E_ZCL_AM_BOUND;     uint8 sequenceNo;    teZCL_Status status = eCLD_OnOffCommandSend(getEndpointId(),                                   1,                                   &amp;addr,                                   &amp;sequenceNo,                                   E_CLD_ONOFF_CMD_TOGGLE);    DBG_vPrintf(TRUE, \"Sending On\/Off command status: %02x\\n\", status); }<\/code><\/pre>\n<p>\u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430 (\u0430\u0434\u0440\u0435\u0441 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0432\u0430\u0436\u0435\u043d), \u043d\u043e \u0441 \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 E_ZCL_AM_BOUND &#8212; \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u0441\u0435\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c.<\/p>\n<p>\u0421 \u043a\u043e\u0434\u043e\u043c \u043a\u0430\u043a \u0431\u044b \u0432\u0441\u0435, \u0434\u0430 \u043d\u0435 \u0432\u0441\u0435. \u041f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u043b\u043e &#8212; \u043d\u0443\u0436\u043d\u043e \u0436\u0435 \u0435\u0449\u0435 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c. \u0410 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u044d\u0442\u043e\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 ZPS Config Editor. \u0422\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 (Output) \u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u0418\u0437 \u044d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0442\u043e\u043c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u0434 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b ZPSConfig.exe \u0438 \u0432\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/35c\/493\/a5c\/35c493a5c8e88b0210370c754a41a496.png\" width=\"1118\" height=\"516\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c. \u0412\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u0441\u043d\u0438\u0444\u0444\u0435\u0440\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/327\/928\/676\/3279286761aff7b0ab69f169e757baa6.png\" width=\"1437\" height=\"421\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 (\u0442\u043e\u0447\u043d\u0435\u0435 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f SwitchEndpoint::reportStateChange() \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438) \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0440\u0435\u043b\u0435 Xiaomi. \u042f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0442.\u043a. \u043c\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0440\u0435\u043b\u0435. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043e\u0442\u0441\u044b\u043b\u0430\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 Toggle (\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435).&nbsp;<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/da1\/9bb\/29e\/da19bb29ecb384e2a0bf7bfb348610ff.png\" width=\"1101\" height=\"215\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e, \u043d\u0430 \u0433\u043b\u0430\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438 \u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u043b\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0445\u043e\u0442\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b Zigbee \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0442\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0443 \u0441\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043a\u043e\u043c\u043d\u0430\u0442\u0443, \u0433\u0434\u0435 \u043f\u0440\u044f\u043c\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0430\u043c\u0438 \u043d\u0430\u0439\u0434\u0443\u0442 \u043f\u0443\u0442\u044c \u0434\u0440\u0443\u0433 \u043a \u0434\u0440\u0443\u0433\u0443 \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0437\u043b\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cdb\/2a3\/dc6\/cdb2a3dc6804d5104ac413a589e41ff8.png\" width=\"1476\" height=\"301\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043c\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e (f2e5) \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c Route Request \u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043a \u0440\u0435\u043b\u0435 (0xa6da). \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0430\u0439\u0434\u0435\u043d (Route Reply) \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0443\u0437\u0435\u043b (\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0440\u043e\u0443\u0442\u0435\u0440). \u0422.\u043e. \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u0438, \u0438 \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u043e\u0443\u0442\u0435\u0440\u044b.<\/p>\n<p><strong>\u041a\u043b\u0438\u0435\u043d\u0442-\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/strong><\/p>\n<p>\u0418 \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u043c\u044b \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u0442\u043e\u0433\u043e \u043a \u0447\u0435\u043c\u0443 \u0441\u0442\u0440\u0435\u043c\u0438\u043b\u0438\u0441\u044c &#8212; \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0440\u0435\u043b\u0435. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0438 \u0441 \u043a\u0435\u043c \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043b\u0438 \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0435\u0449\u044c\u044e \u0432 \u0441\u0435\u0431\u0435 \u0438 \u043d\u0438 \u0441 \u043a\u0435\u043c \u043d\u0435 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u0446\u0438\u0440\u0443\u0435\u0442.&nbsp;<\/p>\n<p>\u0410 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440? \u041c\u043e\u0436\u0435\u0442! \u041d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e Zigbee. \u0422\u043e\u0447\u043d\u0435\u0435 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439. Zigbee &#8212; \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e\u0433\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0445<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/11\/docs-05-3474-21-0csg-zigbee-specification.pdf\" rel=\"noopener noreferrer nofollow\"><u>ZigBee specification<\/u><\/a> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f &#8212; \u043a\u0430\u043a \u0438 \u043a\u0430\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u0435\u0433\u0430\u044e\u0442 \u0432 \u0441\u0435\u0442\u0438, \u043a\u0430\u043a \u043d\u0430 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/12\/07-5123-06-zigbee-cluster-library-specification.pdf\" rel=\"noopener noreferrer nofollow\"><u>ZigBee class library specification<\/u><\/a> \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u0441 \u043f\u043e\u043d\u044f\u0442\u0438\u0435\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043a\u0430\u043a\u0438\u0435 \u0431\u044b\u0432\u0430\u044e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 (On\/Off, Basic, OTA) \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u0434\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0438\u0437 \u043a\u0430\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e &#8212; \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043b\u0435\u043f\u0438\u0442\u044c \u0447\u0442\u043e \u0445\u043e\u0447\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/11\/docs-15-0014-05-0plo-Lighting-OccupancyDevice-Specification-V1.0.pdf\" rel=\"noopener noreferrer nofollow\"><u>ZigBee Lighting &amp; Occupancy (ZLO) Device Specification<\/u><\/a> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f. \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0435\u0442\u043a\u043e \u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0438\u0437 \u043a\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0447\u0430\u0441\u0442\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0435\u0431\u044f \u0432\u0435\u0441\u0442\u0438. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u043e\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 (\u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u044f \u0438 \u043a\u043e\u043d\u0434\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043e\u0445\u0440\u0430\u043d\u0430, \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044f, \u0438 \u0434\u0440\u0443\u0433\u0438\u0435)&nbsp;<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 ZLO \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cb9\/b51\/115\/cb9b51115606582446b9a8037d43b8a2.png\" alt=\"\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 ZigBee 3.0 Devices User Guide JN-UG-3114 \u043e\u0442 NXP, \u043d\u043e \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u0435\u0442\u0441\u044f \u0432 ZLO \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u0443 NXP \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435.\" title=\"\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 ZigBee 3.0 Devices User Guide JN-UG-3114 \u043e\u0442 NXP, \u043d\u043e \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u0435\u0442\u0441\u044f \u0432 ZLO \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u0443 NXP \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435.\" width=\"764\" height=\"392\"><figcaption>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 ZigBee 3.0 Devices User Guide JN-UG-3114 \u043e\u0442 NXP, \u043d\u043e \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u0435\u0442\u0441\u044f \u0432 ZLO \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u0443 NXP \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435.<\/figcaption><\/figure>\n<p>\u0410 \u0432\u043e\u0442 \u044d\u0442\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043e\u0442 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0438 (\u0441\u044e\u0434\u0430 \u0436\u0435 \u044f \u0431\u044b \u043e\u0442\u043d\u0435\u0441 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0435 \u0440\u0435\u043b\u0435).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ca5\/4c5\/968\/ca54c59685ee960a5229729733817ab5.png\" width=\"765\" height=\"463\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 ZLO Specification \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0434\u0432\u0443\u0445 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435 \u0438\u043b\u0438 \u0438\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0420\u0435\u0431\u044f\u0442\u0430 \u0432 NXP \u0442\u043e\u0436\u0435 \u043c\u043e\u043b\u043e\u0434\u0446\u044b, \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 SDK (\u043e\u043d\u0438 \u043b\u0435\u0436\u0430\u0442 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 Components\/ZCL\/Devices). \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0434\u0432\u0443\u043c\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438<\/p>\n<ul>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 tsZLO_***Device, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0435\u0439 eZLO_Register***EndPoint(), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432 \u0441\u0442\u0435\u043a\u0435 Zigbee \u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 \u0435\u0435 \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0430\u044f \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u0441\u0435\u0442\u0438 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 &#8212; \u0432\u0441\u0435 \u0445\u043e\u0442\u044c \u0447\u0435\u043c \u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, ZLO \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043f\u0438\u0447\u043a\u0430\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 &#8212; \u0438 Basic (\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430), \u0438 On\/Off \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0438 OTA (\u043a\u043e\u0442\u043e\u0440\u043e\u0435, \u0432 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e, \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442), \u0438 \u0441\u0446\u0435\u043d\u044b (\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435 \u0431\u044b\u0442\u044c). \u0412\u0441\u0435 \u044d\u0442\u043e \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0437\u0430\u043f\u0443\u0442\u044b\u0432\u0430\u0435\u0442.<\/p>\n<p>\u041f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 ZLO \u044d\u0442\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f\u043e\u0432\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 &#8212; \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438, \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0438, \u0434\u0430\u0442\u0447\u0438\u043a\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Zigbee \u0432\u0438\u0434\u0438\u043c\u043e \u0445\u043e\u0442\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e, \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c \u043f\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0443 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0432\u0435\u043d\u0434\u043e\u0440\u0430. \u0422\u043e\u043b\u044c\u043a\u043e \u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0441\u0432\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 &#8212; \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0441\u0432\u043e\u044e \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u043a \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u0445\u0430\u0431\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043a\u0430\u043a zigbee2mqtt \u0438 SLS, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0435\u0442\u044c..<\/p>\n<p>\u041f\u043e\u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0435\u043c \u0435\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e. \u041c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0432\u0441\u0435 \u0432\u043e\u0442 \u044d\u0442\u0438 \u0448\u0442\u0443\u043a\u0438 \u0432\u0440\u043e\u0434\u0435 \u201c\u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u044d\u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442 \u0438 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u0410 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0430 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 &#8212; \u0443 \u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0435\u0441\u0442\u044c\u201d \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u0437\u0430\u043f\u0443\u0442\u044b\u0432\u0430\u044e\u0442. \u0412\u043e\u0442 \u0432\u0437\u044f\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a\u043e\u0439 \u043d\u0438\u0431\u0443\u0434\u044c \u0443\u043c\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0432\u0440\u043e\u0434\u0435 Xiaomi Aqara. \u041e\u043d \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c &#8212; \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0438 \u043e\u043d \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 &#8212; \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u0422.\u0435. \u043f\u043e \u0441\u0443\u0442\u0438 \u0443\u043c\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0435\u043b\u0435 \u0441 \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438, \u043d\u043e \u0441\u0430\u043c \u043e\u043d \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0438\u043a\u0430\u043a\u0438\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 Zigbee \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043d\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 (\u0438\u0431\u043e \u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442).<\/p>\n<p>\u0410 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043d\u0443\u0436\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432? \u0414\u0430, \u043c\u043e\u0436\u043d\u043e. \u0418, \u043f\u043e\u0445\u043e\u0436\u0435, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0444\u0430\u0431\u0440\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0442\u043e\u0436\u0435 \u043f\u043e\u0448\u043b\u0438 \u044d\u0442\u0438\u043c \u043f\u0443\u0442\u0435\u043c.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043a\u0430 \u043d\u0430\u0448 \u0443\u043c\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043d\u0438 \u0441 \u0447\u0435\u043c \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043b\u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043f\u043e\u0441\u044b\u043b\u0430\u044f \u043e\u0442\u0447\u0435\u0442\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0441\u0432\u044f\u0437\u0430\u043b\u0438 \u0441 \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u043d\u0430\u0448 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f (\u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0442.\u0435. \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0435\u0437 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f, \u043e\u0442\u0447\u0430\u0441\u0442\u0438, \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b \u0442\u0435\u043c\u0443 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043c\u043e\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0434\u0432\u0443\u0445 On\/Off \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 (\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e). \u0414\u0440\u0443\u0433\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 (Groups, Scenes, Identify) \u044f \u043f\u043e\u043a\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u044f \u0431\u0443\u0434\u0443 \u043f\u043e\u0434\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u0432 control_bridge.h &#8212; \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440 On\/Off.<\/p>\n<p>\u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 SwitchEndpoint \u0443 \u043c\u0435\u043d\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f, \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435. \u0415\u0441\u043b\u0438 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f &#8212; \u044f \u0441\u0434\u0435\u043b\u0430\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 SwitchEndpoint. \u0415\u0441\u043b\u0438 \u043c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b) &#8212; \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0436\u0438\u0442\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435. \u041d\u0443 \u0438 \u043e\u0431\u0449\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b (Basic, OTA) \u044f \u0443\u0436\u0435 \u0432\u044b\u043d\u0435\u0441 \u0432 \u043a\u043b\u0430\u0441\u0441 BasicClusterEndpoint, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0436\u0438\u0432\u0435\u0442 \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043c\u043e\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u043e\u0434\u043d\u0438\u043c SwitchEndpoint \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ca\/4ab\/5bb\/4ca4ab5bbfc7e2ef1bafd4998cc09907.png\" width=\"346\" height=\"664\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043e\u0434.<\/p>\n<pre><code class=\"cpp\">\/\/ List of cluster instances (descriptor objects) that are included into the endpoint struct OnOffClusterInstances {    tsZCL_ClusterInstance sOnOffClient;    tsZCL_ClusterInstance sOnOffServer; } __attribute__ ((aligned(4)));   class SwitchEndpoint: public Endpoint {    protected:    tsZCL_EndPointDefinition sEndPoint;    OnOffClusterInstances sClusterInstance;    tsCLD_OnOff sOnOffClientCluster;    tsCLD_OnOff sOnOffServerCluster;    tsCLD_OnOffCustomDataStructure sOnOffServerCustomDataStructure;<\/code><\/pre>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b tsZLO_OnOffLightDevice \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/p>\n<ul>\n<li>\n<p>sEndPoint &#8212; \u0414\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438. \u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432 \u043d\u0435\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0438 \u0433\u0434\u0435 \u043e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/p>\n<\/li>\n<li>\n<p>sClusterInstance &#8212; \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432. \u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432 \u043d\u0435\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u043d \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u0438\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c<\/p>\n<\/li>\n<li>\n<p>sOnOffClientCluster \u0438 sOnOffServerCluster &#8212; \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>sOnOffServerCustomDataStructure &#8212; \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u041d\u0430 \u0434\u0435\u043b\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c\u0438 API<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0441\u0435 \u0434\u0435\u043b\u043e \u0431\u0443\u0434\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<pre><code class=\"cpp\">void SwitchEndpoint::registerServerCluster() {    \/\/ Initialize On\/Off server cluser    teZCL_Status status = eCLD_OnOffCreateOnOff(&amp;sClusterInstance.sOnOffServer,                                                TRUE,                               \/\/ Server                                                &amp;sCLD_OnOff,                                                &amp;sOnOffServerCluster,                                                &amp;au8OnOffAttributeControlBits[0],                                                &amp;sOnOffServerCustomDataStructure);    if( status != E_ZCL_SUCCESS)        DBG_vPrintf(TRUE, \"SwitchEndpoint::init(): Failed to create OnOff server cluster instance. status=%d\\n\", status); }  void SwitchEndpoint::registerClientCluster() {    \/\/ Initialize On\/Off client cluser    teZCL_Status status = eCLD_OnOffCreateOnOff(&amp;sClusterInstance.sOnOffClient,                                                FALSE,                              \/\/ Client                                                &amp;sCLD_OnOff,                                                &amp;sOnOffClientCluster,                                                &amp;au8OnOffAttributeControlBits[0],                                                NULL);    if( status != E_ZCL_SUCCESS)        DBG_vPrintf(TRUE, \"SwitchEndpoint::init(): Failed to create OnOff client cluster instance. status=%d\\n\", status); }  void SwitchEndpoint::registerEndpoint() {    \/\/ Initialize endpoint structure    sEndPoint.u8EndPointNumber = getEndpointId();    sEndPoint.u16ManufacturerCode = ZCL_MANUFACTURER_CODE;    sEndPoint.u16ProfileEnum = HA_PROFILE_ID;    sEndPoint.bIsManufacturerSpecificProfile = FALSE;    sEndPoint.u16NumberOfClusters = sizeof(OnOffClusterInstances) \/ sizeof(tsZCL_ClusterInstance);    sEndPoint.psClusterInstance = (tsZCL_ClusterInstance*)&amp;sClusterInstance;    sEndPoint.bDisableDefaultResponse = ZCL_DISABLE_DEFAULT_RESPONSES;    sEndPoint.pCallBackFunctions = &amp;EndpointManager::handleZclEvent;     \/\/ Register the endpoint with all the clusters in it    teZCL_Status status = eZCL_Register(&amp;sEndPoint);    DBG_vPrintf(TRUE, \"SwitchEndpoint::init(): Register Basic Cluster. status=%d\\n\", status); }  void SwitchEndpoint::init() {    \/\/ Register all clusters and endpoint itself    registerServerCluster();    registerClientCluster();    registerEndpoint(); ... } <\/code><\/pre>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (eCLD_OnOffCreateOnOff()), \u0430 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 eZCL_Register(). \u0415\u0441\u043b\u0438 \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043b\u0430\u043f\u0448\u0443 \u0438\u0437 \u0434\u0435\u0444\u0430\u0439\u043d\u043e\u0432 \u043a\u0430\u043a \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u0441\u043b\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0440\u0435\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434. \u0418 \u0442\u043e \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 \u0432\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438.<\/p>\n<pre><code class=\"cpp\">void SwitchEndpoint::reportState() {    \/\/ Destination address - 0x0000 (coordinator)    tsZCL_Address addr;    addr.uAddress.u16DestinationAddress = 0x0000;    addr.eAddressMode = E_ZCL_AM_SHORT;     \/\/ Send the report    DBG_vPrintf(TRUE, \"Reporting attribute EP=%d value=%d... \", getEndpointId(), sOnOffServerCluster.bOnOff);    PDUM_thAPduInstance myPDUM_thAPduInstance = hZCL_AllocateAPduInstance();    teZCL_Status status = eZCL_ReportAttribute(&amp;addr,                                               GENERAL_CLUSTER_ID_ONOFF,                                               E_CLD_ONOFF_ATTR_ID_ONOFF,                                               getEndpointId(),                                               1,                                               myPDUM_thAPduInstance);    PDUM_eAPduFreeAPduInstance(myPDUM_thAPduInstance);    DBG_vPrintf(TRUE, \"status: %02x\\n\", status); }  void SwitchEndpoint::sendCommandToBoundDevices() {    \/\/ Destination address does not matter - we will send to all bound devices    tsZCL_Address addr;    addr.uAddress.u16DestinationAddress = 0x0000;    addr.eAddressMode = E_ZCL_AM_BOUND;     \/\/ Send the toggle command    uint8 sequenceNo;    teZCL_Status status = eCLD_OnOffCommandSend(getEndpointId(),                                   1,                                   &amp;addr,                                   &amp;sequenceNo,                                   E_CLD_ONOFF_CMD_TOGGLE);    DBG_vPrintf(TRUE, \"Sending On\/Off command status: %02x\\n\", status); }  void SwitchEndpoint::reportStateChange() {    if(runsInServerMode())        reportState();    else        sendCommandToBoundDevices(); } <\/code><\/pre>\n<p>\u0420\u0435\u043f\u043e\u0440\u0442\u044b \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c, \u0430 \u0432\u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 E_ZCL_AM_BOUND. \u0422\u0443\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0432\u044b\u0431\u043e\u0440 \u043a\u043e\u0433\u0434\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u043f\u043e\u0440\u0442\u044b, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0440\u0435\u0448\u0438\u043b \u0442\u0430\u043a: \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u0435\u0442 \u0445\u043e\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430, \u0442\u043e \u043e\u043d\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u0415\u0441\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0435\u0442, \u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u043f\u043e\u0440\u0442\u044b.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0435\u0441\u0442\u044c \u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0432\u044f\u0437\u0435\u0439.<\/p>\n<pre><code class=\"cpp\">bool SwitchEndpoint::runsInServerMode() const {    return !hasBindings(getEndpointId(), GENERAL_CLUSTER_ID_ONOFF); }  bool hasBindings(uint8 ep, uint16 clusterID) {    \/\/ Get pointers    ZPS_tsAplAib * aib = ZPS_psAplAibGetAib();    ZPS_tsAplApsmeBindingTableType * bindingTable = aib-&gt;psAplApsmeAibBindingTable;    ZPS_tsAplApsmeBindingTable* table = bindingTable-&gt;psAplApsmeBindingTable;     if(!table)        return false;     for(uint32 i=0; i &lt; table-&gt;u32SizeOfBindingTable; i++)    {        ZPS_tsAplApsmeBindingTableStoreEntry * entry = table-&gt;pvAplApsmeBindingTableEntryForSpSrcAddr + i;        if(entry-&gt;u8SourceEndpoint == ep &amp;&amp; entry-&gt;u16ClusterId == clusterID)            return true;    }     return false; }<\/code><\/pre>\n<p>\u041d\u0443\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438. \u0414\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.  <\/p>\n<p><strong>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/strong><\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0435\u0431\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442, \u0438 \u0442\u0443\u0442 \u0431\u0430\u0446, \u043f\u0440\u0438\u043b\u0435\u0442\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u201c\u0441\u0432\u044f\u0436\u0438 \u0441\u0432\u043e\u044e \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c 0x0123456789abcdef\u201d. \u041d\u0443 \u043e\u043a, \u0432\u0440\u043e\u0434\u0435 \u0432\u0441\u044f \u043d\u0443\u0436\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c &#8212; 64-\u0431\u0438\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u0421\u0442\u0435\u043a ZIgbee \u0434\u043b\u044f \u043d\u0430\u0441 \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0432\u044f\u0437\u0435\u0439. \u042d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b?<\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043d\u0435\u0442. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b Zigbee \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 64-\u0431\u0438\u0442\u043d\u044b\u043c\u0438 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 &#8212; \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 16-\u0431\u0438\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0435\u0449\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f. \u0422\u0430\u043a \u0432\u043e\u0442, \u0432 \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0422\u0430\u043a\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u043c<\/p>\n<ul>\n<li>\n<p>\u201c\u0432\u044b\u0445\u043e\u0434\u0438\u043c\u201d \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u0437 \u0441\u0435\u0442\u0438, \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0431\u0440\u043e\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043d\u043e\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u0441\u0435\u0442\u044c. \u0412\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0432\u044f\u0437\u0435\u0439 \u0438 \u043a\u0435\u0448\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0443\u0441\u0442\u044b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0421 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0441 \u043a\u0430\u043a\u0438\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/strong>: \u0422\u0438\u0441\u043a\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0438\u0448\u0435\u0442 \u0447\u0442\u043e \u043e\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 On\/Off \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443, \u0438 \u0434\u0430\u0436\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0435 \u0432\u0438\u0434\u043d\u043e. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043d\u0438\u0444\u0444\u0435\u0440\u0443 \u043d\u0438\u043a\u0430\u043a\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0427\u0435\u0440\u0435\u0437 \u0434\u0435\u0441\u044f\u0442\u043e\u043a-\u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0435\u043a\u0443\u043d\u0434 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0441\u0432\u043e\u0435\u0439 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0437\u0430\u044f\u0432\u043b\u044f\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u201cLink Status\u201d. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u044d\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 \u201c\u044f \u0437\u0434\u0435\u0441\u044c, \u043d\u0435 \u0437\u0430\u0431\u044b\u043b\u0438 \u043f\u0440\u043e \u043c\u0435\u043d\u044f? \u041c\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u0442\u0430\u043a\u043e\u0439-\u0442\u043e\u201d.<\/p>\n<\/li>\n<li>\n<p>\u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u0434\u0440\u0443\u0433 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 \u0446\u0435\u043b\u0435\u0432\u044b\u043c 64-\u0431\u0438\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c, \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0431\u0443\u043b\u044c\u043a\u043d\u0443\u043b\u043e &#8212; \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u0422\u0435\u043f\u0435\u0440\u044c 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d, \u0438 \u0441 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435-\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0437\u0434\u043e\u0440\u043e\u0432\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f. \u041d\u0430\u043c \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443, \u043d\u043e \u043a\u0430\u043a\u043e\u0439 \u0443 \u043d\u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441 \u043c\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u043c. \u041d\u043e \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c: \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u043d\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0431\u043e \u0432\u0441\u0435\u0445 &#8212; \u0441\u043f\u0440\u043e\u0441\u0438\u043c \u0443 \u043d\u0435\u0433\u043e \u0447\u0442\u043e \u0434\u0430 \u043a\u0430\u043a. \u041c\u043e\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u0436\u0430\u0445\u043d\u0443\u0442\u044c \u0438 \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0443 \u0432\u0441\u0435\u0439 \u0441\u0435\u0442\u0438 &#8212; \u043a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0437\u043d\u0430\u0435\u0442. \u041a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a ZPS_EVENT_ZDO_BIND.<\/p>\n<pre><code class=\"cpp\">void ZigbeeDevice::handleZdoBindEvent(ZPS_tsAfZdoBindEvent * pEvent) {    \/\/ Address of interest    ZPS_tsAplZdpNwkAddrReq req = {pEvent-&gt;uDstAddr.u64Addr, 0, 0};     \/\/ Target addr (Broadcast)    ZPS_tuAddress uDstAddr;    uDstAddr.u16Addr = 0xFFFF;   \/\/ Broadcast     \/\/ Perform the request    uint8 u8SeqNumber;    PDUM_thAPduInstance hAPduInst = PDUM_hAPduAllocateAPduInstance(apduZDP);    ZPS_teStatus status = ZPS_eAplZdpNwkAddrRequest(hAPduInst,                                                    uDstAddr,     \/\/ Broadcast addr                                                    FALSE,                                                    &amp;u8SeqNumber,                                                    &amp;req);    DBG_vPrintf(TRUE, \"ZigbeeDevice::handleZdoBindUnbindEvent(): looking for network addr for %016llx. Status=%02x\\n\", pEvent-&gt;uDstAddr.u64Addr, status); }  void ZigbeeDevice::handleZdoEvents(ZPS_tsAfEvent* psStackEvent) { ...    switch(psStackEvent-&gt;eType)    {        case ZPS_EVENT_ZDO_BIND:            handleZdoBindEvent(&amp;psStackEvent-&gt;uEvent.sZdoBindEvent);            break; <\/code><\/pre>\n<p>\u0412 \u0441\u043d\u0438\u0444\u0444\u0435\u0440\u0435 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/20c\/ea8\/66f\/20cea866f5d17907956cdf0df2fcaa91.png\" width=\"1600\" height=\"825\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 Bind Request \u043d\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f \u0430 \u043a\u0442\u043e \u0436\u0435 \u0436\u0438\u0432\u0435\u0442 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 60:a4:23:ff:fe:ab:4e:fb. \u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0443\u0436\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c Link Status \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044f \u043d\u0430\u0441 (\u0438 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445) \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u0435\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 0xa6da. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0438 \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0435\u0448\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0435\u0442 \u043a\u043e\u043c\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0430 \u0441\u0430\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e.<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 2 &#8212; \u043f\u0440\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0438 \u043a\u043e\u043f\u0430\u043d\u0438\u0435 \u0432 \u043a\u0438\u0448\u043e\u0447\u043a\u0430\u0445 Zigbee \u0441\u0442\u0435\u043a\u0430<\/h3>\n<p>\u0412\u0441\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0448\u0442\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0417\u0430\u0447\u0435\u043c \u044f \u0432\u0430\u043c \u0442\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e? \u0410 \u0437\u0430\u0442\u0435\u043c, \u0447\u0442\u043e \u0442\u0443\u0442 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u0442\u044c \u043a\u043e\u0435 \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u042d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u043d\u043e\u0441\u0438\u0442 \u0447\u0438\u0441\u0442\u043e \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441.<\/p>\n<p>\u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u0435\u0449\u0435 \u0440\u0430\u0437 \u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044e ZPS_EVENT_ZDO_BIND. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f Zigbee \u0441\u0442\u0435\u043a\u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u044e\u0442, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. \u041c\u043e\u043b \u201c\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a, \u0442\u0443\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0442\u0430\u043a\u0430\u044f. \u0427\u0442\u043e \u043d\u0430\u043c \u0434\u0435\u043b\u0430\u0442\u044c? \u043e\u0442\u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0439, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430\u201d. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 ZPS_EVENT_ZDO_BIND \u044f (\u043d\u0435\u0432\u0435\u0440\u043d\u043e) \u0442\u0440\u0430\u043a\u0442\u043e\u0432\u0430\u043b \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c &#8212; \u043d\u0430\u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0441\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0442 \u043f\u043e \u0442\u0430\u043a\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c, \u0438 \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. <em>\u0422\u0435\u043f\u0435\u0440\u044c-\u0442\u043e <\/em>\u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 Zigbee \u0441\u0442\u0435\u043a\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u041d\u043e <em>\u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434<\/em> \u044f \u043e\u0431 \u044d\u0442\u043e\u043c \u0435\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u043b, \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.&nbsp;<\/p>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043a\u043e\u0434\u0443 BDB Find and Bind \u0441\u0430\u043c\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ZPS_eAplZdoBind(). \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a Bind Request, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u043b ZPS_eAplZdoBind().&nbsp;<\/p>\n<pre><code class=\"cpp\">void ZigbeeDevice::handleZdoBindEvent(ZPS_tsAfZdoBindEvent * pEvent) {    \/\/ We do not support group address as of now    if(pEvent-&gt;u8DstAddrMode != ZPS_E_ADDR_MODE_IEEE)    {        DBG_vPrintf(TRUE, \"ZigbeeDevice::handleZdoBindEvent() WARNING: Only IEEE address mode is supported\\n\");        return;    }      \/\/ Prepare short and full address    uint16 shortAddr = ZPS_u16AplZdoLookupAddr(pEvent-&gt;uDstAddr.u64Addr);     \/\/ Bind endpoints    ZPS_teStatus status = ZPS_eAplZdoBind(GENERAL_CLUSTER_ID_ONOFF,                                          pEvent-&gt;u8SrcEp,                                          shortAddr,                                          ieeeAddr,                                          pEvent-&gt;u8DstEp);    DBG_vPrintf(TRUE, \"Binding to %04x\/%016llx SrcEP=%d to DstEP=%d Status=%d\\n\", shortAddr, ieeeAddr, pEvent-&gt;u8SrcEp, pEvent-&gt;u8DstEp, status);     vDisplayBindTable();    vDisplayAddressMap(); } <\/code><\/pre>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 Bind Request \u0432 \u043f\u043e\u043b\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 2 \u0432\u0438\u0434\u0430 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 &#8212; \u043f\u043e\u043b\u043d\u044b\u0439 64-\u0431\u0438\u0442\u043d\u044b\u0439 IEEE \u0430\u0434\u0440\u0435\u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0438\u043b\u0438 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0433\u0440\u0443\u043f\u043f\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0413\u0440\u0443\u043f\u043f\u044b \u043c\u044b \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u043c\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: \u0444\u0443\u043d\u043a\u0446\u0438\u044f ZPS_eAplZdoBind() \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 ClusterID, \u043d\u043e \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 ZPS_tsAfZdoBindEvent, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442 \u043d\u0430\u043c \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043d\u0435\u0442.&nbsp;<\/p>\n<pre><code class=\"cpp\">typedef struct {    ZPS_tuAddress uDstAddr;    uint8 u8DstAddrMode;    uint8 u8SrcEp;    uint8 u8DstEp; } ZPS_tsAfZdoBindEvent;<\/code><\/pre>\n<p>\u041d\u043e \u043c\u044b \u0436\u0435 \u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0432 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 Zigbee \u043f\u043e\u043b\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u043a\u0430 \u044f \u0437\u0430\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u043b clusterId \u0432 GENERAL_CLUSTER_ID_ONOFF (\u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u043d\u0435 \u0443\u043c\u0435\u0435\u0442). \u041d\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043c\u0435\u043d\u044f \u0437\u0430\u0446\u0435\u043f\u0438\u043b\u043e. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0439 \u043c\u0430\u0433\u0438\u0438. \u042f \u041d\u0415 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e, \u0442.\u043a. \u043e\u043d\u0438 \u0431\u0430\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0445\u0430\u043a\u043e\u0432 \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u043c API. \u0421\u043a\u043e\u0440\u0435\u0435 \u0442\u0443\u0442 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0440\u0430\u0441\u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 2 \u0431\u0430\u0439\u0442\u0430 &#8212; \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0441\u0443\u0449\u0430\u044f \u043c\u0435\u043b\u043e\u0447\u044c, \u043d\u043e \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u044d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c Zigbee \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u044f \u043f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0412\u0415\u0421\u042c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 API \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043e \u0442\u043e\u0433\u043e \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0442\u0435\u043a, \u043d\u043e \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0442\u0430\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u043c \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438. \u0412\u0441\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 void * \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0438 \u043f\u043e\u0438\u043c\u0435\u0442\u044c \u0447\u0442\u043e \u043d\u0438\u0431\u0443\u0434\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0442\u0430\u043c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u042f \u0432 \u0442\u0430\u0439\u043d\u0435 \u043d\u0430\u0434\u0435\u044f\u043b\u0441\u044f, \u0447\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0433\u0434\u0435 \u043d\u0438\u0431\u0443\u0434\u044c \u0445\u0440\u0430\u043d\u044f\u0442 \u0445\u0435\u043d\u0434\u043b PDU \u043f\u0430\u043a\u0435\u0442\u0430 (\u043a\u0443\u0441\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438, \u0433\u0434\u0435 \u0436\u0438\u0432\u0443\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u0430), \u043d\u043e \u0434\u043b\u044f Bind Request\u2019\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u0438\u0435\u0437\u0436\u0430\u0435\u0442. \u041e\u0442\u0447\u0430\u044f\u0432\u0448\u0438\u0441\u044c <a href=\"https:\/\/community.nxp.com\/t5\/Wireless-Connectivity\/JN-SW-4170-How-does-direct-Zigbee-binding-work\/m-p\/1293628\/highlight\/false#M11262\" rel=\"noopener noreferrer nofollow\"><u>\u044f \u0434\u0430\u0436\u0435 \u0441\u043f\u0440\u043e\u0441\u0438\u043b \u0442\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443<\/u><\/a>, \u043d\u043e \u0442\u0430\u043c \u043f\u043e\u043a\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u043d\u044f\u0442\u043d\u043e\u0433\u043e \u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u0445\u0430\u0440\u0434\u043a\u043e\u0434, \u043d\u043e \u0437\u0430\u0442\u043e\u043b\u043a\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438. \u0418\u0434\u0435\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c. \u0415\u0441\u043b\u0438 \u043d\u0430\u0441 \u043f\u0440\u043e\u0441\u044f\u0442 \u0447\u0435\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0441 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u21162, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443 \u043d\u0430\u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c, \u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 GENERAL_CLUSTER_ID_ONOFF (0x0006). \u041d\u0443 \u0430 \u0435\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043a \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u0430, \u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0442\u0435\u0440\u043c\u043e\u043c\u0435\u0442\u0440\u0430 (0x0402).&nbsp;<\/p>\n<p>\u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u044d\u0442\u0430 \u0438 \u0431\u0435\u0437 \u0442\u043e\u0433\u043e \u043d\u0435\u043d\u0430\u0434\u0435\u0436\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0448 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443, \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u043d\u0443\u044e \u044d\u043d\u0435\u0440\u0433\u0438\u044e &#8212; \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u043c \u043a\u0430\u043a\u043e\u0439 \u0436\u0435 \u043d\u043e\u043c\u0435\u0440 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c.<\/p>\n<p>\u041b\u0430\u0434\u043d\u043e, \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0435\u043c. \u041f\u0443\u0441\u043a\u0430\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 Zigbee \u0441\u0442\u0435\u043a\u0430 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442\u0443, \u043d\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c objdump, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u0445\u043e\u0442\u044c \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438. \u042f \u0432\u0441\u0435 \u0442\u0430\u043a\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043d\u0430\u0439\u0442\u0438 \u043c\u0435\u0441\u0442\u043e \u0433\u0434\u0435 \u043f\u0430\u0440\u0441\u0438\u0442\u0441\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 ZPS_tsAfZdoBindEvent. \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 libZPSAPL_JN516x.a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0441\u044f \u0444\u0430\u0439\u043b\u0438\u043a zps_apl_zdo_bind_unbind_server.o. \u0421\u0443\u0434\u044f \u043f\u043e \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e (\u0434\u0430 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442) \u044d\u0442\u043e \u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 Bind\/Unbind \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u0412 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b.<\/p>\n<pre><code>00000000 l    d  .text.zps_vAplZdoBindUnbindServerInit\t00000000 .text.zps_vAplZdoBindUnbindServerInit 00000000 l    d  .rodata.str1.1\t00000000 .rodata.str1.1 00000000 l    d  .text.u8ZdoBindUnbindServerUnpackApdu\t00000000 .text.u8ZdoBindUnbindServerUnpackApdu 00000000 l    d  .text.vAplZdoBindUnbindServerMapApsmeToZdp\t00000000 .text.vAplZdoBindUnbindServerMapApsmeToZdp 00000000 l    d  .text.bAplZdoBindUnbindServerProcessApdu\t00000000 .text.bAplZdoBindUnbindServerProcessApdu 00000000 l    d  .text.zps_bAplZdoBindUnbindServer\t00000000 .text.zps_bAplZdoBindUnbindServer 00000000 l    d  .text.ZPS_vZdoSetBindCallback\t00000000 .text.ZPS_vZdoSetBindCallback 00000000 l    d  .bss.pfBindAllowed\t00000000 .bss.pfBindAllowed 00000000 l    d  .bss.psBindUnbindServerContext\t00000000 .bss.psBindUnbindServerContext 00000000 l    d  .zps_apl_ZdoBindUnbindServerContextSize\t00000000 .zps_apl_ZdoBindUnbindServerContextSize <\/code><\/pre>\n<p>\u042d\u0442\u043e \u0436\u0435 \u043f\u0440\u044f\u043c \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e! \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e u8ZdoBindUnbindServerUnpackApdu(), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0443\u0434\u044f \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u043e\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041a\u0441\u0442\u0430\u0442\u0438 \u0433\u043e\u0432\u043e\u0440\u044f, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 Bind Request \u0442\u0430\u043a<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aa4\/216\/021\/aa4216021324cc1f0b63d13d3c4b549e.png\" width=\"888\" height=\"712\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f, \u044f \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043d \u0432 ABI \u0438 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u043e\u0441\u043b\u0430\u0432\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440, \u0430 \u0443\u0436 \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0438 \u043f\u043e\u0434\u0430\u0432\u043d\u043e. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0441\u0435 \u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 <a href=\"https:\/\/alephsecurity.com\/2019\/07\/09\/xiaomi-zigbee-2\/\" rel=\"noopener noreferrer nofollow\"><u>\u0432\u043e\u0442 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f<\/u><\/a> \u0434\u0430\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0418 \u0445\u043e\u0442\u044f \u0434\u0435\u0442\u0430\u043b\u0438 \u043c\u043d\u0435 \u043f\u043e \u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b, \u0432 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c \u044f \u0432\u0438\u0436\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u044f zps_apl_zdo_bind_unbind_server.<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435\u043c \u0437\u0430\u0432\u0435\u0434\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f zps_bAplZdoBindUnbindServer(). \u041e\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0433\u0434\u0435-\u0442\u043e \u0438\u0437-\u043f\u043e\u0434 zps_taskZPS(), \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0443 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 zps_bAplZdoBindUnbindServer() \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430, \u0441\u0443\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0430 \u043d\u0435 \u044f\u0441\u043d\u0430. \u041d\u043e \u0437\u0430\u0442\u043e \u0442\u0430\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f bAplZdoBindUnbindServerProcessApdu(), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0443\u0434\u044f \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c<\/p>\n<ul>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f u8ZdoBindUnbindServerUnpackApdu() \u043f\u0430\u0440\u0441\u0438\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442<\/p>\n<ul>\n<li>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0430\u0440\u0441\u044f\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0435 4 \u043f\u043e\u043b\u044f<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u043e\u043b\u044f DstAddrMode \u043f\u0430\u0440\u0441\u044f\u0442\u0441\u044f \u043b\u0438\u0431\u043e 2 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u043e\u043b\u044f, \u043b\u0438\u0431\u043e \u043e\u0434\u0438\u043d 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441<\/p>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f u8ZdoBindUnbindServerUnpackApdu() \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0435 \u043f\u043e\u043b\u044f \u0432 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u043e\u0434\u0435 \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u044f\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u044f ClusterID &#8212; \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u044d\u0442\u043e \u043f\u043e\u043b\u0435 \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b\u0437\u043e\u0432\u0430 PDUM_eAPduFreeAPduInstance()<\/p>\n<ul>\n<li>\n<p>\u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u043e\u043c\u0430\u0435\u0442 \u0438\u0434\u0435\u044e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u0435\u0449\u0435 \u0440\u0430\u0437\u043e\u043a \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0435\u0441\u0442\u0435<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0434\u0435\u0442 \u0442\u043e \u043b\u0438 switch, \u0442\u043e \u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438, \u0441\u043c\u044b\u0441\u043b \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0442\u0440\u0443\u0434\u043d\u043e \u043d\u0435 \u0437\u043d\u0430\u044f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u043e\u0442 \u044d\u0442\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0438\u0437 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0445\u043e\u0436\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b ZPS_tsAfZdoBindEvent<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f pfBindAllowed \u0438, \u043f\u043e\u0445\u043e\u0436\u0435, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u043b\u0431\u0435\u043a \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f Bind Response \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 zps_eAplApsmeBindReqRsp()<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 Bind Response \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u044b\u0437\u043e\u0432\u044b zps_eAplZdpBindResponse()\/zps_eZdpUnbindResponse() \u0438 zps_eAplZdoSendZdpResponse(), \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0432\u0441\u0435 \u0441\u0440\u0430\u0437\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0443\u0442 \u0436\u0435 \u0437\u0430\u043f\u0438\u0441\u044c \u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 Binding Table, \u043d\u043e \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0433\u043b\u0430\u0437 \u0437\u0430\u0446\u0435\u043f\u0438\u043b\u0441\u044f \u0437\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 pfBindAllowed. \u0421\u0443\u0434\u044f \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0435\u0448\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043b\u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u0438\u043b\u0438 \u043d\u0435\u0442. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ZPS_vZdoSetBindCallback().&nbsp;<\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0447\u0442\u043e \u043d\u0438\u0431\u0443\u0434\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c. \u042f \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043b\u044e\u0431\u043b\u044e \u044f\u0437\u044b\u043a C \u0437\u0430 \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 void * \u0438 \u0441\u043b\u0430\u0431\u043e\u0439 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043d\u0430\u043c \u043d\u0430 \u0440\u0443\u043a\u0443. \u0424\u0443\u043d\u043a\u0446\u0438\u044f ZPS_vZdoSetBindCallback() \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e API, \u043d\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0435 \u0441\u0432\u043e\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"cpp\">extern \"C\" void ZPS_vZdoSetBindCallback(void *);<\/code><\/pre>\n<p>\u041c\u0435\u0442\u043e\u0434\u043e\u043c \u0442\u044b\u043a\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0443\u0447\u0430\u044f \u0434\u0438\u0437\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 bAplZdoBindUnbindServerProcessApdu() \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 5 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432.  <\/p>\n<pre><code class=\"cpp\">uint8 bindCallback(uint16 cmd, uint64 *addr, uint16 clusterID, uint8 dstEP, uint8 srcEP, uint8 addrMode) {    DBG_vPrintf(TRUE, \"+_+_+_ bindCallback(): cmd=%04x, addr=0x%016llx, ClusterID=%04x, dstEP=%d, srcEP=%d, mode=%d\\n\",                cmd, *addr, clusterID, dstEP, srcEP, addrMode);     return TRUE; \/\/ Allow bind request }<\/code><\/pre>\n<p>\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c TRUE. \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 &#8212; \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c 0 (FALSE), \u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d.<\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430:<\/p>\n<pre><code class=\"cpp\">ZigbeeDevice::ZigbeeDevice() { ...     ZPS_vZdoSetBindCallback((void*)bindCallback); }<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u044f \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/449\/717\/9c3\/4497179c3a468626b56f141b1096facd.png\" width=\"1060\" height=\"574\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0443\u0430\u043b\u044f, \u043d\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f! \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u0435\u0437\u0436\u0430\u0435\u0442 \u0432\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f &#8212; \u043d\u043e\u043c\u0435\u0440 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0430\u0434\u0440\u0435\u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u042d\u0442\u043e\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a, \u043a\u0441\u0442\u0430\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 (bind), \u0438 \u043d\u0430 \u043e\u0442\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 (unbind). \u0420\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c: cmd=0x0021 &#8212; \u044d\u0442\u043e \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a 0x0022 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u043d\u0430 \u043e\u0442\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 ZDO &#8212; \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435).<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u044f\u043c\u043e \u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c, \u0432\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c.<\/p>\n<pre><code class=\"cpp\">uint8 bindCallback(uint16 cmd, uint64 *addr, uint16 clusterID, uint8 dstEP, uint8 srcEP, uint8 addrMode) {    DBG_vPrintf(TRUE, \"+_+_+_ bindCallback(): cmd=%04x, addr=0x%016llx, ClusterID=%04x, dstEP=%d, srcEP=%d, mode=%d\\n\",                cmd, *addr, clusterID, dstEP, srcEP, addrMode);     \/\/ Just an assert    if(addrMode != ZPS_E_ADDR_MODE_IEEE)        DBG_vPrintf(TRUE, \"WARNING: bindCallback(): Unsupported addressing mode %d\\n\", addrMode);     \/\/ Prepare short and full address    uint16 shortAddr = ZPS_u16AplZdoLookupAddr(*addr);    DBG_vPrintf(TRUE, \"bindCallback(): short address obtained %04x\\n\", shortAddr);     \/\/ Bind endpoints    ZPS_teStatus status = ZPS_eAplZdoBind(clusterID, srcEP, shortAddr, *addr, dstEP);    DBG_vPrintf(TRUE, \"Binding to %04x\/%016llx SrcEP=%d to DstEP=%d Status=%d\\n\", shortAddr, *addr, srcEP, dstEP, status);     return TRUE; \/\/ Allow bind request }<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0431\u0443\u0435\u043c, \u0438&#8230;.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/681\/396\/4f7\/6813964f71d912ff197290b3d6d9fe46.png\" width=\"1019\" height=\"331\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0431\u043b\u043e\u043c. \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0441\u0447\u0438\u0442\u0430\u043b \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043a\u0440\u0435\u0448 \u0434\u0430\u043c\u043f\u044b \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0435\u0432\u043d\u044f\u0442\u043d\u043e\u0439 \u0444\u0438\u0433\u043d\u0435\u0439, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0432 \u0436\u0438\u0437\u043d\u0438, \u044f \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438\u0440\u0438\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0442\u0435\u043a\u0430. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e.<\/p>\n<ul>\n<li>\n<p>MAC \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0435\u0442\u0438 (\u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f\u043c\u0438) \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u0438\u043a\u0438 \u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439 \u0441 \u043d\u0435\u043f\u0440\u043e\u0438\u0437\u043d\u043e\u0441\u0438\u043c\u044b\u043c\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 zps_msgMlmeDcfmInd<\/p>\n<\/li>\n<li>\n<p>\u0413\u0434\u0435-\u0442\u043e \u0432 \u043d\u0435\u0434\u0440\u0430\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 zps_taskZPS() (\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0447\u0442\u043e \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e API) \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 MAC \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f. \u0427\u0430\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0438 \u043e\u0442\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u044b, \u0447\u0430\u0441\u0442\u044c \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b ZPS_tsAfEvent \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c BDB.<\/p>\n<ul>\n<li>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a zps_bAplZdoBindUnbindServer(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f bdb_taskBDB() \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 BDB \u043e\u0447\u0435\u0440\u0435\u0434\u0438. \u0427\u0430\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 BDB, \u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043e\u0434.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443 \u0430 \u043f\u0440\u043e \u044d\u0442\u043e \u044f \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0443\u0436\u0435 \u0442\u0440\u0435\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \ud83d\ude42<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a \u0432\u043e\u0442 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f. \u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 zps_taskZPS() \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 Zigbee \u0441\u0442\u0435\u043a\u0430 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043d\u0435\u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u0438 \u043d\u0435 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Zigbee \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 zps_taskZPS() \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e mutex. \u0424\u0443\u043d\u043a\u0446\u0438\u044f ZPS_eAplZdoBind() \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u0430\u044f \u0432 \u0442\u043e\u043c \u0436\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0436\u0435 mutex \u0438 \u043f\u0430\u0434\u0430\u0435\u0442. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u043e\u0431\u044a\u0435\u0445\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c.<\/p>\n<p>\u0410 \u043f\u043e\u0431\u0435\u0434\u0430 \u0431\u044b\u043b\u0430 \u0442\u0430\u043a \u0431\u043b\u0438\u0437\u043a\u0430&#8230;.<\/p>\n<p>\u042f \u0440\u0435\u0448\u0438\u043b \u044d\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0437\u0430\u0432\u0435\u043b \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0438 \u043d\u0430\u0447\u0430\u043b \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043e\u0442\u043b\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0442\u0443\u0434\u0430. \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 ZPS_EVENT_ZDO_BIND \u0438 \u0442\u0430\u043c \u0443\u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438. \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f.<\/p>\n<pre><code class=\"cpp\">class ZigbeeDevice {    struct BindRequest    {        bool bind;        uint64 dstAddr;        uint16 clusterID;        uint8 srcEP;        uint8 dstEP;    };     Queue&lt;BindRequest, 5&gt; bindRequestQueue; ...  protected:    static uint8 notifyBindRequestComing(uint16 cmd, uint64 *addr, uint16 clusterID, uint8 dstEP, uint8 srcEP, uint8 addrMode);    void handleZdoBindUnbindEvent(ZPS_tsAfZdoBindEvent * pEvent, bool bind);<\/code><\/pre>\n<p>\u041d\u0430\u0448 \u043a\u043e\u043b\u043b\u0431\u0435\u043a \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c notifyBindRequestComing() \u0438 \u0435\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043a\u043e\u043b\u043b\u0431\u0435\u043a\u0430 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 BindRequest \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u044d\u0442\u043e \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c.<\/p>\n<pre><code class=\"cpp\">uint8 ZigbeeDevice::notifyBindRequestComing(uint16 cmd, uint64 *addr, uint16 clusterID, uint8 dstEP, uint8 srcEP, uint8 addrMode) {    DBG_vPrintf(TRUE, \"+_+_+_ bindCallback(): cmd=%04x, addr=0x%016llx, ClusterID=%04x, dstEP=%d, srcEP=%d, mode=%d\\n\",                cmd, *addr, clusterID, dstEP, srcEP, addrMode);     \/\/ Store the request in the queue to be processed when official bind request arrive    BindRequest req = {        cmd==ZPS_ZDP_BIND_REQ_CLUSTER_ID,        *addr,        clusterID,        srcEP,        dstEP    };    ZigbeeDevice::getInstance()-&gt;bindRequestQueue.send(req);     return TRUE; \/\/ Allow bind request }<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u043b\u044f ZPS_EVENT_ZDO_BIND \u0438 ZPS_EVENT_ZDO_UNBIND \u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043b \u0432 \u043e\u0434\u0438\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a handleZdoBindUnbindEvent().<\/p>\n<pre><code class=\"cpp\">void ZigbeeDevice::handleZdoBindUnbindEvent(ZPS_tsAfZdoBindEvent * pEvent, bool bind) {    \/\/ We do not support group address as of now    if(pEvent-&gt;u8DstAddrMode != ZPS_E_ADDR_MODE_IEEE)    {        DBG_vPrintf(TRUE, \"ZigbeeDevice::handleZdoBindUnbindEvent(): WARNING: Only IEEE address mode is supported\\n\");        return;    }     \/\/ Retrieve stored bind request    BindRequest req;    if(!bindRequestQueue.receive(&amp;req))    {        DBG_vPrintf(TRUE, \"ZigbeeDevice::handleZdoBindUnbindEvent(): WARNING: Unexpected bind request\\n\");        return;    }     \/\/ Verify this is the same bind request that we were notified earlier    if(bind != req.bind ||       pEvent-&gt;uDstAddr.u64Addr != req.dstAddr ||       pEvent-&gt;u8SrcEp != req.srcEP ||       pEvent-&gt;u8DstEp != req.dstEP)    {        DBG_vPrintf(TRUE, \"ZigbeeDevice::handleZdoBindUnbindEvent(): WARNING: Unexpected bind\/unbind request bind=%d Addr=%016llx SrcEP=%d DstEP=%d\\n\",                    req.bind, req.dstAddr, req.srcEP, req.dstEP);        return;    }     \/\/ Prepare short and full address    uint16 shortAddr = ZPS_u16AplZdoLookupAddr(pEvent-&gt;uDstAddr.u64Addr);     \/\/ Bind endpoints    if(bind)    {        ZPS_teStatus status = ZPS_eAplZdoBind(req.clusterID,                                              req.srcEP,                                              shortAddr,                                              req.dstAddr,                                              req.dstEP);        DBG_vPrintf(TRUE, \"Binding to %04x\/%016llx SrcEP=%d to DstEP=%d Status=%d\\n\", shortAddr, req.dstAddr, req.srcEP, req.dstEP, status);    }    else    {        ZPS_teStatus status = ZPS_eAplZdoUnbind(req.clusterID,                                              req.srcEP,                                              shortAddr,                                              req.dstAddr,                                              req.dstEP);        DBG_vPrintf(TRUE, \"Unbinding to %04x\/%016llx SrcEP=%d from DstEP=%d Status=%d\\n\", shortAddr, req.dstAddr, req.srcEP, req.dstEP, status);    }     vDisplayBindTable();    vDisplayAddressMap(); }<\/code><\/pre>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0431\u0435\u0434\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u043c\u044b \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u043b\u0438 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435. \u041d\u0443 \u0430 \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0432\u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c ZPS_eAplZdoBind()\/ZPS_eAplZdoUnbind(). \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0447\u0435\u0441\u0430\u0442\u044c. \u0418\u043b\u0438 \u0434\u0430\u0436\u0435 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0415\u0441\u043b\u0438 \u0443\u0436 \u0441\u043e\u0432\u0441\u0435\u043c \u0443\u043f\u043e\u0440\u043e\u0442\u044c\u0441\u044f&#8230;<\/summary>\n<div class=\"spoiler__content\">\n<p>\u042f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0447\u0435\u0440\u043e\u0432 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u0438\u0437\u0443\u0447\u0430\u044f \u0430\u0441\u0441\u0435\u0431\u043c\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 pfBindAllowed() \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 bAplZdoBindUnbindServerProcessApdu().&nbsp;<\/p>\n<pre><code>   95d14:    2c ec 45                    b.lwz      r7,0xa0(r12)    95d17:    51 41 18                    b.mlwz     r10,0x18(r1),0x0    95d1a:    2d 47 0e                    b.sw       0x70(r7),r10    95d1d:    30 81 28                    b.addi     r4,r1,0x14    95d20:    2d 67 2e                    b.sw       0x74(r7),r11    95d23:    2c ec 45                    b.lwz      r7,0xa0(r12)    95d26:    25 01 3c                    b.lbz      r8,0x3c(r1)    95d29:    24 c1 12                    b.lbz      r6,0x48(r1)    95d2c:    21 07 1e                    b.sb       0x78(r7),r8    95d2f:    2c ec 45                    b.lwz      r7,0xa0(r12)    95d32:    2d 41 04                    b.sw       0x20(r1),r10    95d35:    20 c7 5e                    b.sb       0x7a(r7),r6    95d38:    2c ac 45                    b.lwz      r5,0xa0(r12)    95d3b:    24 e1 1c                    b.lbz      r7,0x38(r1)    95d3e:    2d 61 24                    b.sw       0x24(r1),r11    95d41:    20 e5 9e                    b.sb       0x79(r5),r7    95d44:    28 a1 dc                    b.lhz      r5,0x3a(r1)    95d47:    28 6d c4                    b.lhz      r3,0x22(r13)    95d4a:    28 a1 14                    b.sh       0x28(r1),r5    95d4d:    3c 23 84                    b.sfnei    r3,0x21    95d50:    20 c1 34                    b.sb       0x2c(r1),r6    95d53:    20 e1 d4                    b.sb       0x2b(r1),r7    95d56:    21 01 54                    b.sb       0x2a(r1),r8     95d59:    8d 40 4f 02 00 20           b.lwz      r10,0x40040f0(r0)    95d5f:    47 2a 20                    b.bf       95da4 &lt;bAplZdoBindUnbindServerProcessApdu+0x113&gt;    95d62:    41 0a e4                    b.bnei     r10,0x0,95d89 &lt;bAplZdoBindUnbindServerProcessApdu+0xf8&gt;    95d65:    50 81 0c                    b.mlwz     r4,0x30(r1),0x0    95d68:    30 c1 04                    b.addi     r6,r1,0x20    95d6b:    04 6c                       b.mov      r3,r12    95d6d:    4a 66 27                    b.jal      8ef06 &lt;zps_eAplApsmeBindReqRsp&gt;    95d70:    2d 61 4c                    b.lwz      r11,0x30(r1)    95d73:    20 61 28                    b.sb       0x14(r1),r3    95d76:    2c 6c 40                    b.lwz      r3,0x0(r12)    95d79:    2d 41 6c                    b.lwz      r10,0x34(r1)    95d7c:    4b 30 18                    b.jal      9bdaf &lt;ZPS_u64NwkNibGetExtAddr&gt;    95d7f:    d2 d6 39 80                 b.bne      r11,r3,95d98 &lt;bAplZdoBindUnbindServerProcessApdu+0x107&gt;    95d83:    d2 d4 4a 80                 b.bne      r10,r4,95d98 &lt;bAplZdoBindUnbindServerProcessApdu+0x107&gt;    95d87:    0e a0                       b.j        95d9c &lt;bAplZdoBindUnbindServerProcessApdu+0x10b&gt;    95d89:    2c 81 00                    b.sw       0x0(r1),r4    95d8c:    38 60 84                    b.ori      r3,r0,0x21    95d8f:    30 81 18                    b.addi     r4,r1,0x18    95d92:    47 d1 50                    b.jalr     r10    95d95:    41 03 0b                    b.bnei     r3,0x0,95d65 &lt;bAplZdoBindUnbindServerProcessApdu+0xd4&gt;    95d98:    01 48                       b.movi     r10,0x1    95d9a:    0d 48                       b.j        95de4 &lt;bAplZdoBindUnbindServerProcessApdu+0x153&gt;    95d9c:    2c ec 45                    b.lwz      r7,0xa0(r12)    95d9f:    38 c0 88                    b.ori      r6,r0,0x11    95da2:    0e f0                       b.j        95ddf &lt;bAplZdoBindUnbindServerProcessApdu+0x14e&gt;    95da4:    41 0a e4                    b.bnei     r10,0x0,95dcb &lt;bAplZdoBindUnbindServerProcessApdu+0x13a&gt;    95da7:    50 81 0c                    b.mlwz     r4,0x30(r1),0x0    95daa:    30 c1 04                    b.addi     r6,r1,0x20    95dad:    04 6c                       b.mov      r3,r12    95daf:    4a d1 27                    b.jal      8efdc &lt;zps_eAplApsmeUnBindReqRsp&gt;    95db2:    2d 61 4c                    b.lwz      r11,0x30(r1)    95db5:    20 61 28                    b.sb       0x14(r1),r3    95db8:    2c 6c 40                    b.lwz      r3,0x0(r12)    95dbb:    2d 41 6c                    b.lwz      r10,0x34(r1)    95dbe:    4a 3f e8                    b.jal      9bdaf &lt;ZPS_u64NwkNibGetExtAddr&gt;    95dc1:    d2 d6 3e bf                 b.bne      r11,r3,95d98 &lt;bAplZdoBindUnbindServerProcessApdu+0x107&gt;    95dc5:    d2 d4 4c bf                 b.bne      r10,r4,95d98 &lt;bAplZdoBindUnbindServerProcessApdu+0x107&gt;    95dc9:    0c 20                       b.j        95dd9 &lt;bAplZdoBindUnbindServerProcessApdu+0x148&gt;    95dcb:    2c 81 00                    b.sw       0x0(r1),r4    95dce:    30 81 18                    b.addi     r4,r1,0x18    95dd1:    47 d1 50                    b.jalr     r10 <\/code><\/pre>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0430\u043c r1+0x20 &#8212; r1+0x29 \u0438 r7+0x70 &#8212; r7+0x79, \u043f\u0440\u0438\u0447\u0435\u043c \u0432\u0442\u043e\u0440\u0430\u044f \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0435\u0441\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 ZPS_tsAfZdoBindEvent. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0437\u043e\u0432 pfBindAllowed, \u0433\u0434\u0435<\/p>\n<ul>\n<li>\n<p>r10 &#8212; \u0445\u0440\u0430\u043d\u0438\u0442 \u0430\u0434\u0440\u0435\u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430<\/p>\n<\/li>\n<li>\n<p>r3-r7 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0447\u0435\u043c r3 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0445\u0430\u0440\u0434\u043a\u043e\u0434\u043e\u043c \u043b\u0438\u0431\u043e 0x21 (\u0441\u0442\u0440\u043e\u043a\u0430 95d8c) \u043b\u0438\u0431\u043e 0x22 (\u043d\u0435 \u0437\u043d\u0430\u044e \u043a\u0430\u043a \u043e\u043d\u043e \u0442\u0443\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442)&nbsp;<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0430\u043c \u043e\u0431\u0440\u0442\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 pfBindAllowed() \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 95d92 \u0434\u043b\u044f bind request \u0438 95dd1 \u0434\u043b\u044f unbind request.<\/p>\n<p>\u0423\u043f\u043e\u0440\u043e\u0442\u0430\u044f \u0438\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 ZPS_tsAfZdoBindEvent \u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c \u043f\u043e\u043b\u0435\u043c ClusterID<\/p>\n<ul>\n<li>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e union\u2019\u0430 ZPS_tuAfEventData, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e ZPS_tsAfEvent<\/p>\n<\/li>\n<li>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b ZPS_tsAfZdoBindEvent \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 ZPS_tsAfEvent, \u0442.\u043a. \u0432 union\u2019\u0435 \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043f\u043e\u0442\u043e\u043b\u0449\u0435<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 r3 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 ZPS_tuAfEventData \u0432\u043c\u0435\u0441\u0442\u043e cmd<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c ClusterID \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u0430\u0448 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u0434\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 ZPS_EVENT_ZDO_BIND \u0438\u043b\u0438 ZPS_EVENT_ZDO_UNBIND \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 ZPS_tsAfZdoBindEvent \u0441 \u043e\u0434\u043d\u0438\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u043b\u0435\u043c ClusterID, \u0447\u0442\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043c\u044b \u0438 \u0434\u043e\u0431\u0438\u0432\u0430\u043b\u0438\u0441\u044c<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435 \u0437\u043d\u0430\u044e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u043e. \u042f \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u0437\u0430\u043f\u0443\u0442\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0432 \u043a\u0430\u043a\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043d\u0435 \u0437\u043d\u0430\u044f \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u044d\u0442\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u0434\u0435\u0438. \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0447\u0442\u043e \u0432\u0441\u0435\u043c\u0438 \u044d\u0442\u0438\u043c\u0438 \u0445\u0430\u043a\u0430\u043c\u0438 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u044b\u0442\u0430\u044e\u0441\u044c \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u043a\u043e\u0441\u044f\u043a NXP, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u0438, \u0447\u0442\u043e \u043f\u043e\u043b\u0435 ClusterID \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0410\u0432\u043e\u0441\u044c \u043e\u043d\u0438 \u043a\u043e\u0433\u0434\u0430 \u043d\u0438\u0431\u0443\u0434\u044c \u0432\u044b\u043f\u0443\u0441\u0442\u044f\u0442 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e SDK \u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u0442 \u044d\u0442\u043e \u043f\u043e\u043b\u0435 \u043f\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438 &#8212; \u0434\u043b\u044f \u043d\u0438\u0445 \u0444\u0438\u043a\u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u043f\u0438\u0448\u0443 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 10 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 2-3 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0438, \u0434\u0430\u0436\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438. <\/p>\n<\/div>\n<\/details>\n<h2>\u0420\u0435\u0437\u044e\u043c\u0435  <\/h2>\n<p>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f (Binding) \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e\u0439. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0432\u0430\u0441 \u0435\u0449\u0435 \u0438 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0435\u0441\u0442\u044c \ud83d\ude42 \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0443\u0432\u0435\u043b\u043e \u043c\u0435\u043d\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0435 \u0442\u0443\u0434\u0430, \u043d\u043e \u0432\u0430\u043c \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.<\/p>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 Zigbee \u0441\u0442\u0435\u043a \u0431\u0435\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f, \u043d\u043e \u043d\u0430\u0448 \u043a\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u043f\u043e\u0440\u0442\u044b \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441 \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 E_ZCL_AM_BOUND. \u0414\u0430, \u0438 \u0435\u0449\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0442\u043e \u0438\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441\u0435\u0440\u0432\u0435\u0440, \u0430 \u043a\u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442, \u043a\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043a\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c &#8212; \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043f\u043e\u0440\u0442\u044b \u0438\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.&nbsp;<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043e\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430 &#8212; \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0443\u043c\u0435\u0441\u0442\u0435\u043d \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0432\u0440\u043e\u0434\u0435 zigbee2mqtt \u0438\u043b\u0438 SLS. \u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u043f\u043e\u0434\u0445\u043e\u0434 Find and Bind, \u0433\u0434\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0431\u0435\u0437 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430, \u043d\u043e \u0442\u0430\u043a\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b \u0438 \u0432 \u044d\u0442\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043d\u0435 \u043a\u043e\u043f\u0430\u043b.<\/p>\n<p>\u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u0440\u0438\u0442\u0438\u043a\u0435 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c.<\/p>\n<p>\u041a\u043e\u0434: <a href=\"https:\/\/github.com\/grafalex82\/hellozigbee\/tree\/hello_zigbee_binding\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/github.com\/grafalex82\/hellozigbee\/tree\/hello_zigbee_binding<\/u><\/a><\/p>\n<p>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3113.pdf\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3113.pdf<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3114.pdf\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3114.pdf<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3115.pdf\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3115.pdf<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3076.pdf\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/www.nxp.com\/docs\/en\/user-guide\/JN-UG-3076.pdf<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/12\/07-5123-06-zigbee-cluster-library-specification.pdf\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/12\/07-5123-06-zigbee-cluster-library-specification.pdf<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/11\/docs-05-3474-21-0csg-zigbee-specification.pdf\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/11\/docs-05-3474-21-0csg-zigbee-specification.pdf<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/12\/docs-13-0402-13-00zi-Base-Device-Behavior-Specification-2-1.pdf\" rel=\"noopener noreferrer nofollow\"><u>https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/12\/docs-13-0402-13-00zi-Base-Device-Behavior-Specification-2-1.pdf<\/u><\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/547374\/\" rel=\"noopener noreferrer nofollow\"><u>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 NXP JN5169<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/550660\/\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0435 Zigbee \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043e\u0441\u043d\u043e\u0432\u044b \u0441\u0442\u0435\u043a\u0430 Zigbee \u043e\u0442 NXP<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/561280\/\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0442\u0438 Zigbee<\/u><\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/568316\/\"> https:\/\/habr.com\/ru\/post\/568316\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0414\u043e\u0431\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0442\u043e\u043a!&nbsp;<\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432 \u0441\u0435\u0442\u044f\u0445 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 Zigbee \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043b\u0438 \u0445\u0430\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u0441\u0435\u0442\u0438 Zigbee. \u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432 \u0441\u0435\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u043e\u0434\u043d\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043a \u0434\u0440\u0443\u0433\u0438\u043c. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u043e\u0442\u043a\u0430\u0437\u0430 &#8212; \u0435\u0441\u043b\u0438 \u0441 \u043d\u0438\u043c \u0447\u0442\u043e \u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0442\u043e \u0441\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Zigbee \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f (Bind) \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441\u0435\u0442\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u0422\u0430\u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0435 (\u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0433\u0440\u0443\u043f\u043f\u0435 \u043b\u0430\u043c\u043f\u043e\u0447\u0435\u043a), \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442. \u0410 \u0434\u0430\u0442\u0447\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u043a\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c (\u043a\u043e\u043d\u0434\u0438\u0446\u0438\u043e\u043d\u0435\u0440\u043e\u043c, \u043a\u043e\u0442\u043b\u043e\u043c, \u0438\u043b\u0438 \u0442\u0435\u043f\u043b\u044b\u043c \u043f\u043e\u043b\u043e\u043c). \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/p>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 (<a href=\"https:\/\/habr.com\/ru\/post\/547374\/\" rel=\"noopener noreferrer nofollow\"><u>\u0440\u0430\u0437<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/550660\/\" rel=\"noopener noreferrer nofollow\"><u>\u0434\u0432\u0430<\/u><\/a>, <a href=\"https:\/\/habr.com\/ru\/post\/561280\/\" rel=\"noopener noreferrer nofollow\"><u>\u0442\u0440\u0438<\/u><\/a>) \u043f\u0440\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 NXP JN5169 \u0438 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0441\u0435\u0442\u044f\u0445 Zigbee. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (binding) \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u0441\u0435\u0442\u044f\u0445 Zigbee. \u0421\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u0430 \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u043c\u0435\u0441\u044f\u0446\u0430 \u0448\u0435\u043b \u0432 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u043d\u043e \u0437\u0430\u0442\u043e \u043d\u0430\u043a\u043e\u043f\u0430\u043b \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0438\u043d\u0444\u044b \u043f\u0440\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 JN5169 \u0438 \u0441\u0442\u0435\u043a Zigbee.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0435\u0445\u0430\u043b\u0438!<\/p>\n<h3>\u0427\u0430\u0441\u0442\u044c 1: \u043f\u0440\u043e Binding, \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b<\/h3>\n<p><strong>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 BDB Find and Bind<\/strong><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0442 NXP \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043d\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0435 Find and Bind. \u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 <a href=\"https:\/\/zigbeealliance.org\/wp-content\/uploads\/2019\/12\/docs-13-0402-13-00zi-Base-Device-Behavior-Specification-2-1.pdf\" rel=\"noopener noreferrer nofollow\"><u>Zigbee Base Device Behavior Specification<\/u><\/a> \u0438, \u043a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/post\/561280\/\" rel=\"noopener noreferrer nofollow\"><u>\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/u><\/a> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c Zigbee SDK (\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 BDB). \u0421\u0443\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0445\u043e\u0434\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c.<\/p>\n<ul>\n<li>\n<p>\u041d\u0430\u0436\u0438\u043c\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f (Find and Bind as Initiator)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0435\u0436\u0438\u043c \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435-\u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0435 (Find and Bind as Target)<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430 \u043f\u043e\u0441\u044b\u043b\u0430\u044f \u0432 \u044d\u0444\u0438\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u0434\u0440\u0443\u0433 \u0443 \u0434\u0440\u0443\u0433\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438, \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043a\u043e\u0434\u0430 \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c BDB. \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043a\u043d\u043e\u043f\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u0443\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437 BDB, \u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. API \u0434\u043b\u044f Find And Bind \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<pre><code class=\"cpp\">PUBLIC BDB_teStatus BDB_eFbTriggerAsInitiator(uint8 u8SourceEndPointId); PUBLIC void BDB_vFbExitAsInitiator(); PUBLIC BDB_teStatus BDB_eFbTriggerAsTarget(uint8 u8EndPointId); PUBLIC void BDB_vFbExitAsTarget(uint8 u8SourceEndpoint);<\/code><\/pre>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: \u0434\u043e\u0441\u0442\u0430\u043b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u043f\u043e\u043d\u0430\u0436\u0438\u043c\u0430\u043b \u043a\u043d\u043e\u043f\u043a\u0438 \u0438 \u0432\u0443\u0430\u043b\u044f &#8212; \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u043f\u0430\u0440\u0438\u043b\u0438\u0441\u044c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043c\u043d\u0435 \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ol>\n<li>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u044e\u0442 \u0441\u043f\u0430\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e \u043c\u0430\u0433\u0438\u044e Find and Bind \u0432 \u0441\u0432\u043e\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043e\u0442 Xiaomi, Tuya, Moes, \u0438 \u0434\u0440\u0443\u0433\u0438\u0445.&nbsp;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u044f Zigbee \u0441\u0435\u0442\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 <a href=\"https:\/\/www.zigbee2mqtt.io\/\" rel=\"noopener noreferrer nofollow\">zigbee2mqtt<\/a>, \u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043e\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0447\u0435\u0442\u043a\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u043e\u0433\u043e, \u0441 \u043a\u0435\u043c, \u0438 \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c. \u041d\u043e, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 BDB \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 &#8212; \u0442\u0430\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0438 \u0430\u0434\u0440\u0435\u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0448\u043b\u0438 \u043e\u0442 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 BDB, \u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0434\u0442\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<p><strong>Direct Binding \u0434\u043b\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432<\/strong><\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 zigbee2mqtt. \u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u044f \u0431\u0443\u0434\u0443 \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u0436\u0435\u043b\u0435\u0437\u043e\u043c \u0438 \u0441 \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u041a\u043e\u043c\u0443 \u043b\u0435\u043d\u044c \u0447\u0438\u0442\u0430\u0442\u044c, \u044f \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u043d\u0435\u043a\u0438\u0439 \u0443\u043c\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c. \u042d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f-\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0440\u0430\u043f\u043e\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043b\u0435 Xiaomi.<\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u043c \u0434\u0430\u0448\u0431\u043e\u0440\u0434 zigbee2mqtt \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Bind \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 Bind Request \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u043c\u0435\u0440\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438, \u0430\u0434\u0440\u0435\u0441\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u043e\u043c\u0435\u0440\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c (\u043f\u043e \u0441\u0443\u0442\u0438 \u0432\u0441\u0435 \u0442\u043e, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044f\u0445 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u0432\u044b\u0448\u0435).<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/post\/550660\/\" rel=\"noopener noreferrer nofollow\"><u>\u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/u><\/a>. \u0415\u0441\u043b\u0438 \u0432 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432\u0430\u0445, \u0442\u043e \u043f\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f Zigbee \u0441\u0442\u0435\u043a \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442, \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0438 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 (bind\/unbind) \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u0443\u044e \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 ZigbeeDevice::handleZdoEvents(). \u041f\u043e\u043a\u0430 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u044e \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"cpp\">PRIVATE void vPrintAddr(ZPS_tuAddress addr, uint8 mode) {    if(mode == ZPS_E_ADDR_MODE_IEEE)        DBG_vPrintf(TRUE, \"%016llx\", addr.u64Addr);    else if(mode == ZPS_E_ADDR_MODE_SHORT)        DBG_vPrintf(TRUE, \"%04x\", addr.u16Addr);    else        DBG_vPrintf(TRUE, \"unknown addr mode %d\", mode); }  void vDumpBindEvent(ZPS_tsAfZdoBindEvent * pEvent) {    DBG_vPrintf(TRUE, \"ZPS_EVENT_ZDO_BIND: SrcEP=%d DstEP=%d DstAddr=\", pEvent-&gt;u8SrcEp, pEvent-&gt;u8DstEp);    vPrintAddr(pEvent-&gt;uDstAddr, pEvent-&gt;u8DstAddrMode);    DBG_vPrintf(TRUE, \"\\n\"); }  void ZigbeeDevice::handleZdoEvents(ZPS_tsAfEvent* psStackEvent) { ...    switch(psStackEvent-&gt;eType)    {        case ZPS_EVENT_ZDO_BIND:            vDumpBindEvent(&amp;psStackEvent-&gt;uEvent.sZdoBindEvent);            break; ... <\/code><\/pre>\n<p>\u041a \u043c\u043e\u0435\u043c\u0443 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u044e \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 ZPS_tsAfZdoBindEvent \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435 \u0434\u043e\u0435\u0445\u0430\u043b\u043e \u043f\u043e\u043b\u0435 ClusterID, \u0445\u043e\u0442\u044f \u043e\u043d\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 Zigbee, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0441\u043d\u0438\u0444\u0444\u0435\u0440. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u043b\u044f ClusterID \u0441\u0431\u0438\u043b\u043e \u043c\u0435\u043d\u044f \u0441 \u043f\u0443\u0442\u0438 \u043d\u0430 \u0446\u0435\u043b\u044b\u0445 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u043c\u0435\u0441\u044f\u0446\u0430 (\u0447\u0435\u043c\u0443 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438). \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u0430\u043d \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f ZPS_EVENT_ZDO_BIND, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e ZPS_eAplZdoBind(), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 ClusterID \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u042f \u0442\u0449\u0435\u0442\u043d\u043e \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0435\u0433\u043e \u0440\u0430\u0437\u0434\u043e\u0431\u044b\u0442\u044c \u0432\u0441\u0435\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0445\u0430\u043a\u0430\u043c\u0438, \u0438 \u0440\u0435\u0432\u0435\u0440\u0441 \u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433\u043e\u043c. \u0418 \u0432 \u044d\u0442\u043e\u043c \u0434\u0430\u0436\u0435 \u0431\u044b\u043b \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441, \u043d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0448\u0435\u043b \u043d\u0435 \u0432 \u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438.<\/p>\n<p>\u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a vDumpBindEvent() \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0436\u0438\u0432\u0443\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 Zigbee \u0441\u0442\u0435\u043a\u0430. \u042d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 vDisplayBindingTable() \u0438 vDisplayAddressMapTable(), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Zigbee \u0441\u0442\u0435\u043a\u043e\u043c. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u0432\u043e\u0438 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0447\u0443\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u043b \u0433\u043e\u0442\u043e\u0432\u044b\u0435.<\/p>\n<pre><code class=\"cpp\">PRIVATE void vDisplayBindTableEntry(ZPS_tsAplApsmeBindingTableEntry * entry) {     DBG_vPrintf(TRUE, \"    ClusterID=%04x SrcEP=%d DstEP=%d DstAddr=\", entry-&gt;u16ClusterId, entry-&gt;u8SourceEndpoint, entry-&gt;u8DestinationEndPoint);     vPrintAddr(entry-&gt;uDstAddress, entry-&gt;u8DstAddrMode);     DBG_vPrintf(TRUE, \"\\n\"); }  void vDisplayBindTable() {    \/\/ Get pointers    ZPS_tsAplAib * aib = ZPS_psAplAibGetAib();    ZPS_tsAplApsmeBindingTableType * bindingTable = aib-&gt;psAplApsmeAibBindingTable;    ZPS_tsAplApsmeBindingTableCache* cache = bindingTable-&gt;psAplApsmeBindingTableCache;    ZPS_tsAplApsmeBindingTable* table = bindingTable-&gt;psAplApsmeBindingTable;     \/\/ Print header    DBG_vPrintf(TRUE, \"\\n+++++++ Binding Table\\n\");    DBG_vPrintf(TRUE, \"    Cache ptr=%04x:\\n\", cache);    DBG_vPrintf(TRUE, \"    Table ptr=%04x:\\n\", table);     \/\/ Dump cache    if(cache)    {        DBG_vPrintf(TRUE, \"Cache:\\n\");        vDisplayBindTableEntry(cache-&gt;pvAplApsmeBindingTableForRemoteSrcAddr);        DBG_vPrintf(TRUE, \"Cache size = %d\\n\", cache-&gt;u32SizeOfBindingCache);        for(uint32 i=0; i &lt; cache-&gt;u32SizeOfBindingCache; i++)            DBG_vPrintf(TRUE, \"    %016llx\\n\", cache-&gt;pu64RemoteDevicesList[i]);    }     \/\/ Dump table    if(table)    {        DBG_vPrintf(TRUE, \"Binding table (size=%d)\\n\", table-&gt;u32SizeOfBindingTable);        for(uint32 i=0; i&lt;table-&gt;u32SizeOfBindingTable; i++)        {            ZPS_tsAplApsmeBindingTableStoreEntry * entry = table-&gt;pvAplApsmeBindingTableEntryForSpSrcAddr + i;             DBG_vPrintf(TRUE, \"    Addr=%016llx ClusterID=%04x addrMode=%d SrcEP=%d DstEP=%d\\n\",                        ZPS_u64NwkNibGetMappedIeeeAddr(ZPS_pvAplZdoGetNwkHandle(), entry-&gt;u16AddrOrLkUp),                        entry-&gt;u16ClusterId,                        entry-&gt;u8DstAddrMode,                        entry-&gt;u8SourceEndpoint,                        entry-&gt;u8DestinationEndPoint);        }    } }  void vDisplayAddressMap() {    ZPS_tsNwkNib * nib = ZPS_psNwkNibGetHandle(ZPS_pvAplZdoGetNwkHandle());     uint16 mapsize = nib-&gt;sTblSize.u16AddrMap;    DBG_vPrintf(TRUE, \"Address map (size=%d)\\n\", mapsize);     for(uint16 i=0; i&lt;mapsize; i++)    {        DBG_vPrintf(TRUE, \"    Addr=%04x ieeeAddr=%016llx\\n\",                    nib-&gt;sTbl.pu16AddrMapNwk[i],                    ZPS_u64NwkNibGetMappedIeeeAddr(ZPS_pvAplZdoGetNwkHandle(),nib-&gt;sTbl.pu16AddrLookup[i]));    } }  <\/code><\/pre>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u044d\u0442\u043e:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a \u043c\u043e\u0435\u043c\u0443 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u044e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u0438 \u044d\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0430. \u0422.\u0435. \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c, \u0445\u043e\u0442\u044f \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0442\u043e-\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 (\u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0435 \u0432 \u0441\u0447\u0435\u0442). \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044f \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u043f\u043e\u043d\u044f\u043b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435&nbsp; ZPS_EVENT_ZDO_BIND &#8212; \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0438\u0448\u0435\u0442, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0423\u0416\u0415 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0435\u043a\u0430, \u0430 \u043d\u0430\u0441 \u043e\u0431 \u044d\u0442\u043e\u043c \u043b\u0438\u0448\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442. \u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 &#8212; Zigbee \u0441\u0442\u0435\u043a \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430 \u043d\u0430\u0441.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e &#8212; \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043f\u043e\u0437\u0436\u0435. \u0410 \u043f\u043e\u043a\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0418 \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u0438\u0434\u0438\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0435\u0442 &#8212; \u0435\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440\u0443.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u042d\u0442\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u043e\u0442<\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-326660","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=326660"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326660\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=326660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=326660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=326660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}