MCP/API/CmdTelemetryLog
De uTech Tecnologia
(Diferença entre revisões)
(→Comando) |
(→Comando) |
||
(3 edições intermediárias de um usuário não apresentadas) | |||
Linha 13: | Linha 13: | ||
| align="left"| '''request''' || '''telemetrylog''' | | align="left"| '''request''' || '''telemetrylog''' | ||
|- | |- | ||
− | | align="left"| ''' | + | | align="left"| '''interface''' || Defina qual leitor externo será utilizado para leitura dos dados de telemetria. |
+ | * '''5 a 32''': Interface externa (Ver [[MCP/ConfiguracaoWEB#Leitores|'''Leitores''']]) | ||
+ | |} | ||
+ | |||
+ | <BR> | ||
+ | '''POST-DATA:''' Opcional | ||
+ | {| class="wikitable" width="65%" | ||
+ | ! align="center" colspan="2" | Parâmetros enviados para o MCP via JSON | ||
+ | |- | ||
+ | | align="left"| '''start''' || Data inicial do filtro por data. ('''OPCIONAL caso necessite filtrar por data/hora''') | ||
+ | Formato: 'YYYY-MM-DD HH-MM-SS'. Ex. '''2020-01-01 08:00:00'''. | ||
+ | * Se inserido parâmetro '''start''', '''DEVE''' ser inserido parâmetro '''end'''. | ||
|- | |- | ||
− | | align="left"| '''end''' || | + | | align="left"| '''end''' || Data inicial do filtro por data. ('''OPCIONAL caso necessite filtrar por data/hora''') |
+ | * Se inserido parâmetro '''end''', '''DEVE''' ser inserido parâmetro '''start'''. | ||
|} | |} | ||
+ | <BR> | ||
Linha 60: | Linha 73: | ||
! style="text-align: left; font-weight: bold;" | <pre>http://ip:porta/?request=telemetrylog&interface=6</pre> | ! style="text-align: left; font-weight: bold;" | <pre>http://ip:porta/?request=telemetrylog&interface=6</pre> | ||
|} | |} | ||
+ | |||
+ | '''Ou com filtro de data/hora''': | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! style="text-align: left; font-weight: bold;" | <pre>POST /?request=telemetrylog&interface=6 HTTP/1.1 | ||
+ | Content-Type: application/json | ||
+ | Content-Length: 20 | ||
+ | |||
+ | { | ||
+ | "start":"2020-04-14 00:00:00", | ||
+ | "end":"2020-04-14 23:59:59" | ||
+ | } | ||
+ | </pre> | ||
+ | |} | ||
+ | |||
'''Resposta:''' | '''Resposta:''' | ||
Linha 112: | Linha 140: | ||
== PHP == | == PHP == | ||
+ | |||
+ | === Exemplo sem filtro de datas === | ||
+ | |||
{| class="wikitable" width="65%" | {| class="wikitable" width="65%" | ||
| | | | ||
Linha 137: | Linha 168: | ||
</source> | </source> | ||
|} | |} | ||
+ | |||
+ | |||
+ | === Com filtro de datas === | ||
+ | |||
+ | {| class="wikitable" width="65%" | ||
+ | | | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | $user = "utech"; | ||
+ | $pass = "1234"; | ||
+ | $port = "8080"; | ||
+ | $ipaddr = "10.0.0.1"; | ||
+ | |||
+ | $data = array( | ||
+ | "start" => "2020-04-14 00:00:00", | ||
+ | "end" => "2021-07-14 23:59:59" | ||
+ | ); | ||
+ | |||
+ | $data_string = json_encode($data,JSON_UNESCAPED_SLASHES); | ||
+ | $url = "$ipaddr:$port?request=telemetrylog&interface=6"; | ||
+ | $ch = curl_init($url); | ||
+ | curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); | ||
+ | curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass"); | ||
+ | curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); | ||
+ | curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); | ||
+ | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | ||
+ | curl_setopt($ch, CURLOPT_HTTPHEADER, array( | ||
+ | 'Content-Type: application/json', | ||
+ | 'Content-Length: ' . strlen($data_string)) | ||
+ | ); | ||
+ | |||
+ | $result = curl_exec($ch); | ||
+ | if(!$result) { | ||
+ | echo "error!\n"; | ||
+ | return 2; | ||
+ | } | ||
+ | print_r(json_decode($result, true)); | ||
+ | ?> | ||
+ | </source> | ||
+ | |} | ||
+ | |||
<br/> | <br/> |
Edição atual tal como 18h26min de 14 de maio de 2021
Tabela de conteúdo |
O comando Telemetry Log é utilizado para buscar a lista das ultimas 8000 medidas lidas.
[editar] Comando
MÉTODO: GET
Parâmetros enviados para o MCP | |
---|---|
request | telemetrylog |
interface | Defina qual leitor externo será utilizado para leitura dos dados de telemetria.
|
POST-DATA: Opcional
Parâmetros enviados para o MCP via JSON | |
---|---|
start | Data inicial do filtro por data. (OPCIONAL caso necessite filtrar por data/hora)
Formato: 'YYYY-MM-DD HH-MM-SS'. Ex. 2020-01-01 08:00:00.
|
end | Data inicial do filtro por data. (OPCIONAL caso necessite filtrar por data/hora)
|
Resposta enviada pelo o MCP | |
---|---|
date | data/Hora da leitura. |
sensor | Identificação do leitor externo. |
temperature | Temperatura na data leitura. |
humidity | Umidade na data leitura. |
gas | Nível de gás e fumaça na data leitura. |
pir | Identificação de detecção de movimento na data leitura (On/Off). |
level | Status do sensor de nível na data da leitura (On/Off). |
volume | Valor do volume na data leitura. |
luminosity | Valor de luminosidade na data leitura (em LUX). |
alarm | Indica de na data/hora da leitura, o equipamento apresentava algum alarme de sensor.
|
voltage | Tensão (em Volts - V). |
current | Corrente lida (Miliampère - mA). |
power | Potencia lida (Em Watts - W). |
energy | Energia total consumida (Em Watts - W). |
[editar] Exemplo
http://ip:porta/?request=telemetrylog&interface=6 |
---|
Ou com filtro de data/hora:
POST /?request=telemetrylog&interface=6 HTTP/1.1 Content-Type: application/json Content-Length: 20 { "start":"2020-04-14 00:00:00", "end":"2020-04-14 23:59:59" } |
---|
Resposta:
- 400 => Parâmetros incorretos
- 401 => Erro de autenticação da API
- 200 => OK
Content-Type: application/json [ { "date":"2021-05-14 14:27:10", "sensor":"6", "temperature":"", "humidity":"", "gas":"0", "pir":"normal", "level":"normal", "volume":"", "luminosity":"7", "alarm":"false", "voltage":"", "current":"", "power":"", "energy":"" }, { "date":"2021-05-14 14:26:10", "sensor":"6", "temperature":"", "humidity":"", "gas":"0", "pir":"normal", "level":"normal", "volume":"", "luminosity":"5", "alarm":"false", "voltage":"", "current":"", "power":"", "energy":"" }, ] |
---|
[editar] PHP
[editar] Exemplo sem filtro de datas
<?php $user = "utech"; $pass = "1234"; $port = "8080"; $ipaddr = "10.0.0.1"; $url = ""; $url = "$ipaddr:$port?request=telemetrylog&interface=6"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass"); $result = curl_exec($ch); if(!$result) { echo "error!\n"; return 2; } print_r(json_decode($result, true)); ?> |
[editar] Com filtro de datas
<?php $user = "utech"; $pass = "1234"; $port = "8080"; $ipaddr = "10.0.0.1"; $data = array( "start" => "2020-04-14 00:00:00", "end" => "2021-07-14 23:59:59" ); $data_string = json_encode($data,JSON_UNESCAPED_SLASHES); $url = "$ipaddr:$port?request=telemetrylog&interface=6"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch); if(!$result) { echo "error!\n"; return 2; } print_r(json_decode($result, true)); ?> |