Silicon-Labs-LOGO

ZAP in sviluppo con Silicon Labs

ZAP-Sviluppo-con-Silicon-Labs-PRODOTTO

Specifiche

  • Nome del prodotto: Laboratori di silicio ZAP
  • Tipo: Motore di generazione del codice e interfaccia utente
  • Compatibilità: Libreria cluster Zigbee (Zigbee) o modello dati (Matter)
  • Sviluppato di: Connectivity Standards Alliance

Istruzioni per l'uso del prodotto

  • Introduzione a ZAP
    • Per iniziare a usare ZAP, segui questi passaggi:
      • Scarica l'eseguibile ZAP dal repository ufficiale.
      • Installare le dipendenze utilizzando il comando npm install.
      • Per l'installazione specifica per Windows, fare riferimento alla guida all'installazione di ZAP per il sistema operativo Windows.
  • Sviluppo Zigbee
    • Se stai sviluppando applicazioni Zigbee:
      • Utilizza Simplicity Studio che include ZAP e altri strumenti necessari.
  • Sviluppo della materia
    • Se stai sviluppando applicazioni Matter:
      • Le opzioni includono l'utilizzo di Simplicity Studio o l'accesso ai repository Github di Silicon Labs o CSA.
      • Se necessario, fare riferimento alle istruzioni di aggiornamento per ZAP al di fuori del ciclo di rilascio di Simplicity Studio.

Domande frequenti

  • D: Quali sono le diverse versioni disponibili dei file binari ZAP?
    • A: Sono disponibili due versioni: la versione ufficiale con build verificate e la versione preliminare con le ultime funzionalità.
  • D: Cosa devo fare se riscontro problemi di compilazione della libreria nativa durante l'installazione?
    • A: Per risolvere tali problemi, fare riferimento alle FAQ sugli script specifici della piattaforma.

“`

Laboratori di silicio ZAP
Laboratori di silicio ZAP

Sviluppo con Silicon Labs ZAP

Iniziare
ZAP Iniziare Oltreview Installazione ZAP Installazione ZAP FAQ di Windows
Fondamenti Fondamenti ZAP
Manuale dell'utente Manuale dell'utente ZAPview XML personalizzato XML personalizzato Tags per Zigbee più tipi di dispositivi per endpoint Pagina delle funzionalità del tipo di dispositivo Matter Notifiche Conformità alle specifiche del modello dati/ZCL Controllo degli accessi Avvio di ZAP per applicazioni Matter o Zigbee Generazione di codice per Matter o Zigbee Aggiornamento di ZAP in Studio Multiprotocollo simultaneo tra Zigbee e Matter Integrazione di SLC CLI con ZAP

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

1/35

Sviluppo con Silicon Labs ZAP
Sviluppo con Silicon Labs ZAP
ZAPPARE
ZAP è un motore di generazione di codice generico e un'interfaccia utente per applicazioni e librerie basate sulla Zigbee Cluster Library di Zigbee o sul Data Model di Matter. La specifica è sviluppata dalla Connectivity Standards Alliance. ZAP consente di eseguire le seguenti operazioni:
Esegui la generazione personalizzata specifica dell'SDK di tutti gli artefatti globali (costanti, tipi, ID e così via) in base alla specifica ZCL/Data-Model. Esegui la generazione personalizzata specifica dell'SDK di tutti gli artefatti di configurazione selezionati dall'utente (configurazione dell'applicazione, configurazione dell'endpoint e così via) in base alla specifica ZCL/Data-Model e alla configurazione dell'applicazione fornita dal cliente. Fornisci un'interfaccia utente per l'utente finale per selezionare una configurazione dell'applicazione specifica (endpoint, cluster, attributi, comandi e così via).

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

Il contenuto di queste sezioni descrive come sviluppare applicazioni Zigbee e Matter configurando i livelli ZCL (Zigbee) o Data Model (Matter) tramite ZAP.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

2/35

Introduzione a ZAP

Introduzione a ZAP
Introduzione a ZAP
Queste sezioni descrivono diversi metodi per creare applicazioni Zigbee e Matter. Nota che Simplicity Studio fornisce un modo per creare le tue applicazioni Zigbee e Matter da un capo all'altro, dove tutti gli strumenti sono preinstallati insieme a Simplicity Studio (incluso ZAP). Puoi anche decidere di esplorare altri modi per creare le tue applicazioni, come descritto qui.
Sviluppo Zigbee
Gli sviluppatori di applicazioni Zigbee possono creare le proprie applicazioni utilizzando Simplicity Studio, che include già ZAP e altri strumenti che aiutano a sviluppare l'applicazione dall'inizio alla fine.
Sviluppo della materia
Gli sviluppatori di applicazioni Matter possono creare le loro applicazioni utilizzando i seguenti metodi: Simplicity Studio: include ZAP e altri strumenti necessari per creare l'applicazione Matter end-to-end. Github (Silicon Labs) Github (CSA)
Nota: per aggiornare ZAP al di fuori del ciclo di rilascio di Simplicity Studio, vedere Aggiorna ZAP in Simplicity Studio e Guida all'installazione di ZAP

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

3/35

Installazione ZAP

Le sezioni seguenti descrivono l'installazione di ZAP e come aggiornare ZAP in Simplicity Studio IDE.
Si consiglia di scaricare l'eseguibile ZAP)
Questo è il metodo consigliato per iniziare con ZAP. Puoi ottenere gli ultimi binari ZAP da aa https://github.com/project-chip/zp/relesesI binari predefiniti sono disponibili in due versioni diverse.
Versione ufficiale: build verificate con suite di test dedicate Matter e Zigbee. Il formato del nome della versione è vYYYY.DD.MM. Pre-release: build con le ultime funzionalità e correzioni di bug, ma queste build NON sono verificate con suite di test dedicate Matter e Zigbee. Il formato del nome della versione è vYYYY.DD.MM-nightly.
Installazione di ZAP dalla sorgente
Istruzioni di base per installare ZAP
Poiché questa è un'applicazione node.js, è necessario che l'ambiente node sia installato. Il modo migliore per farlo è scaricare l'ultima installazione di node, che include node e npm. Se hai una vecchia versione di node installata sulla tua workstation, potrebbe causare problemi, in particolare se è molto vecchia. Assicurati di avere l'ultima versione di node v16.x con l'npm incluso. Esegui node –version per verificare quale versione è stata scelta. Si consiglia v18.x. Dopo aver ottenuto la versione desiderata di node, puoi eseguire quanto segue:
Installa le dipendenze
Utilizzare i seguenti comandi per installare le dipendenze:

ZAP-Sviluppo-con-Silicon-Labs-FIG- (2)
installazione npm
Nota: per l'installazione di ZAP specifica per Windows, vedere Installazione di ZAP per Windows OS Non è raro imbattersi in problemi di compilazione della libreria nativa a questo punto. Esistono vari script src-script/install-* per diverse piattaforme. Vedere le informazioni FAQ su quale script eseguire su diverse piattaforme e quindi eseguire nuovamente npm install .
Avvia l'applicazione
Per avviare l'applicazione, utilizzare i seguenti comandi:

ZAP-Sviluppo-con-Silicon-Labs-FIG- (3)
npm esegui zap
Avviare il front-end in modalità di sviluppo
Supporta il ricaricamento del codice a caldo, la segnalazione degli errori e così via. Utilizzare i seguenti comandi per avviare il front-end in fase di sviluppo
modalità:ZAP-Sviluppo-con-Silicon-Labs-FIG- (4)
quasar dev -m elettrone
or

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

4/35

ZAP Insta at o ll in
npm esegui electron-dev

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

5/35

Finestre di installazione ZAP
Finestre di installazione ZAP
Installazione ZAP per sistema operativo Windows
1. PowerShell di Windows
Nella barra di ricerca del desktop, digita Windows Powershell ed esegui come amministratore. Esegui tutti i seguenti comandi all'interno di Powershell.
2. Cioccolatoso
Installa da https://chocolatey.org/install. Verificare se l'installazione è avvenuta correttamente con i seguenti comandi:
cioccolato -v
Installare il pacchetto pkgconfiglite con i seguenti comandi:
choco installa pkgconfiglite
3. Installa Node
Eseguire i seguenti comandi per installare:
choco installa nodejs-lts
*La versione deve essere 18 per superare il test di controllo della versione, dopo l'installazione, controlla con node -v. *Se hai già installato Node e non riesci a trovare Node, reinstalla Node con chocolatey.
4. Seguire le istruzioni di base per installare ZAP
Seguire le istruzioni di installazione di ZAP dalla fonte in Installazione ZAP. Mentre si seguono le istruzioni di base per l'installazione di ZAP, fare attenzione ai seguenti errori e a come risolverli:
sqlite3
Quando si esegue ZAP (ad esempio, npm run zap ), se viene visualizzato un errore su sqlite3.node in una finestra pop-up, eseguire:
npm ricostruisci sqlite3
costruttore di elettroni
Quando si esegue npm install, in fase di post-installazione, se si verifica un errore sul seguente comando relativo a electron-builder install-appdeps, npx electron-rebuild canvas failed o node-pre-gyp, la versione corrente di canvas non è compatibile con Windows e l'errore di installazione non causerà un errore nell'esecuzione di ZAP. node-canvas sta lavorando alla soluzione e il problema verrà risolto nel prossimo futuro.
"postinstall": "electron-builder install-app-deps && husky install && npm rebuild canvas –update-binary && npm run version-stamp”

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

6/35

Finestre di installazione ZAP
Tela
Se npm run test fallisce a causa dell'errore La suite di test non è riuscita a funzionare. Impossibile trovare il modulo '../build/Release/canvas.node' o
zapnode_modulescanvasbuildReleasecanvas.node non è un'applicazione Win32 valida. , ricostruire canvas come segue:
npm ricostruisci canvas –update-binary
ottenere index.html o altri problemi del server
Se il test npm run fallisce a causa dell'errore, la richiesta get index.html non è riuscita con codice di stato 404 nei test unitari o con server
problemi di connessione nei test e2e-ci, eseguire i seguenti comandi:
npm esegui compila
Altro
Controlla se la versione del nodo è v18 e prova a installarla con Chocolatey.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

7/35

Domande frequenti
Domande frequenti
Domande frequenti
D: Come avviare l'interfaccia utente in modalità di sviluppo? R: È possibile avviare l'interfaccia utente in modalità di sviluppo, che si tradurrà nella seguente configurazione:
Server HTTP di sviluppo Quasar separato, che esegue l'aggiornamento in tempo reale sulla porta 8080 Back-end ZAP in esecuzione sulla porta 9070 Chrome o altro browser, in esecuzione in modo indipendente Per ottenere tale configurazione, seguire le istruzioni riportate di seguito. ò Per prima cosa, eseguire il server di sviluppo ZAP, che si avvia sulla porta 9070.
npm run zap-devserver ó Quindi, esegui il server di sviluppo Quasar, che si avvia sulla porta 8080.
quasar dev ô Punta il tuo browser o eseguine uno contro quello appropriato URL con l'argomento restPort:
google chrome http://localhost:8080/?restPort=9070

D: Come funziona su Mac/Linux OS? R:
npm install viene utilizzato per scaricare tutti i pacchetti di dipendenza richiesti. Se vedi errori relativi a node-gyp e librerie locali mancanti, come pixman e così via, ti mancano dipendenze native da soddisfare per compilare i binari node non precompilati per una combinazione di piattaforme e versioni. Npm sul cloud aggiorna costantemente l'elenco dei binari forniti, quindi è possibile che tu li raccolga senza problemi, ma se non lo fai, queste sono le istruzioni per diverse piattaforme:
Fedora Core con dnf:
dnf installa pixman-devel cairo-devel pango-devel libjpeg-devel giflib-devel
oppure esegui lo script:
src-script/installa-pacchetti-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
oppure esegui lo script:

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

8/35

Domande frequenti
src-script/installa-pacchetti-ubuntu
OSX su un Mac con Homebrew brew:
brew installa pkg-config cairo pango libpng jpeg giflib librsvg
oppure esegui lo script:
src-script/installa-pacchetti-osx
D: Come funziona sul sistema operativo Windows?
A: Assicurati che sia sempre aggiornato e che non ci siano modifiche non ancora eseguite. Suggerimento: git pull, git status e git stash sono tuoi amici. Devi usare Chocolately per far funzionare Zap su Windows OS. Assicurati di scaricare il pacchetto pkgconfiglite.
choco installa pkgconfiglite
Se hai problemi con il Cairo, ad esempioampse ricevi un errore su cairo.h': No such file o directory, procedi come segue: ò Controlla se il tuo computer è a 32 o 64 bit. ó A seconda di ciò, scarica il pacchetto appropriato da questo sito
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 su Impostazioni di sistema avanzate. Nella scheda avanzata fai clic su Variabili d'ambiente. Nella sezione Variabili di sistema, trova la variabile d'ambiente PATH e selezionala. Fai clic su Modifica e aggiungi C:/GTK. Se la variabile d'ambiente PATH non esiste, fai clic su Nuovo. Se jpeglib.h non viene trovato, prova quanto segue: ò Sul terminale, esegui: choco install libjpeg-turbo ó Assicurati che sia pulito usando: git clean -dxff ed esegui di nuovo npm install ô se non si verificano errori e vengono visualizzati solo avvisi, prova a usare npm audit fix õ se non riesci a eseguire ZAP, vai su file src-script/zap-start.js ö Modifica
÷ const { spawn } = require('cross-spawn') to const { spawn } = require('child_process') ø Esegui npm ed esegui zap. Riferimenti:
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)
D: Ricevo un errore "sqlite3_node" non trovato o simile.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

9/35

Domande frequenti
A: Ricostruisci i tuoi binding sqlite3 nativi. Per risolvere questo problema nella maggior parte dei casi, esegui:
installazione npm
./node_modules/.bin/electron-rebuild -w sqlite3 -p
Se il problema persiste, procedi come segue:
rm -rf node_modules e poi riprova i comandi precedenti. A volte anche l'aggiornamento del tuo npm fa la differenza:
npm installa -g npm
D: Ricevo un errore "La versione N-API di questa istanza di Node è 1. Questo modulo supporta la versione 3 di N-API. Questa istanza di Node non può eseguire questo modulo".
A: Aggiorna la versione del tuo nodo. La soluzione per questo è discussa in questo thread di Stack Overflow: https://stackoverflow.com/questions/60620327/the-n-apiversion-of-this-node-instance-is-1-this-module-supports-n-api-version
D: Il mio PC di sviluppo non funziona con ZAP per qualche motivo. Posso usare un contenitore Docker?
A: Sì, puoi. Da definire.
D: Come posso eseguire ZAP all'interno di VSCode?
R: Se VSCode nel tuo percorso inserisci il repository zap e digita code . Questo aprirà ZAP in VSCode. Per eseguire ZAP in modalità debug, seleziona l'area di lavoro ZAP e clicca sull'icona Esegui sulla barra degli strumenti a sinistra. Avrai un paio di opzioni tra cui scegliere per eseguire ZAP, scegli Node.js Debug Terminal . Questo aprirà una finestra del terminale da cui puoi digitare npm run zap , che collegherà il debugger ed eseguirà ZAP come faresti normalmente dalla riga di comando. Congratulazioni, ora dovresti vedere ZAP in esecuzione nel debugger. Puoi impostare i breakpoint in VSCode come faresti in qualsiasi altro IDE.
D: Il test unitario dell'interfaccia utente fallisce con alcuni errori relativi al canvas non compilato per la versione corretta di node. Cosa faccio?
A: Se vedi il seguente errore:ZAP-Sviluppo-con-Silicon-Labs-FIG- (5)
FAIL test/ui.test.js Impossibile eseguire la suite di test. Il modulo 'canvas.node' è stato compilato con una versione diversa di Node.js utilizzando NODE_MODULE_VERSION 80. Questa versione di Node.js richiede NODE_MODULE_VERSION 72. Prova a ricompilare o reinstallare il modulo (ad esempio, utilizzando `npm rebuild` o `npm install`).
in Oggetto. (moduli del nodo/canvas/lib/bindings.js:3 18)
quindi eseguire: npm rebuild canvas –update-binary

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

10/35

Fondamenti ZAP

Fondamenti di ZAP/ZCL/Data-Model
Questa sezione contiene informazioni per i nuovi utenti ZAP. Fai clic sull'icona del tutorial nell'angolo in alto a destra dell'interfaccia utente ZAP, che mostra come creare una configurazione ZAP. Il tutorial ti guiderà attraverso quanto segue: Crea un endpoint Seleziona un tipo di dispositivo Configura un cluster Configura un attributo Configura un comando Per un riferimento dettagliato, consulta la Guida al configuratore di cluster Zigbee

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

11/35

Guida per l'utente ZAP
Guida per l'utente ZAP
Guida per l'utente ZAP
Le sezioni di questa guida forniscono maggiori dettagli sulle diverse funzionalità fornite da ZAP.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

12/35

XML personalizzato

Aggiunta di XML personalizzato dall'interfaccia utente ZAP
Fai clic sull'icona "Estensioni" nell'interfaccia utente ZAP. Fai clic sul pulsante "+" aggiungi per selezionare un xml personalizzato file I cluster personalizzati, gli attributi, i comandi, ecc. dovrebbero essere visualizzati nell'interfaccia utente ZAP una volta aggiunto l'xml personalizzato.
Creazione del tuo XML personalizzato in Zigbee
Questa sezione mostra come creare cluster personalizzati ed estendere i cluster standard esistenti con attributi e comandi personalizzati per Zigbee.
Cluster specifici del produttore in Zigbee
È possibile aggiungere cluster specifici del produttore a un pro standardfileForniamo un example di questo sotto. Per fare questo devi soddisfare due obblighi:
L'ID del cluster DEVE essere compreso nell'intervallo specifico del produttore, 0xfc00 – 0xffff. La definizione del cluster deve includere un codice produttore che verrà applicato a TUTTI gli attributi e comandi all'interno di quel cluster e deve essere fornito quando si inviano e si ricevono comandi e si interagisce con gli attributi. Exampon:

ZAP-Sviluppo-con-Silicon-Labs-FIG- (6)
SampCluster specifico del produttore Generale Questo cluster fornisce un'exampillustrazione di come l'Application Framework può essere esteso per includere cluster specifici del produttore.
0xFC00
brace sampl'attributo
brace sampl'attributo 2


COMEampil comando specifico del produttore all'interno del sampil produttore-specifico
grappolo.


Comandi specifici del produttore nel cluster Zigbee standard
È possibile aggiungere i propri comandi a qualsiasi cluster Zigbee standard con i seguenti requisiti:
I comandi specifici del produttore possono utilizzare qualsiasi id comando nell'intervallo id comando, 0x00 – 0xff. Devi anche fornire un codice produttore per il comando in modo che possa essere distinto dagli altri comandi nel cluster e gestito in modo appropriato. Exampmodo di estendere il cluster On/Off con comandi di produzione:

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

13/35

XML personalizzato
<command source=”client” code=”0 0006″ name=”SampleMfgSpecificOffWithTransition” opzionale=”vero” manufacturerCode=”0 1002″> Comando client che spegne il dispositivo con una transizione data dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificOnWithTransition” opzionale=”vero” manufacturerCode=”0 1002″> Comando client che accende il dispositivo con una transizione data dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificToggleWithTransition” opzionale=”vero” manufacturerCode=”0 1002″> Comando client che attiva/disattiva il dispositivo con una transizione data dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificOnWithTransition2″ opzionale=”vero” manufacturerCode=”0 1049″> Comando client che accende il dispositivo con una transizione data dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificToggleWithTransition2″ opzionale=”vero”
codiceproduttore=”0 1049″> Comando client che attiva/disattiva il dispositivo con una transizione data dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.

Attributi specifici del produttore nel cluster Zigbee standard
Puoi aggiungere i tuoi attributi a qualsiasi cluster Zigbee standard con i seguenti requisiti:
Gli attributi specifici del produttore possono utilizzare qualsiasi ID attributo nell'intervallo 0x0000 – 0xffff. Devi anche fornire un codice produttore per l'attributo in modo che possa essere distinto dagli altri attributi nel cluster e gestito in modo appropriato. Example di estensione del cluster On/Off con attributi di produzione:
<attribute side=”server” code=”0 0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME” tipo=”INT16U” min=”0 0000″
max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero” manufacturerCode=”0 1002″>SampAttributo specifico del produttore: 0 0000 0 1002
<attribute side=”server” code=”0 0000″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ tipo=”INT8U” min=”0 0000″ max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero” manufacturerCode=”0 1049″>SampAttributo specifico del produttore: 0 0000 0 1049
<attribute side=”server” code=”0 0001″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_3″ tipo=”INT8U” min=”0 0000″ max=”0xFFFF” scrivibile=”vero” predefinito=”0 00″ opzionale=”vero” manufacturerCode=”0 1002″>SampAttributo specifico del produttore: 0 0001 0 1002
<attribute side=”server” code=”0 0001″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ tipo=”INT16U” min=”0 0000″ max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero” manufacturerCode=”0 1049″>SampAttributo specifico del produttore: 0 0001 0 1040
Creazione del tuo XML personalizzato in Matter
Questa sezione mostra come creare cluster personalizzati ed estendere i cluster standard esistenti con attributi e comandi personalizzati per Matter.
Cluster specifici del produttore in Matter
Puoi aggiungere cluster specifici del produttore a Matter. Forniamo un example di questo sotto.
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 Laboratori di silicio. Tutti i diritti riservati.

14/35

XML personalizzato
Nel seguente esempioample, la combinazione dell'ID fornitore (ID produttore di prova) di 0xFFF1 e dell'ID cluster di 0xFC20 genera un value of 0xFFF1FC20. The commands and attributes within this cluster will adopt the same Manufacturer ID. Exampon:
Generale Sampil MEI 0xFFF1FC20 SAMPCLUSTER LE_MEI La Sampil cluster MEI presenta le estensioni del produttore del cluster Ciabatte infradito
Risposta per AddArguments che restituisce la somma. Comando che accetta due argomenti uint8 e restituisce la loro somma. Comando semplice senza parametri e senza risposta.
Attributi specifici del produttore nei cluster di materia standard
È possibile aggiungere attributi specifici del produttore a qualsiasi cluster Matter standard con i seguenti requisiti:
T aaaa il cluster a cui vengono aggiunti gli attributi deve essere specificato –
e s te nd o > “>
Il codice dell'attributo è una combinazione a 32 bit del codice del produttore e dell'ID per l'attributo. I 16 bit più significativi sono il codice del produttore. L'intervallo per i codici del produttore di prova è 0xFFF1 – 0xFFF4. I 16 bit meno significativi sono l'ID dell'attributo. L'intervallo per gli attributi non globali è 0x0000 – 0x4FFF.
Example di estensione del cluster On/Off Matter con attributi specifici del produttore:
<attribute side=”server” code=”0xFFF0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ tipo=”INT8U” min=”0 0000″
max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero”>SampAttributo specifico del produttore 2AMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ tipo=”INT16U” min=”0 0000″
max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero”>SampAttributo specifico del produttore 4
Comandi specifici del produttore nei cluster di materia standard
È possibile aggiungere comandi specifici del produttore a qualsiasi cluster Matter standard con i seguenti requisiti:
T aaaa il cluster a cui vengono aggiunti i comandi deve essere specificato –
e s te nd o > “>
Il codice del comando è una combinazione a 32 bit del codice del produttore e dell'ID per il comando. I 16 bit più significativi sono il codice del produttore. L'intervallo per i codici del produttore di prova è 0xFFF1 - 0xFFF4. I 16 bit meno significativi sono l'ID del comando. L'intervallo per i comandi non globali è 0x0000 - 0x00FF.
Example di estensione del cluster On/Off Matter con cluster specifici del produttore:

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

15/35

XML personalizzato

<command source=”client” code=”0xFFF10000″ name=”SampleMfgSpecificOnWithTransition2″ opzionale=”vero”> Comando client che accende il dispositivo con una transizione data dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.
<command source=”client” code=”0xFFF10001″ name=”SampleMfgSpecificToggleWithTransition2″ opzionale=”vero”>
Comando client che commuta il dispositivo con una transizione data dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

16/35

XML personalizzato Tags per Zigbee

Il seguente documento parla di ciascuno degli xml tags associato a Zigbee.
Ogni xml file è elencato tra il configuratore tags:

I tipi di dati possono essere definiti all'interno del configuratore tag. Zigbee supporta attualmente la definizione di bitmap, enum, interi, stringhe o struct. Prima di definire altri tipi, assicurati di controllare tutti i tipi atomici esistenti definiti in types.xml e tutti i tipi non atomici definiti nell'altro xml files. Puoi definirli come segue:
Bitmap: nome: nome del tipo di bitmap. tipo: è possibile definire bitmap con una dimensione compresa tra 8 e 64 bit, tutti multipli di 8. Ogni bitmap può avere più campi con un nome e una maschera associati. ad esempio:

“`
Enum: name: nome del tipo di enum. type: è possibile definire enum con una dimensione compresa tra 8 e 64 bit, tutti multipli di 8. Ogni enum può avere più elementi con un nome e un valore associati. ad esempio:

Intero: i tipi interi sono già definiti nei tipi atomici che esistono in types.xml. La loro dimensione può variare da 8 a 64 bit e possono essere con o senza segno. Ad esempio:

Stringa: i tipi stringa sono già definiti nei tipi atomici che esistono in types.xml. I tipi stringa correnti includono stringa di ottetti, stringa di caratteri, stringa di ottetti lunghi e stringa di caratteri lunghi, ad esempio:

Struct: name: nome del tipo di struct. Ogni struct può avere più elementi con un nome e un tipo associati. Il tipo può essere qualsiasi tipo predefinito in tipi di dati. ad esempio:

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

17/35

XML personalizzato Tags per Zigbee

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

I cluster personalizzati possono essere definiti all'interno del configuratore tag. name: nome del cluster domain: dominio del cluster. Il cluster verrà visualizzato nell'interfaccia utente ZAP sotto questo dominio. description: descrizione del cluster code: codice cluster define: definizione del cluster utilizzata dal generatore di codice per definire il cluster in un certo modo manufacturerCode: utilizzata per definire un cluster specifico di produzione. Deve essere compreso tra 0xfc00 e 0xffff. Il codice produttore per il cluster deve essere definito come segue:

Un cluster di produzione crea automaticamente gli attributi e i comandi sottostanti dello stesso codice produttore, a meno che non elenchino esplicitamente il codice produttore. introducedIn: utilizzato per determinare la versione specifica in cui è stato introdotto il cluster. Questo viene utilizzato dal generatore di codice per aggiungere logica aggiuntiva. removedIn: utilizzato per determinare la versione specifica in cui è stato rimosso il cluster. Questo viene utilizzato dal generatore di codice per aggiungere logica aggiuntiva. singleton(boolean): utilizzato per determinare un cluster come singleton in modo che vi sia una sola istanza di tale cluster condivisa tra gli endpoint. attributo: definisce un attributo per il cluster name: il nome dell'attributo è menzionato tra l'attributo tag.
nome attributo
side(client/server): il lato del cluster a cui è associato l'attributo. code: codice attributo codice produttore: può essere utilizzato per definire un attributo specifico del produttore al di fuori della specifica ZigBee menzionata dall'XML standard. define: definizione attributo utilizzata dal generatore di codice per definire un attributo in un determinato modo type: il tipo di attributo che può essere uno qualsiasi dei tipi di dati menzionati nell'XML default: valore predefinito per l'attributo. min: valore minimo consentito per un attributo max: valore massimo consentito per un attributo writable: il valore dell'attributo è scrivibile o meno? Può essere utilizzato per impedire che l'attributo venga modificato dai comandi di scrittura. optional(booleano): utilizzato per determinare se un attributo è facoltativo o meno per il cluster. min: valore minimo consentito per un attributo quando è di tipo intero, enum o bitmap. max: valore massimo consentito per l'attributo quando è di tipo intero, enum o bitmap length: utilizzato per specificare la lunghezza massima dell'attributo quando è di tipo stringa. minLength: utilizzato per specificare la lunghezza minima dell'attributo quando è di tipo stringa. reportable(boolean): indica se un attributo è segnalabile o meno isNullable(boolean): consente valori nulli per l'attributo. array(boolean): utilizzato per dichiarare un attributo di tipo array. introducedIn: utilizzato per determinare la versione spec in cui è stato introdotto l'attributo. Questo viene utilizzato dal generatore di codice per aggiungere logica aggiuntiva. removedIn: utilizzato per determinare la versione spec in cui è stato rimosso l'attributo. Questo viene utilizzato dal generatore di codice per aggiungere logica aggiuntiva. command: definisce un comando per un cluster name: nome del comando.

codice: codice comando

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

18/35

XML personalizzato Tags per Zigbee
codice produttore: può essere utilizzato per definire un comando specifico del produttore al di fuori della specifica zigbee menzionata dall'xml standard. descrizione: descrizione del comando origine (client/server): origine del comando. opzionale (booleano): utilizzato per determinare se un comando è facoltativo o meno per il cluster. introdottoIn: utilizzato per determinare la versione della specifica in cui è stato introdotto il comando. Questo è utilizzato dal generatore di codice per aggiungere logica aggiuntiva. rimossoIn: utilizzato per determinare la versione della specifica in cui è stato rimosso il comando. Questo è utilizzato dal generatore di codice per aggiungere logica aggiuntiva. argomenti del comando:
Ogni comando può avere un set di argomenti di comando name: nome dell'argomento di comando type: tipo dell'argomento di comando che può essere uno qualsiasi dei tipi menzionati nell'xml. min: valore minimo consentito per un argomento quando è di tipo intero, enum o bitmap. max: valore massimo consentito per un argomento quando è di tipo intero, enum o bitmap length: utilizzato per specificare la lunghezza massima consentita per un argomento di comando quando è di tipo stringa. minLength: utilizzato per specificare la lunghezza minima consentita per un argomento di comando quando è di tipo stringa. array(boolean): per determinare se l'argomento di comando è di tipo array. presentIf(string): può essere una stringa condizionale di operazioni logiche basate su altri argomenti di comando in cui è possibile aspettarsi l'argomento di comando se la stringa condizionale viene valutata come vera. ad esempio:

Nota: qui status è un altro nome di argomento di comando. optional(boolean): utilizzato per determinare l'argomento di comando come facoltativo. countArg: utilizzato quando l'argomento di comando è di tipo array. Questo è utilizzato per menzionare l'altro argomento di comando che denota la dimensione dell'array per questo argomento.

introducedIn: Utilizzato per determinare la versione spec in cui è stato introdotto l'argomento del comando. Questo viene utilizzato dal generatore di codice per aggiungere logica aggiuntiva. removedIn: Utilizzato per determinare la versione spec in cui è stato rimosso l'argomento del comando. Questo viene utilizzato dal generatore di codice per aggiungere logica aggiuntiva. L'estensione del cluster può essere definita all'interno del configuratore tagL'estensione del cluster viene utilizzata per estendere un cluster standard con attributi e comandi di produzione, ad esempio

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

19/35

XML personalizzato Tags per Zigbee
<attribute side=”server” code=”0 0006″ define=”SAMPLE_MFG_SPECIFIC_TRANSITION_TIME” tipo=”INT16U” min=”0 0000″ max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero” manufacturerCode=”0 1002″>SampAttributo specifico del produttore: 0 0000 0 1002AMPLE_MFG_SPECIFIC_TRANSITION_TIME_2″ tipo=”INT8U” min=”0 0000″ max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero” manufacturerCode=”0 1049″>SampAttributo specifico del produttore: 0 0000 0 1049AMPLE_MFG_SPECIFIC_TRANSITION_TIME_3″ tipo=”INT8U” min=”0 0000″ max=”0xFFFF” scrivibile=”vero” predefinito=”0 00″ opzionale=”vero” manufacturerCode=”0 1002″>SampAttributo specifico del produttore: 0 0001 0 1002AMPLE_MFG_SPECIFIC_TRANSITION_TIME_4″ tipo=”INT16U” min=”0 0000″ max=”0xFFFF” scrivibile=”vero” predefinito=”0 0000″ opzionale=”vero” manufacturerCode=”0 1049″>SampAttributo specifico del produttore: 0 0001 0 1040ampleMfgSpecificOffWithTransition” opzionale=”vero” manufacturerCode=”0 1002″> Comando client che spegne il dispositivo con una transizione data
dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificOnWithTransition” opzionale=”vero” manufacturerCode=”0 1002″> Comando client che accende il dispositivo con una transizione data
dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificToggleWithTransition” opzionale=”vero” manufacturerCode=”0 1002″> Comando client che commuta il dispositivo con una transizione data
dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificOnWithTransition2″ opzionale=”vero” manufacturerCode=”0 1049″> Comando client che accende il dispositivo con una transizione data
dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.ampleMfgSpecificToggleWithTransition2″ opzionale=”vero” manufacturerCode=”0 1049″> Comando client che commuta il dispositivo con una transizione data
dal tempo di transizione nell'Ember Sampattributo del tempo di transizione.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

20/35

Più tipi di dispositivi per endpoint

Questa è una funzionalità esclusiva di Matter in cui un utente può selezionare più di un tipo di dispositivo per endpoint. L'aggiunta di più tipi di dispositivi aaa aggiungerà le configurazioni del cluster all'interno dei tipi di dispositivo alla configurazione dell'endpoint.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

21/35

Più tipi di dispositivi per endpoint

L'immagine sopra mostra che l'endpoint 1 ha più di un tipo di dispositivo selezionato. Il "Primary Device" indica il tipo di dispositivo primario a cui l'endpoint sarà associato. Il tipo di dispositivo primario è sempre presente all'indice 0 dell'elenco dei tipi di dispositivo selezionati, quindi la selezione di un diverso tipo di dispositivo primario cambierà l'ordinamento dei tipi di dispositivo selezionati. Le selezioni del tipo di dispositivo hanno anche vincoli basati sulla Data Model Specification. ZAP protegge gli utenti dalla scelta di combinazioni non valide di tipi di dispositivo su un endpoint utilizzando questi vincoli.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

22/35

Pagina delle funzionalità del tipo di dispositivo Matter
Pagina delle funzionalità del tipo di dispositivo Matter
Pagina delle funzionalità del tipo di dispositivo Matter
ZAP supporta la visualizzazione e l'attivazione/disattivazione delle funzionalità Matter nella pagina delle funzionalità del tipo di dispositivo. Saranno visualizzate solo le funzionalità del tipo di dispositivo specificate in matter-devices.xml nel repository CHIP.

Navigazione alla pagina delle funzionalità
ò Avvia ZAP in Matter con l'SDK Matter aggiornato. ó Crea un endpoint con un tipo di dispositivo Matter. ô Fai clic sul pulsante Funzionalità del tipo di dispositivo nella parte superiore centrale del cluster viewNota che questo pulsante è disponibile solo in ZAP
configurazioni per Matter e quando i dati di conformità sono presenti nel Matter SDK. Cliccando su questo pulsante si aprirà l'immagine sopra.
Conformità
La conformità definisce l'opzionalità e la dipendenza per attributi, comandi, eventi e tipi di dati. Determina se un elemento è obbligatorio, facoltativo o non supportato in determinate configurazioni ZAP.
La conformità delle funzionalità del tipo di dispositivo ha la precedenza sulla conformità delle funzionalità del cluster. Ad esempioample, la funzionalità Lighting ha una conformità facoltativa nel cluster On/Off ma è dichiarata come obbligatoria nel tipo di dispositivo On/Off Light che include il cluster On/Off. La creazione di un endpoint con il tipo di dispositivo On/Off Light mostrerà la funzionalità Lighting come obbligatoria nella pagina delle funzionalità.
Attivazione/disattivazione delle funzionalità
Nella pagina delle funzionalità, dopo aver cliccato sul pulsante di attivazione/disattivazione per abilitare o disabilitare una funzionalità, ZAP:
Aggiornare gli elementi associati (attributi, comandi, eventi) per correggere la conformità e visualizzare una finestra di dialogo che mostra le modifiche.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

23/35

Pagina delle funzionalità del tipo di dispositivo Matter Aggiorna il bit delle funzionalità nell'attributo featureMap del cluster associato

Abilita dialogo funzionalità

Disabilitare la finestra di dialogo delle funzionalità

La commutazione è disabilitata per alcune funzionalità quando la loro conformità ha un valore sconosciuto o un formato t attualmente non supportato. In questo caso, ZAP mostrerà avvisi nell'ap di notifica.
un elemento Wa Conformità nce rnings

Quando si attiva/disattiva un elemento, ZAP può visualizzare sia avvisi di conformità del dispositivo che avvisi di conformità. Se lo stato dell'elemento non corrisponde alla conformità prevista, ZAP visualizzerà un'icona di avviso e registrerà l'avviso nell'ap di notifica. Esempioample di avvisi di conformità e conformità visualizzati per un elemento:

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

24/35

Notifiche
Notifiche
Notifiche
La sezione seguente definisce il modo in cui le notifiche vengono inviate agli utenti ZAP nell'interfaccia utente.
Notifiche sui pacchetti
Le notifiche dei pacchetti sono gli avvisi o i messaggi di errore associati a qualsiasi pacchetto specifico caricato in ZAP. Ad esempioampAd esempio, nelle immagini sottostanti, cliccando sull'icona di avviso sotto la colonna di stato si aprirà una finestra di dialogo che mostra tutte le notifiche per quel pacchetto.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

25/35

Notifiche
Notifiche di sessione
Le notifiche di sessione sono gli avvisi o i messaggi di errore associati a una sessione utente. Questi avvisi/errori possono essere visualizzati cliccando sul pulsante Notifiche nella barra degli strumenti in cima alla ZAP UI. Ad esempioample, l'immagine qui sotto mostra la pagina delle notifiche della sessione dopo un isc file è stato caricato in ZAP.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

26/35

Conformità alle specifiche del modello dati/ZCL
Conformità alle specifiche del modello dati/ZCL
Conformità del modello di dati e delle specifiche ZCL
Questa funzionalità in ZAP aiuta gli utenti a visualizzare gli errori di conformità per Data Model o ZCL con le loro configurazioni ZAP esistenti. I messaggi di avviso per gli errori di conformità appariranno nel riquadro Notifiche nell'interfaccia utente ZAP e saranno inoltre registrati nella console quando si esegue ZAP tramite la CLI. La funzionalità di conformità fornisce attualmente avvisi per la conformità del tipo di dispositivo e la conformità del cluster su un endpoint.
Avvisi di conformità nell'interfaccia utente ZAP
Quando un utente apre un file .zap file utilizzando la ZAP UI, vedranno avvisi nel riquadro delle notifiche della ZAP UI per tutti i fallimenti di conformità. Ad esempioampecco, l'immagine qui sotto mostra la pagina delle notifiche della sessione dopo un .zap file è stata aperta per problemi di conformità.

I messaggi di conformità scompariranno una volta risolti i problemi tramite l'interfaccia utente ZAP, in modo da poter tenere traccia solo dei problemi di conformità rimanenti. Saranno inoltre visualizzati nuovi avvisi per la conformità se l'utente disabilita elementi obbligatori (cluster/comandi/attributi) della configurazione. Le notifiche di conformità delle specifiche terranno sempre traccia di eventuali errori introdotti nella configurazione ZAP, ma si noti che gli avvisi che vengono visualizzati durante l'apertura di un file .zap file sono più elaborati sul perché non è conforme rispetto agli avvisi che compaiono durante l'interazione con l'interfaccia utente. Questo è voluto e un controllo di conformità completo viene eseguito durante l'apertura di un file .zap file.
Avvisi di conformità sulla console

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

27/35

Conformità alle specifiche del modello dati/ZCL
Quando un utente apre un file .zap file utilizzando l'interfaccia utente autonoma ZAP o la CLI ZAP, vedranno gli avvisi registrati nella console/terminale per tutti i fallimenti di conformità. Ad esempioample, l'immagine sottostante mostra gli avvisi di notifica della sessione sulla console/terminale dopo un .zap file è stata aperta per problemi di conformità.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

28/35

Controllo degli accessi

Funzionalità di controllo degli accessi
ZAP supporta il controllo degli accessi su tutte le entità ZCL. Spetta all'implementazione dell'SDK mappare queste funzionalità alle funzionalità SDK di controllo degli accessi richieste e supportate. ZAP in genere fornisce un modello di dati e un meccanismo per codificarlo nelle meta-informazioni filee propagare tali dati ai modelli di generazione, senza assegnare significati specifici ai punti dati.
Termini di base
Il controllo di accesso ZAP definisce tre termini base, come segue: ò operazione: definita come qualcosa che può essere fatto. Esample: leggere, scrivere, invocare. ó ruolo: definito come privilegio di un attore. Come “View privilegio", "ruolo amministrativo" e così via. ô modificatori: definiti come condizioni di controllo di accesso speciali, come dati sensibili del fabric o dati con ambito fabric. I termini di base sono definiti nel metadati XML sotto un top tag . Quello che segue è un esempioample definizioni dei termini di base del controllo di accesso:
<role type=”view"descrizione="View privilegio”/>
Questo example definisce tre operazioni, lettura, scrittura e invocazione, due modificatori e quattro ruoli.
Accesso Triplets
Ogni singola condizione di accesso può essere definita con una tripletta di accesso nell'XML. La tripletta di accesso è una combinazione di un'operazione, un ruolo e un modificatore. Sono facoltativi, quindi puoi averne solo uno. Una parte mancante della tripletta generalmente significa permissività, che è specifica dell'implementazione per l'SDK dato. Un'entità che definisce il suo accesso può avere una o più triplette di accesso. Quello che segue è un esempioampon:
alle0
Questa è la definizione di un attributo che ha una tripletta di accesso, dichiarando che consente operazioni di scrittura da parte di un ruolo di gestione, con modificatore applicato nell'ambito di Fabric.
Autorizzazioni predefinite

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

29/35

Controllo degli accessi
Le entità ZCL possono definire le proprie autorizzazioni individuali. Tuttavia, esiste anche una definizione globale delle autorizzazioni predefinite per
tipi dati. Questi sono assunti per l'entità data, a meno che non fornisca autorizzazioni specifiche proprie.
Le autorizzazioni predefinite vengono dichiarate tramite un tag al livello superiore dell'XML file. Exampon:
un'a ... a< ccess op=”invoke”/> a UN aa < accesso op=”re d”/> a< accesso op=”write”/> a un'a ... aa < accesso op=”re d” ruolo=”view”/> aa < accesso op=”scrivi” ruolo=”opera”/> a
Aiutanti del modello
L'helper di base del template da usare è l'iteratore {{#access}} … {{/access}}. Questo iteratore esegue l'iterazione su tutte le triplette di accesso fornite.
Supporta le due opzioni seguenti:
entity="attributo/comando/evento" – se l'entità non può essere determinata dal contesto, imposta il tipo di entità. includeDefault="true/false" – determina se i valori predefiniti sono inclusi o meno. Quello che segue è un esempioampon:
{{#zcl_clusters}}
un Cluster: {{n me}} [{{codice}}] un {{#zcl_ ttributes}} aa – ttribute: {{n me}} [{{codice}}] aa {{# ccess entity=” ttribute”}}
O a RM a M * p: {{opera tion}} / ole: {{ruolo}} / odificatore: {{ accesso odificatore}} a{{/ accesso}} a {{/attributozcl_}} a {{#attributozcl_comunicazione}} aa – comunicazione: {{in me}} [{{codice}}] aa {{# entità accesso=”comunicazione”}} O a RM a M * p: {{opera tion}} / ole: {{ruolo}} / odificatore: {{ accesso odificatore}} a{{/ accesso}} a {{/attributozcl_comunicazione}}
{{#zcl_events}}
a – evento: {{n me}} [{{codice}}] a {{# ccess entity=”event”}} O a RM a M * p: {{opera tion}} / ole: {{role}} / odifier: {{ ccess odifier}} a{{/ ccess}}
{{/zcl_events}}
{{/zcl_clusters}}

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

30/35

Avvio di ZAP per applicazioni Matter o Zigbee
Avvio di ZAP per applicazioni Matter o Zigbee
Avvio di ZAP per applicazioni Matter o Zigbee
Le sezioni seguenti descrivono l'avvio di ZAP in modalità standalone con i metadati specifici di Matter o Zigbee. L'idea è di avviare ZAP con gli argomenti corretti relativi ai metadati XML (le definizioni di cluster e tipi di dispositivi secondo le specifiche CSA) e i template di generazione, che vengono utilizzati per generare il codice appropriato.
Lancio di ZAP con Matter
Lo script seguente preleva i metadati corretti dal Matter SDK all'avvio di ZAP. https://github.com/project-chip/connectedhomeip/blob/master/scripts/tools/zap/run_zaptool.sh Nota: puoi anche adottare il seguente approccio Zigbee per avviare ZAP in Matter.
Lancio di ZAP con Zigbee
Il seguente comando avvia ZAP con le specifiche ZCL e i modelli di generazione dall'SDK.
[percorso-zap] -z [percorso-sdk]/gsdk/app/zcl/zcl-zap.json -g [percorso-sdk]/gsdk/protocollo/zigbee/app/framework/gen-template/gen-templates.json
zap-path: questo è il percorso verso la sorgente ZAP o l'eseguibile sdk-path: questo è il percorso verso l'SDK
Avvio di ZAP senza metadati
Ricorda che quando avvii ZAP direttamente tramite un eseguibile o dalla sorgente usando npm run zap stai avviando ZAP con metadati di test per Matter/Zigbee integrati in ZAP e non con i metadati effettivi provenienti dagli SDK Matter e Zigbee menzionati sopra. Pertanto, ricorda di creare le tue configurazioni ZAP usando i metadati SDK e non aprendo ZAP direttamente con i metadati di test integrati.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

31/35

Generazione di codice per Matter o Zigbee

Generazione di codice per Matter, Zigbee o un SDK personalizzato
Le sezioni seguenti descrivono come generare codice utilizzando ZAP.
Genera codice utilizzando ZAP UI
Avviare l'interfaccia utente di ZAP seguendo le istruzioni in Avvio di ZAP per Matter o Zigbee e fare clic sul pulsante Genera nella barra dei menu in alto.
Genera codice senza l'interfaccia utente
Le seguenti istruzioni forniscono diversi modi per generare codice tramite CLI senza avviare l'interfaccia utente ZAP.
Generazione del codice dalla sorgente ZAP
Eseguire il seguente comando per generare codice utilizzando ZAP dalla sorgente: node src-script/zap-generate.js –genResultFile –stateDirectory ~/.zap/gen -z ./zcl-builtin/silabs/zcl.json -g ./test/gen-
modello/zigbee/gen-templates.json -i ./test/resource/three-endpoint-device.zap -o ./tmp
Generazione di codice da ZAP Executable
Eseguire il seguente comando per generare codice utilizzando l'eseguibile 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
Generazione di codice da eseguibile ZAP CLI
Eseguire il seguente comando per generare codice utilizzando l'eseguibile ZAP CLI: [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 Laboratori di silicio. Tutti i diritti riservati.

32/35

Aggiorna ZAP in Studio

Aggiorna ZAP
Aggiorna ZAP in Simplicity Studio
Questo meccanismo può essere utilizzato quando si lavora con l'estensione Matter o Zigbee dalle release di Silicon Labs SDK. ZAP può essere aggiornato all'interno di Simplicity Studio senza una release di Simplicity Studio scaricando l'ultimo eseguibile ZAP (consigliato) o estraendo l'ultimo dalla sorgente ZAP come mostrato nella Guida all'installazione di ZAP. Dopo aver ottenuto l'ultimo ZAP basato sul sistema operativo attualmente utilizzato, è possibile aggiornare ZAP all'interno di Studio come un pacchetto adattatore. Seguire le istruzioni riportate di seguito dopo aver scaricato l'ultimo ZAP:
Vai a Simplicity Studio e seleziona Preferences > Simplicity Studio > Adapter Packs. Fai clic su Add… e vai alla cartella ZAP espansa che hai scaricato e fai clic su Select Folder . Fai clic su Apply and Close e quindi lo ZAP appena aggiunto verrà utilizzato ogni volta che un .zap file è aperto.
Nota: a volte potrebbero esserci istanze più vecchie di ZAP già in esecuzione anche dopo l'aggiornamento all'ultima versione di ZAP. Assicurati di terminare tutte le istanze di ZAP esistenti in modo che venga utilizzato lo ZAP appena recuperato al posto di una vecchia istanza, che è ancora in esecuzione in background.
Aggiorna ZAP per lo sviluppo di Matter in Github
Quando si lavora con i repository Matter o Matter-Silicon Labs su Github, impostare le variabili di ambiente rispetto a ZAP per creare/generare nuove configurazioni ZAP o rigenerare quelle esistentiample configurazioni ZAP dopo aver applicato le modifiche. Imposta ZAP_DEVELOPMENT_PATH su ZAP dalla sorgente estraendo l'ultimo o imposta ZAP_INSTALLATION_PATH sull'eseguibile ZAP scaricato per ultimo nella tua directory locale. Nota che quando sono impostati sia ZAP_DEVELOPMENT_PATH che ZAP_INSTALLATION_PATH, viene utilizzato ZAP_DEVELOPMENT_PATH.
Di seguito sono riportati esempiamples che mostrano le variabili di ambiente di cui sopra in uso:
Avvio di ZAP utilizzando la specifica Matter Rigenerazione di tutti gli sample configurazioni ZAP per le applicazioni Matter
Nota: quando si utilizzano eseguibili ZAP, assicurarsi di utilizzare una versione ufficiale anziché una versione notturna per una maggiore stabilità. Vedere
Scaricamento dell'eseguibile ZAP nella Guida all'installazione ZAP

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

33/35

Multiprotocollo simultaneo tra Zigbee e Matter
Multiprotocollo simultaneo tra Zigbee e Matter
MCoanttceurrrent Multiprotocollo tra Zigbee e
ZAP può essere utilizzato per configurare configurazioni ZCL (Zigbee) e Data-Model (Matter) in un'applicazione multiprotocollo per Zigbee e Matter. ZAP consente di creare endpoint per Zigbee e Matter in modo esplicito nella stessa configurazione fileSe gli endpoint Zigbee e Matter si trovano sullo stesso identificatore di endpoint (ad esempioample, LO Dimmable Light sull'endpoint Id 1 e Matter Dimmable Light su un'altra istanza dell'endpoint 1), ZAP si occupa di sincronizzare gli attributi comuni tra gli attributi Matter e Zigbee. Assicurati che gli attributi sincronizzati abbiano lo stesso tipo di dati. Gli attributi comuni tra Zigbee e Matter vengono stabiliti tramite un file chiamato multi-protocol.json. L'utente può collegare due cluster qualsiasi tra Zigbee e Matter insieme ai loro attributi corrispondenti utilizzando rispettivamente i codici cluster e attributo. Questo file può essere trovato in [SDKPath]/app/zcl/multi-protocol.json . Questo file è stato aggiornato con un certo set di cluster e attributi per iniziare, ma l'utente può aggiornarlo file come richiesto e ZAP si occuperà di sincronizzare la configurazione degli attributi tra Zigbee e Matter per gli identificatori di endpoint comuni.
Puoi anche trovare un tutorial ZAP in qualsiasi applicazione multiprotocollo Zigbee e Matter nella pagina dei tutorial. Questo tutorial ti guiderà attraverso il processo di creazione dell'applicazione multiprotocollo. Questo tutorial è disponibile solo quando apri un'applicazione multiprotocollo esistente e può essere trovato come mostrato nell'immagine qui sotto:

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

34/35

Integrare SLC CLI con ZAP
Integrare SLC CLI con ZAP
Integrare SLC CLI con ZAP
Per integrare SLC CLI con ZAP, seguire questi passaggi: ò Installare SLC CLI seguendo le istruzioni di installazione nella Guida utente di Simplicity Studio 5. ó Installare ZAP seguendo le istruzioni nella Guida all'installazione di ZAP. ô Per integrare SLC CLI con ZAP, aggiungere una variabile di ambiente STUDIO_ADAPTER_PACK_PATH che punti all'applicazione ZAP
directory. õ Ricordarsi di riavviare SLC CLI Daemon dopo il passaggio 3. ö Ogni progetto che utilizza ZAP utilizzerà ora il percorso definito nel passaggio 3 quando generato da SLC CLI. Fare riferimento a SLC CLI
Utilizzo per istruzioni su come utilizzare SLC CLI per i tuoi progetti.

Copyright © 2025 Laboratori di silicio. Tutti i diritti riservati.

35/35

Documenti / Risorse

SILICON LABS ZAP Sviluppo con Silicon Labs [pdf] Manuale del proprietario
ZAP in sviluppo con Silicon Labs, ZAP, in sviluppo con Silicon Labs, Silicon Labs, Labs

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *