[ad_1]
Matter è uno standard di connettività open source per dispositivi domestici intelligenti e Internet of Things (IoT). È un protocollo multipiattaforma sicuro, affidabile e senza interruzioni per connettere tra loro dispositivi e sistemi compatibili.
SmartThings fornisce l’applicazione per dispositivi virtuali Matter e le API SmartThings Home per aiutarti a sviluppare rapidamente dispositivi Matter e utilizzare l’ecosistema SmartThings senza la necessità di creare il tuo ecosistema IoT.
Supportare i dispositivi IoT che possono essere gestiti da fuori casa richiede investimenti infrastrutturali significativi. È necessario creare e mantenere un server cloud per fornire comandi a casa e, se il dispositivo utilizza una tecnologia di rete mesh come Thread, l’utente deve disporre di un hub supportato in casa. Inoltre, gli utenti in genere non sono interessati all’acquisto di più hub per supportare tutti i marchi di dispositivi IoT di loro proprietà.
L’API SmartThings Home, annunciata alla DSC 2023, ti consente di sfruttare l’infrastruttura SmartThings per i tuoi prodotti Matter e IoT. L’API ti consente di utilizzare SmartThings Cloud, il che significa che la tua applicazione può supportare i dispositivi Matter collegati a uno qualsiasi degli 1,7 milioni di hub SmartThings in tutto il mondo.
In questo tutorial imparerai come utilizzare le API SmartThings Home per sviluppare un’applicazione IoT che esegue l’onboarding, controlla, condivide e rimuove un dispositivo di blocco intelligente.
Per ulteriori informazioni su SmartThings Matter, vedere Matter in SmartThings.
Prerequisiti
Per seguire questo tutorial, sono necessari i seguenti componenti hardware e software:
- PC host con Windows 10 (o versioni successive) o Ubuntu 20.04 (x64)
- Android Studio (si consiglia l’ultima versione)
- Java SE Development Kit (JDK) 11 o successivo
- Dispositivi mobili e SmartThings Station collegati alla stessa rete:
- Dispositivo mobile con l’applicazione per dispositivo virtuale Matter installata
- Dispositivo mobile con modalità sviluppatore e debug USB abilitati
- SmartThings Station abilitato per Matter integrato con l’account Samsung utilizzato per SmartThings
NotaI materiali dell’API SmartThings Home, incluso il progetto di applicazione di esempio per questo tutorial, sono distribuiti solo agli utenti autorizzati. Se desideri l’autorizzazione per utilizzare le API, contatta st.matter@samsung.com.
Mettere in servizio l’apparecchio
Per eseguire l’onboarding di un dispositivo compatibile con Matter nella tua applicazione IoT, devi commissionare il dispositivo, unendolo alla struttura SmartThings.
Scarica il progetto dell’applicazione di esempio e aprilo in Android Studio. I seguenti passaggi sono implementati in MainViewModel.kt file nel percorso app > java > com.samsung.android.matter.home.sample > funzionalità > principale.
Passo 1. Creare un’istanza del client di commissione dell’argomento.
Passo 2. Chiama il commissionDevice()
funzione per avviare l’attività di Onboarding in Home Service.
Passaggio 3. Impostare il value of _intentSender.value
al valore restituito.
// Todo 1
val commissioningClient = Matter.getCommissioningClient()
val intentSender = commissioningClient.commissionDevice(context)
_intentSender.value = intentSender
NotaPer tutti gli esempi di codice in questo tutorial, cerca “Todo #” nell’applicazione di esempio per trovare la posizione in cui devi aggiungere il codice.
Controlla il dispositivo
Le funzionalità sono il nucleo dell’architettura SmartThings. Astraggono i dispositivi nelle loro funzionalità sottostanti, il che consente di recuperare lo stato di un componente specifico del dispositivo o controllare funzionalità specifiche.
Ogni dispositivo ha il proprio set di funzionalità appropriate, ciascuna controllata con la propria funzione API. Di conseguenza, maggiori sono le funzionalità supportate dal dispositivo, maggiore è la quantità di codice applicativo necessaria per implementarlo.
I passaggi seguenti dimostrano l’implementazione delle funzionalità per un dispositivo Smart Lock. Sono implementati in SmartLockViewModel.kt file nel percorso app > java > com.samsung.android.matter.home.sample > funzionalità > dispositivo.
Passo 1. Per recuperare la funzionalità di blocco, manomissione e batteria di un dispositivo:
UN. Recuperare la funzionalità appropriata dall’istanza del dispositivo.
B. Estrarre il valore del flusso per la funzionalità appropriata dalla funzionalità.
C. Archivia il valore recuperato per aggiornare l’interfaccia utente.
// Todo 2
device.readCapability(Lock)?.lock?.collect { lockUnlock ->
_lockStatus.value = lockUnlock
}
// Todo 3
device.readCapability(TamperAlert)?.tamper?.collect { tamperAlert ->
_tamperStatus.value = tamperAlert
}
// Todo 4
device.readCapability(Battery)?.battery?.collect { battery ->
_batteryStatus.value = battery
}
Passo 2. Per controllare lo stato del blocco:
UN. Recupera la funzionalità di blocco dall’istanza del dispositivo.
B. Se lockStatus
è sbloccare, chiamare lock()
funzione per chiuderlo.
C. Se lockStatus
non è sbloccato, chiama unlock()
funzione per aprirlo.
// Todo 5
device.readCapability(Lock)?.let { lock ->
when (_lockStatus.value) {
LockStatus.Unlocked.statusName -> lock.lock()
else -> lock.unlock()
}
}
Condividi il dispositivo
Utilizzando l’API SmartThings Home, puoi condividere i dispositivi Matter connessi a SmartThings con altre piattaforme IoT compatibili con Matter senza reimpostare il dispositivo. Ciò consente all’utente di controllare lo stesso dispositivo tramite applicazioni controller aggiuntive, come Google Home.
I seguenti passaggi sono implementati in BaseViewModel.kt file nel percorso app > java > com.samsung.android.matter.home.sample > funzionalità > dispositivo > base.
Passo 1. Creare un’istanza del client di commissione dell’argomento.
Passo 2. Per lanciare il ShareDevice
attività in Servizio a Domicilio, chiama il shareDevice()
funzione.
Passaggio 3. Imposta il valore di _intentSenderForShareDevice.value
al valore restituito.
// Todo 6
val commissioningClient = Matter.getCommissioningClient()
val intentSender = commissioningClient.shareDevice(
context,
CommissioningClient.ShareDeviceRequest(deviceId)
)
_intentSenderForShareDevice.value = intentSender
Rimuovere il dispositivo
È possibile rimuovere il dispositivo dall’applicazione IoT e dall’infrastruttura SmartThings.
I seguenti passaggi sono implementati in BaseViewModel.kt file nel percorso app > java > com.samsung.android.matter.home.sample > funzionalità > dispositivo > base.
Passo 1. Creare un’istanza del client di commissione dell’argomento.
Passo 2. Per lanciare il RemoveDevice
attività in Servizio a Domicilio, chiama il removeDevice()
funzione.
Passaggio 3. Impostare il value of _intentSenderForRemoveDevice.value
al valore restituito.
// Todo 7
val commissioningClient = Matter.getCommissioningClient()
val intentSender = commissioningClient.removeDevice(
context,
CommissioningClient.RemoveDeviceRequest(deviceId)
)
_intentSenderForRemoveDevice.value = intentSender
Testare l’applicazione
Per testare l’applicazione IoT di esempio con un dispositivo di blocco intelligente virtuale:
Passo 1. Costruisci ed esegui il progetto sul tuo dispositivo Android. Quando avvii l’applicazione, questa viene sincronizzata con l’applicazione SmartThings e i dispositivi e gli hub Matter connessi vengono elencati nella schermata principale.
Passo 2. Per creare un dispositivo Smart Lock virtuale:
UN. Avvia l’applicazione per dispositivo virtuale Matter sull’altro dispositivo mobile.
B. Seleziona “Bloccatura”, quindi tocca “Salva” e “Avvia” per ricevere un codice QR.
Passaggio 3. All’interno dell’applicazione IoT di esempio, per integrare la serratura intelligente virtuale, toccare “+” ed eseguire la scansione del codice QR.
Passaggio 4. Per bloccare e sbloccare la serratura intelligente virtuale, toccare il pulsante nell’applicazione IoT.
Conclusione
Questo tutorial ha dimostrato come creare un’applicazione per integrare e controllare una serratura intelligente utilizzando l’API SmartThings Home. Per informazioni sull’onboarding e sul controllo di altri tipi di dispositivi, vai a Code Lab (Matter: crea un’app IoT Matter con l’API SmartThings Home).
Per ulteriori informazioni su SmartThings Matter, vedere Matter in SmartThings.
[ad_2]
Source link