Sensores

Armazenando dados


A API Lesense disponibiliza interface para armazenamento de informações coletadas pelos sensores, que podem ser recuperados através desta mesma API. Para possibilitar que um dispositivo armazene informações na plataforma LeSense você necessitará de um token de autenticação associado ao dispositivo.

URL:

/sensor

Método:

POST

URL Params:

token=[string] [M]

Data:

JSON

  {
  "version": string,
  "type": string,
  "serial": string,
  "sensor": integer,
  "model": string,
  "timestamp": string,
  "value": float
}
  

Validação:

Os formatos aceitos para o campo timestamp são UNIX Timestamp, RFC 3339 ou ISO 8601. A data enviada não pode ter diferença maior que 30 dias da data atual.

Exemplos:

1451645640 - UNIX Timestamp para 01/01/2016 08:54:00

2016-01-01T08:54:00-03:00 - RFC 3339 para 01/01/2016 08:54:00 GMT-3

Para os demais campos os valores válidos são:

version

type

Respostas

201

Sucesso no cadastro das informações.
Data: { "entry": "152ccacc-3a15-40d6-9cfb-f93f119c2d24" }

202

Sucesso no cadastro das informações com comandos pendentes disponíveis.
Data: { "entry": "152ccacc-3a15-40d6-9cfb-f93f119c2d24" }

400

Requisição inválida. Dados enviados não são suficientes ou possuem valores inválidos.

401

Requisição não autorizada. Token inválido ou expirado.
Data: { "error": "Unauthorized" }

Campos personalizados

Além dos dados básicos de armazenamento, campos personalizados podem ser armazenados para cada entrada de dados dos sensores, basta incluir o(s) campo(s) nos dados transmitidos. Todos os dados são armazenados como string e podem ser recuperados através das aplicações de acesso aos dados.

Data:

JSON

  {
  "version": string,
  "type": string,
  "serial": string,
  "sensor": integer,
  "model": string,
  "timestamp": string,
  "value": float,
  "customfield1": string,
  "customfield2": string
}
  

Armazenando dados agrupados


É possível armazenar informações de coletas de sensores agrupados em uma única requisição, o que chamamos de armazenamento em batch. Os dados devem ser agrupados por sensor.

URL:

/sensor/batch

Método:

POST

URL Params:

token=[string] [M]

Data:

JSON

  {
  "version": string,
  "type": string,
  "serial": string,
  "sensor": integer,
  "model": string,
  "values": [
    {
    "timestamp": string,
    "value": float
    },
    {
    "timestamp": string,
    "value": float
    }
  ]
}
  

Respostas

201

Sucesso no cadastro das informações.
Data: { "count": 2 }

202

Sucesso no cadastro das informações com comandos pendentes disponíveis.
Data: { "count": 2 }

400

Requisição inválida. Dados enviados não são suficientes ou possuem valores inválidos.

401

Requisição não autorizada. Token inválido ou expirado.
Data: { "error": "Unauthorized" }

Comandos


Ao enviar informações para serem cadastradas na plataforma Lesense os equipamentos podem ser solicitados a requisitar informações de atualização ou configurações que foram disponibilizadas pelo gestor da conta ou pelos admistradores da plataforma, chamados aqui de comandos.

Cada comando disponível é identificado por uma string que deve ser utilizada na confirmação da execução do mesmo. Múltiplos comandos podem estar disponíveis ao mesmo tempo porém serão enviados aos equipamentos 1 comando por vez. Após a execução deste comando o dispositivo deverá enviar uma requisição de confirmação a plataforma Lesense, que então disponibilizará o próximo comando na fila a ser executado. Desta forma é possível que o equipamento execute o comando no momento mais propício.

Requisição

URL:

/sensor/command

Método:

GET

URL Params:

token=[string] [M]

Data:

JSON

  {
  "serial": string
}
  

Respostas

200

Comando disponível para este equipamento (Detalhamento abaixo).

404

Comando não disponível para este equipamento.

401

Requisição não autorizada. Token inválido ou expirado.
Data: { "error": "Unauthorized" }

Tipos de comandos

Os comandos podem ser de dois tipos conforme abaixo.

Atualização

Uma atualização de firmware está disponível para o equipamento e pode ser adquirida através da URL url disponível na resposta a requisição de comando.

JSON

  {
  "command": "update",
  "data": {
    "url": "https://lesense.logicae.com.br/updates/latest"
  },
  "id": "37048cf1-245e-4723-b273-7ab6c6ed713e"
}
  

Configuração

Configurações estão disponíveis para o equipamento e são disponibilizadas através do campo config disponível na resposta a requisição de comando.

JSON

  {
  "command": "config",
  "data": {
    "config": "config1=value1,config2=value2"
  },
  "id": "cd91bbe0-60d4-4308-9ffe-1a744c8001b3"
}
  

Confirmação de comando


Após realizar a configuração ou atualização do comando disponibilizado ao equipamento, este deve enviar uma confirmação de execução do mesmo, para que novos comandos possam ser disponibilizados.

Requisição

URL:

/sensor/command

Método:

PUT

URL Params:

token=[string] [M]

Data:

JSON

  {
  "serial": string,
  "id": string
}
  

Respostas

200

Comando confirmado.
Data: { "id": "cd91bbe0-60d4-4308-9ffe-1a744c8001b3" }

404

Comando não existente.

401

Requisição não autorizada. Token inválido ou expirado.
Data: { "error": "Unauthorized" }

Ping


É possível consultar a disponibilidade de comandos a serem executados através da requisição ping. O mesmo também pode ser utilizado para verificar a conexão do sensor com o Lesense.

Requisição

URL:

/sensor/ping

Método:

GET

URL Params:

token=[string] [M]

Data:

JSON

  {
  "serial": string,
}
  

Respostas

200

Conexão funcional, sem comandos pendentes para o equipamento.
Data: { "count": 0 }

202

Conexão funcional, comandos pendentes disponíveis.
Data: { "count": 1 }

401

Requisição não autorizada. Token inválido ou expirado.
Data: { "error": "Unauthorized" }