ZAP распрацоўваецца з Silicon Labs
Тэхнічныя характарыстыкі
- Назва прадукту: Silicon Labs ZAP
- Тып: Механізм генерацыі кода і карыстацкі інтэрфейс
- Сумяшчальнасць: Бібліятэка кластараў Zigbee (Zigbee) або мадэль даных (Matter)
- Развіты па: Connectivity Standards Alliance
Інструкцыя па ўжыванні прадукту
- ZAP Пачатак працы
- Каб пачаць працу з ZAP, выканайце наступныя дзеянні:
- Спампуйце ZAP Executable з афіцыйнага рэпазітара.
- Усталюйце залежнасці з дапамогай каманды npm install.
- Каб даведацца пра ўстаноўку для Windows, звярніцеся да кіраўніцтва па ўсталёўцы ZAP для АС Windows.
- Каб пачаць працу з ZAP, выканайце наступныя дзеянні:
- Распрацоўка Zigbee
- Калі вы распрацоўваеце прыкладанні Zigbee:
- Выкарыстоўвайце Simplicity Studio, якая ўключае ZAP і іншыя неабходныя інструменты.
- Калі вы распрацоўваеце прыкладанні Zigbee:
- Развіццё матэрыі
- Калі вы распрацоўваеце прыкладанні Matter:
- Варыянты ўключаюць выкарыстанне Simplicity Studio або доступ да сховішчаў Silicon Labs або CSA Github.
- Пры неабходнасці звярніцеся да інструкцый па абнаўленні для ZAP па-за цыклам выпуску Simplicity Studio.
- Калі вы распрацоўваеце прыкладанні Matter:
FAQ
- Пытанне: Якія існуюць розныя версіі двайковых файлаў ZAP?
- A: Даступныя дзве версіі - афіцыйны выпуск з праверанымі зборкамі і папярэдні выпуск з найноўшымі функцыямі.
- Пытанне: што мне рабіць, калі я сутыкаюся з праблемамі кампіляцыі ўласнай бібліятэкі падчас усталявання?
- A: Каб вырашыць такія праблемы, звярніцеся да інфармацыі аб сцэнарыях для пэўнай платформы ў раздзеле FAQ.
“`
Silicon Labs ZAP
Silicon Labs ZAP
Распрацоўка з Silicon Labs ZAP
Пачатак працы
ZAP. Пачатак спачаткуview Усталёўка ZAP Усталёўка ZAP Windows Частыя пытанні
Асновы ZAP Асновы
Кіраўніцтва карыстальніка Кіраўніцтва карыстальніка ZAP Надview Карыстальніцкі XML Карыстальніцкі XML Tags для Zigbee Некалькі тыпаў прылад на канчатковую кропку Матэрыял Тып прылады Функцыя Старонка Апавяшчэнні Адпаведнасць спецыфікацыі Data-Model/ZCL Кантроль доступу Запуск ZAP для прыкладанняў Matter або Zigbee Стварэнне кода для Matter або Zigbee Абнаўленне ZAP у Studio Адначасовы некалькі пратаколаў паміж Zigbee і Matter Інтэграцыя SLC CLI з ZAP
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
1/35
Распрацоўка з Silicon Labs ZAP
Распрацоўка з Silicon Labs ZAP
ЗАП
ZAP - гэта агульны механізм генерацыі кода і карыстальніцкі інтэрфейс для прыкладанняў і бібліятэк, заснаваны на кластарнай бібліятэцы Zigbee ад Zigbee або мадэлі даных ад Matter. Спецыфікацыя распрацавана Connectivity Standards Alliance. ZAP дазваляе выконваць наступныя аперацыі:
Выконвайце спецыяльнае для SDK генераванне ўсіх глабальных артэфактаў (канстант, тыпаў, ідэнтыфікатараў і гэтак далей) на аснове спецыфікацыі ZCL/Data-Model. Выконвайце спецыфічную для SDK наладжаную генерацыю ўсіх выбраных карыстальнікам артэфактаў канфігурацыі (канфігурацыя прыкладання, канфігурацыя канчатковай кропкі і г.д.) на аснове спецыфікацыі ZCL/Data-Model і канфігурацыі прыкладання, прадастаўленай кліентам. Забяспечце карыстальніцкі інтэрфейс для выбару канкрэтнай канфігурацыі прыкладання (канчатковыя кропкі, кластары, атрыбуты, каманды і гэтак далей).
Змест гэтых раздзелаў апісвае, як распрацоўваць прыкладанні Zigbee і Matter шляхам канфігурацыі слаёў ZCL (Zigbee) або мадэлі даных (Matter) з дапамогай ZAP.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
2/35
ZAP Пачатак працы
ZAP Пачатак працы
Пачатак працы з ZAP
У гэтых раздзелах апісваюцца розныя метады стварэння прыкладанняў Zigbee і Matter. Звярніце ўвагу, што Simplicity Studio дае магчымасць ствараць прыкладанні Zigbee і Matter ад канца да канца, дзе ўсе інструменты прадусталяваны разам з Simplicity Studio (уключаючы ZAP). Вы таксама можаце вырашыць вывучыць іншыя спосабы стварэння прыкладанняў, як апісана тут.
Распрацоўка Zigbee
Распрацоўшчыкі прыкладанняў Zigbee могуць ствараць свае прыкладанні з дапамогай Simplicity Studio, якая ўжо ўключае ZAP і іншыя інструменты, якія дапамагаюць ствараць ваша прыкладанне ад канца да канца.
Развіццё матэрыі
Распрацоўшчыкі Matter Application могуць ствараць свае прыкладанні, выкарыстоўваючы наступныя метады: Simplicity Studio: гэта ўключае ў сябе ZAP і іншыя інструменты, неабходныя для стварэння канца да канца прыкладання Matter. Github (Silicon Labs) Github (CSA)
Заўвага: каб абнавіць ZAP па-за цыклам выпуску Simplicity Studio, глядзіце абнаўленне ZAP у Simplicity Studio і Кіраўніцтве па ўстаноўцы ZAP
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
3/35
Ўстаноўка ZAP
У наступных раздзелах апісваецца ўстаноўка ZAP і як абнавіць ZAP у IDE Simplicity Studio.
Рэкамендуецца загрузка выкананага файла ZAP)
Гэта рэкамендаваны спосаб пачаць працу з ZAP. Вы можаце атрымаць апошнія двайковыя файлы ZAP ад aa https://github.com/project-chip/zp/releses. Папярэдне створаныя двайковыя файлы бываюць дзвюх розных версій.
Афіцыйны выпуск: правераныя зборкі са спецыяльнымі наборамі тэстаў Matter і Zigbee. Фармат назвы выпуску vYYYY.DD.MM. Папярэдні рэліз: зборкі з найноўшымі функцыямі і выпраўленнямі памылак, але гэтыя зборкі НЕ правяраюцца спецыяльнымі наборамі тэстаў Matter і Zigbee. Фармат назвы выпуску vYYYY.DD.MM-кожны вечар.
Устаноўка ZAP з зыходнага кода
Асноўныя інструкцыі па ўсталёўцы ZAP
Паколькі гэта дадатак node.js, вам неабходна ўсталяваць асяроддзе node. Лепшы спосаб зрабіць гэта - загрузіць апошнюю версію node, якая ўключае node і npm. Калі на вашай працоўнай станцыі ўсталявана старая версія node, гэта можа выклікаць праблемы, асабліва калі яна вельмі старая. Пераканайцеся, што ў вас ёсць апошняя версія node v16.x з уключаным npm. Запусціце node –version, каб праверыць, якая версія падабрана. v18.x рэкамендуецца. Калі ў вас ёсць патрэбная версія вузла, вы можаце запусціць наступнае:
Усталюйце залежнасці
Каб усталяваць залежнасці, выкарыстоўвайце наступныя каманды:
npm ўсталяваць
Заўвага: для спецыяльнай усталявання ZAP для Windows гл. Усталёўка ZAP для АС Windows. На гэтым этапе нярэдка сутыкнуцца з праблемамі кампіляцыі ўласнай бібліятэкі. Існуюць розныя скрыпты src-script/install-* для розных платформаў. Глядзіце інфармацыю аб часта задаваных пытаннях аб тым, які скрыпт запускаць на розных платформах, а затым паўторна запусціце npm install.
Запусціце прыкладанне
Выкарыстоўвайце наступныя каманды для запуску прыкладання:
npm запусціць зап
Запусціце інтэрфейс у рэжыме распрацоўкі
Падтрымка хуткай перазагрузкі кода, паведамлення пра памылкі і гэтак далей. Выкарыстоўвайце наступныя каманды, каб пачаць распрацоўку інтэрфейсу
рэжым:
квазар дэв -м электрон
or
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
4/35
ZAP Insta at o ll in
npm запусціць электронную распрацоўку
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
5/35
Ўстаноўка ZAP для Windows
Ўстаноўка ZAP для Windows
Ўстаноўка ZAP для АС Windows
1. Windows Powershell
У радку пошуку працоўнага стала ўвядзіце Windows Powershell і запусціце ад імя адміністратара. Выканайце ўсе наступныя каманды ўнутры Powershell.
2. Шакаладны
Усталяваць з https://chocolatey.org/install. Праверце правільнасць усталявання з дапамогай наступных каманд:
чоко -в
Усталюйце пакет pkgconfiglite з наступнымі камандамі:
choco ўсталяваць pkgconfiglite
3. Усталюйце Node
Выканайце наступныя каманды для ўстаноўкі:
choco ўсталяваць nodejs-lts
*Версія павінна быць 18, каб прайсці тэст праверкі версіі, пасля ўстаноўкі праверце з дапамогай node -v *Калі вы ўжо ўсталявалі Node і не прайшлі некаторыя тэсты, падобныя на не магу знайсці Node, пераўсталюйце Node з дапамогай шакаладнага.
4. Выконвайце асноўныя інструкцыі па ўсталёўцы ZAP
Выконвайце інструкцыі па ўсталёўцы ZAP з крыніцы ва ўсталёўцы ZAP. Выконваючы асноўныя інструкцыі па ўсталяванні ZAP, звярніце ўвагу на наступныя памылкі і спосабы іх вырашэння:
sqlite3
Пры запуску ZAP (напрыклад, npm run zap), калі вы бачыце памылку аб sqlite3.node ва ўсплываючым акне, запусціце:
npm перабудаваць sqlite3
электрон-будаўнік
Пры выкананні ўстаноўкі npm, пасля ўстаноўкі, калі ўзнікае памылка наступнай каманды, звязанай з electron-builder install-appdeps, npx electron-rebuild canvas failed або node-pre-gyp, бягучая версія canvas несумяшчальная з Windows, і памылка ўстаноўкі не прывядзе да збою пры запуску ZAP. node-canvas зараз працуе над рашэннем, і праблема будзе вырашана ў бліжэйшы час.
«postinstall»: «electron-builder install-app-deps && husky install && npm rebuild canvas –update-binary && npm run version-stamp”
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
6/35
Ўстаноўка ZAP для Windows
Палатно
Калі npm запусціць тэст не ўдаецца з-за памылкі Не атрымалася запусціць набор тэстаў. Немагчыма знайсці модуль '../build/Release/canvas.node' або
zapnode_modulescanvasbuildReleasecanvas.node не з'яўляецца сапраўдным дадаткам Win32. , перабудаваць палатно наступным чынам:
npm rebuild canvas –update-binary
атрымаць index.html або іншыя праблемы сервера
Калі тэст выканання npm не атрымоўваецца з-за памылкі get index.html, запыт не атрымаўся з кодам стану 404 у модульных тэстах або пры наяўнасці сервера
праблемы з падключэннем у тэстах e2e-ci, выканайце наступныя каманды:
npm run build
Іншае
Праверце, ці з'яўляецца версія вузла v18, і паспрабуйце ўсталяваць яго з Chocolatey.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
7/35
FAQ
FAQ
Часта задаюць пытанні
Q: Як запусціць UI ў рэжыме распрацоўкі? A: Вы можаце запусціць карыстацкі інтэрфейс у рэжыме распрацоўкі, што прывядзе да наступнай налады:
Асобны HTTP-сервер распрацоўкі квазара, які выконвае жывое абнаўленне на порце 8080 ZAP, працуе на порце 9070 Chrome або іншым браўзеры, працуе незалежна. Каб перайсці да гэтай налады, прытрымлівайцеся інструкцый ніжэй. ò Спачатку запусціце сервер распрацоўкі ZAP, які запускаецца з порта 9070.
npm запусціце zap-devserver — Затым запусціце сервер распрацоўкі quasar, які запускаецца на порце 8080.
quasar dev ô Навядзіце браўзер або запусціце яго супраць належнага URL з аргументам restPort:
google-chrome http://localhost:8080/?restPort=9070
Пытанне: Як прымусіць гэта працаваць на АС Mac/Linux? A:
npm install выкарыстоўваецца для загрузкі ўсіх неабходных пакетаў залежнасцяў. Калі вы бачыце памылкі, звязаныя з node-gyp і адсутнымі лакальнымі бібліятэкамі, такімі як pixman і гэтак далей, вам не хапае ўласных залежнасцей, каб задаволіць кампіляцыю неўсталяваных двайковых файлаў вузла для некаторай камбінацыі платформаў і версій. Npm у воблаку пастаянна абнаўляе спіс прадастаўленых двайковых файлаў, таму цалкам магчыма, што вы іх выдатна падбярэце, але калі вы гэтага не зробіце, вось інструкцыі для розных платформаў:
Fedora Core з dnf:
dnf усталяваць pixman-devel cairo-devel pango-devel libjpeg-devel giflib-devel
або запусціць скрыпт:
src-script/install-packages-fedora
Ubuntu з apt-get:
apt-get update apt-get install –fix-missing libpixman-1-dev libcairo-dev libsdl-pango-dev libjpeg-dev libgif-dev
або запусціць скрыпт:
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
8/35
FAQ
src-script/install-packages-ubuntu
OSX на Mac з Homebrew brew:
brew усталяваць pkg-config cairo pango libpng jpeg giflib librsvg
або запусціць скрыпт:
src-script/install-packages-osx
Пытанне: Як прымусіць гэта працаваць у АС Windows?
A: Пераканайцеся, што ён заўсёды абноўлены і няма змен, якія не былі зафіксаваны. Парада: git pull, git status і git stash - вашы сябры. Вы павінны выкарыстоўваць Chocolately, каб Zap працаваў у АС Windows. Не забудзьцеся загрузіць пакет pkgconfiglite.
choco ўсталяваць pkgconfiglite
Калі ў вас ёсць праблемы з Cairo, напрыкладample, калі вы атрымліваеце памылку пра cairo.h': такога няма file ці каталог, зрабіце наступнае: ò Праверце, ці з'яўляецца ваш кампутар 32-ці 64-бітным. ó У залежнасці ад гэтага спампуйце адпаведны пакет з гэтага сайта
https://github.com/benjamind/delarre.docpad/blob/master/src/documents/posts/installing-node-canvas-for-windows.html.md. ô Create a folder on your C drive called GTK if it doesn’t already exist. õ Unzip the downloaded content into C:/GTK. ö Copy all the dll files from C:/GTK/bin to your node_modules/canvas/build/Release folder in your zap folder. ÷ Add C:/GTK to the path Environment Variable by going to System in the Control Panel and doing the following:
Націсніце на Дадатковыя налады сістэмы. На пашыранай ўкладцы націсніце Зменныя асяроддзя. У раздзеле «Сістэмныя зменныя» знайдзіце зменную асяроддзя PATH і абярыце яе. Націсніце «Праўка» і дадайце да яго C:/GTK. Калі зменная асяроддзя PATH не існуе, націсніце New. Калі jpeglib.h не знойдзены, паспрабуйце наступнае: ò На тэрмінале запусціце: choco install libjpeg-turbo ó Пераканайцеся, што ён чысты, выкарыстаўшы: git clean -dxff і зноў запусціце npm install ô калі памылак не ўзнікае і з'яўляюцца толькі папярэджанні, паспрабуйце выкарыстаць npm audit fix õ калі вы не можаце запусціць ZAP, перайдзіце да file src-script/zap-start.js ö Змяніць
÷ const { spawn } = require('cross-spawn') to const { spawn } = require('child_process') ø Запусціце npm і запусціце zap. Спіс літаратуры:
https://github.com/fabricjs/fabric.js/issues/3611 https://github.com/benjamind/delarre.docpad/blob/master/src/documents/posts/installing-node-canvas-for-windows.html.md [https://chocolatey.org/packages/libjpeg-turbo#dependencies](https://chocolatey.org/packages/libjpeg-turbo#dependencies)
Пытанне: Я атрымліваю паведамленне пра памылку «sqlite3_node» не знойдзены або падобнае.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
9/35
FAQ
A: Аднавіце свае родныя прывязкі sqlite3. Каб выправіць гэта ў большасці выпадкаў, запусціце:
npm ўсталяваць
./node_modules/.bin/electron-rebuild -w sqlite3 -p
Калі гэта ўсё яшчэ не выпраўлена, зрабіце:
rm -rf node_modules, а затым паўтарыце выкананне каманд вышэй. Перыядычнае абнаўленне вашага npm таксама мае значэнне:
npm install -g npm
Пытанне: Я атрымліваю паведамленне пра памылку «Версія N-API гэтага асобніка Node — 1. Гэты модуль падтрымлівае версію(-і) N-API 3. Гэты асобнік Node не можа запусціць гэты модуль».
A: Абнавіце версію вузла. Рашэнне для гэтага абмяркоўваецца ў гэтай тэме Stack Overflow: https://stackoverflow.com/questions/60620327/the-n-apiversion-of-this-node-instance-is-1-this-module-supports-n-api-version
Пытанне: Мой кампутар для распрацоўкі не працуе з ZAP па якой-небудзь прычыне. Ці магу я выкарыстоўваць докер-кантэйнер?
A: Так, вы можаце. Удакладняецца.
Пытанне: Як мне запусціць ZAP у VSCode?
A: Калі вы выкарыстоўваеце VSCode на сваім шляху, увядзіце zap repo і ўвядзіце код. Гэта адкрые ZAP у VSCode. Каб запусціць ZAP у рэжыме адладкі, выберыце працоўную вобласць ZAP і націсніце на значок "Выканаць" на левай панэлі інструментаў. У вас будзе некалькі варыянтаў запуску ZAP, абярыце Node.js Debug Terminal. Гэта адкрые акно тэрмінала, з якога вы можаце ўвесці npm run zap, які далучыць адладчык і запусціць ZAP, як звычайна з каманднага радка. Віншуем, цяпер вы павінны ўбачыць, як ZAP працуе ў адладчыку. Вы можаце ўсталяваць кропкі прыпынку ў VSCode, як і ў любой іншай IDE.
Пытанне: адзінкавы тэст карыстальніцкага інтэрфейсу завершаны няўдала з некаторымі памылкамі, звязанымі з тым, што canvas не ствараецца для правільнай версіі вузла. Што мне рабіць?
A: Калі вы бачыце наступную памылку:
FAIL test/ui.test.js Не атрымалася запусціць набор тэстаў. Модуль 'canvas.node' быў скампіляваны з іншай версіяй Node.js з выкарыстаннем NODE_MODULE_VERSION 80. Для гэтай версіі Node.js патрабуецца NODE_MODULE_VERSION 72. Паспрабуйце паўторна скампіляваць або пераўсталяваць модуль (напрыклад, з дапамогай `npm rebuild` або «усталяваць npm»).
на аб'екце. (node_modules/canvas/lib/bindings.js:3 18)
затым запусціце: npm rebuild canvas –update-binary
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
10/35
Асновы ZAP
Асновы ZCL/мадэлі даных ZAP
Гэты раздзел змяшчае інфармацыю для новых карыстальнікаў ZAP. Націсніце на значок падручніка ў правым верхнім куце інтэрфейсу ZAP, які паказвае, як стварыць канфігурацыю ZAP. Падручнік правядзе вас праз наступнае: Стварэнне канчатковай кропкі Выберыце тып прылады Наладзьце кластар Наладзьце атрыбут Наладзьце каманду Падрабязную інфармацыю глядзіце ў Кіраўніцтве канфігуратара кластара Zigbee
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
11/35
Кіраўніцтва карыстальніка ZAP
Кіраўніцтва карыстальніка ZAP
Кіраўніцтва карыстальніка ZAP
Раздзелы пад гэтым кіраўніцтвам даюць больш падрабязную інфармацыю аб розных функцыях, якія прадстаўляюцца ZAP.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
12/35
Карыстальніцкі XML
Даданне карыстацкага XML з інтэрфейсу ZAP
Націсніце на значок «Пашырэнні» ў інтэрфейсе ZAP. Націсніце на кнопку «+» дадаць, каб выбраць уласны xml file Карыстальніцкія кластары, атрыбуты, каманды і г.д. павінны з'явіцца ў карыстальніцкім інтэрфейсе ZAP пасля дадання карыстальніцкага xml.
Стварэнне ўласнага XML у Zigbee
У раздзеле паказана, як ствараць уласныя карыстальніцкія кластары і пашыраць існуючыя стандартныя кластары карыстацкімі атрыбутамі і камандамі для Zigbee.
Спецыяльныя для вытворцаў кластары ў Zigbee
Вы можаце дадаць спецыфічныя для вытворцы кластары да стандартнага Profile. Мы прапануем эксampле гэтага ніжэй. Каб зрабіць гэта, вы павінны выканаць два абавязкі:
Ідэнтыфікатар кластара ПАВІНЕН знаходзіцца ў дыяпазоне, вызначаным вытворцам, 0xfc00 – 0xffff. Вызначэнне кластара павінна ўключаць у сябе код вытворцы, які будзе прымяняцца да УСІХ атрыбутаў і каманд у гэтым кластары і павінен быць прадастаўлены пры адпраўцы і атрыманні каманд і ўзаемадзеянні з атрыбутамі. напрыкладampль:
СampLe Mfg Спецыфічны кластар Генерал Гэты кластар забяспечвае эксampтолькі пра тое, як Application Framework можна пашырыць, каб уключыць кластары, звязаныя з вытворцам.
0xFC00
вугольчык сampатрыбут le
вугольчык сampатрыбут 2
А сample спецыфічная каманда вытворцы ў sample у залежнасці ад вытворцы
кластар.
Спецыяльныя для вытворцы каманды ў стандартным кластары Zigbee
Вы можаце дадаць свае ўласныя каманды ў любы стандартны кластар Zigbee з наступнымі патрабаваннямі:
Вашы спецыяльныя каманды вытворцы могуць выкарыстоўваць любы ідэнтыфікатар каманды ў дыяпазоне ідэнтыфікатараў каманды, 0x00 - 0xff. Вы таксама павінны прадаставіць код вытворцы для каманды, каб яе можна было адрозніць ад іншых каманд у кластары і апрацаваць належным чынам. напрыкладampLe пашырэння кластара On/Off з дапамогай вытворчых каманд:
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
13/35
Карыстальніцкі XML
<command source=”client” code=”0 0006″ name=”SampleMfgSpecificOffWithTransition” optional=”true” manufacturerCode=”0 1002″> Кліенцкая каманда, якая выключае прыладу з пераходам, зададзеным часам пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificOnWithTransition” optional=”true” manufacturerCode=”0 1002″> Кліенцкая каманда, якая ўключае прыладу з пераходам, зададзеным часам пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificToggleWithTransition” optional=”true” manufacturerCode=”0 1002″> Кліенцкая каманда, якая пераключае прыладу з пераходам, зададзеным часам пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificOnWithTransition2″ optional=”true” manufacturerCode=”0 1049″> Кліенцкая каманда, якая ўключае прыладу з пераходам, зададзеным часам пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificToggleWithTransition2″ неабавязкова=”праўда”
Код вытворцы=”0 1049″> Кліенцкая каманда, якая пераключае прыладу з пераходам, зададзеным часам пераходу ў Ember Sample атрыбут часу пераходу.
Спецыфічныя для вытворцы атрыбуты ў стандартным кластары Zigbee
Вы можаце дадаць свае ўласныя атрыбуты ў любы стандартны кластар Zigbee з наступнымі патрабаваннямі:
Вашы спецыфічныя атрыбуты вытворцы могуць выкарыстоўваць любы ідэнтыфікатар атрыбута ў дыяпазоне ідэнтыфікатараў атрыбута, 0x0000 – 0xffff. Вы таксама павінны прадаставіць код вытворцы для атрыбута, каб яго можна было адрозніць ад іншых атрыбутаў у кластары і апрацаваць належным чынам. напрыкладampле пашырэння кластара On/Off з дапамогай вытворчых атрыбутаў:
<attribute side=”server” code=”0 0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME” type=”INT16U” min=”0 0000″
max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true” manufacturerCode=”0 1002″>SampСпецыфічны атрыбут le Mfg: 0 0000 0 1002
<attribute side=”server” code=”0 0000″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ type=”INT8U” min=”0 0000″ max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true” manufacturerCode=”0 1049″>SampСпецыфічны атрыбут le Mfg: 0 0000 0 1049
<attribute side=”server” code=”0 0001″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3″ type=”INT8U” min=”0 0000″ max=”0xFFFF” writable=”true” default=”0 00″ optional=”true” manufacturerCode=”0 1002″>SampСпецыфічны атрыбут le Mfg: 0 0001 0 1002
<attribute side=”server” code=”0 0001″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ type=”INT16U” min=”0 0000″ max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true” manufacturerCode=”0 1049″>SampСпецыфічны атрыбут le Mfg: 0 0001 0 1040
Стварэнне ўласнага XML у Matter
У раздзеле паказана, як ствараць уласныя карыстальніцкія кластары і пашыраць існуючыя стандартныя кластары карыстацкімі атрыбутамі і камандамі для Matter.
Спецыфічныя для вытворцы кластары ў матэрыі
Вы можаце дадаць спецыфічныя для вытворцы кластары ў Matter. Мы прапануем эксampпра гэта ніжэй.
is a 32-bit combination of the manufacturer code and the id for the cluster. (required) The most significant 16 bits are the manufacturer code. The range for test manufacturer codes is 0xFFF1 – 0xFFF4. The least significant 16 bits are the cluster id. The range for manufacturer-specific clusters are: 0xFC00 – 0xFFFE.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
14/35
Карыстальніцкі XML
У наступным выпрample, спалучэнне ідэнтыфікатара пастаўшчыка (ідэнтыфікатара вытворцы тэсту) 0xFFF1 і ідэнтыфікатара кластара 0xFC20 прыводзіць да value of 0xFFF1FC20. The commands and attributes within this cluster will adopt the same Manufacturer ID. Exampль:
Генерал Сample MEI 0xFFF1FC20 СAMPLE_MEI_CLUSTER СampКластар le MEI дэманструе пашырэнні вытворцы кластара Фліпфлоп
Адказ для AddArguments, які вяртае суму. Каманда, якая прымае два аргументы uint8 і вяртае іх суму. Простая каманда без параметраў і без адказу.
Спецыфічныя для вытворцы атрыбуты ў стандартных кластарах матэрыі
Вы можаце дадаць спецыфічныя атрыбуты вытворцы ў любы стандартны кластар Matter з наступнымі патрабаваннямі:
T aaaa кластар, у які дадаюцца атрыбуты, павінен быць указаны –
e xte nd ed > “>
Код атрыбута - гэта 32-бітная камбінацыя кода вытворцы і ідэнтыфікатара атрыбута. Самыя значныя 16 біт - гэта код вытворцы. Дыяпазон для тэставых кодаў вытворцаў 0xFFF1 - 0xFFF4. Найменшыя 16 біт - гэта ідэнтыфікатар атрыбута. Дыяпазон для неглабальных атрыбутаў 0x0000 - 0x4FFF.
Exampле пашырэння кластара On/Off Matter спецыфічнымі атрыбутамі вытворцы:
<attribute side=”server” code=”0xFFF0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ type=”INT8U” min=”0 0000″
max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true”>SampСпецыфічны атрыбут le Mfg 2AMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ type=”INT16U” min=”0 0000″
max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true”>SampСпецыфічны атрыбут le Mfg 4
Спецыяльныя для вытворцы каманды ў стандартных кластарах матэрыі
Вы можаце дадаць спецыяльныя каманды вытворцы ў любы стандартны кластар Matter з наступнымі патрабаваннямі:
T aaaa павінен быць указаны кластар, да якога дадаюцца каманды –
e xte nd ed > “>
Код каманды - гэта 32-бітная камбінацыя кода вытворцы і ідэнтыфікатара каманды. Самыя значныя 16 біт - гэта код вытворцы. Дыяпазон для тэставых кодаў вытворцаў 0xFFF1 - 0xFFF4. Найменшыя 16 біт - гэта ідэнтыфікатар каманды. Дыяпазон для неглабальных каманд 0x0000 - 0x00FF.
Exampле пашырэння кластара On/Off Matter з дапамогай кластараў для канкрэтных вытворцаў:
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
15/35
Карыстальніцкі XML
<command source=”client” code=”0xFFF10000″ name=”SampleMfgSpecificOnWithTransition2″ неабавязкова=”праўда”> Кліенцкая каманда, якая ўключае прыладу з пераходам, зададзеным часам пераходу ў Ember Sample атрыбут часу пераходу.
<command source=”client” code=”0xFFF10001″ name=”SampleMfgSpecificToggleWithTransition2″ неабавязкова=”true”>
Кліенцкая каманда, якая пераключае прыладу з пераходам, зададзеным часам пераходу ў Ember Sample атрыбут часу пераходу.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
16/35
У наступным дакуменце распавядаецца аб кожным з xml tags звязаны з Zigbee.
Кожны xml file знаходзіцца ў спісе паміж канфігуратарам tags:
Тыпы даных можна вызначыць у канфігуратары tag. У цяперашні час Zigbee падтрымлівае вызначэнне растравых малюнкаў, пералічэнняў, цэлых лікаў, радкоў або структур. Перш чым вызначаць больш тыпаў, пераканайцеся, што праверылі ўсе існуючыя атамарныя тыпы, вызначаныя ў types.xml, і ўсе неатамарныя тыпы, вызначаныя ў іншым xml fileс. Вы можаце вызначыць іх наступным чынам:
Bitmap: імя: імя тыпу растравага малюнка. тып: можна вызначыць растравы малюнак памерам ад 8 да 64 біт, усе з якіх павінны быць кратнымі 8. Кожнае растравае малюнак можа мець некалькі палёў з імем і маскай, звязанымі з ім. напрыклад:
“`
Enum: імя: імя тыпу пералічэння. тып: Можна вызначыць Enum памерам ад 8 да 64 біт, усе з якіх павінны быць кратнымі 8. Кожнае пералічэнне можа мець некалькі элементаў з імем і значэннем, звязанымі з ім. напрыклад:
Цэлыя: Цэлыя тыпы ўжо вызначаны ў атамарных тыпах, якія існуюць у types.xml. Іх памер можа вар'іравацца ад 8-64 біт і можа быць са знакам або без знака. напрыклад:
Радок: тыпы радкоў ужо вызначаны ў атамарных тыпах, якія існуюць у types.xml. Бягучыя тыпы радкоў ўключаюць актэтны радок, сімвальны радок, доўгі актэтны радок і доўгі сімвальны радок, напрыклад:
Struct: name: імя тыпу структуры. Кожная структура можа мець некалькі элементаў з імем і тыпам, звязанымі з ім. Тып можа быць любым загадзя вызначаным тыпам у тыпах даных. напрыклад:
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
17/35
Карыстальніцкі XML Tags для Zigbee
<item name=”structItem1″ type=” Any defined type name in the xml files]”/>
Карыстальніцкія кластары можна вызначыць у канфігуратары tag. імя: назва дамена кластара: дамен кластара. Кластар будзе адлюстроўвацца ў карыстальніцкім інтэрфейсе ZAP у гэтым дамене. апісанне: Апісанне кода кластара: вызначэнне кода кластара: вызначэнне кластара, якое выкарыстоўваецца генератарам кода для вызначэння кластара пэўным чынам manufacturerCode: выкарыстоўваецца для вызначэння кластара, які спецыфічна вырабляецца. Гэта павінна быць паміж 0xfc00 - 0xffff. Код вытворцы для кластара павінен быць вызначаны наступным чынам:
Вытворчы кластар аўтаматычна робіць атрыбуты і каманды пад ім аднолькавым кодам вытворцы, калі яны відавочна не пералічваюць код вытворцы. createdIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой быў прадстаўлены кластар. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. RemoveIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой быў выдалены кластар. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. singleton(boolean): Выкарыстоўваецца для вызначэння кластара як адзінкавага, так што ёсць толькі адзін асобнік гэтага кластара, агульны для канчатковых кропак. attribute: вызначае атрыбут для назвы кластара: Імя атрыбута згадваецца паміж атрыбутам tag.
імя атрыбута
бок (кліент/сервер): бок кластара, з якім таксама звязаны атрыбут. code: Код атрыбуту Код вытворцы: Гэта можа выкарыстоўвацца для вызначэння спецыфічнага атрыбуту вытворцы па-за межамі спецыфікацыі zigbee, згаданай у стандартным xml. define: атрыбут define, які выкарыстоўваецца генератарам кода для вызначэння атрыбута пэўным чынам type: тып атрыбута, які можа быць любым з тыпаў даных, згаданых у xml default: значэнне па змаўчанні для атрыбута. min: Мінімальна дазволенае значэнне для атрыбута max: Максімальна дазволенае значэнне для атрыбута Writable: Ці можна значэнне атрыбута запісваць ці не. Гэта можна выкарыстоўваць, каб прадухіліць змяненне атрыбута камандамі запісу. optional(boolean): Выкарыстоўваецца для вызначэння, ці з'яўляецца атрыбут неабавязковым для кластара. min: Мінімальна дазволенае значэнне для атрыбута, калі гэта цэлы лік, пералік або растравы тып. max: Максімальна дазволенае значэнне для атрыбута, калі гэта цэлы лік, пералік або растравы тып. Даўжыня: Выкарыстоўваецца для ўказання максімальнай даўжыні атрыбута, калі ён мае радковы тып. minLength: выкарыстоўваецца для ўказання мінімальнай даўжыні атрыбута, калі ён мае тып радка. reportable(boolean): Паказвае, калі атрыбут падлягае справаздачнасці ці не isNullable(boolean): Дазваляе нулявыя значэнні для атрыбуту. array(boolean): Выкарыстоўваецца для аб'явы атрыбуту тыпу array. createdIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой быў уведзены атрыбут. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. RemoveIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой атрыбут быў выдалены. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. каманда: вызначыць каманду для імя кластара: Імя каманды.
код: код каманды
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
18/35
Карыстальніцкі XML Tags для Zigbee
код вытворцы: гэта можа быць выкарыстана для вызначэння каманды вытворцы па-за межамі спецыфікацыі zigbee, згаданай у стандартным xml. апісанне: апісанне крыніцы каманды (кліент/сервер): крыніца каманды. optional(boolean): Выкарыстоўваецца для вызначэння таго, ці з'яўляецца каманда неабавязковай для кластара. createdIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой была ўведзена каманда. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. RemoveIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой каманда была выдалена. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. аргументы каманды:
Кожная каманда можа мець набор аргументаў каманды name: назва аргумента каманды type: тып аргумента каманды, які можа быць любым з тыпаў, згаданых у xml. min: Мінімальна дазволенае значэнне для аргумента, калі гэта цэлы лік, пералік або растравы тып. макс.: Максімальна дазволенае значэнне для аргумента, калі ён з'яўляецца цэлым лікам, пералічэннем або растравым тыпам. Даўжыня: Выкарыстоўваецца для ўказання максімальна дапушчальнай даўжыні для аргумента каманды, калі ён мае тып радка. minLength: выкарыстоўваецца для ўказання мінімальна дапушчальнай даўжыні аргумента каманды, калі ён мае тып радка. array(boolean): Каб вызначыць, ці мае аргумент каманды тып array. presentIf(радок): гэта можа быць умоўны радок лагічных аперацый, заснаваных на іншых аргументах каманды, дзе вы можаце чакаць аргумент каманды, калі ўмоўны радок будзе праўдзівым. напрыклад:
Заўвага: тут status - гэта іншая назва аргумента каманды. optional(boolean): Выкарыстоўваецца для вызначэння аргумента каманды як неабавязковага. countArg: выкарыстоўваецца, калі аргумент каманды мае тып масіў. Гэта выкарыстоўваецца для ўпамінання іншага аргумента каманды, які пазначае памер масіва для гэтага аргумента.
createdIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой быў уведзены аргумент каманды. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. RemoveIn: Выкарыстоўваецца для вызначэння версіі спецыфікацыі, у якой быў выдалены аргумент каманды. Гэта выкарыстоўваецца генератарам кода для дадання дадатковай логікі. Пашырэнне кластара можна вызначыць у канфігуратары tag. Пашырэнне кластара выкарыстоўваецца для пашырэння стандартнага кластара вытворчымі атрыбутамі і камандамі, напрыклад
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
19/35
Карыстальніцкі XML Tags для Zigbee
<attribute side=”server” code=”0 0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME” type=”INT16U” min=”0 0000″ max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true” manufacturerCode=”0 1002″>SampСпецыфічны атрыбут le Mfg: 0 0000 0 1002AMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ type=”INT8U” min=”0 0000″ max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true” manufacturerCode=”0 1049″>SampСпецыфічны атрыбут le Mfg: 0 0000 0 1049AMPLE_MFG_SPECIFIC_TRANSITION_TIME_3″ type=”INT8U” min=”0 0000″ max=”0xFFFF” writable=”true” default=”0 00″ optional=”true” manufacturerCode=”0 1002″>SampСпецыфічны атрыбут le Mfg: 0 0001 0 1002AMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ type=”INT16U” min=”0 0000″ max=”0xFFFF” writable=”true” default=”0 0000″ optional=”true” manufacturerCode=”0 1049″>SampСпецыфічны атрыбут le Mfg: 0 0001 0 1040ampleMfgSpecificOffWithTransition” optional=”true” manufacturerCode=”0 1002″> Кліенцкая каманда, якая выключае прыладу з указаннем пераходу
па часе пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificOnWithTransition” optional=”true” manufacturerCode=”0 1002″> Кліентская каманда, якая ўключае прыладу з зададзеным пераходам
па часе пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificToggleWithTransition” optional=”true” manufacturerCode=”0 1002″> Кліенцкая каманда, якая пераключае прыладу з зададзеным пераходам
па часе пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificOnWithTransition2″ optional=”true” manufacturerCode=”0 1049″> Кліентская каманда, якая ўключае прыладу з зададзеным пераходам
па часе пераходу ў Ember Sample атрыбут часу пераходу.ampleMfgSpecificToggleWithTransition2″ optional=”true” manufacturerCode=”0 1049″> Кліенцкая каманда, якая пераключае прыладу з зададзеным пераходам
па часе пераходу ў Ember Sample атрыбут часу пераходу.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
20/35
Некалькі тыпаў прылад на канечную кропку
Гэта функцыя толькі Matter, дзе карыстальнік можа выбраць больш чым адзін тып прылады для кожнай канчатковай кропкі. Даданне некалькіх тыпаў прылад aaa дадасць канфігурацыі кластара ў тыпах прылад да канфігурацыі канчатковай кропкі.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
21/35
Некалькі тыпаў прылад на канечную кропку
Выява вышэй паказвае, што для канчатковай кропкі 1 выбраны больш чым адзін тып прылады. «Асноўная прылада» пазначае тып асноўнай прылады, з якой будзе звязана канчатковая кропка. Асноўны тып прылады заўсёды знаходзіцца пад індэксам 0 у спісе выбраных тыпаў прылад, таму выбар іншага асноўнага тыпу прылады зменіць парадак выбраных тыпаў прылад. Выбар тыпу прылады таксама мае абмежаванні, заснаваныя на спецыфікацыі мадэлі даных. ZAP абараняе карыстальнікаў ад выбару недапушчальных камбінацый тыпаў прылад на канчатковай кропцы з дапамогай гэтых абмежаванняў.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
22/35
Матэрыяльны тып прылады Старонка функцыі
Матэрыяльны тып прылады Старонка функцыі
Матэрыяльны тып прылады Старонка функцыі
ZAP падтрымлівае візуалізацыю і пераключэнне функцый Matter на старонцы функцый тыпу прылады. Будуць адлюстроўвацца толькі функцыі тыпу прылады, указаныя ў файле matter-devices.xml у рэпазітары CHIP.
Пераход на старонку функцый
ò Запусціце ZAP у Matter з абноўленым Matter SDK. ó Стварыце канечную кропку з тыпам прылады Matter. ô Націсніце кнопку «Асаблівасці тыпу прылады» ў верхняй сярэдзіне кластара view. Звярніце ўвагу, што гэтая кнопка даступная толькі ў ZAP
канфігурацыі для Matter і калі дадзеныя аб адпаведнасці існуюць у Matter SDK. Націсканне гэтай кнопкі адкрые малюнак вышэй.
Адпаведнасць
Адпаведнасць вызначае неабавязковасць і залежнасць для атрыбутаў, каманд, падзей і тыпаў даных. Ён вызначае, ці з'яўляецца элемент абавязковым, неабавязковым або не падтрымліваецца ў пэўных канфігурацыях ZAP.
Адпаведнасць функцый тыпу прылады мае прыярытэт перад адпаведнасцю функцый кластара. Напрыкладampнапрыклад, функцыя асвятлення мае неабавязковую адпаведнасць у кластары ўключэння/выключэння, але заяўлена як абавязковая ў тыпе прылады ўключэння/выключэння святла, які ўключае кластар уключэння/выключэння. Пры стварэнні канчатковай кропкі з тыпам прылады "Уключэнне/выключэнне святла" функцыя асвятлення будзе паказана як абавязковая на старонцы функцый.
Пераключэнне функцый
На старонцы функцый, пасля таго як вы націснеце кнопку пераключэння, каб уключыць або выключыць функцыю, ZAP:
Абнавіце звязаныя элементы (атрыбуты, каманды, падзеі), каб выправіць адпаведнасць, і пакажыце дыялог, які паказвае змены.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
23/35
Матэрыяльны тып прылады Старонка функцый Абнавіце біт функцыі ў атрыбуте featureMap звязанага кластара
Уключыць дыялог функцый
Адключыць дыялог функцый
Пераключэнне адключана для некаторых функцый, калі іх адпаведнасць мае невядомае значэнне або форму t, якая зараз не падтрымліваецца. У гэтым выпадку ZAP будзе паказваць папярэджанні ў акне апавяшчэнняў.
Wa Element Conform nce rnings
Калі вы перамыкаеце элемент, ZAP можа адлюстроўваць як папярэджанні аб адпаведнасці прылады, так і папярэджанні аб адпаведнасці. Калі стан элемента не адпавядае чаканай адпаведнасці, ZAP адлюструе значок папярэджання і запіша папярэджанне ў акне апавяшчэнняў. напрыкладampпапярэджанні аб адпаведнасці і адпаведнасці, якія адлюстроўваюцца для элемента:
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
24/35
Апавяшчэнні
Апавяшчэнні
Апавяшчэнні
У наступным раздзеле вызначаецца, як апавяшчэнні даюцца карыстальнікам ZAP у карыстальніцкім інтэрфейсе.
Апавяшчэнні аб пакетах
Апавяшчэнні аб пакетах - гэта папярэджанні або паведамленні пра памылкі, звязаныя з любым канкрэтным пакетам, загружаным у ZAP. Напрыкладample, на малюнках ніжэй, націсканне значка папярэджання пад слупком стану прывядзе вас да дыялогу, які паказвае ўсе апавяшчэнні для гэтага пакета.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
25/35
Апавяшчэнні
Апавяшчэнні аб сеансе
Апавяшчэнні аб сеансе - гэта папярэджанні або паведамленні пра памылкі, звязаныя з сеансам карыстальніка. Гэтыя папярэджанні/памылкі можна ўбачыць, націснуўшы на кнопку "Апавяшчэнні" на панэлі інструментаў у верхняй частцы інтэрфейсу ZAP. Напрыкладample, малюнак ніжэй паказвае старонку апавяшчэнняў аб сеансе пасля isc file быў загружаны ў ZAP.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
26/35
Адпаведнасць спецыфікацыі Data-Model/ZCL
Адпаведнасць спецыфікацыі Data-Model/ZCL
Адпаведнасць мадэлі дадзеных і спецыфікацыі ZCL
Гэтая функцыя ў ZAP дапамагае карыстальнікам бачыць збоі ў адпаведнасці мадэлі даных або ZCL з іх існуючымі канфігурацыямі ZAP. Папераджальныя паведамленні аб збоях адпаведнасці з'явяцца на панэлі апавяшчэнняў у карыстальніцкім інтэрфейсе ZAP, а таксама будуць уваходзіць у кансоль пры запуску ZAP праз CLI. Функцыя адпаведнасці ў цяперашні час забяспечвае папярэджанні аб адпаведнасці тыпу прылады і адпаведнасці кластара на канчатковай кропцы.
Папярэджанні аб адпаведнасці ў карыстацкім інтэрфейсе ZAP
Калі карыстальнік адкрывае .zap file з дапамогай карыстальніцкага інтэрфейсу ZAP яны будуць бачыць папярэджанні на панэлі апавяшчэнняў карыстацкага інтэрфейсу ZAP аб усіх збоях адпаведнасці. Напрыкладample, малюнак ніжэй паказвае старонку апавяшчэнняў аб сеансе пасля .zap file быў адкрыты з праблемамі адпаведнасці.
Паведамленні аб адпаведнасці знікнуць, як толькі праблемы будуць вырашаны з дапамогай карыстальніцкага інтэрфейсу ZAP, каб вы маглі адсочваць толькі тыя праблемы, якія засталіся. Новыя папярэджанні таксама будуць адлюстроўвацца для адпаведнасці, калі карыстальнік адключае абавязковыя элементы (кластар/каманды/атрыбуты) канфігурацыі. Апавяшчэнні аб адпаведнасці спецыфікацыям будуць заўсёды адсочваць любыя збоі, якія ўводзяцца ў канфігурацыю ZAP, але звярніце ўвагу, што папярэджанні, якія з'яўляюцца падчас адкрыцця .zap file у параўнанні з папярэджаннямі, якія з'яўляюцца падчас узаемадзеяння з карыстальніцкім інтэрфейсам, больш падрабязна расказваюць, чаму ён не адпавядае патрабаванням. Гэта задумана, і поўная праверка адпаведнасці выконваецца падчас адкрыцця .zap file.
Папярэджанні аб адпаведнасці на кансолі
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
27/35
Адпаведнасць спецыфікацыі Data-Model/ZCL
Калі карыстальнік адкрывае .zap file выкарыстоўваючы аўтаномны карыстацкі інтэрфейс ZAP або ZAP CLI, яны будуць бачыць папярэджанні, зарэгістраваныя ў кансолі/тэрмінале, аб усіх збоях адпаведнасці. Напрыкладample, малюнак ніжэй паказвае папярэджанні аб апавяшчэннях аб сеансе на кансолі/тэрмінале пасля .zap file быў адкрыты з праблемамі адпаведнасці.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
28/35
Кантроль доступу
Функцыі кантролю доступу
ZAP падтрымлівае кантроль доступу да ўсіх аб'ектаў ZCL. Гэта зводзіцца да рэалізацыі SDK для супастаўлення гэтых функцый з неабходнымі і падтрымоўванымі функцыямі кантролю доступу SDK. ZAP звычайна забяспечвае мадэль даных і механізм для іх кадзіравання ў метаінфармацыі files і распаўсюджваць гэтыя дадзеныя ў шаблоны генерацыі, без прысваення пэўных значэнняў кропкам дадзеных.
Базавыя ўмовы
Кантроль доступу ZAP вызначае тры асноўныя тэрміны: ò аперацыя : вызначаецца як тое, што можна зрабіць. напрыкладample: чытаць, пісаць, выклікаць. ó роля: вызначаецца як прывілей акцёра. Такія як "View прывілей», «Адміністрацыйная роля» і сын на. ô мадыфікатары: вызначаюцца як спецыяльныя ўмовы кантролю доступу, такія як канфідэнцыяльныя даныя сеткі або даныя, якія ахопліваюць сетку. Базавыя тэрміны вызначаны ў метададзеных XML у верхняй частцы tag . Наступны эксampазначэнне базавых тэрмінаў кантролю доступу:
<role type=”view”апісанне=”View прывілей”/>
Гэты былыample вызначае тры аперацыі, чытанне, запіс і выклік, два мадыфікатары і чатыры ролі.
Access Triplets
Кожная асобная ўмова доступу можа быць вызначана з дапамогай трыплета доступу ў XML. Трыплет доступу - гэта спалучэнне аперацыі, ролі і мадыфікатара. Яны неабавязковыя, таму вы можаце мець толькі адзін з іх. Адсутная частка трыплета звычайна азначае permissivenes, што залежыць ад рэалізацыі для дадзенага SDK. Аб'ект, які вызначае свой доступ, можа мець адзін або некалькі трыплетаў доступу. Наступны эксampль:
на 0
Гэта азначэнне атрыбута, які мае трыплет доступу, аб'яўляючы, што ён дазваляе аперацыю запісу ролі кіравання з прымяненнем мадыфікатара ў вобласці апрацоўкі сеткі.
Дазволы па змаўчанні
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
29/35
Кантроль доступу
Аб'екты ZCL могуць вызначаць свае ўласныя індывідуальныя дазволы. Аднак існуе таксама глабальнае вызначэнне дазволаў па змаўчанні для
дадзеныя тыпы. Яны прымаюцца для дадзенага аб'екта, калі ён не дае ніякіх уласных дазволаў.
Дазволы па змаўчанні аб'яўляюцца праз a tag на верхнім узроўні XML file. Прampль:
аа a< ccess op=”invoke”/> a а aa < ccess op=”re d”/> a< ccess op=”write”/> a аа aa < ccess op=”re d” role=”view”/> aa < ccess op=”write” role=”oper te”/> a
Памочнікі па шаблонах
Асноўным памочнікам шаблона для выкарыстання з'яўляецца ітэратар {{#access}} … {{/access}}. Гэты ітэратар перабірае ўсе зададзеныя трыплеты доступу.
Ён падтрымлівае наступныя два варыянты:
entity=”атрыбут/каманда/падзея” – калі сутнасць не можа быць вызначана з кантэксту, гэта задае тып сутнасці. includeDefault=”true/false” – вызначае, уключаны ці не значэнні па змаўчанні. Наступны эксampль:
{{#zcl_clusters}}
a Кластар: {{n me}} [{{code}}] a {{#zcl_ ttributes}} aa – ttribute: {{n me}} [{{code}}] aa {{# ccess entity=” ttribute”}}
O a RM a M * p: {{oper tion}} / ole: {{role}} / odifier: {{ ccess odifier}} a{{/ ccess}} a {{/zcl_ ttributes}} a {{#zcl_comm nds}} aa – comm nd: {{n me}} [{{code}}] aa {{# ccess entity=”comm nd”}} O a RM a M * p: {{oper tion}} / ole: {{role}} / odifier: {{ ccess odifier}} a{{/ ccess}} a {{/zcl_comm nds}}
{{#zcl_events}}
a – падзея: {{n me}} [{{code}}] a {{# ccess entity=”event”}} O a RM a M * p: {{oper tion}} / ole: {{role}} / odifier: {{ ccess odifier}} a{{/ ccess}}
{{/zcl_events}}
{{/zcl_clusters}}
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
30/35
Запуск прыкладанняў ZAP for Matter або Zigbee
Запуск прыкладанняў ZAP for Matter або Zigbee
Запуск прыкладанняў ZAP for Matter або Zigbee
У наступных раздзелах апісваецца запуск ZAP у аўтаномным рэжыме з метададзенымі Matter або Zigbee. Ідэя заключаецца ў тым, каб запусціць ZAP з правільнымі аргументамі, звязанымі з метададзенымі XML (кластары і тыпы прылад, азначэннямі ў адпаведнасці са спецыфікацыямі CSA) і шаблонамі генерацыі, якія выкарыстоўваюцца для стварэння адпаведнага кода.
Запуск ZAP with Matter
Наступны скрыпт выбірае правільныя метададзеныя з Matter SDK пры запуску ZAP. https://github.com/project-chip/connectedhomeip/blob/master/scripts/tools/zap/run_zaptool.sh Заўвага: Вы таксама можаце скарыстацца наступным падыходам Zigbee для запуску ZAP у Matter.
Запуск ZAP з Zigbee
Наступная каманда запускае ZAP са спецыфікацыямі ZCL і шаблонамі генерацыі з SDK.
[шлях да sdk] -z [шлях да sdk]/gsdk/app/zcl/zcl-zap.json -g [шлях да sdk]/gsdk/protocol/zigbee/app/framework/gen-template/gen-templates.json
zap-path: гэта шлях да крыніцы ZAP або выкананага файла sdk-path: гэта шлях да SDK
Запуск ZAP без метададзеных
Памятайце, што пры запуску ZAP непасрэдна праз выканальны файл або з зыходнага кода з дапамогай npm run zap вы запускаеце ZAP з тэставымі метададзенымі для Matter/Zigbee, убудаванымі ў ZAP, а не з фактычнымі метаданымі, якія паступаюць з згаданых вышэй пакетаў SDK Matter і Zigbee. Таму памятайце, што канфігурацыі ZAP трэба ствараць з выкарыстаннем метаданых SDK, а не адкрываючы ZAP непасрэдна з дапамогай убудаваных тэставых метаданых.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
31/35
Генерацыя кода для Matter або Zigbee
Стварэнне кода для Matter, Zigbee або карыстацкага SDK
У наступных раздзелах апісваецца, як стварыць код з дапамогай ZAP.
Стварыце код з дапамогай ZAP UI
Запусціце інтэрфейс ZAP у адпаведнасці з інструкцыямі ў раздзеле «Запуск ZAP for Matter або Zigbee» і націсніце кнопку «Стварыць» у верхняй радку меню.
Стварыце код без карыстацкага інтэрфейсу
У наступных інструкцыях прадстаўлены розныя спосабы генерацыі кода праз CLI без запуску інтэрфейсу ZAP.
Стварэнне кода з крыніцы ZAP
Выканайце наступную каманду, каб стварыць код з дапамогай ZAP з крыніцы: node src-script/zap-generate.js –genResultFile –stateDirectory ~/.zap/gen -z ./zcl-builtin/silabs/zcl.json -g ./test/gen-
template/zigbee/gen-templates.json -i ./test/resource/three-endpoint-device.zap -o ./tmp
Стварэнне кода з выкананага файла ZAP
Выканайце наступную каманду, каб стварыць код з дапамогай выканальнага файла ZAP: [zap-path] generate –genResultFile –stateDirectory ~/.zap/gen -z ./zcl-builtin/silabs/zcl.json -g ./test/gen-template/zigbee/gen-
templates.json -i ./test/resource/three-endpoint-device.zap -o ./tmp
Стварэнне кода з выкананага файла ZAP CLI
Выканайце наступную каманду, каб згенераваць код з дапамогай ZAP CLI Executable: [zap-cli-path] generate –genResultFile –stateDirectory ~/.zap/gen -z ./zcl-builtin/silabs/zcl.json -g ./test/gen-template/zigbee/gen-
templates.json -i ./test/resource/three-endpoint-device.zap -o ./tmp
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
32/35
Абнавіце ZAP у Studio
Абнавіць ZAP
Абнавіце ZAP у Simplicity Studio
Гэты механізм можна выкарыстоўваць пры працы з пашырэннем Matter або Zigbee з выпускаў Silicon Labs SDK. ZAP можна абнавіць у Simplicity Studio без выпуску Simplicity Studio, загрузіўшы апошнюю версію выкананага файла ZAP (рэкамендуецца) або атрымаўшы апошнюю версію з крыніцы ZAP, як паказана ў Кіраўніцтве па ўстаноўцы ZAP. Пасля таго, як у вас будзе апошняя версія ZAP, заснаваная на вашай цяперашняй АС, вы можаце абнавіць ZAP у Studio ў якасці пакета адаптараў. Пасля загрузкі апошняй версіі ZAP выконвайце інструкцыі ніжэй:
Перайдзіце ў Simplicity Studio і выберыце Preferences > Simplicity Studio > Adapter Packs. Націсніце «Дадаць…» і перайдзіце да пашыранай папкі ZAP, якую вы спампавалі, і націсніце «Выбраць тэчку». Націсніце "Ужыць" і "Зачыніць", пасля чаго зноў дададзены ZAP будзе выкарыстоўвацца кожны раз, калі .zap file адкрыты.
Заўвага: часам могуць быць запушчаныя старыя асобнікі ZAP нават пасля абнаўлення да апошняй версіі ZAP. Пераканайцеся, што завяршылі ўсе існуючыя асобнікі ZAP, каб зноў атрыманы ZAP выкарыстоўваўся замест старога асобніка, які ўсё яшчэ працуе ў фонавым рэжыме.
Абнаўленне ZAP for Matter Development у Github
Пры працы з рэпазітарамі Matter або Matter-Silicon Labs на Github усталюйце зменныя асяроддзя адносна ZAP, каб ствараць/генераваць новыя канфігурацыі ZAP або паўторна генераваць існуючыяample канфігурацыі ZAP пасля ўнясення ў іх змяненняў. Усталюйце для ZAP_DEVELOPMENT_PATH значэнне ZAP з крыніцы, выцягнуўшы апошнюю версію, або ўсталюйце для ZAP_INSTALLATION_PATH значэнне ZAP выкананага файла, які вы спампавалі апошнім у вашым лакальным каталогу. Звярніце ўвагу, што калі ўсталяваны і ZAP_DEVELOPMENT_PATH, і ZAP_INSTALLATION_PATH, выкарыстоўваецца ZAP_DEVELOPMENT_PATH.
Наступныя эксampфайлы, якія паказваюць выкарыстоўваныя вышэйзгаданыя зменныя асяроддзя:
Запуск ZAP з выкарыстаннем спецыфікацыі Matter Аднаўленне ўсіх sampканфігурацыі le ZAP для прыкладанняў Matter
Заўвага: пры выкарыстанні выканальных файлаў ZAP пераканайцеся, што вы выкарыстоўваеце афіцыйны выпуск замест начнога выпуску для большай стабільнасці. Глядзіце
Спампоўка выкананага файла ZAP у Кіраўніцтве па ўстаноўцы ZAP
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
33/35
Адначасовы некалькі пратаколаў паміж Zigbee і Matter
Адначасовы некалькі пратаколаў паміж Zigbee і Matter
MCoantcteurrrent Мультыпратакол паміж Zigbee і
ZAP можна выкарыстоўваць для канфігурацыі канфігурацый ZCL (Zigbee) і Data-Model (Matter) у шматпратакольным дадатку для Zigbee і Matter. ZAP дазваляе ствараць канчатковыя кропкі для Zigbee і Matter відавочна ў той жа канфігурацыі file. Калі канчатковыя кропкі Zigbee і Matter знаходзяцца ў адным ідэнтыфікатары канчатковай кропкі (напрыклад,ample, LO Dimmable Light на канчатковай кропцы Id 1 і Matter Dimmable Light на іншым асобніку канчатковай кропкі 1), ZAP клапоціцца аб сінхранізацыі агульных атрыбутаў у атрыбутах Matter і Zigbee. Пераканайцеся, што атрыбуты, якія сінхранізуюцца, маюць аднолькавы тып дадзеных. Агульныя атрыбуты паміж Zigbee і Matter устаноўлены праз a file называецца multi-protocol.json. Карыстальнік можа звязаць любыя два кластары ў Zigbee і Matter разам з іх адпаведнымі атрыбутамі, выкарыстоўваючы код кластара і атрыбута адпаведна. гэта file можна знайсці ў [SDKPath]/app/zcl/multi-protocol.json. гэта file быў абноўлены пэўным наборам кластараў і атрыбутаў для пачатку, але карыстальнік можа абнавіць гэта file па меры неабходнасці, і ZAP паклапоціцца аб сінхранізацыі канфігурацыі атрыбутаў паміж Zigbee і Matter для агульных ідэнтыфікатараў канчатковых кропак.
Вы таксама можаце знайсці падручнік па ZAP у любым шматпратакольным дадатку Zigbee and Matter на старонцы падручнікаў. Гэты падручнік правядзе вас праз працэс стварэння шматпратакольнага прыкладання. Гэты падручнік даступны, толькі калі вы адкрываеце існуючае шматпратакольнае прыкладанне, і яго можна знайсці, як паказана на малюнку ніжэй:
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
34/35
Інтэграцыя SLC CLI з ZAP
Інтэграцыя SLC CLI з ZAP
Інтэграцыя SLC CLI з ZAP
Выканайце наступныя дзеянні, каб інтэграваць SLC CLI з ZAP: ò Усталюйце SLC CLI, выконваючы інструкцыі па ўсталёўцы ў Simplicity Studio 5 Кіраўніцтве карыстальніка. ó Усталюйце ZAP, выконваючы інструкцыі ў Кіраўніцтве па ўстаноўцы ZAP. ô Каб інтэграваць SLC CLI з ZAP, дадайце зменную асяроддзя STUDIO_ADAPTER_PACK_PATH, якая паказвае на прыкладанне ZAP
каталог. õ Не забудзьцеся перазапусціць SLC CLI Daemon пасля кроку 3. ö Любы праект, які выкарыстоўвае ZAP, цяпер будзе выкарыстоўваць шлях, вызначаны на этапе 3, калі створаны з SLC CLI. Звярніцеся да SLC CLI
Выкарыстанне для інструкцый па выкарыстанні SLC CLI для вашых праектаў.
Аўтарскае права © 2025 Silicon Laboratories. Усе правы ахоўваюцца.
35/35
Дакументы / Рэсурсы
![]() |
SILICON LABS ZAP распрацоўваецца з Silicon Labs [pdfКіраўніцтва карыстальніка ZAP распрацоўваецца з Silicon Labs, ZAP, распрацоўваецца з Silicon Labs, Silicon Labs, Labs |