Saltar para o conteúdo
Elausys

HyperVisu / Integrações

Integração HTTP

Controlo e consulta periódica de API HTTP com extração JSON e autenticação flexível.

elausys · 28 julho 2026
Nesta página

Integração HTTP

O protocolo HTTP integra dispositivos e serviços que utilizam HTTP simples: API REST, serviços cloud com uma API local ou relés de rede simples. Funciona em dois sentidos:

  • Pedidos de saída — quando o valor de um widget muda, o HyperVisu envia um pedido (controlo de dispositivo ou chamada de webhook).
  • Consulta periódica — o HyperVisu consulta periodicamente um URL e extrai um valor da resposta para um objeto do widget.

Ligações. Ative primeiro HTTP Protocol na página Services (ver «Serviços e protocolos»); está desativado num servidor novo. O HTTP suporta várias ligações: uma por Base URL, cada uma com os seus próprios Poll Interval (seconds), Timeout (ms) e autenticação (ver «Ligações»). O tempo limite é expresso em milissegundos, de 1000 a 120000; se ficar vazio, um pedido espera 30 segundos.

Escolha o Authentication Type exigido pela API. Alterar o tipo limpa todos os campos de credenciais.

Authentication TypeDados a fornecerForma de envio
NoneSem credenciais.Nada é acrescentado.
API Key (Header)Header Name e API Key.Um cabeçalho com esse nome e a chave.
API Key (Query Parameter)Query Parameter e API Key.Acrescentados ao URL de cada pedido.
Basic AuthenticationUsername e Password.O cabeçalho de autorização Basic padrão.
Bearer TokenBearer Token.O cabeçalho de autorização Bearer padrão.
Custom HeadersUma linha por cabeçalho, com nome e valor; Add Header acrescenta uma linha.Todas as linhas, em cada pedido.

Preencha os dois campos de cada par: um par com um campo vazio não é enviado. API Key, Password e Bearer Token são ocultados no editor; os valores introduzidos em Custom Headers são apresentados em texto simples.

Uma ligação HTTP não tem botão Test. O estado permanece State unknown até um objeto associado trocar um pedido; Connected significa então que o último pedido foi aceite e No reply since aparece após um pedido falhado.

📘 Nota: Um intervalo de consulta de 0 torna a ligação apenas de escrita — não são feitas consultas, só são enviados pedidos de saída. Um intervalo vazio também significa que o endpoint nunca é consultado: introduza o valor, o 60 cinzento é apenas uma sugestão.

Associar um objeto. Por objeto, defina Path e HTTP Method e, para valores consultados, como extrair a leitura da resposta com Parse Method e Parse Path:

  • JSON — um caminho com sintaxe de pontos e arrays, por exemplo data.sensors[0].temperature. Um índice negativo como [-1] lê o último elemento; filtros e caracteres universais não são suportados.
  • Pattern Matching — para respostas que não sejam JSON. Parse Path tem de começar por PATTERN=, por exemplo PATTERN=Temp:\s\v. Alterar o método de análise limpa Parse Path, pelo que deve introduzi-lo depois de escolher o método.

Para pedidos de saída, defina HTTP Method como POST ou PUT e escolha Content Type. Request Body Template é um modelo em que ${value} é substituído pelo valor enviado, por exemplo {"state": ${value}}.

📘 Nota: A consulta periódica envia sempre um GET para o Path do objeto. Um objeto POST ou PUT só envia um pedido quando o seu valor muda.

Exemplo prático — qualidade do ar exterior a partir da API de um sensor local

Um monitor local de qualidade do ar disponibiliza GET http://192.168.1.140/api/current, devolve {"pm25": 8.4, "aqi": 35} e exige a chave API num cabeçalho X-Api-Key.

  1. Crie uma ligação HTTP: Base URL http://192.168.1.140, Poll Interval (seconds) 60, Timeout (ms) 5000, Authentication Type API Key (Header), Header Name X-Api-Key, a chave em API Key (ver «Ligações»).
  2. Em Devices, adicione um widget Analog Input «Qualidade do ar». Em Protocol, selecione a sua ligação HTTP, apresentada com o nome que lhe atribuiu.
  3. No respetivo objeto de valor, defina Path como /api/current, mantenha HTTP Method em GET e Parse Method em JSON e introduza aqi em Parse Path.
  4. Clique em Save object, depois em Apply changes na barra lateral e confirme. A leitura é atualizada a cada minuto; defina as unidades e casas decimais no objeto (ver «Definições de objetos, registo e notificações»).
  5. Após a consulta seguinte, verifique se a ligação apresenta Connected na página Connections e compare o widget com a resposta real da API.
Editor de objetos HTTP.

Associação HTTP

Os objetos HTTP também são configurados na caixa de diálogo de definições do objeto (ver «Definições de objetos, registo e notificações»). A secção HTTP define um pedido por objeto:

CampoDescrição
PathAcrescentado ao URL base da ligação (por exemplo weather?q=London).
HTTP MethodGET, POST ou PUT.
Content TypePara POST/PUT: JSON, TEXT ou FORM. JSON e FORM definem o cabeçalho de tipo de conteúdo correspondente; TEXT não envia nenhum.
Parse MethodJSON — a resposta é JSON e Parse Path identifica o valor. Pattern Matching — a resposta é texto e Parse Path contém um padrão. A ajuda de sintaxe integrada documenta ambos. Alterar o método de análise limpa Parse Path, pelo que deve escolher primeiro o método.
Parse PathCom JSON: um caminho simples — notação por pontos (data.power), índice de array (sensors[0]), índice negativo ([-1] para o último elemento) e prefixo opcional $.. Filtros e caracteres universais não são suportados. Com Pattern Matching: o padrão, que tem de começar por PATTERN= — por exemplo PATTERN=Temp:\s\v.
Request Body TemplatePara POST/PUT: o corpo a enviar, com ${value} como marcador do valor escrito — por exemplo {"state":${value}}.

A leitura utiliza o intervalo de consulta da ligação; um intervalo de 0 torna o endpoint apenas de escrita (ver «Ligações»). A consulta periódica envia sempre um GET para o Path do objeto; um objeto POST ou PUT só envia o seu pedido quando o valor muda. O capítulo HTTP inclui um exemplo prático.

Perguntas frequentes

O HyperVisu pode ler valores de uma API HTTP?

Sim. Consulta o URL configurado e extrai um valor através de um caminho JSON ou de um padrão de texto.

Como configuro um endpoint HTTP apenas para escrita?

Defina o intervalo de consulta da ligação como 0. Os pedidos de saída continuam a funcionar, mas as leituras periódicas param.

Como incluo o valor do widget num pedido?

Utilize o marcador ${value} no modelo do corpo do pedido. O HyperVisu substitui-o pelo valor enviado.

Onde se configura a autenticação HTTP?

Na ligação. As opções incluem chaves API, autenticação Basic, tokens Bearer e cabeçalhos personalizados.

Continuar a explorar

Encontre os outros guias deste produto na documentação.

Voltar a Integrações