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
- 1.0
type
- Temperature
- Humidity
- Luminosity
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" }