Silicon-Labs-LOGO

ZAP en desenvolvemento con Silicon Labs

ZAP-Desenvolvemento-Con-Silicon-Labs-PRODUCT

Especificacións

  • Nome do produto: Silicon Labs ZAP
  • Tipo: Motor de xeración de código e interface de usuario
  • Compatibilidade: Biblioteca de clúster Zigbee (Zigbee) ou modelo de datos (Matter)
  • Desenvolvido por: Connectivity Standards Alliance

Instrucións de uso do produto

  • ZAP Primeiros pasos
    • Para comezar con ZAP, siga estes pasos:
      • Descarga o executable ZAP desde o repositorio oficial.
      • Instale as dependencias usando o comando npm install.
      • Para a instalación específica de Windows, consulte a guía de instalación de ZAP para o sistema operativo Windows.
  • Desenvolvemento Zigbee
    • Se está a desenvolver aplicacións Zigbee:
      • Use Simplicity Studio, que inclúe ZAP e outras ferramentas necesarias.
  • Desenvolvemento da materia
    • Se está a desenvolver aplicacións Matter:
      • As opcións inclúen usar Simplicity Studio ou acceder aos repositorios de Silicon Labs ou CSA Github.
      • Consulta as instrucións de actualización de ZAP fóra do ciclo de lanzamento de Simplicity Studio se é necesario.

Preguntas frecuentes

  • P: Cales son as diferentes versións dos binarios ZAP dispoñibles?
    • A: Hai dúas versións dispoñibles: versión oficial con versións verificadas e versión previa coas funcións máis recentes.
  • P: Que debo facer se encontro problemas na compilación da biblioteca nativa durante a instalación?
    • A: Consulte a información de preguntas frecuentes sobre scripts específicos da plataforma para resolver estes problemas.

"'

Silicon Labs ZAP
Silicon Labs ZAP

Desenvolvendo con Silicon Labs ZAP

Comezando
ZAP Iniciando de novoview Instalación de ZAP Instalación de ZAP FAQ de Windows
Fundamentos ZAP Fundamentos
Guía do usuario Guía do usuario ZAP Overview XML personalizado XML personalizado Tags para Zigbee Múltiples tipos de dispositivos por punto final. Tipo de dispositivo. Tipo de dispositivo. Páxina de características. Notificacións. Modelo de datos/Especificación de ZCL. Conformidade. Control de acceso. Lanzamento de ZAP para aplicacións Matter ou Zigbee. Xeración de código para Matter ou Zigbee. Actualización ZAP en Studio. Multiprotocolo simultáneo entre Zigbee e Matter. Integrar SLC CLI con ZAP.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

1/35

Desenvolvendo con Silicon Labs ZAP
Desenvolvendo con Silicon Labs ZAP
ZAP
ZAP é un motor de xeración de código xenérico e unha interface de usuario para aplicacións e bibliotecas baseado na biblioteca de clúster Zigbee de Zigbee ou no modelo de datos de Matter. A especificación está desenvolvida pola Connectivity Standards Alliance. ZAP permítelle realizar as seguintes operacións:
Realiza a xeración personalizada específica do SDK de todos os artefactos globais (constantes, tipos, ID, etc.) en función da especificación ZCL/Data-Model. Realice a xeración personalizada específica do SDK de todos os artefactos de configuración seleccionados polo usuario (configuración da aplicación, configuración do punto final, etc.) en función da especificación ZCL/Data-Model e da configuración da aplicación proporcionada polo cliente. Proporcione unha interface de usuario para que o usuario final seleccione unha configuración de aplicación específica (puntos finais, clústeres, atributos, comandos, etc.).

ZAP-Desenvolvemento-con-Silicon-Labs-FIG- (1)

O contido destas seccións describe como desenvolver aplicacións Zigbee e Matter configurando as capas ZCL (Zigbee) ou Data Model (Matter) mediante ZAP.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

2/35

ZAP Primeiros pasos

ZAP Primeiros pasos
Iniciación a ZAP
Estas seccións describen diferentes métodos para crear aplicacións Zigbee e Matter. Teña en conta que Simplicity Studio ofrece unha forma de crear as súas aplicacións Zigbee e Matter de punta a punta onde todas as ferramentas veñen preinstaladas xunto con Simplicity Studio (incluíndo ZAP). Tamén pode decidir explorar outras formas de crear as súas aplicacións, como se describe aquí.
Desenvolvemento Zigbee
Os desenvolvedores de aplicacións de Zigbee poden crear as súas aplicacións usando Simplicity Studio, que xa inclúe ZAP e outras ferramentas que che axudan a crear a túa aplicación de punta a punta.
Desenvolvemento da materia
Os desenvolvedores de aplicacións de Matter poden crear as súas aplicacións mediante os seguintes métodos: Simplicity Studio: inclúe ZAP e outras ferramentas necesarias para crear a aplicación Matter de extremo a extremo. Github (Silicon Labs) Github (CSA)
Nota: para actualizar ZAP fóra do ciclo de lanzamento de Simplicity Studio, consulte actualizar ZAP en Simplicity Studio e a Guía de instalación de ZAP

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

3/35

Instalación ZAP

As seguintes seccións describen a instalación de ZAP e como actualizar ZAP en Simplicity Studio IDE.
Descarga do executable ZAP recomendado)
Esta é a forma recomendada de comezar con ZAP. Podes obter os últimos binarios ZAP de aa https://github.com/project-chip/zp/releses. Os binarios preconstruídos veñen en dúas versións diferentes.
Versión oficial: versións verificadas con suites de probas dedicadas de Matter e Zigbee. O formato do nome da versión é vAAAA.DD.MM. Prelanzamento: versións coas últimas funcións e correccións de erros, pero estas compilacións NON se verifican con paquetes de probas dedicados de Matter e Zigbee. O formato do nome da versión é vYYYY.DD.MM-nightly.
Instalación de ZAP desde a fonte
Instrucións básicas para instalar ZAP
Dado que esta é unha aplicación node.js, necesitas o ambiente de node instalado. A mellor forma de facelo é descargar a última instalación de node, que inclúe node e npm. Se tes unha versión máis antiga do nodo instalada na túa estación de traballo, pode causar problemas, especialmente se é moi antiga. Asegúrate de ter a última versión do node v16.x co npm que se inclúe. Execute node –version para comprobar que versión se recolle. Recoméndase v18.x. Despois de ter a versión desexada do nodo, pode executar o seguinte:
Instalar as dependencias
Use os seguintes comandos para instalar dependencias:

ZAP-Desenvolvemento-con-Silicon-Labs-FIG- (2)
instalación npm
Nota: Para a instalación de ZAP específica de Windows, consulte Instalación de ZAP para o sistema operativo Windows. Non é raro atopar problemas de compilación de bibliotecas nativas neste momento. Hai varios scripts src-script/install-* para diferentes plataformas. Consulte a información das preguntas frecuentes sobre que script executar en diferentes plataformas e, a continuación, volve executar npm install .
Inicia a Aplicación
Use os seguintes comandos para iniciar a aplicación:

ZAP-Desenvolvemento-con-Silicon-Labs-FIG- (3)
npm run zap
Inicia o front-end no modo de desenvolvemento
Admite a recarga de código quente, informes de erros, etc. Use os seguintes comandos para iniciar o front-end en desenvolvemento
modo:ZAP-Desenvolvemento-con-Silicon-Labs-FIG- (4)
quasar dev -m electrón
or

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

4/35

ZAP Insta at oll in
npm run electron-dev

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

5/35

Instalación de ZAP Windows
Instalación de ZAP Windows
Instalación de ZAP para Windows OS
1. Windows Powershell
Na barra de busca do escritorio, introduza Windows Powershell e execute como administrador. Execute todos os seguintes comandos dentro de Powershell.
2. Chocolatey
Instalar desde https://chocolatey.org/install. Comproba se está instalado correctamente cos seguintes comandos:
choco -v
Instale o paquete pkgconfiglite cos seguintes comandos:
choco instalar pkgconfiglite
3. Instalar Node
Executa os seguintes comandos para instalar:
choco instalar nodejs-lts
*A versión ten que ser 18 para pasar a proba de verificación de versión, despois da instalación, comproba con node -v *Se xa instalou Node e falla algunhas probas semellantes a Non pode atopar Node, reinstala Node con chocolate de novo.
4. Siga as instrucións básicas para instalar ZAP
Siga as instrucións de instalación de ZAP da fonte na Instalación de ZAP. Ao seguir as instrucións básicas para instalar ZAP, teña en conta os seguintes erros e como resolvelos:
sqlite3
Ao executar ZAP (por exemplo, npm run zap ), se ves un erro sobre sqlite3.node nunha ventá emerxente, executa:
npm reconstruír sqlite3
constructor de electróns
Ao facer npm install, na post-instalación, se se produce un erro no seguinte comando relacionado con electron-builder install-appdeps , npx electron-rebuild canvas failed ou node-pre-gyp , a versión actual do canvas non é compatible con Windows e o erro de instalación non provocará un fallo na execución de ZAP. node-canvas está traballando na solución agora e o problema resolverase nun futuro próximo.
“postinstall”: “electron-builder install-app-deps && husky install && npm rebuild canvas –update-binary && npm run version-stamp”

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

6/35

Instalación de ZAP Windows
Lenzo
Se a proba de execución de npm falla debido ao erro Fallou a execución da suite de probas. Non se pode atopar o módulo '../build/Release/canvas.node' ou
zapnode_modulescanvasbuildReleasecanvas.node non é unha aplicación Win32 válida. , reconstruír o lenzo do seguinte xeito:
npm rebuild canvas –update-binary
obter index.html ou outros problemas do servidor
Se a proba de execución de npm falla debido ao erro, a solicitude index.html fallou co código de estado 404 nas probas unitarias ou no servidor.
problemas de conexión nas probas e2e-ci, execute os seguintes comandos:
npm executar compilación
Outros
Comproba se a versión do nodo é v18 e intenta instalala con Chocolatey.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

7/35

FAQ
FAQ
Preguntas frecuentes
P: Como iniciar a IU nun modo de desenvolvemento? R: Podes iniciar a IU nun modo de desenvolvemento, o que dará lugar á seguinte configuración:
Servidor HTTP de desenvolvemento cuásar separado, que se actualiza en directo no back-end ZAP do porto 8080 que se executa no porto 9070 Chrome ou noutro navegador, que se executa de forma independente. Para acceder a esa configuración, siga as instrucións a continuación. ò Primeiro, execute o servidor de desenvolvemento ZAP, que se inicia no porto 9070.
npm run zap-devserver ó A continuación, execute o servidor de desenvolvemento quasar, que se inicia no porto 8080.
quasar dev ô Apunte o seu navegador ou execute un contra o correcto URL co argumento restPort:
google-chrome http://localhost:8080/?restPort=9070

P: Como facer que isto funcione en Mac/Linux OS? A:
npm install úsase para descargar todos os paquetes de dependencia necesarios. Se ves erros relacionados con node-gyp e faltan bibliotecas locais, como pixman , etc., faltan dependencias nativas para satisfacer a compilación de binarios de nodos non preconstruídos para algunha combinación de plataformas e versións. Npm na nube está a actualizar constantemente a lista de binarios proporcionados, polo que é posible que os recolla ben, pero se non o fas, estas son instrucións para diferentes plataformas:
Fedora Core con dnf:
dnf instalar pixman-devel cairo-devel pango-devel libjpeg-devel giflib-devel
ou executar o script:
src-script/install-packages-fedora
Ubuntu con apt-get:
apt-get update apt-get install –fix-missing libpixman-1-dev libcairo-dev libsdl-pango-dev libjpeg-dev libgif-dev
ou executar o script:

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

8/35

FAQ
src-script/install-packages-ubuntu
OSX nun Mac con Homebrew Brew:
brew install pkg-config cairo pango libpng jpeg giflib librsvg
ou executar o script:
src-script/install-packages-osx
P: Como facer que isto funcione no sistema operativo Windows?
R: Asegúrate de que estea sempre actualizado e de que non hai cambios que non se fixeran. Consello: git pull, git status e git stash son os teus amigos. Debes usar Chocolately para que Zap funcione no sistema operativo Windows. Asegúrese de descargar o paquete pkgconfiglite.
choco instalar pkgconfiglite
Se tes problemas co cairo, por exemploample se recibe un erro sobre cairo.h': Non tal file ou directorio, faga o seguinte: ò Comproba se o teu ordenador ten 32 ou 64 bits. ó Dependendo diso, descargue o paquete axeitado deste sitio
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:
Fai clic en Configuración avanzada do sistema. Na pestana avanzada fai clic en Variables de ambiente. Na sección Variables do sistema, busque a variable de ambiente PATH e selecciónaa. Fai clic en Editar e engade C:/GTK. Se a variable de ambiente PATH non existe, faga clic en Novo. Se non se atopa jpeglib.h, proba o seguinte: ò No terminal, executa: choco install libjpeg-turbo ó Asegúrate de que está limpo usando: git clean -dxff e executa de novo npm install ô Se non se producen erros e só aparecen avisos, intenta usar npm audit fix õ se non podes executar ZAP, vai a file src-script/zap-start.js ö Cambiar
÷ const { spawn } = require('cross-spawn') to const { spawn } = require('child_process') ø Executar npm e executar zap. Referencias:
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)
P: Recibo un erro "sqlite3_node" non atopado ou semellante.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

9/35

FAQ
R: Reconstrúe as ligazóns nativas de sqlite3. Para solucionar isto na maioría dos casos, executa:
instalación npm
./node_modules/.bin/electron-rebuild -w sqlite3 -p
Se aínda non se soluciona, fai:
rm -rf node_modules e despois tente de novo os comandos anteriores. De cando en vez, actualizar o teu npm tamén marca a diferenza:
npm install -g npm
P: Recibo un erro "A versión N-API desta instancia de Node é 1. Este módulo admite versións de N-API 3. Esta instancia de Node non pode executar este módulo".
R: Actualiza a versión do teu nodo. A solución para isto é discutida neste fío de desbordamento de pila: https://stackoverflow.com/questions/60620327/the-n-apiversion-of-this-node-instance-is-1-this-module-supports-n-api-version
P: O meu PC de desenvolvemento non funciona con ZAP por calquera motivo. Podo usar un contedor docker?
R: Si podes. Por determinar.
P: Como executo ZAP dentro de VSCode?
R: Se VSCode no seu camiño, introduza o repo zap e escriba o código . Isto abrirá ZAP en VSCode. Para executar ZAP no modo de depuración, seleccione o espazo de traballo ZAP e prema na icona Executar na barra de ferramentas da esquerda. Terá un par de opcións para escoller para executar ZAP, escolla Node.js Debug Terminal . Isto abrirá unha xanela de terminal desde a que podes introducir npm run zap , que conectará o depurador e executará ZAP como farías normalmente desde a liña de comandos. Parabéns, agora deberías ver ZAP en execución no depurador. Pode establecer puntos de interrupción en VSCode como o faría en calquera outro IDE.
P: A proba da unidade da IU falla con algúns erros ao non construír o lenzo para a versión correcta do nodo. Que fago?
R: Se ves o seguinte erro:ZAP-Desenvolvemento-con-Silicon-Labs-FIG- (5)
FAIL test/ui.test.js Non se puido executar a suite de probas. O módulo "canvas.node" foi compilado cunha versión diferente de Node.js usando NODE_MODULE_VERSION 80. Esta versión de Node.js require NODE_MODULE_VERSION 72. Tenta recompilar ou reinstalar o módulo (por exemplo, usando `n`pmn` ou reinstalar`).
en Obxecto. (node_modules/canvas/lib/bindings.js:3 18)
despois executa: npm rebuild canvas –update-binary

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

10/35

Fundamentos de ZAP

ZCL/Modelo de datos ZAP Fundamentos
Esta sección contén información para novos usuarios de ZAP. Fai clic na icona do titorial na esquina superior dereita da IU de ZAP, que mostra como crear unha configuración de ZAP. O tutorial guiarao a través do seguinte: Crear un punto final Seleccionar un tipo de dispositivo Configurar un clúster Configurar un atributo Configurar un comando Para obter referencia detallada, consulte a Guía do configurador de clúster de Zigbee

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

11/35

Guía de usuario de ZAP
Guía de usuario de ZAP
Guía de usuario de ZAP
As seccións desta guía ofrecen máis detalles sobre as diferentes funcións que ofrece ZAP.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

12/35

XML personalizado

Engadindo XML personalizado desde a IU de ZAP
Fai clic na icona "Extensións" na IU de ZAP. Fai clic no botón "+" engadir para seleccionar un xml personalizado file Os clústeres, atributos, comandos, etc. personalizados deberían aparecer na IU de ZAP unha vez que se engade o xml personalizado.
Creando o teu propio XML personalizado en Zigbee
A sección mostra como crear os seus propios clústeres personalizados e ampliar os clústeres estándar existentes con atributos e comandos personalizados para Zigbee.
Clústers específicos do fabricante en Zigbee
Podes engadir clústeres específicos do fabricante a un profesional estándarfile. Ofrecemos un example deste a continuación. Para iso debes cumprir dúas obrigas:
O ID do clúster DEBE estar no intervalo específico do fabricante, 0xfc00 – 0xffff. A definición do clúster debe incluír un código de fabricante que se aplicará a TODOS os atributos e comandos dese clúster e debe proporcionarse ao enviar e recibir comandos e interactuar cos atributos. ExampLe:

ZAP-Desenvolvemento-con-Silicon-Labs-FIG- (6)
Sample Mfg Clúster específico Xeral Este clúster ofrece un example de como se pode estender o marco de aplicación para incluír clústeres específicos do fabricante.
0xFC00
brasa sampo atributo
brasa sampatributo 2


A sample comando específico do fabricante dentro do sampespecífico do fabricante
clúster.


Comandos específicos do fabricante no clúster Zigbee estándar
Podes engadir os teus propios comandos a calquera clúster estándar de Zigbee cos seguintes requisitos:
Os seus comandos específicos do fabricante poden usar calquera ID de comando dentro do intervalo de ID de comando, 0x00 – 0xff. Tamén debes proporcionar un código de fabricante para o comando para que se poida distinguir doutros comandos do clúster e xestionalo adecuadamente. Example de estender o clúster On/Off con comandos de fabricación:

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

13/35

XML personalizado
<command source=”client” code=”0 0006″ name=”SampleMfgSpecificOffWithTransition” optional="true” manufacturerCode="0 1002″> Comando do cliente que apaga o dispositivo cunha transición dada polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificOnWithTransition” optional=”true” manufacturerCode=”0 1002″> Comando do cliente que acende o dispositivo cunha transición dada polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificToggleWithTransition” optional=”true” manufacturerCode=”0 1002″> Comando de cliente que alterna o dispositivo cunha transición dada polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificOnWithTransition2″ opcional=”true” manufacturerCode=”0 1049″> Comando do cliente que acende o dispositivo cunha transición dada polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificToggleWithTransition2″ opcional="true"
manufacturerCode="0 1049"> Comando de cliente que alterna o dispositivo cunha transición dada polo tempo de transición no Ember Sampatributo de tempo de transición.

Atributos específicos do fabricante no clúster Zigbee estándar
Podes engadir os teus propios atributos a calquera clúster estándar de Zigbee cos seguintes requisitos:
Os seus atributos específicos do fabricante poden usar calquera ID de atributo dentro do intervalo de ID de atributo, 0x0000 – 0xffff. Tamén debes proporcionar un código de fabricante para o atributo para que se poida distinguir doutros atributos do clúster e xestionalo adecuadamente. Example de estender o clúster On/Off con atributos de fabricación:
<attribute side=”server” code=”0 0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME” type=”INT16U” min=”0 0000″
max=”0xFFFF” writable=”true” default=”0 0000″ opcional=”true” manufacturerCode=”0 1002″>SampAtributo específico de 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″>SampAtributo específico de 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″>SampAtributo específico de 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″>SampAtributo específico de le Mfg: 0 0001 0 1040
Creando o teu propio XML personalizado en Matter
A sección mostra como crear os seus propios clústeres personalizados e ampliar os clústeres estándar existentes con atributos e comandos personalizados para Matter.
Clústeres específicos do fabricante en materia
Podes engadir clústeres específicos do fabricante a in Matter. Ofrecemos un example deste a continuación.
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. Todos os dereitos reservados.

14/35

XML personalizado
No seguinte example, a combinación do ID de provedor (ID de fabricante de proba) de 0xFFF1 e o ID de clúster de 0xFC20 dá como resultado un value of 0xFFF1FC20. The commands and attributes within this cluster will adopt the same Manufacturer ID. ExampLe:
Xeral Sampo MEI 0xFFF1FC20 SAMPLE_MEI_CLUSTER O Sampo cluster MEI mostra as extensións do fabricante do cluster FlipFlop
Resposta para AddArguments que devolve a suma. Comando que toma dous argumentos uint8 e devolve a súa suma. Comando sinxelo sen ningún parámetro e sen resposta.
Atributos específicos do fabricante en clusters de materia estándar
Podes engadir atributos específicos do fabricante a calquera clúster estándar de Matter cos seguintes requisitos:
T aaaa o agrupamento no que se engaden os atributos aos que se deben especificar -
e xte nd ed > “>
O código do atributo é unha combinación de 32 bits do código do fabricante e do identificador do atributo. Os 16 bits máis significativos son o código do fabricante. O intervalo dos códigos de fabricante de proba é 0xFFF1 – 0xFFF4. Os 16 bits menos significativos son o ID de atributo. O intervalo para atributos non globais é 0x0000 – 0x4FFF.
Example de estender o cluster On/Off Matter con atributos específicos de fabricación:
<attribute side=”server” code=”0xFFF0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ type=”INT8U” min=”0 0000″
max="0xFFFF" escribible="true" default="0 0000" opcional="true">SampAtributo específico de le Mfg 2AMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ type=”INT16U” min=”0 0000″
max="0xFFFF" escribible="true" default="0 0000" opcional="true">SampAtributo específico de le Mfg 4
Comandos específicos do fabricante en clústeres de materia estándar
Podes engadir comandos específicos do fabricante a calquera clúster estándar de Matter cos seguintes requisitos:
T aaaa o clúster no que se engaden os com nd nds deben especificarse -
e xte nd ed > “>
O código do comando é unha combinación de 32 bits do código do fabricante e do identificador do comando. Os 16 bits máis significativos son o código do fabricante. O intervalo dos códigos de fabricante de proba é 0xFFF1 – 0xFFF4. Os 16 bits menos significativos son o ID do comando. O intervalo para os comandos non globais é 0x0000 – 0x00FF.
Example de estender o cluster On/Off Matter con clusters específicos de fabricación:

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

15/35

XML personalizado

<command source=”client” code=”0xFFF10000″ name=”SampleMfgSpecificOnWithTransition2″ opcional="true"> Comando do cliente que acende o dispositivo cunha transición dada polo tempo de transición no Ember Sampatributo de tempo de transición.
<command source=”client” code=”0xFFF10001″ name=”SampleMfgSpecificToggleWithTransition2″ opcional="true">
Comando de cliente que alterna o dispositivo cunha transición dada polo tempo de transición no Ember Sampatributo de tempo de transición.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

16/35

XML personalizado Tags para Zigbee

O seguinte documento fala de cada un dos xml tags asociado con Zigbee.
Cada xml file está listado entre o configurador tags:

Os tipos de datos pódense definir no configurador tag. Zigbee admite actualmente a definición de mapas de bits, enumeracións, enteiros, cadeas ou estruturas. Antes de definir máis tipos, asegúrese de comprobar todos os tipos atómicos existentes definidos en types.xml e todos os tipos non atómicos definidos no outro xml files. Podes definilos do seguinte xeito:
Mapa de bits: nome: nome do tipo de mapa de bits. tipo: pódese definir un mapa de bits cun tamaño entre 8 e 64 bits, todos eles deben ser múltiplos de 8. Cada mapa de bits pode ter varios campos cun nome e unha máscara asociada a el. ex.:

"'
Enum: nome: nome do tipo de enumeración. tipo: pódese definir unha enumeración cun tamaño entre 8 e 64 bits, todos eles deben ser múltiplos de 8. Cada enumeración pode ter varios elementos cun nome e un valor asociado a el. ex.:

Enteiro: os tipos enteiros xa están definidos en tipos atómicos que existen en types.xml. O seu tamaño pode variar entre 8 e 64 bits e pode estar asinado ou sen asinar. ex.:

Cadea: os tipos de cadea xa están definidos en tipos atómicos que existen en types.xml. Os tipos de cadea actuais inclúen cadea de octetos, cadeas de caracteres, cadeas de octetos longos e cadeas de caracteres longas, por exemplo:

Struct: nome: nome do tipo de estrutura. Cada estrutura pode ter varios elementos cun nome e un tipo asociados. O tipo pode ser calquera tipo predefinido en tipos de datos. ex.:

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

17/35

XML personalizado Tags para Zigbee

<item name=”structItem1″ type=” Any defined type name in the xml files]”/>

Os clústeres personalizados pódense definir no configurador tag. nome: nome do clúster dominio: dominio do clúster. O clúster aparecerá na IU de ZAP neste dominio. descrición: Descrición do código do clúster: clúster define: clúster define cal é o que usa o xerador de código para definir o clúster dunha determinada maneira manufacturerCode: Úsase para definir un clúster específico de fabricación. Debe estar entre 0xfc00 e 0xffff. O código do fabricante do clúster debe definirse como segue:

Un clúster de fabricación crea automaticamente os atributos e comandos baixo o mesmo código de fabricante a menos que enumeren explícitamente o código de fabricante. introdudIn: úsase para determinar a versión especificada na que se introduciu o clúster. Isto é usado polo xerador de código para engadir lóxica adicional. removedIn: úsase para determinar a versión especificada na que se eliminou o clúster. Isto é usado polo xerador de código para engadir lóxica adicional. singleton(boolean): úsase para determinar un clúster como singleton de forma que só hai unha instancia dese clúster compartida entre os puntos finais. atributo: define un atributo para o nome do clúster: o nome do atributo menciónase entre o atributo tag.
nome do atributo
side(cliente/servidor): o lado do clúster ao que tamén está asociado o atributo. código: código de atributo código de fabricante: pódese usar para definir un atributo específico do fabricante fóra da especificación zigbee mencionada polo xml estándar. define: atributo define cal é o que usa o xerador de código para definir un atributo dun xeito determinado. min: valor mínimo permitido para un atributo max: valor máximo permitido para un atributo escribible: é o valor do atributo escribible ou non. Isto pódese usar para evitar que o atributo sexa modificado mediante ordes de escritura. optional(boolean): Úsase para determinar se un atributo é opcional ou non para o clúster. min: valor mínimo permitido para un atributo cando é de tipo enteiro, enumeración ou mapa de bits. max: valor máximo permitido para o atributo cando é un tipo enteiro, enumeración ou mapa de bits length: Úsase para especificar a lonxitude máxima do atributo cando é de tipo cadea. minLength: Úsase para especificar a lonxitude mínima do atributo cando é de tipo cadea. reportable(boolean): indica se un atributo é reportable ou non isNullable(boolean): permite valores nulos para o atributo. array(boolean): Úsase para declarar un atributo de tipo array. introdudIn: Úsase para determinar a versión especificada na que se introduciu o atributo. Isto é usado polo xerador de código para engadir lóxica adicional. removedIn: úsase para determinar a versión de especificación na que se eliminou o atributo. Isto é usado polo xerador de código para engadir lóxica adicional. comando: define un comando para un nome de clúster: Nome do comando.

código: código de comando

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

18/35

XML personalizado Tags para Zigbee
código do fabricante: pódese usar para definir un comando específico do fabricante fóra da especificación zigbee mencionada polo xml estándar. descrición: descrición do comando fonte(cliente/servidor): fonte do comando. optional(boolean): Úsase para determinar se un comando é opcional ou non para o clúster. introdudIn: Úsase para determinar a versión especificada na que se introduciu o comando. Isto é usado polo xerador de código para engadir lóxica adicional. removedIn: Úsase para determinar a versión especificada na que se eliminou o comando. Isto é usado polo xerador de código para engadir lóxica adicional. argumentos do comando:
Cada comando pode ter un conxunto de argumentos de comando nome: nome da orde tipo de argumento: tipo de argumento de comando que pode ser calquera dos tipos mencionados no xml. min: valor mínimo permitido para un argumento cando é de tipo enteiro, enumeración ou mapa de bits. max: valor máximo permitido para un argumento cando é un tipo enteiro, enumeración ou mapa de bits length: Úsase para especificar a lonxitude máxima permitida para un argumento de comando cando é de tipo cadea. minLength: úsase para especificar a lonxitude mínima permitida para un argumento de comando cando é de tipo cadea. array(boolean): para determinar se o argumento do comando é de tipo array. presentIf(cadea): esta pode ser unha cadea condicional de operacións lóxicas baseadas noutros argumentos do comando onde pode esperar o argumento do comando se a cadea condicional se avalía como verdadeiro. ex.:

Nota: aquí o estado é outro nome do argumento do comando. opcional (booleano): úsase para determinar o argumento do comando como opcional. countArg: úsase cando o argumento do comando é de tipo matriz. Isto úsase para mencionar o outro argumento do comando que indica o tamaño da matriz para este argumento.

introdudIn: Úsase para determinar a versión especificada na que se introduciu o argumento do comando. Isto é usado polo xerador de código para engadir lóxica adicional. removedIn: úsase para determinar a versión especificada na que se eliminou o argumento do comando. Isto é usado polo xerador de código para engadir lóxica adicional. A extensión do clúster pódese definir no configurador tag. A extensión do clúster úsase para estender un clúster estándar con atributos e comandos de fabricación, por exemplo

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

19/35

XML personalizado Tags para 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″>SampAtributo específico de 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″>SampAtributo específico de 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″>SampAtributo específico de 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″>SampAtributo específico de le Mfg: 0 0001 0 1040ampleMfgSpecificOffWithTransition” optional="true” manufacturerCode="0 1002″> Comando do cliente que apaga o dispositivo cunha transición dada
polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificOnWithTransition” optional=”true” manufacturerCode=”0 1002″> Comando de cliente que acende o dispositivo cunha transición dada
polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificToggleWithTransition” optional=”true” manufacturerCode=”0 1002″> Comando de cliente que alterna o dispositivo cunha transición dada
polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificOnWithTransition2″ opcional=”true” manufacturerCode=”0 1049″> Comando de cliente que acende o dispositivo cunha transición dada
polo tempo de transición no Ember Sampatributo de tempo de transición.ampleMfgSpecificToggleWithTransition2″ optional=”true” manufacturerCode=”0 1049″> Comando de cliente que alterna o dispositivo cunha transición dada
polo tempo de transición no Ember Sampatributo de tempo de transición.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

20/35

Varios tipos de dispositivos por punto final

Esta é unha función de só materia na que un usuario pode seleccionar máis dun tipo de dispositivo por punto final. A adición de varios tipos de dispositivos aaa engadirá as configuracións do clúster dentro dos tipos de dispositivos á configuración do punto final.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

21/35

Varios tipos de dispositivos por punto final

A imaxe superior mostra que o punto final 1 ten máis dun tipo de dispositivo seleccionado. O "Dispositivo principal" indica o tipo de dispositivo principal ao que se asociará o punto final. O tipo de dispositivo principal sempre está presente no índice 0 da lista de tipos de dispositivos seleccionados, polo que se selecciona un tipo de dispositivo principal diferente, cambiará a ordenación dos tipos de dispositivos seleccionados. As seleccións de tipo de dispositivo tamén teñen restricións baseadas na especificación do modelo de datos. ZAP protexe aos usuarios de escoller combinacións non válidas de tipos de dispositivos nun punto final usando estas restricións.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

22/35

Páxina de funcións Tipo de dispositivo de materia
Páxina de funcións Tipo de dispositivo de materia
Páxina de funcións Tipo de dispositivo de materia
ZAP admite a visualización e a alternancia das funcións de Matter na páxina de funcións do tipo de dispositivo. Só se mostrarán as funcións do tipo de dispositivo especificadas en matter-devices.xml no repositorio de CHIP.

Navegando á páxina de funcións
ò Inicia ZAP in Matter co Matter SDK actualizado. ó Crear un punto final cun tipo de dispositivo Matter. ô Faga clic no botón Características do tipo de dispositivo na parte central superior do clúster view. Teña en conta que este botón só está dispoñible en ZAP
configuracións para Matter e cando existen datos de conformidade no Matter SDK. Facendo clic neste botón abrirase a imaxe anterior.
Conformidade
A conformidade define a opcionalidade e a dependencia de atributos, comandos, eventos e tipos de datos. Determina se un elemento é obrigatorio, opcional ou non é compatible en determinadas configuracións de ZAP.
A conformidade das funcións do tipo de dispositivo ten prioridade sobre a conformidade das funcións do clúster. Por example, a función Iluminación ten unha conformidade opcional no clúster On/Off, pero declárase como obrigatoria no tipo de dispositivo On/Off Light que inclúe o clúster On/Off. Ao crear un punto final co tipo de dispositivo Luz activada/desactivada, a función Iluminación mostrarase como obrigatoria na páxina de funcións.
Alternancia de funcións
Na páxina de funcións, despois de facer clic no botón de alternar para activar ou desactivar unha función, ZAP:
Actualiza os elementos asociados (atributos, comandos, eventos) para corrixir a conformidade e mostra un diálogo que mostra os cambios.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

23/35

Tipo de dispositivo Páxina de características Actualice o bit de función no atributo featureMap do clúster asociado

Activa o diálogo de funcións

Desactivar o diálogo de funcións

A alternancia está desactivada para algunhas funcións cando a súa conformidade ten un valor descoñecido ou un formulario t actualmente non compatible. Neste caso, ZAP mostrará avisos na notificación.
un Wa Element Conform nce rnings

Cando alternas un elemento, ZAP pode mostrar tanto avisos de conformidade do dispositivo como avisos de conformidade. Se o estado do elemento non coincide coa conformidade esperada, ZAP mostrará unha icona de aviso e rexistrará o aviso na aplicación de notificación. Example das advertencias de conformidade e de conformidade mostradas para un elemento:

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

24/35

Notificacións
Notificacións
Notificacións
A seguinte sección define como se dan as notificacións aos usuarios de ZAP na IU.
Notificacións de paquetes
As notificacións de paquetes son as advertencias ou as mensaxes de erro asociadas a calquera paquete específico cargado en ZAP. Por example, nas imaxes de abaixo, ao facer clic na icona de aviso situada baixo a columna de estado, aparecerá un diálogo que mostra todas as notificacións para ese paquete.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

25/35

Notificacións
Notificacións de sesións
As notificacións de sesión son as advertencias ou as mensaxes de erro que están asociadas a unha sesión de usuario. Estes avisos/erros pódense ver facendo clic no botón Notificacións na barra de ferramentas situada na parte superior da IU de ZAP. Por example, a imaxe de abaixo mostra a páxina de notificacións de sesión despois dun isc file foi cargado en ZAP.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

26/35

Cumprimento da especificación do modelo de datos/ZCL
Cumprimento da especificación do modelo de datos/ZCL
Modelo de datos e cumprimento da especificación ZCL
Esta función en ZAP axuda aos usuarios a ver os fallos de cumprimento de Data Model ou ZCL coas súas configuracións ZAP existentes. As mensaxes de aviso dos fallos de cumprimento aparecerán no panel de notificacións da IU de ZAP e tamén se iniciará sesión na consola cando se execute ZAP a través da CLI. A función de conformidade ofrece actualmente avisos sobre o cumprimento do tipo de dispositivo e o cumprimento do clúster nun punto final.
Avisos de conformidade na IU de ZAP
Cando un usuario abre un ficheiro .zap file usando a IU de ZAP, verán avisos no panel de notificacións da IU de ZAP para todos os fallos de cumprimento. Por example, a imaxe de abaixo mostra a páxina de notificacións de sesión despois dun .zap file abriuse con problemas de cumprimento.

As mensaxes de cumprimento desaparecerán unha vez que se resolvan os problemas mediante a IU de ZAP, de modo que só podes facer un seguimento dos problemas de cumprimento restantes. Tamén se mostrarán novos avisos para o cumprimento se o usuario desactiva os elementos obrigatorios (clúster/comandos/atributos) da configuración. As notificacións de cumprimento das especificacións sempre farán un seguimento dos fallos que se introduzan na configuración de ZAP, pero teña en conta que os avisos que aparecen durante a apertura dun .zap file son máis elaborados sobre por que non se cumpriu en comparación coas advertencias que aparecen ao interactuar coa IU. Isto é por deseño e realízase unha comprobación de conformidade completa durante a apertura dun .zap file.
Avisos de conformidade na consola

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

27/35

Cumprimento da especificación do modelo de datos/ZCL
Cando un usuario abre un ficheiro .zap file usando a IU autónoma de ZAP ou a CLI de ZAP, verán avisos rexistrados na consola/terminal para todos os fallos de cumprimento. Por example, a imaxe de abaixo mostra os avisos de notificación de sesión na consola/terminal despois dun .zap file abriuse con problemas de cumprimento.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

28/35

Control de acceso

Funcións de control de acceso
ZAP admite o control de acceso en todas as entidades ZCL. Depende da implementación do SDK para asignar estas funcións ás funcións do SDK de control de acceso necesarias e compatibles. ZAP xeralmente proporciona un modelo de datos e un mecanismo para codificalos na metainformación files e propagar eses datos aos modelos de xeración, sen asignar significados específicos aos puntos de datos.
Termos básicos
O control de acceso ZAP define tres termos básicos, como segue: ò operación : defínese como algo que se pode facer. Example: ler, escribir, invocar. ó rol: definido como privilexio dun actor. Como "View privilexio", "Función administrativa" e fillo. ô modificadores: definidos como condicións especiais de control de acceso, tales como datos sensibles ao tecido ou datos de ámbito tecido. Os termos básicos defínense no XML de metadatos baixo unha parte superior tag . O seguinte é un exampDefinicións de termos básicos de control de acceso:
<role type=”view"descrición="View privilexio”/>
Este example define tres operacións, ler, escribir e invocar, dous modificadores e catro papeis.
Accede a Trillizos
Cada condición de acceso individual pódese definir cun triplete de acceso no XML. O triplete de acceso é unha combinación dunha operación, rol e modificador. Son opcionais, polo que só podes ter un destes. Unha parte que falta no triplete significa xeralmente permisividades, que son específicas da implementación para o SDK dado. Unha entidade que define o seu acceso pode ter un ou máis trillizos de acceso. O seguinte é un exampLe:
á 0
Esta é unha definición dun atributo que ten un triplete de acceso, declarando que permite a operación de escritura por parte dun rol de xestión, co modificador de ámbito de tecido aplicado.
Permisos predeterminados

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

29/35

Control de acceso
As entidades ZCL poden definir os seus propios permisos individuais. Non obstante, tamén hai unha definición global dos permisos predeterminados para
tipos dados. Asúmense para a entidade determinada, a non ser que proporcione permisos específicos propios.
Os permisos predeterminados decláranse mediante a tag no nivel superior do XML file. ExampLe:
aa a< ccess op="invoke"/> a a aa < ccess op=”re d”/> a< ccess op=”escribir”/> a aa aa < acceso op="re d" rol="view”/> aa < ccess op=”write” role=”oper te”/> a
Axudantes de modelos
O axudante básico de modelos que se pode utilizar é o iterador {{#access}} … {{/access}}. Este iterador itera sobre todos os tripletes de acceso dados.
Soporta as dúas opcións seguintes:
entity="attribute/command/event": se a entidade non se pode determinar a partir do contexto, establécese o tipo de entidade. includeDefault="true/false": determina se os valores predeterminados están incluídos ou non. O seguinte é un exampLe:
{{#zcl_clusters}}
a Clúster: {{n me}} [{{código}}] a {{#zcl_ ttributes}} aa – ttribute: {{n me}} [{{code}}] aa {{# ccess entity=" ttribute"}}
O a RM a M * p: {{operación}} / ole: {{role}} / odifier: {{ ccess odifier}} a{{/ ccess}} a {{/zcl_ ttributes}} a {{#zcl_comm nds}} aa – comm nd: {{n me}}] [{{codificación}=codificación}} nd”}} O a RM a M * p: {{operación}} / ole: {{role}} / odifier: {{ ccess odifier}} a{{/ ccess}} a {{/zcl_comm nds}}
{{#zcl_events}}
a – evento: {{n me}} [{{código}}] a {{# ccess entity=”event”}} O a RM a M * p: {{operación}} / ole: {{role}} / odifier: {{ ccess odifier}} a{{/ ccess}}
{{/zcl_events}}
{{/zcl_clusters}}

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

30/35

Iniciando ZAP para aplicacións Matter ou Zigbee
Iniciando ZAP para aplicacións Matter ou Zigbee
Lanzamento de ZAP para aplicacións Matter ou Zigbee
As seguintes seccións describen o inicio de ZAP en modo autónomo cos metadatos específicos de Matter ou Zigbee. A idea é lanzar ZAP cos argumentos correctos relacionados cos metadatos XML (as definicións de clúster e tipos de dispositivos segundo as especificacións CSA) e os modelos de xeración, que se usan para xerar o código axeitado.
Iniciando ZAP con Matter
O seguinte script recolle os metadatos correctos do SDK de Matter ao iniciar ZAP. https://github.com/project-chip/connectedhomeip/blob/master/scripts/tools/zap/run_zaptool.sh Nota: Tamén podes utilizar o seguinte enfoque de Zigbee para lanzar ZAP in Matter.
Lanzando ZAP con Zigbee
O seguinte comando inicia ZAP coas especificacións ZCL e os modelos de xeración do SDK.
[ruta-zap] -z [ruta-sdk]/gsdk/app/zcl/zcl-zap.json -g [ruta-sdk]/gsdk/protocol/zigbee/app/framework/gen-template/gen-templates.json
zap-path: este é o camiño para a fonte ZAP ou executable sdk-path: este é o camiño para o SDK
Iniciando ZAP sen metadatos
Lembre que ao iniciar ZAP directamente a través dun executable ou desde a fonte usando npm run zap, está a iniciar ZAP con metadatos de proba para Matter/Zigbee integrados en ZAP e non os metadatos reais procedentes dos SDK Matter e Zigbee mencionados anteriormente. Polo tanto, recorda crear as túas configuracións de ZAP usando os metadatos do SDK e non abrindo ZAP directamente cos metadatos de proba integrados.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

31/35

Xerando código para Matter ou Zigbee

Xerando código para Matter, Zigbee ou un SDK personalizado
As seguintes seccións describen como xerar código usando ZAP.
Xerar código usando ZAP UI
Inicie a IU de ZAP segundo as instrucións de Lanzamento de ZAP para Matter ou Zigbee e prema no botón Xerar na barra de menú superior.
Xerar código sen a IU
As seguintes instrucións proporcionan diferentes formas de xerar código a través da CLI sen iniciar a IU de ZAP.
Xerando código a partir da fonte ZAP
Executa o seguinte comando para xerar código usando ZAP desde a orixe: 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
Xerando código desde ZAP Executable
Executa o seguinte comando para xerar código usando o executable 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
Xerando código a partir do executable ZAP CLI
Executa o seguinte comando para xerar código usando 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. Todos os dereitos reservados.

32/35

Actualiza ZAP en Studio

Actualizar ZAP
Actualiza ZAP en Simplicity Studio
Este mecanismo pódese usar cando se traballa coa extensión Matter ou Zigbee das versións do SDK de Silicon Labs. Pódese actualizar ZAP en Simplicity Studio sen unha versión de Simplicity Studio descargando o executable ZAP máis recente (recomendado) ou tirando o máis recente da fonte ZAP, como se mostra na Guía de instalación de ZAP. Despois de ter o ZAP máis recente baseado no sistema operativo que usas actualmente, podes actualizar ZAP en Studio como paquete de adaptadores. Siga as instrucións seguintes despois de descargar o ZAP máis recente:
Vaia a Simplicity Studio e seleccione Preferencias > Simplicity Studio > Paquetes de adaptadores. Fai clic en Engadir... e busca o cartafol ZAP expandido que descargaches e fai clic en Seleccionar cartafol . Faga clic en Aplicar e pechar e, a continuación, o ZAP recentemente engadido empregarase sempre que un .zap file está aberto.
Nota: ás veces pode haber instancias máis antigas de ZAP que xa se están executando mesmo despois de actualizar ao ZAP máis recente. Asegúrate de finalizar todas as instancias de ZAP existentes para que se utilice o ZAP que se acaba de obter en lugar dunha instancia antiga, que aínda está funcionando en segundo plano.
Actualiza ZAP para o desenvolvemento de materia en Github
Cando traballes cos repostos de Matter ou Matter-Silicon Labs en Github, configure as variables de ambiente con respecto a ZAP para crear/xerar novas configuracións de ZAP ou volver xerar os existentes.ampas configuracións do ZAP despois de aplicarlles cambios. Establece ZAP_DEVELOPMENT_PATH como ZAP desde a fonte tirando do máis recente ou configura ZAP_INSTALLATION_PATH como executable ZAP que descargaches o último no teu directorio local. Teña en conta que cando se definen ZAP_DEVELOPMENT_PATH e ZAP_INSTALLATION_PATH, utilízase ZAP_DEVELOPMENT_PATH.
Os seguintes son os exampficheiros que mostran as variables de ambiente anteriores en uso:
Lanzamento de ZAP usando a especificación de materia Rexenerando todos os sampas configuracións de ZAP para aplicacións Matter
Nota: ao utilizar os executables de ZAP, asegúrate de usar unha versión oficial sobre unha versión nocturna para obter máis estabilidade. Vexa
Descargando o executable de ZAP na Guía de instalación de ZAP

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

33/35

Multiprotocolo simultáneo entre Zigbee e Matter
Multiprotocolo simultáneo entre Zigbee e Matter
MCoanttceurrrent Multiprotocolo entre Zigbee e
ZAP pódese usar para configurar configuracións ZCL (Zigbee) e Data-Model (Matter) nunha aplicación multiprotocolo para Zigbee e Matter. ZAP permítelle crear puntos finais para Zigbee e Matter explícitamente na mesma configuración file. Se os puntos finais de Zigbee e Matter están no mesmo identificador de punto final (por exemploample, LO Dimmable Light no endpoint Id 1 e Matter Dimmable Light noutra instancia do endpoint 1), ZAP encárgase de sincronizar os atributos comúns entre os atributos Matter e Zigbee. Asegúrate de que os atributos que se sincronizan teñan o mesmo tipo de datos. Os atributos comúns entre Zigbee e a materia establécense mediante a file chamado multi-protocol.json . O usuario pode vincular dous clústeres calquera en Zigbee e Matter xunto cos seus atributos correspondentes utilizando os códigos de clúster e atributos respectivamente. Isto file pódese atopar en [SDKPath]/app/zcl/multi-protocol.json . Isto file actualizouse cun determinado conxunto de clústeres e atributos para comezar, pero o usuario pode actualizalo file segundo sexa necesario e ZAP encargarase da sincronización da configuración de atributos en Zigbee e Matter para os identificadores de puntos finais comúns.
Tamén podes atopar un titorial de ZAP en calquera aplicación multiprotocolo de Zigbee and Matter na páxina de titoriais. Este tutorial guiarao a través do proceso de creación de aplicacións multiprotocolo. Este tutorial só está dispoñible cando abre unha aplicación multiprotocolo existente e pódese atopar como se mostra na imaxe a continuación:

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

34/35

Integrar SLC CLI con ZAP
Integrar SLC CLI con ZAP
Integrar SLC CLI con ZAP
Siga estes pasos para integrar a SLC CLI con ZAP: ò Instale SLC CLI seguindo as instrucións de instalación da Guía de usuario de Simplicity Studio 5. ó Instale ZAP seguindo as instrucións da Guía de instalación de ZAP. ô Para integrar SLC CLI con ZAP, engade unha variable de ambiente STUDIO_ADAPTER_PACK_PATH que apunte á aplicación ZAP
directorio. õ Lembra reiniciar SLC CLI Daemon despois do paso 3. ö Calquera proxecto que use ZAP agora usará o camiño definido no paso 3 cando se xere desde SLC CLI. Consulte a CLI de SLC
Uso das instrucións sobre o uso da SLC CLI para os teus proxectos.

Copyright © 2025 Silicon Laboratories. Todos os dereitos reservados.

35/35

Documentos/Recursos

SILICON LABS ZAP en desenvolvemento con Silicon Labs [pdfManual do propietario
ZAP en desenvolvemento con Silicon Labs, ZAP, desenvolvemento con Silicon Labs, Silicon Labs, Labs

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *