A maior parte do trabalho que um driver realiza é feito dentro de sua seção de código geral. É aqui que você escreve métodos e membros usando a linguagem de programação Groovy para definir como o driver funciona. Os drivers podem ser muito diferentes dependendo do que fazem. Um driver que se comunica com um dispositivo Z-Wave terá uma aparência muito diferente daquele que é um dispositivo virtual sem nada físico no mundo real ou que se comunica por telnet com um dispositivo LAN.
Este artigo fornece uma visão geral do código do driver de dispositivo, mas os drivers variam muito dependendo da função do driver de dispositivo.
Os drivers de dispositivo podem conter alguns métodos de retorno de chamada integrados que são chamados pelo ambiente Hubitat em resposta a determinadas ações.
Este método é chamado quando o dispositivo é criado pela primeira vez e pode ser usado para inicializar qualquer configuração e configuração específica do dispositivo.
vazio instalado()
Este método é chamado quando o dispositivo é removido para permitir qualquer limpeza necessária.
void desinstalado()
Este método é chamado quando as preferências de um dispositivo são atualizadas.
vazio atualizado()
Este método é chamado em resposta a uma mensagem recebida pelo driver de dispositivo. Dependendo do driver, isso pode vir de várias fontes. Pode ser uma mensagem Z-Wave, uma mensagem Zigbee, uma mensagem telnet, uma mensagem websocket, etc. Dependendo do tipo de mensagem recebida, você provavelmente precisará analisar a string description
em algo mais útil. A seguinte lista de métodos é útil para decodificar a descrição:
interfaces.mqtt.parseMessage
parseLanMessage
zigbee.parse
zwave.parse
Análise do evento (descrição da string)
Os métodos definidos pelo usuário são onde seu driver faz "todo o resto". É onde você implementa comandos, define métodos manipuladores para agendas ou assinaturas de eventos, etc. Essencialmente, você pode fazer praticamente qualquer coisa em um método definido pelo usuário que você pode fazer em um método Groovy normal.
Entre esses métodos, você também precisará de quaisquer métodos exigidos pelas capabilities implementadas pelo seu driver. O nome do método Groovy deve corresponder ao nome do comando conforme especificado, incluindo o número e tipo apropriado de parâmetros, se especificado. Por exemplo, capability "Switch"
requer dois métodos, on()
e off()
(nenhum dos quais aceita parâmetros).