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 do que outros e apresentam um desafio de desenvolvimento ao usar as APIs do Google Home de uma maneira que permita uma interface suave com outros dispositivos no ecossistema.
Um dos desafios na implementação de alguns desses tipos de dispositivo é que eles podem ser compostos por 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 forma clara e individual. Consulte Modelo de dados, que discute os modelos de dados e os mapeamentos em mais detalhes.
Esta página contém mais informações sobre como os modelos de dados de dispositivos específicos são mapeados uns para os outros e oferece algumas orientações sobre quais características usar para implementar esses tipos de dispositivos.
Forno
O tipo de dispositivo Oven
(OvenDevice
)
e as características do componente não são tão simples de implementar
em comparação com outros tipos de dispositivos. Há várias maneiras de implementar um forno em
Matter, mas nem todas as abordagens resultam em interoperabilidade
perfeita com outros dispositivos ou com o ecossistema do Google Home.
Mapeamento de características
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 pelo
traço OvenCavityOperationalState
e é mapeado para o traço 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 Cloud-to-cloud Oven. O
modelo de dados do forno Cloud-to-cloud permite apenas uma câmara,
com um único RunCycle
. Por outro lado, Matter modela um
forno de várias câmaras como um endpoint de dispositivo com um cluster de estado operacional de cavidade
de forno para cada câmara.
Para alguns dispositivos Oven, pode ser apropriado que a lista de fases mude no tempo de execução. Por exemplo, os fornos que oferecem suporte ao pré-aquecimento podem ter entradas diferentes na lista de fases durante a fase de pré-aquecimento do que durante as fases de aquecimento ou resfriamento.
Implementação recomendada
Como 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 o
traço
OvenCavityOperationalState
.
Para ter os melhores resultados, verifique se o dispositivo Cloud-to-cloud Oven
implementa o recurso RunCycle
e publica
o estado atual definindo o atributo currentRunCycle
. Esse atributo é
observável pelas APIs Home pelos atributos
OvenCavityOperationalState.phaseList
e
OvenCavityOperationalState.currentPhase
.
O dispositivo Oven também precisa publicar uma notificação de ciclo de execução do dispositivo atualizando
os atributos priority
, status
e currentCycleRemainingTime
de
RunCycle
. O exemplo a seguir resulta no envio de um evento
OperationalState.OperationCompletion
e pode ser usado
para indicar que o forno fez a transição do ciclo de pré-aquecimento para o
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 de estado operacional da cavidade do forno, consulte o atributo currentPhase
para
saber em qual ciclo o forno está:
sequential {
val starterNode =
starter<_>(oven, OvenDevice, OvenCavityOperationalState /* Or OperationalState */)
condition {
expression = starterNode.phaseList[operationalState.currentPhase.toUInt()] equals "pre-heated"
}
action(speaker, SpeakerDevice) {
command(AssistantBroadcast.broadcast("Oven Cycle Complete"))
}
// Additional actions here as needed
}
Para conferir um exemplo completo, consulte Pisca as luzes e anuncie quando o forno atingir a temperatura escolhida.