ZCL Advanced Platform (ZAP) è un motore di modelli node.js basato su Matter cluster.
ZAP offre le seguenti funzionalità per le app Matter e SDK:
- Configura Matter endpoint, cluster, attributi e le altre funzionalità del dispositivo da un'interfaccia GUI.
- Creare modelli che generano automaticamente definizioni di modelli di dati, callback e altro codice sorgente Matter.
- Crea e utilizza file ZAP preconfigurati da includere con i tuoi SDK.
Installa
Vai alle release di Zap .
Cerca l'uscita con il tag "Più recente". (la maggior parte sarà contrassegnata con il tag "Pre-release").
In questa release, sotto l'intestazione Risorse, seleziona il pacchetto designata per il sistema operativo e scaricarlo.
Su una macchina che esegue Debian o Ubuntu, installa ZAP eseguendo:
sudo dpkg -i path/to/zap_installation_package
Su Debian o Ubuntu Linux, il programma binario zap
è installato in /usr/bin/
. Attivato
altri sistemi operativi, il programma binario potrebbe essere installato altrove. In ogni caso,
verifica che la posizione dell'eseguibile sia nel tuo ambiente PATH
.
File ZAP
ZAP utilizza file modello chiamati file ZAP. Un file ZAP è un file JSON
che definisce endpoint, comandi, attributi e altri dispositivi
le funzionalità di machine learning. I file ZAP hanno nomi che terminano con .zap
. Ad esempio:
lighting-app.zap
in connectedhomeip/examples/lighting-app/lighting-common
.
Il file all-clusters-app.zap
, trovato in
connectedhomeip/examples/all-clusters-app/all-clusters-common
, è
preconfigurati con cluster Matter comuni e tre
Endpoint, inclusa una rete secondaria Matter
Tipo di dispositivo per la messa in servizio. Questo è un buon esempio per esplorare vari cluster
configurazioni.
Esegui
- Scegli un file ZAP da uno degli esempi di Matter.
- Dalla directory root del repository Matter (
connectedhomeip
), esegui lo script wrapperrun_zaptool.sh
, passando il percorso al file.zap
.
Ad esempio:
./scripts/tools/zap/run_zaptool.sh ./examples/lighting-app/lighting-common/lighting-app.zap
Configura
Nelle Impostazioni di
puoi configurare l'interfaccia utente di ZAP, con la possibilità di scegliere il tema chiaro o scuro e l'attivazione o la disattivazione degli strumenti per sviluppatori.Se fai clic su
Opzioni puoi selezionare il prodotto Manufacturer Center, Criterio di risposta predefinito e attivare o disattivare il comando Scoperta.Fai clic su
Estensioni per aggiungere o i comandi ZCL a Zigbee Clusters Configurator.Usa
Endpoint
Il file lighting-app.zap
è preconfigurato con un Matter
Nodo radice (endpoint - 0) e luce dimmerabile Matter
(Endpoint - 1).
Endpoint - 0 include i cluster generali che sono pertinenti all'intero nodo, ad esempio Networking, Commissioning, Descriptor, credenziali operative e cluster OTA.
Nei passaggi successivi, esaminerai e configurerai Endpoint - 1
Matter Luce dimmerabile nell'esempio lighting-app
.
Esegui ZAP dal repository Matter
connectedhomeip
.scripts/tools/zap/run_zaptool.sh \ examples/lighting-app/lighting-common/lighting-app.zap
Fai clic su Endpoint - 1, quindi
MODIFICA.Facoltativo:Matter supporta diversi tipi di dispositivi. Nella Nel menu a discesa Dispositivo, inizia a digitare
matter
per cambiare il dispositivo, quindi fai clic su SALVA.
Per saperne di più, consulta: Dispositivi e Endpoint nel dominio Matter Primer.
Cluster
Le opzioni Cluster, attributi e report predefiniti sono abilitate in Endpoint: 1 per impostazione predefinita.
Per visualizzare solo i cluster abilitati, fai clic su Endpoint - 1 e seleziona
Cluster abilitati dal programma
o dal menu Fogli Google. Puoi anche cercare on
.
Per abilitare qualsiasi cluster come Client, Server o Cliente e di sicurezza, utilizza dal menu a discesa Attiva. Puoi anche selezionare Non abilitato per disattivare una Cluster preconfigurato che non si applica al tipo di dispositivo.
Per saperne di più, consulta: Cluster nel Primer di Matter.
Attributi e comandi
Per configurare attributi e comandi, completa i seguenti passaggi:
- Individua il cluster
On/Off
. Nella stessa riga, fai clic sull'icona Configura
.
Qui puoi attivare o disattivare gli attributi, impostare varie opzioni degli attributi e Cerca attributi
per nome.Fai clic su Comandi per configurare le azioni per questo cluster. Per
Ad esempio, il cluster On/off di una luce includerà On, Off,
e Toggle. Alcuni cluster, come
nel cluster Temperature Measurement
, potrebbe non essere presente alcun comando associato.
Per saperne di più, consulta: Attributi e comandi nel Primer di Matter.
Generare file di origine ZAP
Matter esempi utilizzano il codice sorgente generato ZAP, disponibile
nella directory connectedhomeip/zzz_generated
. Alcuni file sono specifici dell'app,
mentre altri file ZAP generici sono raggruppati in app-common
.
#include <app-common/zap-generated/ids/Attributes.h>
#include <app-common/zap-generated/ids/Clusters.h>
Dopo aver configurato gli endpoint, puoi generare i file di origine da integrare nel tuo progetto.
- Fai clic su Genera.
- Seleziona una cartella in cui salvare l'output ZAP. Ad esempio, accedi a
connectedhomeip/zzz_generated/lighting-app/zap-generated
perlighting-app
. - Facoltativo. Apri i file nel tuo IDE preferito.
ZAP genera definizioni, funzioni e altro codice sorgente personalizzato per il tuo tipo di dispositivo e configurazione ZAP.
Ad esempio, callback-stub.cpp
include un metodo di callback Cluster che
include solo i cluster che hai abilitato:
void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
{
switch (clusterId)
{
...
case ZCL_ON_OFF_CLUSTER_ID :
emberAfOnOffClusterInitCallback(endpoint);
break;
...
}
}
Utilizzare i file di origine ZAP
File di origine ZAP comuni, ad esempio Attributes.h
in
zzz_generated/app-common/app-common/zap-generated/ids/
, può essere utilizzato per
recupera e imposta gli attributi del tipo di dispositivo:
Attributes.h
namespace DeviceTemperatureConfiguration {
namespace Attributes {
namespace CurrentTemperature {
static constexpr AttributeId Id = 0x00000000;
} // namespace CurrentTemperature
...
} // namespace Attributes
} // namespace DeviceTemperatureConfiguration
main.cpp
#include <app-common/zap-generated/att-storage.h>
#include <app-common/zap-generated/attribute-id.h>
#include <app-common/zap-generated/attribute-type.h>
#include <app-common/zap-generated/attributes/Accessors.h>
#include <app-common/zap-generated/callback.h>
#include <app-common/zap-generated/cluster-id.h>
#include <app-common/zap-generated/cluster-objects.h>
#include <app-common/zap-generated/command-id.h>
using namespace ::chip;
using namespace ::chip::app::Clusters;
static void InitServer(intptr_t context)
{
...
// Sets temperature to 20C
int16_t temperature = 2000;
auto status = DeviceTemperatureConfiguration::Attributes::CurrentTemperature::Set(1, temperature);
if (status != EMBER_ZCL_STATUS_SUCCESS)
{
ChipLogError(Shell, "Temp measurement set failed");
}
}
Una volta compreso come utilizzare i file ZAP in Matter codice sorgente, esistono diversi modi per integrare ZAP:
- Utilizza i file
zzz_generated
esistenti per creare nuovi esempi, univoci per i tipi di dispositivo. - Crea file
.zap
personalizzati per i tuoi progetti.
Personalizza
I file ZAP vengono generati da ZAP
modelli.
Quando utilizzi run_zaptool.sh
per avviare ZAP, questo script trasmette quanto segue:
modelli:
node src-script/zap-start.js --logToStdout \
--gen "$CHIP_ROOT/src/app/zap-templates/app-templates.json" \
--zcl "$CHIP_ROOT/src/app/zap-templates/zcl/zcl.json" \
"${ZAP_ARGS[@]}"
templates.json
definisce il nome del modello Matter e
file di output corrispondente usato in Matter esempi.
{
"path": "templates/app/callback-stub-src.zapt",
"name": "ZCL callback-stub source",
"output": "callback-stub.cpp"
}
Per personalizzare le tue soluzioni Matter, ne sono disponibili diverse che puoi svolgere con ZAP:
Risorse
Per ulteriori risorse ZAP, fai riferimento alle
Repository ZAP
(zap
)
su GitHub.