HBSA Public
  1. Navigation
HBSA Public
  • Hidrovias do Brasil APIs
  • Autenticação
    • Introdução
    • Client Credentials
    • API Key
    • Gerando token client_credentials
      POST
  • WebSockets
    • Introdução
    • Navigation
      • Tracker
      • Hydrometric Stations
  • REST
    • Navigation
      • Hydrometric Stations
        • Stations
          • Get all sensors data by Filter
          • Get all stations
    • Integrações Externas
      • Pesagem
        • Introdução
        • Adiciona ou atualiza os dados de pesagem
  • GraphQL
    • Introdução
    • Relatórios
      • Introdução
      • Grãos
        • Estoque
        • Exemplo de execução
      • Fertilizantes
        • Expedição Rodoviária
  1. Navigation

Hydrometric Stations

INFORMAÇÃO
WebSocket API para obter atualizações de sensores das estações hidrométricas da Hidrovias do Brasil. O serviço foi construído ASPNET Core SignalR, então já existe SDK para diversas plataformas. Utilize o SDK adequado para sua linguagem.

Urls#

AmbienteAPI Url
qawss://apis.qa01.hbsa.com.br/navigation-hydrometric-stations/hubs/sensors
prodwss://apis.hbsa.com.br/navigation-hydrometric-stations/hubs/sensors

Autenticação#

A API exige um token JWT para realizar autenticação e também autorização.
AVISO
Caso não tenha ainda um client entre em contato com o time da Hidrovias do Brasil

Invocando métodos#

Payload de resposta#

A invocação de métodos respeita o padrão de request-response e definimos um payload padrão para todas as respostas facilitando o tratamento das respostas
Json schema da resposta
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    },
    "data": {
      "type": "object"
    }
  },
  "required": [
    "success"
  ]
}
As propriedades data e error são opcionais pois dependem do valor de success.
Segue um exemplo de erro real:
{
  "success": false,
  "error": {
    "code": "ACQA-STATIONS-01",
    "message": "The Tenant value is not valid."
  }
}

Catálogo de erros#

Quando o servidor retorna um erro tratado os erros esperados são descritos abaixo:
CódigoMensagem
ACQA-STATIONS-01O tenant informado não é valido

Eventos#

Tenants#

Os eventos serão segregados por tenant. O tenant representa a operação da Hidrovias do Brasil.
TenantDescrição
br01Dados da operação do norte do Brasil
py01Dados da operação do Paraguai
No momento de assinar um evento é possível informar qual tenant você está consultando
INFORMAÇÃO
Se não for informado tenant, todos os dados de todos os tenants serão retornados

Exemplos em js de assinatura de eventos:#

receive-sensors-data#

INFORMAÇÃO
O evento receive-sensors-data retorna as dados dos sensores da estação. Atualmente a periodicidade para envio das informações é a cada 10 minutos.
O json schema do evento é:
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "stationId": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "latitude": {
      "type": "number"
    },
    "longitude": {
      "type": "number"
    },
    "rot": {
      "type": "integer"
    },
    "timestamp": {
      "type": "string"
    },
    "signal": {
      "type": "null"
    },
    "batVolt": {
      "type": "number"
    },
    "temp": {
      "type": "number"
    },
    "chill": {
      "type": "number"
    },
    "hindex": {
      "type": "number"
    },
    "humid": {
      "type": "number"
    },
    "dewpt": {
      "type": "number"
    },
    "wind": {
      "type": "number"
    },
    "hiWind": {
      "type": "number"
    },
    "windDir": {
      "type": "number"
    },
    "rain": {
      "type": "number"
    },
    "barQfe": {
      "type": "number"
    },
    "barQnh": {
      "type": "number"
    },
    "waterLevel": {
      "type": "number"
    },
    "tenantId": {
      "type": "string"
    }
  },
  "required": [
    "stationId",
    "name",
    "timestamp",
    "signal",
    "tenantId"
  ]
}

Sensores disponíveis#

SensorDescriçãoUnidade de medidaExemplo
tempTemperatura do arCelsius23.5
chill (Wind Chill)Sensação térmica em função no ventoCelsius24.38
hindex (Heat Index)Sensação térmica em função da umidade relativaCelsius25.081
humidUmidade relativa do arPorcentagem5.0
dewpt (Dew Point)Ponto de condensaçãoCelsius14.488
windVelocidade do ventoKm/h20.5
hiWind-Km/h20.5
windDirDireção do ventoGraus159
rainChuva acumuladaMilímetros0
barQfe-Milibar1004.785
barQnh-Milibar1011.726
waterLevelNível da água em função da réguaMetros0.43

Assinando evento#

Para realizar a assinatura é necessário invocar o método subscribe-sensors e então fazer o subscribe no evento receive-sensors-data.
Segue o exemplo de um registro desse evento:
{
  "stationId": "475e4a52-622e-422b-9c62-3464d798187a",
  "name": "ALBERDI - KM 1450",
  "latitude": -26.182722,
  "longitude": -58.138603,
  "rot": 5,
  "timestamp": "2024-09-03T17:40:00+00:00",
  "signal": "LTE/9",
  "batVolt": 12.65,
  "temp": 23.5,
  "chill": 24.38,
  "hindex": 25.081,
  "dewpt": 14.488,
  "wind": 20.5,
  "hiWind": 20.5,
  "windDir": 159,
  "rain": 0,
  "barQfe": 1004.785,
  "barQnh": 1011.726,
  "waterLevel": 0.43,
  "tenantId": "py01"
}

Exemplo de consumo#

Abaixo um exemplo utilizando C#:
Modificado em 2024-09-23 19:13:57
Página anterior
Tracker
Próxima página
Get all sensors data by Filter
Built with