Os dispositivos no ecossistema do Google Home podem ser implementados usando Cloud-to-cloud, Matter ou ambos. Alguns tipos de dispositivos são mais complexos que outros e apresentam um desafio para desenvolver ao usar as APIs Home de uma forma que permita uma interface suave com outros dispositivos no ecossistema.
Um dos desafios na implementação de alguns desses tipos de dispositivos é que eles podem ser compostos de diferentes combinações de características. Nem todas as combinações funcionam tão bem quanto outras. Além disso, o modelo de dados Cloud-to-cloud é mapeado para o modelo de dados Matter, mas nem sempre de maneira clara e direta. Consulte Modelo de dados no iOS, que aborda os modelos de dados e os mapeamentos com mais detalhes.
Esta página contém mais informações sobre como os modelos de dados para dispositivos específicos se mapeiam entre si e oferece algumas orientações sobre quais características usar para implementar esses tipos de dispositivos.
Forno
O tipo de dispositivo Forno
(OvenDeviceType
)
e os traços de componentes dele não são tão simples de implementar
em comparação com outros tipos de dispositivo. Há várias maneiras de implementar um forno em
Matter, mas nem todas as abordagens resultam em uma interoperação
perfeita com outros dispositivos ou com o ecossistema do Google Home.
Mapeamento de traços
Em vez de implementar um dispositivo Matter Oven usando os clusters
Oven Mode e On Off, recomendamos usar o cluster Oven Cavity Operational
State. Esse cluster é representado nas APIs Home pela característica
OvenCavityOperationalStateTrait
e mapeia para a característica Cloud-to-cloud
RunCycle
. Ele define fases como "pré-aquecimento", "pré-aquecido" e "resfriamento".
APIs do Google Home | Cloud-to-cloud |
---|---|
OvenCavityOperationalState
|
RunCycle
|
Há limitações no modelo de dados de forno Cloud-to-cloud. O modelo de dados do forno Cloud-to-cloud permite apenas uma câmara com um único RunCycle
. Em contraste, o Matter modela um forno multicâmara como um endpoint de dispositivo com um cluster de estado operacional da cavidade do forno para cada câmara.
Para alguns dispositivos de forno, pode ser adequado que a lista de fases mude no tempo de execução. Por exemplo, os fornos que aceitam pré-aquecimento podem ter entradas diferentes na lista de fases durante o pré-aquecimento do que durante as fases de aquecimento ou resfriamento.
Implementação recomendada
Conforme discutido na seção anterior, uma implementação de Matter Oven
precisa implementar o cluster de estado operacional da cavidade do forno, que
é modelado nas APIs Home como a característica
OvenCavityOperationalStateTrait
.
Para ter os melhores resultados, verifique se o dispositivo Cloud-to-cloud forno implementa a característica RunCycle
e publique o estado atual definindo o atributo currentRunCycle
. Esse atributo pode ser observado pelas APIs Home usando os atributos OvenCavityOperationalStateTrait.phaseList
e OvenCavityOperationalStateTrait.currentPhase
.
O dispositivo Oven também precisa publicar uma notificação de ciclo de execução atualizando os atributos priority
, status
e currentCycleRemainingTime
de RunCycle
. O exemplo a seguir resulta no envio de um evento
OperationalStateTrait.OperationCompletion
e pode ser usado para indicar que o forno passou
do ciclo "pré-aquecimento" para o ciclo "pré-aquecido":
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
Usar um forno em uma automação
Ao criar uma automação para um forno implementado usando o
cluster "Estado operacional da cavidade do forno", consulte o atributo currentPhase
para
saber em qual ciclo o forno está:
sequential {
let operationalState = starter(
oven,
OvenDeviceType.self,
OvenCavityOperationalStateTrait.self
)
operationalState
condition {
operationalState.phaseList[operationalState.currentPhase.toUInt()].equals("pre-heated")
}
for speaker in speakers {
action(speaker, SpeakerDeviceType.self) {
Google.AssistantBroadcastTrait.broadcast(msg: "Oven Cycle Complete")
}
}
}
Para um exemplo completo, consulte Se a TV estiver ligada quando o ciclo do forno terminar, as luzes da sala de estar vão piscar e o alto-falante inteligente vai transmitir "Ciclo do forno concluído".