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.