ZAP în curs de dezvoltare cu Silicon Labs
Specificații
- Nume produs: Silicon Labs ZAP
- Tip: Motor de generare a codului și interfață cu utilizatorul
- Compatibilitate: Biblioteca Cluster Zigbee (Zigbee) sau Model de date (Materia)
- Dezvoltat de: Connectivity Standards Alliance
Instrucțiuni de utilizare a produsului
- ZAP Introducere
- Pentru a începe să utilizați ZAP, urmați acești pași:
- Descărcați ZAP Executable din depozitul oficial.
- Instalați dependențele folosind comanda npm install.
- Pentru instalarea specifică Windows, consultați ghidul Instalare ZAP pentru sistemul de operare Windows.
- Pentru a începe să utilizați ZAP, urmați acești pași:
- Dezvoltarea Zigbee
- Dacă dezvoltați aplicații Zigbee:
- Utilizați Simplicity Studio, care include ZAP și alte instrumente necesare.
- Dacă dezvoltați aplicații Zigbee:
- Dezvoltarea materiei
- Dacă dezvoltați aplicații Matter:
- Opțiunile includ utilizarea Simplicity Studio sau accesarea depozitelor Silicon Labs sau CSA Github.
- Consultați instrucțiunile de actualizare pentru ZAP în afara ciclului de lansare Simplicity Studio, dacă este necesar.
- Dacă dezvoltați aplicații Matter:
Întrebări frecvente
- Î: Care sunt diferitele versiuni de binare ZAP disponibile?
- A: Există două versiuni disponibile - Lansare oficială cu versiuni verificate și pre-lansare cu cele mai recente caracteristici.
- Î: Ce ar trebui să fac dacă întâmpin probleme de compilare a bibliotecii native în timpul instalării?
- A: Consultați întrebările frecvente despre scripturile specifice platformei pentru a rezolva astfel de probleme.
„`
Silicon Labs ZAP
Silicon Labs ZAP
Dezvoltare cu Silicon Labs ZAP
Noțiuni de bază
ZAP Reîncepereaview Instalarea ZAP Instalarea ZAP Windows Întrebări frecvente
Fundamentele ZAP Fundamentele
Ghidul utilizatorului Ghidul utilizatorului ZAP Pesteview XML personalizat XML personalizat Tags pentru Zigbee Mai multe tipuri de dispozitive per punct final Matter Tip de dispozitiv Pagina de caracteristici Notificări Data-Model/Specificație ZCL Conformitate Control acces Lansarea ZAP pentru aplicații Matter sau Zigbee Generarea codului pentru Matter sau Zigbee Actualizare ZAP în Studio Multi-protocol simultan între Zigbee și Matter Integrați SLC CLI cu ZAP
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
1/35
Dezvoltare cu Silicon Labs ZAP
Dezvoltare cu Silicon Labs ZAP
ZAP
ZAP este un motor generic de generare de cod și o interfață de utilizator pentru aplicații și biblioteci bazate pe Zigbee Cluster Library de la Zigbee sau Data Model de la Matter. Specificația este dezvoltată de Connectivity Standards Alliance. ZAP vă permite să efectuați următoarele operații:
Efectuați generarea personalizată specifică SDK-ului a tuturor artefactelor globale (constante, tipuri, ID-uri și așa mai departe) pe baza specificației ZCL/Data-Model. Efectuați generarea personalizată specifică SDK-ului a tuturor artefactelor de configurare selectate de utilizator (configurarea aplicației, configurarea punctului final și așa mai departe) pe baza specificațiilor ZCL/Data-Model și a configurației aplicației furnizate de client. Furnizați UI pentru ca utilizatorul final să selecteze o anumită configurație a aplicației (puncte finale, clustere, atribute, comenzi și așa mai departe).
Conținutul din aceste secțiuni descrie modul de dezvoltare a aplicațiilor Zigbee și Matter prin configurarea straturilor ZCL (Zigbee) sau Data Model (Matter) folosind ZAP.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
2/35
ZAP Introducere
ZAP Introducere
Noțiuni introductive cu ZAP
Aceste secțiuni descriu diferite metode de a crea aplicații Zigbee și Matter. Rețineți că Simplicity Studio oferă o modalitate de a vă crea aplicațiile Zigbee și Matter de la un capăt la altul, unde toate instrumentele sunt preinstalate împreună cu Simplicity Studio (inclusiv ZAP). De asemenea, puteți decide să explorați alte modalități de a vă crea aplicațiile, așa cum este descris aici.
Dezvoltarea Zigbee
Dezvoltatorii de aplicații Zigbee își pot construi aplicațiile folosind Simplicity Studio, care include deja ZAP și alte instrumente care vă ajută să vă construiți aplicația de la capăt la capăt.
Dezvoltarea materiei
Dezvoltatorii de aplicații Matter își pot construi aplicațiile folosind următoarele metode: Simplicity Studio: Acesta include ZAP și alte instrumente care sunt necesare pentru a construi aplicația Matter cap la cap. Github (Silicon Labs) Github (CSA)
Notă: Pentru a actualiza ZAP în afara ciclului de lansare Simplicity Studio, consultați actualizarea ZAP în Simplicity Studio și Ghidul de instalare ZAP
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
3/35
Instalare ZAP
Următoarele secțiuni descriu instalarea ZAP și cum se actualizează ZAP în Simplicity Studio IDE.
Descărcarea executabilului ZAP recomandat)
Acesta este modul recomandat de a începe cu ZAP. Puteți obține cele mai recente binare ZAP de la aa https://github.com/project-chip/zp/releses. Binarele prefabricate vin în două versiuni diferite.
Lansare oficială: versiuni verificate cu suite de testare dedicate Matter și Zigbee. Formatul numelui lansării este vAAAA.ZZ.LL. Pre-lansare: build-uri cu cele mai recente caracteristici și remedieri de erori, dar aceste build-uri NU sunt verificate cu suite de testare dedicate Matter și Zigbee. Formatul numelui lansării este vAAAA.DD.LL-noapte.
Instalarea ZAP din sursă
Instrucțiuni de bază pentru a instala ZAP
Deoarece aceasta este o aplicație node.js, aveți nevoie de instalarea mediului node. Cel mai bun mod de a face acest lucru este să descărcați cea mai recentă instalare a nodului, care include node și npm. Dacă aveți o versiune mai veche a nodului instalată pe stația dvs. de lucru, poate cauza probleme, mai ales dacă este foarte veche. Asigurați-vă că aveți cea mai recentă versiune nod v16.x cu npm inclus. Rulați node –version pentru a verifica ce versiune este preluată. v18.x este recomandat. După ce aveți o versiune dorită a nodului, puteți rula următoarele:
Instalați dependențele
Utilizați următoarele comenzi pentru a instala dependențe:
instalare npm
Notă: Pentru instalarea ZAP specifică Windows, consultați Instalarea ZAP pentru sistemul de operare Windows. Nu este neobișnuit să întâlniți probleme de compilare a bibliotecii native în acest moment. Există diverse scripturi src-script/install-* pentru diferite platforme. Consultați informații frecvente despre ce script să rulați pe diferite platforme și apoi executați din nou npm install .
Porniți aplicația
Utilizați următoarele comenzi pentru a porni aplicația:
npm run zap
Porniți front-end-ul în modul de dezvoltare
Acceptă reîncărcarea codului cald, raportarea erorilor și așa mai departe. Utilizați următoarele comenzi pentru a porni front-end-ul în dezvoltare
modul:
quasar dev -m electron
or
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
4/35
ZAP Insta la tot
npm rulează electron-dev
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
5/35
Windows de instalare ZAP
Windows de instalare ZAP
Instalare ZAP pentru sistemul de operare Windows
1. Windows Powershell
În bara de căutare de pe desktop, introduceți Windows Powershell și rulați ca administrator. Rulați toate comenzile următoare în Powershell.
2. Ciocolata
Instalați de la https://chocolatey.org/install. Verificați dacă este instalat corect cu următoarele comenzi:
choco -v
Instalați pachetul pkgconfiglite cu următoarele comenzi:
choco install pkgconfiglite
3. Instalați Node
Rulați următoarele comenzi pentru a instala:
choco instalează nodejs-lts
*Versiunea trebuie să fie 18 pentru a trece testul de verificare a versiunii, după instalare, verificați cu node -v *Dacă ați instalat deja Node și nu ați reușit la unele teste similare cu nu găsesc Node, reinstalați Node cu chocolatey din nou.
4. Urmați instrucțiunile de bază pentru a instala ZAP
Urmați instrucțiunile de instalare ZAP din sursă în Instalarea ZAP. În timp ce urmați instrucțiunile de bază pentru instalarea ZAP, aveți grijă la următoarele erori și la cum să le rezolvați:
sqlite3
Când rulați ZAP (de exemplu, npm run zap ), dacă vedeți o eroare despre sqlite3.node într-o fereastră pop-up, rulați:
npm reconstruiește sqlite3
constructor de electroni
Când faceți instalarea npm, în post-instalare, dacă apare o eroare la următoarea comandă legată de electron-builder install-appdeps , npx electron-rebuild canvas failed sau node-pre-gyp , versiunea actuală a pânzei nu este compatibilă cu Windows și eroarea de instalare nu va cauza o eroare la rularea ZAP. node-canvas lucrează la soluție acum și problema va fi rezolvată în viitorul apropiat.
„postinstall”: „electron-builder install-app-deps && husky install && npm rebuild canvas –update-binary && npm run version-stamp”
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
6/35
Windows de instalare ZAP
Pânză
Dacă testul de rulare npm eșuează din cauza erorii Suita de testare a eșuat. Modulul „../build/Release/canvas.node” nu poate fi găsit sau
zapnode_modulescanvasbuildReleasecanvas.node nu este o aplicație Win32 validă. , reconstruiți pânza după cum urmează:
npm rebuild canvas –update-binary
obțineți index.html sau alte probleme de server
Dacă testul de rulare npm eșuează din cauza erorii, solicitarea index.html a eșuat cu codul de stare 404 în testele unitare sau având server
probleme de conexiune în testele e2e-ci, executați următoarele comenzi:
npm run build
Alte
Verificați dacă versiunea nodului este v18 și încercați să o instalați cu Chocolatey.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
7/35
FAQ
FAQ
Întrebări frecvente
Î: Cum se pornește UI într-un mod de dezvoltare? R: Puteți porni interfața de utilizare într-un mod de dezvoltare, ceea ce va duce la următoarea configurare:
Server HTTP de dezvoltare quasar separat, care realizează reîmprospătarea în timp real pe portul 8080 ZAP, care rulează pe portul 9070 Chrome sau alt browser, rulează independent Pentru a ajunge la această configurare, urmați instrucțiunile de mai jos. ò Mai întâi, rulați serverul de dezvoltare ZAP, care pornește pe portul 9070.
npm run zap-devserver — Apoi, rulați serverul de dezvoltare quasar, care pornește pe portul 8080.
quasar dev ô Îndreptați-vă browserul sau rulați unul împotriva corectului URL cu argumentul restPort:
google-chrome http://localhost:8080/?restPort=9070
Î: Cum să funcționeze pe Mac/Linux OS? O:
npm install este folosit pentru a descărca toate pachetele de dependență necesare. Dacă vedeți erori legate de node-gyp și biblioteci locale lipsă, cum ar fi pixman și așa mai departe, vă lipsesc dependențe native de satisfăcut pentru a compila binare de noduri nepreconstruite pentru o combinație de platforme și versiuni. Npm on the cloud actualizează în mod constant lista de binare furnizate, așa că este posibil să le ridicați foarte bine, dar dacă nu o faceți, acestea sunt instrucțiuni pentru diferite platforme:
Fedora Core cu dnf:
dnf install pixman-devel cairo-devel pango-devel libjpeg-devel giflib-devel
sau rulați scriptul:
src-script/install-packages-fedora
Ubuntu cu apt-get:
apt-get update apt-get install –fix-missing libpixman-1-dev libcairo-dev libsdl-pango-dev libjpeg-dev libgif-dev
sau rulați scriptul:
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
8/35
FAQ
src-script/install-packages-ubuntu
OSX pe un Mac cu Homebrew Brew:
brew install pkg-config cairo pango libpng jpeg giflib librsvg
sau rulați scriptul:
src-script/install-packages-osx
Î: Cum să faci asta să funcționeze pe sistemul de operare Windows?
R: Asigurați-vă că este întotdeauna actualizat și că nu există modificări care să nu fi fost comise. Sfat: git pull, git status și git stash sunt prietenii tăi. Trebuie să utilizați Chocolately pentru a face Zap să funcționeze pe sistemul de operare Windows. Asigurați-vă că descărcați pachetul pkgconfiglite.
choco install pkgconfiglite
Dacă aveți probleme cu Cairo, de example if you get a error about cairo.h': No such file sau director, procedați în felul următor: ò Verificați dacă computerul este pe 32 sau 64 de biți. ó În funcție de asta, descărcați pachetul corespunzător de pe acest site
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:
Faceți clic pe Setări avansate de sistem. În fila avansată faceți clic pe Variabile de mediu. În secțiunea Variabile de sistem, găsiți variabila de mediu PATH și selectați-o. Faceți clic pe Editați și adăugați C:/GTK. Dacă variabila de mediu PATH nu există, faceți clic pe Nou. Dacă jpeglib.h nu este găsit, încercați următoarele: ò Pe terminal, rulați: choco install libjpeg-turbo ó Asigurați-vă că este curat folosind: git clean -dxff și executați din nou npm install ô dacă nu apar erori și apar numai avertismente, încercați să utilizați npm audit fix õ dacă nu puteți rula ZAP, accesați file src-script/zap-start.js ö Schimbați
÷ const { spawn } = require('cross-spawn') to const { spawn } = require('child_process') ø Rulați npm și rulați zap. Referinte:
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)
Î: Primesc o eroare „sqlite3_node” negăsit sau similară.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
9/35
FAQ
R: Reconstruiți-vă legăturile native sqlite3. Pentru a remedia acest lucru în majoritatea cazurilor, rulați:
instalare npm
./node_modules/.bin/electron-rebuild -w sqlite3 -p
Dacă tot nu se remediază, faceți:
rm -rf node_modules și apoi încercați din nou comenzile de mai sus. Ocazional, actualizarea npm-ului dvs. face, de asemenea, o diferență:
npm install -g npm
Î: Primesc o eroare „Versiunea N-API a acestei instanțe Node este 1. Acest modul acceptă versiunile N-API 3. Această instanță Node nu poate rula acest modul.”
R: Actualizați versiunea nodului. Soluția pentru aceasta este discutată în acest thread Stack Overflow: https://stackoverflow.com/questions/60620327/the-n-apiversion-of-this-node-instance-is-1-this-module-supports-n-api-version
Î: PC-ul meu de dezvoltare nu funcționează cu ZAP din orice motiv. Pot folosi un container docker?
A: Da, poți. TBD.
Î: Cum rulez ZAP în VSCode?
R: Dacă VSCode în calea dvs., introduceți zap repo și tastați codul . Aceasta va deschide ZAP în VSCode. Pentru a rula ZAP în modul de depanare, selectați spațiul de lucru ZAP și faceți clic pe pictograma Run din bara de instrumente din stânga. Veți avea câteva opțiuni din care să alegeți pentru a rula ZAP, alegeți Node.js Debug Terminal . Aceasta va deschide o fereastră de terminal din care puteți introduce npm run zap , care va atașa depanatorul și va rula ZAP așa cum ați proceda în mod normal din linia de comandă. Felicitări, ar trebui să vedeți acum ZAP rulând în depanator. Puteți seta puncte de întrerupere în VSCode așa cum ați face în orice alt IDE.
Î: Testul unitar al interfeței de utilizator eșuează cu unele erori în jurul canvasului care nu este creat pentru versiunea corectă a nodului. Ce trebuie să fac?
R: Dacă vedeți următoarea eroare:
FAIL test/ui.test.js Suita de teste nu a putut rula Modulul „canvas.node” a fost compilat cu o versiune diferită a Node.js folosind NODE_MODULE_VERSION 80. Această versiune a Node.js necesită NODE_MODULE_VERSION 72. Încercați să recompilați sau să reinstalați modulul (de exemplu, folosind `n`pmnpm`).
la Obiect. (node_modules/canvas/lib/bindings.js:3 18)
apoi rulați: npm rebuild canvas –update-binary
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
10/35
Fundamentele ZAP
ZCL/Data-Model ZAP Fundamentals
Această secțiune conține informații pentru noii utilizatori ZAP. Faceți clic pe pictograma tutorial din colțul din dreapta sus al interfeței de utilizare ZAP, care arată cum să creați o configurație ZAP. Tutorialul vă va ghida prin următoarele: Creați un punct final Selectați un tip de dispozitiv Configurați un cluster Configurați un atribut Configurați o comandă Pentru referințe detaliate, consultați Ghidul de configurare a clusterului Zigbee
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
11/35
Ghidul utilizatorului ZAP
Ghidul utilizatorului ZAP
Ghidul utilizatorului ZAP
Secțiunile din acest ghid oferă mai multe detalii despre diferitele caracteristici oferite de ZAP.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
12/35
XML personalizat
Adăugarea XML personalizat din interfața de utilizare ZAP
Faceți clic pe pictograma „Extensii” din interfața de utilizare ZAP. Faceți clic pe butonul de adăugare „+” pentru a selecta un xml personalizat file Clusterele personalizate, atributele, comenzile etc. ar trebui să apară în interfața de utilizare ZAP odată ce XML-ul personalizat a fost adăugat.
Crearea propriului XML personalizat în Zigbee
Secțiunea arată cum să vă creați propriile clustere personalizate și să extindeți clusterele standard existente cu atribute și comenzi personalizate pentru Zigbee.
Clustere specifice producătorului în Zigbee
Puteți adăuga clustere specifice producătorului la un profesionist standardfile. Oferim un examppartea de mai jos. Pentru a face acest lucru trebuie să îndepliniți două obligații:
ID-ul clusterului TREBUIE să fie în intervalul specific producătorului, 0xfc00 – 0xffff. Definiția clusterului trebuie să includă un cod de producător care va fi aplicat TOATE atributele și comenzile din acel cluster și trebuie furnizată atunci când se trimite și se primește comenzi și se interacționează cu atributele. Examppe:
Sample Mfg Specific Cluster General Acest cluster oferă un exampdespre modul în care Cadrul de Aplicație poate fi extins pentru a include clustere specifice producătorului.
0xFC00
ember sample atributul
ember sampatributul 2
A sample comanda specifică producătorului în cadrul sample specifice producătorului
cluster.
Comenzi specifice producătorului în clusterul Zigbee standard
Puteți adăuga propriile comenzi la orice cluster Zigbee standard cu următoarele cerințe:
Comenzile dvs. specifice producătorului pot utiliza orice ID de comandă din intervalul ID-ului de comandă, 0x00 – 0xff. De asemenea, trebuie să furnizați un cod de producător pentru comandă, astfel încât să poată fi distinsă de alte comenzi din cluster și gestionată corespunzător. Exampfișierul de extindere a clusterului On/Off cu comenzi de producție:
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
13/35
XML personalizat
<command source=”client” code=”0 0006″ name=”SampleMfgSpecificOffWithTransition” optional=”true” manufacturerCode=”0 1002″> Comanda client care oprește dispozitivul cu o tranziție dată de timpul de tranziție din Ember Sampatributul de timp de tranziție.ampleMfgSpecificOnWithTransition” optional=”true” manufacturerCode=”0 1002″> Comanda client care pornește dispozitivul cu o tranziție dată de timpul de tranziție din Ember Sampatributul de timp de tranziție.ampleMfgSpecificToggleWithTransition” optional=”true” manufacturerCode=”0 1002″> Comanda client care comută dispozitivul cu o tranziție dată de timpul de tranziție în Ember Sampatributul de timp de tranziție.ampleMfgSpecificOnWithTransition2″ optional=”true” manufacturerCode=”0 1049″> Comanda client care pornește dispozitivul cu o tranziție dată de timpul de tranziție din Ember Sampatributul de timp de tranziție.ampleMfgSpecificToggleWithTransition2″ optional=”true”
manufacturerCode="0 1049″> Comanda client care comută dispozitivul cu o tranziție dată de timpul de tranziție în Ember Sampatributul de timp de tranziție.
Atribute specifice producătorului în clusterul Zigbee standard
Puteți adăuga propriile atribute la orice cluster Zigbee standard cu următoarele cerințe:
Atributele dvs. specifice producătorului pot utiliza orice ID de atribut din intervalul ID de atribut, 0x0000 – 0xffff. De asemenea, trebuie să furnizați un cod de producător pentru atribut, astfel încât să poată fi distins de alte atribute din cluster și gestionat corespunzător. Exampfișierul de extindere a clusterului On/Off cu atribute de producție:
<attribute side=”server” code=”0 0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME” tip=”INT16U” min=”0 0000″
max=”0xFFFF” scriere=”adevărat” implicit=”0 0000″ opțional=”adevărat” producătorCod=”0 1002″>Sample Mfg Atribut specific: 0 0000 0 1002
<attribute side=”server” code=”0 0000″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ type=”INT8U” min=”0 0000″ max=”0xFFFF” scriere=”true” implicit=”0 0000″ optional=”true” manufacturerCode=”0 1049″>Sample Mfg Atribut specific: 0 0000 0 1049
<attribute side=”server” code=”0 0001″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3″ type=”INT8U” min=”0 0000″ max=”0xFFFF” scriere=”true” implicit=”0 00″ optional=”true” manufacturerCode=”0 1002″>Sample Mfg Atribut specific: 0 0001 0 1002
<attribute side=”server” code=”0 0001″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ type=”INT16U” min=”0 0000″ max=”0xFFFF” scriere=”true” implicit=”0 0000″ optional=”true” manufacturerCode=”0 1049″>Sample Mfg Atribut specific: 0 0001 0 1040
Crearea propriului XML personalizat în Matter
Secțiunea arată cum să vă creați propriile clustere personalizate și să extindeți clusterele standard existente cu atribute și comenzi personalizate pentru Matter.
Clustere specifice producătorului în materie
Puteți adăuga clustere specifice producătorului în Matter. Oferim un examppartea de mai jos.
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.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
14/35
XML personalizat
În example, combinația dintre ID-ul furnizorului (ID-ul producătorului de testare) 0xFFF1 și ID-ul cluster-ului 0xFC20 are ca rezultat o value of 0xFFF1FC20. The commands and attributes within this cluster will adopt the same Manufacturer ID. Examppe:
General Sample MEI 0xFFF1FC20 SAMPLE_MEI_CLUSTER SampClusterul MEI prezintă extensii ale producătorului de cluster Flip-flop
Răspuns pentru AddArguments care returnează suma. Comandă care ia două argumente uint8 și returnează suma lor. Comandă simplă fără parametri și fără răspuns.
Atribute specifice producătorului în clustere de materii standard
Puteți adăuga atribute specifice producătorului la orice cluster Matter standard cu următoarele cerințe:
T aaaa el grupul în care atributele la care se adaugă trebuie specificate -
e xte nd ed > „>
Codul atributului este o combinație de 32 de biți a codului producătorului și a ID-ului atributului. Cei mai semnificativi 16 biți sunt codul producătorului. Intervalul pentru codurile producătorului de testare este 0xFFF1 – 0xFFF4. Cei 16 biți mai puțin semnificativi sunt ID-ul atributului. Intervalul pentru atributele non-globale este 0x0000 – 0x4FFF.
Exampfișierul extinderii clusterului On/Off Matter cu atribute specifice producției:
<attribute side=”server” code=”0xFFF0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ tip=”INT8U” min=”0 0000″
max=”0xFFFF” scriere=”adevărat” implicit=”0 0000″ opțional=”adevărat”>Sample Mfg Specific Attribute 2AMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ tip=”INT16U” min=”0 0000″
max=”0xFFFF” scriere=”adevărat” implicit=”0 0000″ opțional=”adevărat”>Sample Mfg Specific Attribute 4
Comenzi specifice producătorului în clustere de materie standard
Puteți adăuga comenzi specifice producătorului la orice cluster Matter standard cu următoarele cerințe:
T aaaa grupul în care comenzile la care se adaugă trebuie specificate –
e xte nd ed > „>
Codul comenzii este o combinație de 32 de biți a codului producătorului și a ID-ului comenzii. Cei mai semnificativi 16 biți sunt codul producătorului. Intervalul pentru codurile producătorului de testare este 0xFFF1 – 0xFFF4. Cei 16 biți mai puțin semnificativi sunt ID-ul comenzii. Intervalul pentru comenzile non-globale este 0x0000 – 0x00FF.
Exampfișierul extinderii clusterului On/Off Matter cu clustere specifice producției:
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
15/35
XML personalizat
<command source=”client” code=”0xFFF10000″ name=”SampleMfgSpecificOnWithTransition2″ optional="true"> Comanda client care pornește dispozitivul cu o tranziție dată de timpul de tranziție din Ember Sampatributul de timp de tranziție.
<command source=”client” code=”0xFFF10001″ name=”SampleMfgSpecificToggleWithTransition2″ optional="true">
Comanda client care comută dispozitivul cu o tranziție dată de timpul de tranziție în Ember Sampatributul de timp de tranziție.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
16/35
Următorul document vorbește despre fiecare dintre fișierele xml tags asociat cu Zigbee.
Fiecare xml file este listat între configurator tags:
Tipurile de date pot fi definite în configurator tag. Zigbee acceptă în prezent definirea bitmap-urilor, enumărilor, numerelor întregi, șirurilor de caractere sau structurilor. Înainte de a defini mai multe tipuri, asigurați-vă că verificați toate tipurile atomice existente definite în types.xml și toate tipurile non-atomice definite în celălalt xml files. Le puteți defini după cum urmează:
Bitmap: nume: numele tipului de bitmap. tip: Bitmap cu o dimensiune între 8-64 de biți poate fi definit, toți ar trebui să fie multipli de 8. Fiecare bitmap poate avea mai multe câmpuri cu un nume și o mască asociată acestuia. ex:
„`
Enum: nume: numele tipului de enumerare. tip: se poate defini Enum cu o dimensiune între 8-64 de biți, toți ar trebui să fie multipli de 8. Fiecare enumerare poate avea mai multe elemente cu un nume și o valoare asociată. ex:
Integer: tipurile întregi sunt deja definite în tipurile atomice care există în types.xml. Dimensiunea lor poate varia de la 8 la 64 de biți și poate fi semnată sau nesemnată. ex:
String: tipurile de șiruri sunt deja definite în tipurile atomice care există în types.xml. Tipurile de șir curente includ șir de octet, șir de caractere, șir de octet lung și șir de caractere lungi, de exemplu:
Struct: nume: numele tipului de struct. Fiecare structură poate avea mai multe elemente cu un nume și un tip asociat. Tipul poate fi orice tip predefinit sub tipuri de date. ex:
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
17/35
XML personalizat Tags pentru Zigbee
<item name=”structItem1″ type=” Any defined type name in the xml files]”/>
Clusterele personalizate pot fi definite în configurator tag. nume: numele clusterului domeniul: domeniul clusterului. Clusterul va apărea în interfața de utilizare ZAP sub acest domeniu. descriere: Descrierea codului cluster: definire cod cluster: definire cluster care este utilizat de generatorul de cod pentru a defini clusterul într-un anumit mod manufacturerCode: Folosit pentru a defini un cluster specific de producție. Acesta trebuie să fie între 0xfc00 – 0xffff. Codul producătorului pentru cluster trebuie definit după cum urmează:
Un cluster de producție face automat atributele și comenzile de sub acesta din același cod de producător, cu excepția cazului în care listează în mod explicit codul de producător. introdudIn: Folosit pentru a determina versiunea specifica în care a fost introdus clusterul. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. removedIn: Folosit pentru a determina versiunea de specificații în care a fost eliminat clusterul. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. singleton(boolean): este folosit pentru a determina un cluster ca singleton, astfel încât să existe o singură instanță a acelui cluster partajată între punctele finale. atribut: definește un atribut pentru numele clusterului: Numele atributului este menționat între atribut tag.
nume de atribut
side(client/server): partea clusterului la care este asociat și atributul. cod: cod de atribut cod de producător: acesta poate fi utilizat pentru a defini un atribut specific producătorului în afara specificației zigbee menționate de xml standard. define: atribut define care este folosit de generatorul de cod pentru a defini un atribut într-un anumit mod tip: tipul atributului care poate fi oricare dintre tipurile de date menționate în xml implicit: valoarea implicită pentru atribut. min: Valoarea minimă permisă pentru un atribut max: Valoarea maximă permisă pentru un atribut care poate fi scrisă: Valoarea atributului poate fi scrisă sau nu. Acest lucru poate fi folosit pentru a preveni modificarea atributului de către comenzile de scriere. optional(boolean): Folosit pentru a determina dacă un atribut este opțional sau nu pentru cluster. min: Valoarea minimă permisă pentru un atribut atunci când este de tip întreg, enumerare sau bitmap. max: Valoarea maximă permisă pentru atribut atunci când este un întreg, enumerare sau lungime de tip bitmap: Folosit pentru a specifica lungimea maximă a atributului când este de tip șir. minLength: Folosit pentru a specifica lungimea minimă a atributului atunci când este de tip șir. reportable(boolean): Indică dacă un atribut este raportabil sau nu isNullable(boolean): Permite valori nule pentru atribut. array(boolean): Folosit pentru a declara un atribut de tip matrice. introdudIn: Folosit pentru a determina versiunea specificației în care a fost introdus atributul. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. removedIn: Folosit pentru a determina versiunea specificației în care a fost eliminat atributul. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. comandă: definiți o comandă pentru un nume de cluster: Numele comenzii.
cod: cod de comandă
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
18/35
XML personalizat Tags pentru Zigbee
cod producător: acesta poate fi folosit pentru a defini o comandă specifică producătorului în afara specificației zigbee menționate de xml standard. descriere: descrierea sursei comenzii (client/server): sursa comenzii. optional(boolean): Folosit pentru a determina dacă o comandă este opțională sau nu pentru cluster. introdudIn: Folosit pentru a determina versiunea specifica în care a fost introdusă comanda. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. removedIn: Folosit pentru a determina versiunea specifica în care a fost eliminată comanda. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. argumente ale comenzii:
Fiecare comandă poate avea un set de argumente de comandă. min: Valoarea minimă permisă pentru un argument atunci când este de tip întreg, enumerare sau bitmap. max: Valoarea maximă permisă pentru un argument atunci când este o lungime de tip întreg, enumerare sau bitmap: Folosit pentru a specifica lungimea maximă permisă pentru un argument de comandă când este de tip șir. minLength: Folosit pentru a specifica lungimea minimă permisă pentru un argument de comandă atunci când este de tip șir. array(boolean): Pentru a determina dacă argumentul comenzii este de tipul matrice. presentIf(șir): Acesta poate fi un șir condiționat de operații logice bazat pe alte argumente de comandă, unde vă puteți aștepta la argumentul comenzii dacă șirul condiționat este evaluat la adevărat. ex:
Notă: Aici starea este un alt nume de argument al comenzii. optional(boolean): Folosit pentru a determina argumentul comenzii ca fiind optional. countArg: Folosit când argumentul comenzii este de tip matrice. Acesta este folosit pentru a menționa celălalt argument al comenzii care denotă dimensiunea matricei pentru acest argument.
introdudIn: Folosit pentru a determina versiunea specificației în care a fost introdus argumentul comenzii. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. removedIn: Folosit pentru a determina versiunea specificației în care a fost eliminat argumentul comenzii. Acesta este folosit de generatorul de cod pentru a adăuga o logică suplimentară. Cluster Extension poate fi definită în configurator tag. Extensia cluster este folosită pentru a extinde un cluster standard cu atribute și comenzi de producție, de ex
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
19/35
XML personalizat Tags pentru Zigbee
<attribute side=”server” code=”0 0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME” type=”INT16U” min=”0 0000″ max=”0xFFFF” scriere=”true” implicit=”0 0000″ opțional=”true” manufacturerCode=”0 1002″>Sample Mfg Atribut specific: 0 0000 0 1002AMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ type=”INT8U” min=”0 0000″ max=”0xFFFF” scriere=”true” implicit=”0 0000″ optional=”true” manufacturerCode=”0 1049″>Sample Mfg Atribut specific: 0 0000 0 1049AMPLE_MFG_SPECIFIC_TRANSITION_TIME_3″ type=”INT8U” min=”0 0000″ max=”0xFFFF” scriere=”true” implicit=”0 00″ optional=”true” manufacturerCode=”0 1002″>Sample Mfg Atribut specific: 0 0001 0 1002AMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ type=”INT16U” min=”0 0000″ max=”0xFFFF” scriere=”true” implicit=”0 0000″ optional=”true” manufacturerCode=”0 1049″>Sample Mfg Atribut specific: 0 0001 0 1040ampleMfgSpecificOffWithTransition” optional=”true” manufacturerCode=”0 1002″> Comanda client care oprește dispozitivul cu o tranziție dată
de timpul de tranziție în Ember Sampatributul de timp de tranziție.ampleMfgSpecificOnWithTransition” optional=”true” manufacturerCode=”0 1002″> Comanda client care pornește dispozitivul cu o tranziție dată
de timpul de tranziție în Ember Sampatributul de timp de tranziție.ampleMfgSpecificToggleWithTransition” optional=”true” manufacturerCode=”0 1002″> Comanda client care comută dispozitivul cu o tranziție dată
de timpul de tranziție în Ember Sampatributul de timp de tranziție.ampleMfgSpecificOnWithTransition2″ optional=”true” manufacturerCode=”0 1049″> Comanda client care pornește dispozitivul cu o tranziție dată
de timpul de tranziție în Ember Sampatributul de timp de tranziție.ampleMfgSpecificToggleWithTransition2″ optional=”true” manufacturerCode=”0 1049″> Comanda client care comută dispozitivul cu o tranziție dată
de timpul de tranziție în Ember Sampatributul de timp de tranziție.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
20/35
Mai multe tipuri de dispozitive per punct final
Aceasta este o caracteristică numai pentru subiect, în care un utilizator poate selecta mai mult de un tip de dispozitiv pentru fiecare punct final. Adăugarea mai multor tipuri de dispozitive aaa va adăuga configurările cluster din cadrul tipurilor de dispozitiv la configurația punctului final.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
21/35
Mai multe tipuri de dispozitive per punct final
Imaginea de mai sus arată că punctul final 1 are mai multe tipuri de dispozitive selectate. „Dispozitivul principal” indică tipul de dispozitiv principal cu care va fi asociat punctul final. Tipul de dispozitiv principal este întotdeauna prezent la indexul 0 al listei de tipuri de dispozitive selectate, astfel încât selectarea unui alt tip de dispozitiv principal va modifica ordinea tipurilor de dispozitive selectate. Selectările tipului de dispozitiv au, de asemenea, constrângeri bazate pe specificația modelului de date. ZAP protejează utilizatorii de a alege combinații nevalide de tipuri de dispozitive pe un punct final folosind aceste constrângeri.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
22/35
Materia Tipul de dispozitiv Pagina de funcții
Materia Tipul de dispozitiv Pagina de funcții
Materia Tipul de dispozitiv Pagina de funcții
ZAP acceptă vizualizarea și comutarea funcțiilor Matter în pagina de caracteristici tip dispozitiv. Vor fi afișate numai caracteristicile tipului de dispozitiv specificate în matter-devices.xml din depozitul CHIP.
Navigarea la pagina de caracteristici
ò Lansați ZAP în Matter cu Matter SDK actualizat. ó Creați un punct final cu un tip de dispozitiv Matter. ô Faceți clic pe butonul Caracteristici tip dispozitiv din partea superioară a clusterului view. Rețineți că acest buton este disponibil numai în ZAP
configurații pentru Matter și când există date de conformitate în Matter SDK. Făcând clic pe acest buton, se va deschide imaginea de mai sus.
Conformitatea
Conformitatea definește opționalitatea și dependența pentru atribute, comenzi, evenimente și tipuri de date. Acesta determină dacă un element este obligatoriu, opțional sau neacceptat în anumite configurații ZAP.
Conformitatea cu caracteristicile tipului de dispozitiv are prioritate față de conformitatea cu caracteristicile clusterului. De exampi, caracteristica Iluminare are conformitate opțională în clusterul Pornit/Oprit, dar este declarată obligatorie în tipul de dispozitiv de iluminare Pornit/Oprit care include clusterul Pornit/Oprit. Crearea unui punct final cu tipul de dispozitiv de iluminare Pornit/Oprit va afișa funcția Iluminare ca fiind obligatorie pe pagina cu caracteristici.
Comutare caracteristică
Pe pagina de funcții, după ce faceți clic pe butonul de comutare pentru a activa sau dezactiva o funcție, ZAP va:
Actualizați elementele asociate (atribute, comenzi, evenimente) pentru a corecta conformitatea și afișați un dialog care arată modificările.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
23/35
Matter Device Type Feature Page Actualizați bitul de caracteristică din atributul featureMap al clusterului asociat
Activați funcția Dialog
Dezactivați Dialogul caracteristicilor
Comutarea este dezactivată pentru unele caracteristici atunci când conformitatea lor are o valoare necunoscută sau o formă t neacceptată în prezent. În acest ac se, ZAP va afișa avertismente în aplicația de notificare.
un Wa Element Conform nce rnings
Când comutați un element, ZAP poate afișa atât avertismente de conformitate a dispozitivului, cât și avertismente de conformitate. Dacă starea elementului nu corespunde conformității așteptate, ZAP va afișa o pictogramă de avertizare și va înregistra avertismentul în aplicația de notificare. Exampfișierul avertismentelor de conformitate și de conformitate afișate pentru un element:
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
24/35
Notificări
Notificări
Notificări
Următoarea secțiune definește modul în care notificările sunt oferite utilizatorilor ZAP în UI.
Notificări de pachet
Notificările de pachete sunt avertismentele sau mesajele de eroare asociate oricărui pachet specific încărcat în ZAP. De exampÎn imaginile de mai jos, făcând clic pe pictograma de avertizare de sub coloana de stare, veți ajunge la un dialog care arată toate notificările pentru acel pachet.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
25/35
Notificări
Notificări de sesiune
Notificările de sesiune sunt avertismentele sau mesajele de eroare care sunt asociate cu o sesiune de utilizator. Aceste avertismente/erori pot fi văzute făcând clic pe butonul Notificări din bara de instrumente din partea de sus a interfeței de utilizare ZAP. De example, imaginea de mai jos arată pagina de notificări de sesiune după un isc file a fost încărcat în ZAP.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
26/35
Conformitate cu specificațiile modelului de date/ZCL
Conformitate cu specificațiile modelului de date/ZCL
Modelul de date și conformitatea cu specificațiile ZCL
Această caracteristică din ZAP îi ajută pe utilizatori să vadă eșecurile de conformitate pentru Data Model sau ZCL cu configurațiile ZAP existente. Mesajele de avertizare pentru eșecurile conformității vor apărea în panoul Notificări din interfața de utilizare ZAP și vor fi, de asemenea, conectate la consolă atunci când rulați ZAP prin CLI. Caracteristica de conformitate oferă în prezent avertismente pentru conformitatea tipului de dispozitiv și conformitatea clusterului la un punct final.
Avertismente de conformitate în interfața de utilizare ZAP
Când un utilizator deschide un .zap file folosind interfața de utilizare ZAP, ei vor vedea avertismente în panoul de notificări al interfeței de utilizare ZAP pentru toate eșecurile de conformitate. De example, imaginea de mai jos arată pagina de notificări de sesiune după un .zap file a fost deschis cu probleme de conformitate.
Mesajele de conformitate vor dispărea odată ce problemele sunt rezolvate folosind interfața de utilizare ZAP, astfel încât să puteți urmări doar problemele de conformitate rămase. Noi avertismente vor apărea și pentru conformitate dacă utilizatorul dezactivează elementele obligatorii (cluster/comenzi/atribute) ale configurației. Notificările de conformitate cu specificațiile vor ține întotdeauna evidența oricăror defecțiuni care sunt introduse în configurația ZAP, dar rețineți că avertismentele care apar în timpul deschiderii unui .zap file sunt mai detaliate despre motivul pentru care a eșuat conformarea în comparație cu avertismentele care apar în timpul interacțiunii cu interfața de utilizare. Aceasta este prin proiectare și o verificare completă a conformității este efectuată în timpul deschiderii unui .zap file.
Avertismente de conformitate pe consolă
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
27/35
Conformitate cu specificațiile modelului de date/ZCL
Când un utilizator deschide un .zap file folosind interfața de utilizare autonomă ZAP sau CLI-ul ZAP, vor vedea avertismente conectate în consolă/terminal pentru toate eșecurile de conformitate. De example, imaginea de mai jos arată avertismentele de notificare de sesiune pe consolă/terminal după un .zap file a fost deschis cu probleme de conformitate.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
28/35
Control acces
Caracteristici de control al accesului
ZAP acceptă controlul accesului pe toate entitățile ZCL. Depinde de implementarea SDK-ului să mapam aceste caracteristici la caracteristicile SDK de control al accesului necesare și acceptate. ZAP oferă, în general, un model de date și un mecanism pentru a-l codifica în meta-informații files și propagați acele date în șabloanele de generare, fără a atribui semnificații specifice punctelor de date.
Termenii de bază
Controlul accesului ZAP definește trei termeni de bază, după cum urmează: ò operațiune : definită ca ceva ce poate fi făcut. Example: citește, scrie, invocă. ó rol: definit ca un privilegiu al unui actor. Ca "View privilegiu”, „Rol administrativ” și fiul pe. ô modificatori: definiți ca condiții speciale de control al accesului, cum ar fi date sensibile la fabrică sau date în domeniul fabricii. Termenii de bază sunt definiți în metadatele XML sub un top tag . Următorul este un exampDefinițiile termenilor de bază ale fișierului de control al accesului:
<role type=”view„descriere="View privilegiu”/>
Acest example definește trei operații, citire, scriere și invocare, doi modificatori și patru roluri.
Acces Triplets
Fiecare condiție de acces individuală poate fi definită cu un triplet de acces în XML. Triplet de acces este o combinație de operație, rol și modificator. Sunt opționale, așa că puteți avea doar una dintre acestea. O parte lipsă a tripletului înseamnă, în general, permisive, care sunt specifice implementării pentru SDK-ul dat. O entitate care își definește accesul poate avea unul sau mai multe tripleți de acces. Următorul este un examppe:
la 0
Aceasta este o definiție a unui atribut care are un triplet de acces, declarând că permite operația de scriere de către un rol de gestionare, cu modificatorul aplicat în domeniul fabricii.
Permisiuni implicite
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
29/35
Control acces
Entitățile ZCL își pot defini propriile permisiuni individuale. Cu toate acestea, există și o definiție globală a permisiunilor implicite pentru
tipuri date. Acestea sunt presupuse pentru entitatea dată, cu excepția cazului în care aceasta oferă permisiuni specifice proprii.
Permisiunile implicite sunt declarate prin a tag la nivelul superior al XML-ului file. Examppe:
aa a< ccess op="invoke”/> a o aa < ccess op=”re d”/> a< ccess op=”scrie”/> a aa aa < ccess op=”re d” rol=”view”/> aa < ccess op=”write” role=”oper te”/> a
Ajutor de șabloane
Asistentul de bază al șablonului de utilizat este iteratorul {{#access}} … {{/access}}. Acest iterator iterează peste toate tripletele de acces date.
Acceptă următoarele două opțiuni:
entity=”atribut/comandă/eveniment” – dacă entitatea nu poate fi determinată din context, aceasta setează tipul de entitate. includeDefault="true/false" – determină dacă valorile implicite sunt incluse sau nu. Următorul este un examppe:
{{#zcl_clusters}}
a Cluster: {{n me}} [{{code}}] a {{#zcl_ ttributes}} aa – ttribute: {{n me}} [{{code}}] aa {{# ccess entity=" ttribute"}}
O a RM a M * p: {{oper tion}} / ole: {{rol}} / odifier: {{ ccess odifier}} a{{/ ccess}} a {{/zcl_ ttributes}} a {{#zcl_comm nds}} aa – comm nd: {{n me}}}] [{{acoditate] = {{cod }} = {{scl_comm nds}} nd”}} O a RM a M * p: {{operațiune}} / ole: {{rol}} / odifier: {{ ccess odifier}} a{{/ ccess}} a {{/zcl_comm nds}}
{{#zcl_events}}
a – event: {{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}}
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
30/35
Lansarea ZAP pentru aplicațiile Matter sau Zigbee
Lansarea ZAP pentru aplicațiile Matter sau Zigbee
Lansarea ZAP pentru aplicațiile Matter sau Zigbee
Următoarele secțiuni descriu lansarea ZAP în modul de sine stătător cu metadatele specifice Matter sau Zigbee. Ideea este de a lansa ZAP cu argumentele corecte legate de metadatele XML (clusterele și definițiile tipurilor de dispozitive conform specificațiilor CSA) și șabloanele de generare, care sunt folosite pentru a genera codul corespunzător.
Lansarea ZAP cu Matter
Următorul script preia metadatele corecte din Matter SDK la lansarea ZAP. https://github.com/project-chip/connectedhomeip/blob/master/scripts/tools/zap/run_zaptool.sh Notă: De asemenea, puteți utiliza următoarea abordare Zigbee pentru a lansa ZAP in Matter.
Lansarea ZAP cu Zigbee
Următoarea comandă lansează ZAP cu specificațiile ZCL și șabloanele de generare din SDK.
[zap-path] -z [sdk-path]/gsdk/app/zcl/zcl-zap.json -g [sdk-path]/gsdk/protocol/zigbee/app/framework/gen-template/gen-templates.json
zap-path: Aceasta este calea către sursa ZAP sau sdk-path executabil: Aceasta este calea către SDK
Lansarea ZAP fără metadate
Amintiți-vă că atunci când lansați ZAP direct printr-un executabil sau din sursă folosind npm run zap lansați ZAP cu metadate de testare pentru Matter/Zigbee încorporate în ZAP și nu metadatele reale care provin din SDK-urile Matter și Zigbee menționate mai sus. Prin urmare, nu uitați să vă creați configurațiile ZAP utilizând metadatele SDK și nu prin deschiderea ZAP direct cu metadatele de testare încorporate.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
31/35
Se generează cod pentru Matter sau Zigbee
Generarea codului pentru Matter, Zigbee sau un SDK personalizat
Următoarele secțiuni descriu cum se generează cod folosind ZAP.
Generați codul utilizând interfața de utilizare ZAP
Lansați interfața de utilizare ZAP conform instrucțiunilor din Lansarea ZAP pentru Matter sau Zigbee și faceți clic pe butonul Generare din bara de meniu de sus.
Generați codul fără interfața de utilizare
Următoarele instrucțiuni oferă diferite moduri de a genera cod prin CLI fără a lansa interfața de utilizare ZAP.
Generarea codului din sursa ZAP
Rulați următoarea comandă pentru a genera cod folosind ZAP din sursă: 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
Generarea codului din ZAP Executable
Rulați următoarea comandă pentru a genera cod folosind executabilul 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
Generarea codului din ZAP CLI Executable
Rulați următoarea comandă pentru a genera cod folosind 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
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
32/35
Actualizați ZAP în Studio
Actualizați ZAP
Actualizați ZAP în Simplicity Studio
Acest mecanism poate fi utilizat atunci când lucrați cu extensia Matter sau Zigbee din versiunile Silicon Labs SDK. ZAP poate fi actualizat în Simplicity Studio fără o versiune Simplicity Studio prin descărcarea celui mai recent executabil ZAP (recomandat) sau extragerea celui mai recent din sursa ZAP, așa cum se arată în Ghidul de instalare ZAP. După ce aveți cel mai recent ZAP bazat pe sistemul de operare utilizat în prezent, puteți actualiza ZAP în Studio ca un pachet de adaptoare. Urmați instrucțiunile de mai jos după descărcarea celui mai recent ZAP:
Accesați Simplicity Studio și selectați Preferințe > Simplicity Studio > Pachete de adaptoare. Faceți clic pe Adăugare... și navigați la folderul ZAP extins pe care l-ați descărcat și faceți clic pe Selectați folderul . Faceți clic pe Aplicare și Închidere, iar apoi ZAP-ul nou adăugat va fi folosit ori de câte ori un .zap file este deschis.
Notă: Uneori pot exista instanțe mai vechi ale ZAP care rulează deja chiar și după actualizarea la cel mai recent ZAP. Asigurați-vă că terminați toate instanțele ZAP existente, astfel încât ZAP-ul nou preluat să fie folosit în locul unei instanțe vechi, care încă funcționează în fundal.
Actualizați ZAP pentru dezvoltarea materiei în Github
Când lucrați cu depozitul Matter sau Matter-Silicon Labs pe Github, setați variabilele de mediu în ceea ce privește ZAP pentru a crea/genera noi configurații ZAP sau pentru a regenera elementele existente.ampConfigurațiile le ZAP după aplicarea modificărilor acestora. Setați ZAP_DEVELOPMENT_PATH la ZAP de la sursă trăgând cel mai recent sau setați ZAP_INSTALLATION_PATH la executabilul ZAP pe care l-ați descărcat ultimul în directorul local. Rețineți că atunci când sunt setate atât ZAP_DEVELOPMENT_PATH, cât și ZAP_INSTALLATION_PATH, este folosit ZAP_DEVELOPMENT_PATH.
Următoarele sunt exampfișiere care arată variabilele de mediu de mai sus în uz:
Lansarea ZAP folosind specificația Matter Regenerarea tuturor sampConfigurațiile ZAP pentru aplicațiile Matter
Notă: atunci când utilizați executabile ZAP, asigurați-vă că utilizați o versiune oficială mai mult decât o lansare de noapte pentru mai multă stabilitate. Vedea
Descărcarea ZAP Executable în Ghidul de instalare ZAP
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
33/35
Multi-protocol simultan între Zigbee și Matter
Multi-protocol simultan între Zigbee și Matter
MCoanttceurrrent Multi-protocol între Zigbee și
ZAP poate fi folosit pentru a configura configurațiile ZCL (Zigbee) și Data-Model (Matter) într-o aplicație multi-protocol pentru Zigbee și Matter. ZAP vă permite să creați puncte finale pentru Zigbee și Matter în mod explicit în aceeași configurație file. Dacă punctele finale Zigbee și Matter sunt pe același identificator de punct final (de example, LO Dimmable Light pe endpoint Id 1 și Matter Dimmable Light pe o altă instanță a endpoint-ului 1), ZAP are grijă de sincronizarea atributelor comune între atributele Matter și Zigbee. Asigurați-vă că atributele care sunt sincronizate au același tip de date. Atributele comune dintre Zigbee și Matter sunt stabilite prin a file numit multi-protocol.json . Utilizatorul poate lega oricare două clustere din Zigbee și Matter împreună cu atributele lor corespunzătoare folosind codurile de cluster și, respectiv, de atribut. Acest file poate fi găsit în [SDKPath]/app/zcl/multi-protocol.json . Acest file a fost actualizat cu un anumit set de clustere și atribute pentru început, dar utilizatorul poate actualiza acest lucru file după cum este necesar, iar ZAP se va ocupa de sincronizarea configurației atributelor în Zigbee și Matter pentru identificatorii de puncte finale comune.
De asemenea, puteți găsi un tutorial ZAP în orice aplicație multi-protocol Zigbee and Matter din pagina de tutoriale. Acest tutorial vă va ghida prin procesul de creare a aplicației multiprotocoale. Acest tutorial este disponibil numai atunci când deschideți o aplicație multi-protocol existentă și poate fi găsit așa cum se arată în imaginea de mai jos:
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
34/35
Integrați SLC CLI cu ZAP
Integrați SLC CLI cu ZAP
Integrați SLC CLI cu ZAP
Urmați acești pași pentru a integra SLC CLI cu ZAP: ò Instalați SLC CLI urmând instrucțiunile de instalare din Ghidul utilizatorului Simplicity Studio 5. ó Instalați ZAP urmând instrucțiunile din Ghidul de instalare ZAP. ô Pentru a integra SLC CLI cu ZAP, adăugați o variabilă de mediu STUDIO_ADAPTER_PACK_PATH care indică aplicația ZAP
director. õ Nu uitați să reporniți SLC CLI Daemon după pasul 3. ö Orice proiect care utilizează ZAP va folosi acum calea definită la pasul 3 când este generat din SLC CLI. Vă rugăm să consultați SLC CLI
Utilizare pentru instrucțiuni despre utilizarea SLC CLI pentru proiectele dvs.
Copyright © 2025 Silicon Laboratories. Toate drepturile rezervate.
35/35
Documente/Resurse
![]() |
SILICON LABS ZAP în curs de dezvoltare cu Silicon Labs [pdfManual de utilizare ZAP în curs de dezvoltare cu Silicon Labs, ZAP, Dezvoltare cu Silicon Labs, Silicon Labs, Labs |