Arquivo de Configuração - matheuswhite/bluebees GitHub Wiki
Arquivo de configuração
Os arquivos de configração são utilizados como entrada no comando config
do módulo node
. Este tipo de arquivo determina quais configrações devem ser passadas para um determinado nó. Assim como nos templates, os arquivos de configuração são arquivos YAML
e deve ser utilizado a extensão .yml
. Neste arquivo existe três regiões, cada uma responsável por um tipo de configuração diferente. O arquivo deve possuir, pelo menos, uma das três regiões. As regiões são:
1. Adição de chaves de aplicação (AppKey) a um nó; 2. Atribuição de endereços de publicação e inscrição à modelos; 3. Envios de comandos pós-configração.
A primeira região é composta pela palavra-chave applications
seguida por uma lista de nomes de aplicações. O nó alvo da configuração será cadastrado em todas as aplicações desta lista. Se uma dessas aplicações não existe então o comando retornará um erro. Um exemplo desta região é mostrado abaixo.
applications:
- luzes-app
- ventiladores-app
- eletronicos-app
A segunda região é responsável por configurar os endereços nos quais cada modelo (de um determinado nó) irá publicar e de inscrever. Ela começa com a palavra-chave models
seguida de uma lista de modelos. Em cada um destes modelos é composto pelas seguintes palavras-chave:
id
: Esta palavra-chave indica a indentificação do modelo que se deseja configurar. O valor deve ser uma hexstring. Esta palavra-chave é obrigatória;publication
: Esta palavra-chave indica o endereço que o modelo irá publicar. O valor deve ser uma hexstring. Esta palavra-chave não é obrigatória;subscription
: Esta palavra-chave indica a lista de endereço que o modelo irá se inscrever. O valor deve ser uma lista de hexstring (mesmo que exista somente um endereço). Observe que estes endereços devem ser endereços de grupo. Esta palavra-chave não é obrigatória;application
: Esta palavra-chave indica a aplicação que o modelo estará associado. Caso a aplicação especificada não exista, o comando retornará um erro. Esta palavra-chave é obrigatória.
Um exemplo desta região é mostrado abaixo:
models:
- id: '1000' # generic onoff server
publication: '6933'
subscription: ['C933', 'C934']
application: luzes-app
- id: '1002' # generic level server
publication: '6932'
subscription: ['C935']
application: eletronicos-app
Por último, mas não menos importante, a terceira região responsável por enviar mensagem após as configurações anteriores serem finalizadas. Esta região se inicia com a palavra-chave post_cmds
e é seguida por uma lista de arquivos de comandos (que serão explicados na próxima subseção). Um exemplo desta região é mostrado a seguir:
post_cmds:
- lugar_luzes.yml
- desligar_eletronicos.yml
- definir_temperatura.yml
NOTA: Em todos os casos, o elemento utilizado é sempre o primário.
NOTA: A utilização de arquivos de configuração com extensão .yaml
pode causar confusão e incerteza na ferramenta, apesar de ser uma extensão válida para arquivos YAML
. Assim, é recomendado sempre a extensão .yml
nos arquivos de configuração.
Arquivos de comandos
Os arquivos de configuração são responsáveis por enviar mensagens após a configuração. Estes arquivos também são arquivos YAML
e com a extensão .yml
. Todos os arquivos de comandos iniciam com a palavra-chave commands
seguidos por uma lista de comandos. Cada comando possui as seguintes palavras-chave:
opcode
: Esta palavra-chave especifica o opcode do comando que será enviado. O valor esperado é uma hexstring. Esta palavra-chave é obrigatória;parameters
: Esta palavra-chave especifica os parametros do comando que será enviado. O valor esperado é uma hexstring. Esta palavra-chave é obrigatória;application
: Esta palavra-chave indica qual será aplicação utilizada para enviar o comando. Caso a aplicação indicada não exista, então o comando retornará um erro. Esta palavra-chave não é obrigatória, se não for especificada então a primeira aplicação encontrada, no nó, será utilizada;tries
: Esta palavra chave indica a quatidade de vezes o comando será enviado. O valor esperado é um número inteiro. Esta palavra-chave não é obrigatória, se não for especificada então o comando será enviado somente 1 vez.
Um exemplo de um arquivo de comandos é mostrado a seguir:
commands:
- opcode: 'C24502'
parameters: '0175'
application: 'luzes-app'
tries: 1
- opcode: 'C24503'
parameters: '0125'
tries: 3
NOTA: A utilização de arquivos de comandos com extensão .yaml
pode causar confusão e incerteza na ferramenta, apesar de ser uma extensão válida para arquivos YAML
. Assim, é recomendado sempre a extensão .yml
nos arquivos de comandos.