Sorry, your browser does not suporte JavaScript!
Entrar

Receba Dados de Energia IAMMETER no Seu Próprio Servidor

Receba Dados de Energia IAMMETER no Seu Próprio Servidor

Os medidores de energia Wi-Fi IAMMETER podem enviar dados de medição diretamente para um servidor, broker MQTT ou plataforma de dados controlada pelo cliente. Isso permite que desenvolvedores e integradores de sistemas criem seu próprio EMS, BMS, serviço IoT, banco de dados ou painel de monitoramento sem usar o IAMMETER-Cloud como destino dos dados.

Este guia aborda a integração pelo lado do servidor recetor:

  • iniciar um recetor de teste;
  • capturar o primeiro payload do medidor;
  • identificar o medidor e os canais de medição;
  • normalizar e armazenar os dados;
  • estimar o volume de ingestão;
  • preparar o recetor para implantação em produção.
Medidor IAMMETER
      │
      │ HTTP/HTTPS, MQTT/MQTTS ou TCP/TLS
      ▼
Serviço de ingestão do cliente
      │
      ├── Registo de payload bruto
      ├── Banco de dados temporal ou relacional
      ├── EMS / BMS / ERP
      └── Serviços de painel, relatório e alarmes

Para capacidades de firmware do lado do medidor e formatos de endereço, utilize o Guia de API Local e Interface Aberta IAMMETER. Para seleção de arquitetura, consulte Desenvolva Seu Próprio Sistema de Monitoramento de Energia.

1. Selecione uma Arquitetura de Recetor

O medidor pode enviar suas medições usando vários transportes. O sistema recetor deve selecionar um caminho principal de ingestão.

Transporte Componente recetor Bom ponto de partida para
HTTP / HTTPS Endpoint web Backends REST e a integração mais simples inicial
MQTT / MQTTS Broker MQTT e subscritor Plataformas IoT existentes e pipelines de mensagens
TCP / TLS Listener de socket Coletores dedicados e serviços de protocolo personalizados

HTTP é normalmente a maneira mais fácil de inspecionar o primeiro payload porque o recetor de teste oficial pode ser iniciado com um pequeno exemplo em Node.js. MQTT é uma escolha forte quando um broker já faz parte do sistema. TCP/TLS fornece uma integração de socket de nível inferior, mas requer mais engenharia do lado do recetor.

Os transportes seguros e formatos de porta personalizados são mantidos no guia de firmware atual, em vez de serem repetidos aqui.

2. Início Rápido: Receba o Primeiro Payload via HTTP

A IAMMETER fornece um exemplo oficial de recetor HTTP Node.js para teste de integração.

2.1 Inicie o Recetor de Teste

Baixe o exemplo em:

Execute:

node Server.js

O exemplo escuta na porta 8000. Quando uma solicitação chega, ele:

  • coleta o corpo da solicitação HTTP;
  • imprime a URL da solicitação;
  • imprime o corpo enviado;
  • retorna o status HTTP 200 com uma pequena resposta JSON de sucesso.

O exemplo é deliberadamente mínimo. Ele não fornece autenticação, persistência, validação, limitação de taxa ou segurança de produção.

2.2 Torne o Recetor Acessível

Antes de configurar o medidor, confirme que:

  • o servidor está escutando na interface e porta esperadas;
  • o firewall permite a conexão;
  • o medidor pode resolver o nome de domínio quando um domínio é usado;
  • qualquer NAT, proxy reverso ou caminho VPN está funcionando;
  • a URL final alcança a rota de aplicação pretendida.

Para um teste em LAN, o medidor e o recetor podem usar a mesma rede local sem acesso à Internet. Para um recetor remoto, o local deve ter uma rota para o servidor.

2.3 Aponte o Medidor para o Recetor

Na WebUI atual do medidor, selecione o modo de execução HTTP e insira um destino como:

{endereço-do-servidor}:8000/upload

Configure o endpoint HTTP recetor na WebUI IAMMETER atual

Endpoints HTTPS podem usar a porta padrão ou uma porta personalizada. As regras atuais de endereço, incluindo https://host:porta, estão documentadas na seção de firmware HTTP/HTTPS.

Após salvar a configuração, verifique o console do recetor para o caminho da solicitação e o JSON enviado. Mantenha este primeiro payload bruto como um fixture de teste para testes posteriores de parser e banco de dados.

3. Entenda o Payload IAMMETER Recebido

A IAMMETER usa uma estrutura JSON de medição central consistente em todos os transportes de envio suportados. O transporte altera como o payload chega, mas o modelo de medição permanece consistente.

Um payload normalmente inclui campos de nível de dispositivo, como:

  • SN — número de série do medidor usado para identificar o dispositivo;
  • version — versão do firmware do medidor;
  • method — método de mensagem ou tipo de payload;
  • Data ou Datas — arrays de medição.

Data é usado para um único canal de medição. Datas contém múltiplos arrays de medição para um medidor multicanal ou trifásico.

Exemplo de estrutura de canal único:

{
  "method": "uploadsn",
  "mac": "B0F8932A295C",
  "version": "i.75.98.71y",
  "server": "em",
  "SN": "12345678",
  "Data": [228.91, 1.61, 225, 15066.47, 0]
}

Não codifique uma contagem de arrays para todos os medidores. O número de canais e campos disponíveis depende do modelo do medidor e dos recursos de medição ativados.

Use a definição oficial ao implementar o parser:

3.1 Processamento Específico por Modelo

Mantenha o processamento específico por modelo separado do transporte recetor.

Por exemplo, WEM3046T e WEM3046TE medem a saída secundária de 5 A de um transformador de corrente externo. Seus valores devem ser convertidos com a relação CT aplicável para obter a medição do lado primário. Esta é uma característica do medidor e CT, não uma diferença de HTTP, MQTT ou TCP.

Portanto, um pipeline prático de ingestão separa:

  1. decodificação do transporte;
  2. validação JSON;
  3. identificação do medidor e canal;
  4. escalonamento ou normalização específica do modelo;
  5. armazenamento e cálculos de negócio.

4. Projete o Modelo de Dados de Ingestão

Armazene informações suficientes para reproduzir e diagnosticar a leitura original.

Um modelo mínimo útil inclui:

Campo Finalidade
SN do medidor Mapeia o payload para um dispositivo registado
Índice de canal ou fase Diferencia dados monofásicos, split-phase e trifásicos
Hora de receção do servidor Fornece um timestamp de ingestão consistente
Tensão Medição elétrica
Corrente Medição elétrica
Potência ativa Entrada para cálculo de importação/exportação ou carga em tempo real
kWh importado Energia cumulativa importada
kWh exportado Energia cumulativa exportada
Versão do firmware Suporta troubleshooting e compatibilidade do parser
Payload bruto Permite replay, auditoria e correção do parser

Campos adicionais como frequência, fator de potência e medições reativas devem ser armazenados quando o modelo e a configuração selecionados os fornecerem.

4.1 Mantenha Dados Brutos e Normalizados Separados

Para sistemas de produção, considere manter:

  • um registo de ingestão bruta imutável ou de retenção curta;
  • leituras normalizadas por canal usadas pela aplicação;
  • valores horários, diários e mensais agregados.

Isso facilita a correção da lógica de parsing ou relação CT sem perder o payload original.

4.2 Use o Horário de Receção do Servidor com Cuidado

Registe o horário em que o servidor aceitou o payload. Se o sistema de negócio também usar um timestamp do dispositivo ou fonte, armazene ambos os valores separadamente, em vez de substituir um pelo outro.

Atraso de rede, reconexões e processamento em fila podem fazer com que o horário de ingestão seja diferente do horário de medição. Defina o timestamp usado por gráficos, faturamento e alarmes antes da implantação em produção.

5. Implemente os Outros Tipos de Recetor

5.1 Recetor MQTT ou MQTTS

Para ingestão MQTT, o sistema do cliente fornece:

  • um broker MQTT acessível;
  • regras de autenticação e controle de acesso;
  • um serviço subscritor ou consumidor;
  • validação e persistência de payload;
  • monitoramento da saúde do broker e consumidor.

A IAMMETER publica dados em tempo real sob um tópico de dispositivo como:

device/{SN}/realtime

Use o guia dedicado para configuração do broker, credenciais, tópicos e considerações MQTTS:

O MQTT Discovery do Home Assistant não é necessário para uma integração geral cliente-servidor.

5.2 Recetor TCP

A IAMMETER fornece um listener TCP Node.js mínimo:

O exemplo escuta na porta 8000 e imprime os dados recebidos. Um recetor TCP de produção deve adicionalmente fornecer:

  • gerenciamento do ciclo de vida da conexão;
  • buffer e validação de payload;
  • tratamento seguro de chunks parciais ou combinados de socket;
  • identificação do dispositivo;
  • persistência e tratamento de erros;
  • monitoramento e limites controlados de recursos.

Não assuma que um evento data de socket sempre corresponde a uma mensagem completa da aplicação.

5.3 Recetor TLS

O exemplo oficial TLS demonstra um listener TLS com chave e certificado do servidor:

Antes do uso em produção, substitua os certificados e configurações de demonstração pela configuração de certificado, gerenciamento de chaves e segurança aprovada da organização. O recetor deve registar falhas TLS separadamente das falhas de validação de payload.

Os formatos de endereço do lado do medidor para TCP e TLS são mantidos no guia de interface de firmware.

6. Planeje o Intervalo de Envio e a Capacidade do Servidor

O firmware atual suporta um intervalo de envio para terceiros de até 2 segundos. Um intervalo curto é útil apenas quando o sistema recetor, armazenamento e aplicação precisam da resolução adicional.

Registos aproximados gerados por medidor:

Intervalo de envio Registos por medidor por dia 100 medidores por dia 1.000 medidores por dia
60 segundos 1.440 144.000 1.440.000
10 segundos 8.640 864.000 8.640.000
2 segundos 43.200 4.320.000 43.200.000

Estes números representam eventos de envio, não necessariamente linhas de banco de dados. Um payload trifásico pode ser normalizado em vários registos de canal, e índices, retenção de payload bruto ou armazenamento replicado aumentam o volume real do banco de dados.

O planejamento de capacidade deve incluir:

  • pico de conexões simultâneas;
  • solicitações ou mensagens por segundo;
  • custo de parsing JSON;
  • multiplicação de linhas por nível de canal;
  • índices e retenção do banco de dados;
  • painéis e consultas de agregação;
  • registos, retentativas e armazenamento de mensagens mortas;
  • tráfego de backup e replicação.

Para controle ou automação de um segundo na mesma LAN, considere Modbus TCP em vez de usar um pipeline de envio remoto.

7. Lidere com Confiabilidade e Qualidade de Dados

Um recetor de produção deve esperar falhas de rede e de aplicação.

7.1 Valide Cada Payload

Valide pelo menos:

  • sintaxe JSON;
  • campos de identidade obrigatórios;
  • estrutura de array esperada;
  • tipos numéricos e intervalos razoáveis;
  • mapeamento de modelo ou canal suportado;
  • variações de campo dependentes do firmware.

Mantenha payloads malformados em um caminho de diagnóstico controlado sem permitir que bloqueiem dispositivos válidos.

7.2 Planeje para Envios Duplicados e Ausentes

Não assuma que cada intervalo produz exatamente um registo armazenado permanentemente. Interrupções de rede, comportamento de reconexão, retentativas do servidor ou processamento da aplicação podem produzir eventos de ingestão ausentes ou repetidos.

Defina como o sistema de negócio irá:

  • detetar registos duplicados;
  • identificar lacunas;
  • distinguir um medidor silencioso de um recetor com falha;
  • evitar calcular energia somando cegamente registos cumulativos de kWh;
  • reconciliar energia cumulativa após uma interrupção.

7.3 Monitore o Caminho Completo dos Dados

Monitore mais do que o processo web ou socket. Sinais úteis incluem:

  • horário do último payload por medidor;
  • contagem de payloads inválidos;
  • tempo de resposta e taxa de erro do recetor;
  • conexões TCP/TLS ativas;
  • atraso do consumidor MQTT;
  • latência de escrita no banco de dados;
  • profundidade da fila;
  • uso de disco e tarefas de retenção.

8. Proteja o Sistema Recetor

Para um recetor voltado para a Internet:

  • prefira um transporte criptografado suportado pela implantação;
  • restrinja portas expostas e fontes de rede quando possível;
  • aplique autenticação MQTT e autorização de tópicos;
  • proteja endpoints HTTP com a arquitetura de segurança de rede ou aplicação circundante;
  • gerencie certificados TLS e chaves privadas de forma segura;
  • evite escrever credenciais ou payloads confidenciais completos nos registos da aplicação;
  • limite a taxa e isole tráfego malformado ou abusivo;
  • mantenha o sistema operacional, runtime e dependências atualizados.

Revise o comportamento atual do firmware MQTTS, TLS e HTTPS no guia de firmware e interface aberta antes de selecionar um design de segurança.

9. Lista de Verificação para Implantação em Produção

Medidor e rede

  • Versão do firmware registada e validada
  • SN do medidor mapeado para o local e canais corretos
  • Endereço e porta de destino verificados
  • Caminho DNS, firewall, NAT ou VPN testado
  • Intervalo de envio necessário confirmado

Recetor

  • Payload bruto capturado de cada modelo de medidor no escopo
  • Testes de parser criados a partir de fixtures de payload reais
  • Payloads de canal único e multicanal tratados
  • Processamento de relação CT WEM3046T/E validado quando aplicável
  • Payloads malformados e não suportados isolados com segurança
  • Recetor retorna ou mantém o comportamento esperado pelo transporte selecionado

Armazenamento e operações

  • Política de timestamp documentada
  • Política de dados duplicados e ausentes documentada
  • Capacidade do banco de dados calculada para a contagem de dispositivos e intervalo
  • Registos, métricas e alertas de última visualização por medidor ativados
  • Retenção, backup e recuperação testados
  • Certificados, credenciais e regras de acesso revisados
  • Interrupção de rede e reinicialização do recetor testadas

10. Documentação Relacionada

11. Capturas de Tela de Configuração do Lado do Medidor (Legado)

A versão original deste documento focava-se na configuração de firmware de medidor mais antigo. Estas capturas de tela são mantidas apenas para utilizadores que identificam uma instalação existente. Para novas integrações, use a WebUI atual e o firmware mais recente.

Página TCP legada

Configuração de servidor TCP IAMMETER legada

Página TLS legada

Configuração de servidor TLS IAMMETER legada

Página HTTP/HTTPS legada

Configuração de servidor HTTP/HTTPS IAMMETER legada

A documentação anterior do firmware também usava o método local de configuração /api/uploadinterval e descrevia um mínimo de seis segundos. O firmware atual expõe o intervalo na WebUI e suporta um mínimo documentado de 2 segundos.

Última atualização: 16 de julho de 2026

Topo