Desculpe, seu navegador não suporta JavaScript!

Assinatura de dados de energia em tempo real via MQTT Broker (edição de 2025)

1. Introdução

IAMMETER-nuvemé uma plataforma profissional de monitoramento de energia e gerenciamento fotovoltaico. Além de suas poderosas funções de visualização e geração de relatórios, o IAMMETER-Cloud também oferece interfaces de dados flexíveis. Isso permite que usuários com requisitos personalizados usem o IAMMETER-Cloud como uma solução completa.middleware de dados, recuperando dados programaticamente por meio de código.

Existem duas maneiras principais de obter dados do IAMMETER-Cloud usando código:

  • Assine os dados através deBroker MQTT da IAMMETER(o foco deste artigo)
  • Ligue para o número oficial da IAMMETER-Cloud.APIs

Este guia explica como se inscrever em tópicos MQTT do IAMMETER, interpretar estruturas de dados (tanto para medidores monofásicos quanto trifásicos) e implementar exemplos funcionais em Python e Node.js.


2. Visão geral do broker MQTT IAMMETER

Observação:O broker MQTT IAMMETER foi originalmente projetado como umserviço de desenvolvimento e testePor conveniência, não faz parte da oferta padrão do IAMMETER-Cloud (embora esteja estável e em funcionamento há mais de 5 anos). Para implantações em produção ou em grande escala, recomendamos configurar o seucorretor MQTT próprio.

Configuração do Broker MQTT IAMMETER

parâmetro Descrição
Endereço do corretor mqtt.iammeter.com
Porta 1883(sem SSL)
Nome de usuário / Senha Deve ser criado emIAMMETER Cloud → Configurações → Configurações MQTTCaptura de tela das configurações MQTT
Formato do tópico dispositivo/{SN}/tempo real
Formato da carga útil JSON

⚠️ Importante:FazernãoUse aqui suas credenciais de login do IAMMETER Cloud. Você precisaCrie um nome de usuário e senha dedicados para MQTT.no painel de controle do IAMMETER Cloud.

Configure o medidor IAMMETER para usar o modo MQTT.

Configure seu medidor IAMMETER paraModo de upload MQTT(verguia de configuração de firmware) e insira os parâmetros do broker MQTT IAMMETER.

Configure o medidor para o modo de upload MQTT e defina os parâmetros do broker MQTT IAMMETER.


3. Formato do tópico MQTT

Cada dispositivo IAMMETER publica seus dados em tempo real no seguinte tópico:

dispositivo/{SN}/tempo real

Onde{SN}é o número de série do seu medidor. Por exemplo, se o número de série do seu dispositivo forDA2BED94O tema será:

dispositivo/DA2BED94/tempo real

Você pode se inscrever neste tópico para receber dados de medição contínuos em tempo real.


4. Formato dos dados

4.1 Formato de dados do medidor monofásico

Um medidor IAMMETER monofásico publica dados em tempo real no formato JSON da seguinte forma:

{
"método": "1-272",
"mac": "B0F8932A295C",
"versão": "i.91.062T6",
"servidor": "em",
"SN": "DA2BED94",
"Dados": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
índice Campo Descrição Unidade
1 Tensão Tensão de linha atual V
2 Atual Corrente de linha atual UMA
3 Poder Potência Ativa C
4 Energia para frente Energia importada (consumida) kWh
5 Energia Reversa Energia exportada (injeção na rede, solar) kWh
6 Frequência Frequência da rede Hz
7 fator de potência Fator de potência atual PF

🟢 Notas:

  • Potência positiva → consumo de energia
  • Potência negativa → exportação de energia (ex.: injeção de energia solar na rede)

4.2 Formato de dados do medidor trifásico (WEM3080T / WEM3046T / WEM3050T)

Os medidores trifásicos IAMMETER publicam dados em um formato JSON semelhante, com três matrizes correspondentes a cada fase.

{
"método": "4-9",
"mac": "849DC2CEC625",
"versão": "i.91.062T6",
"servidor": "em",
"SN": "CB0A0CFB",
"EA": {
"Reativo": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},

"Dados": [
[225.9, 1.260, 194.0, 305.110, 0.000, 49.99, 0.87],
[225.8, 1.260, 193.0, 302.690, 0.000, 49.99, 0.86],
[225.9, 1.260, 192.0, 300.890, 0.000, 49.99, 0.86]
]
}

Dadosé uma lista contendotrês matrizes, cada um correspondendo afase A, B e C. Cada matriz interna tem a mesma estrutura que a monofásicaDadosvariedade.

índice Campo Descrição Unidade
1 Tensão tensão de fase V
2 Atual corrente de fase UMA
3 Poder Potência Ativa C
4 Energia para frente Energia importada kWh
5 Energia Reversa Energia exportada kWh
6 Frequência Frequência da rede Hz
7 fator de potência fator de potência de fase PF

Além dos dados reais de potência, quandoMedição de potência reativaSe estiver ativado, você também verá oEAseção da seguinte forma:

"EA": {
"Reativo": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}

Esta seção mostradados de medição reativa, que aparece somente quando ofunção de teste reativoEstá ativado (veja a captura de tela abaixo).

Ative a medição reativa no medidor.

Cada matriz representa as três fases (A, B, C), mostrandoPotência reativa (Q em kVar)eEnergia Reativa (kVARh).

Q (kVar):Potência reativa — positiva = indutiva, negativa = capacitivakVARh:Energia reativa — cada fase inclui dois valores de kVARh: um paracarga indutivae um paracarga capacitiva.


5. Exemplo em Python: Assinatura de dados em tempo real

Abaixo está um script Python funcional usando opaho-mqttbiblioteca.

import paho.mqtt.client as mqtt
import json

# Configuração do Broker MQTT
MQTT_BROKER = "mqtt.iammeter.com"

MQTT_PORT = 1883
MQTT_USER = "seu_nome_de_usuário_mqtt" # Defina em IAMMETER Cloud → Configurações MQTT
MQTT_PASS = "sua_senha_mqtt"
TOPIC = "device/DA2BED94/realtime" # Substitua pelo número de série do seu dispositivo

# Callback quando conectado ao broker
def on_connect(client, userdata, flags, rc):

if rc == 0:

print("✅ Conectado ao Broker MQTT IAMMETER com sucesso")

client.subscribe(TOPIC)

print(f"📡 Inscrito no tópico: {TOPIC}")

else:

print(f"❌ Conexão falhou com o código {rc}")

# Callback quando uma mensagem é recebida
def on_message(client, userdata, msg):

payload = json.loads(msg.payload.decode())

print("📊 Dados em tempo real recebidos:")

print(json.dumps(payload, indent=2, ensure_ascii=False))

# Inicializa o cliente MQTT
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message

# Conectar ao broker e iniciar o loop
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()

6. Exemplo de Node.js

Recomendamos experimentar este interessante projeto de código aberto: Ele usaNode.jspara se inscrever para receber dados em tempo real do broker MQTT IAMMETER e visualizá-los em uminterface web, criando um painel de controle em tempo real incrível.

🔗 https://github.com/lewei50/iammeterJS


7. Casos de Uso Práticos

  1. Automação residencial inteligenteIntegre dados de energia em tempo real emHome AssistantouNode-REDPara acionar ações de automação (por exemplo, ligar um aquecedor quando a geração de energia solar for alta).
  2. Visualização de dados locaisArmazene os dados MQTT recebidos emInfluxoDBe visualize-o comPainéis do Grafana.
  3. Nuvem privada ou computação de bordaRecupere dados de energia em tempo real diretamente via MQTT para análises personalizadas ou lógica de controle, sem depender da nuvem IAMMETER.

8. Resolução de problemas

Emitir Possível causa/solução
Não foi possível conectar ao broker. Verifique se seu nome de usuário/senha MQTT estão configurados corretamente no IAMMETER Cloud.
Nenhum dado recebido Verifique o formato do seu tópico (dispositivo/{SN}/tempo real) e certifique-se de que o medidor esteja online.
Atraso de dados Verifique a estabilidade da sua rede ou a intensidade do sinal Wi-Fi.
Vários medidores Você pode se inscrever em vários tópicos simultaneamente (um por rede social).

9. Conclusão

UsandoBroker MQTT IAMMETER, você pode acessar facilmentefluxos de dados de energia em tempo reala partir dos seus dispositivos IAMMETER. É um método poderoso e flexível para construirpainéis de controle locais, automações inteligentes ou sistemas de otimização de energia baseados em IA.


📘 Referências


Você gostaria que eu fizesse umVersão da postagem do blog formatada em Markdown(Pronto para publicação no blog oficial do IAMMETER, com destaque de sintaxe e links de imagem incorporados intactos)?

Principal