Spiacenti, il tuo browser non supporta JavaScript!
Accedi

Ricevi i Dati Energetici IAMMETER sul Tuo Server

Ricevi i Dati Energetici IAMMETER sul Tuo Server

I contatori energetici Wi-Fi IAMMETER possono inviare i dati di misura direttamente a un server, broker MQTT o piattaforma dati controllata dal cliente. Questo consente a sviluppatori e integratori di sistema di costruire il proprio EMS, BMS, servizio IoT, database o dashboard di monitoraggio senza utilizzare IAMMETER-Cloud come destinazione dei dati.

Questa guida affronta l'integrazione dal lato del server ricevente:

  • avviare un ricevitore di test;
  • catturare il primo payload del contatore;
  • identificare il contatore e i canali di misura;
  • normalizzare e memorizzare i dati;
  • stimare il volume di acquisizione;
  • preparare il ricevitore per la distribuzione in produzione.
Contatore IAMMETER
      │
      │ HTTP/HTTPS, MQTT/MQTTS o TCP/TLS
      ▼
Servizio di acquisizione del cliente
      │
      ├── Log del payload grezzo
      ├── Database time-series o relazionale
      ├── EMS / BMS / ERP
      └── Dashboard, servizi di reportistica e allarmi

Per le capacità del firmware lato contatore e i formati degli indirizzi, consulta la Guida alle API Locali e alle Interfacce Aperte IAMMETER. Per la scelta dell'architettura, vedi Sviluppa il Tuo Sistema di Monitoraggio Energetico.

1. Seleziona un'Architettura del Ricevitore

Il contatore può inviare le sue misurazioni utilizzando diversi trasporti. Il sistema ricevente dovrebbe selezionare un percorso di acquisizione principale.

Trasporto Componente del ricevitore Buon punto di partenza per
HTTP / HTTPS Endpoint web Backend REST e la prima integrazione più semplice
MQTT / MQTTS Broker MQTT e subscriber Piattaforme IoT esistenti e pipeline di messaggi
TCP / TLS Listener socket Collettori dedicati e servizi di protocollo personalizzati

HTTP è normalmente il modo più semplice per ispezionare il primo payload perché il ricevitore di test ufficiale può essere avviato con un piccolo esempio Node.js. MQTT è una scelta valida quando un broker fa già parte del sistema. TCP/TLS fornisce un'integrazione socket di livello inferiore ma richiede più ingegneria lato ricevitore.

I trasporti sicuri e i formati delle porte personalizzate sono mantenuti nella guida corrente del firmware, piuttosto che essere ripetuti qui.

2. Avvio Rapido: Ricevi il Primo Payload tramite HTTP

IAMMETER fornisce un esempio ufficiale di ricevitore HTTP Node.js per i test di integrazione.

2.1 Avvia il Ricevitore di Test

Scarica l'esempio da:

Esegui:

node Server.js

L'esempio è in ascolto sulla porta 8000. Quando arriva una richiesta:

  • raccoglie il corpo della richiesta HTTP;
  • stampa l'URL della richiesta;
  • stampa il corpo caricato;
  • restituisce lo stato HTTP 200 con una piccola risposta JSON di successo.

L'esempio è volutamente minimale. Non fornisce autenticazione, persistenza, validazione, limitazione della frequenza o sicurezza di produzione.

2.2 Rendi Raggiungibile il Ricevitore

Prima di configurare il contatore, conferma che:

  • il server sia in ascolto sull'interfaccia e sulla porta previste;
  • il firewall permetta la connessione;
  • il contatore possa risolvere il nome di dominio quando viene utilizzato un dominio;
  • eventuali NAT, reverse proxy o percorsi VPN funzionino;
  • l'URL finale raggiunga la route dell'applicazione prevista.

Per un test in LAN, il contatore e il ricevitore possono usare la stessa rete locale senza accesso a Internet. Per un ricevitore remoto, il sito deve avere un percorso verso il server.

2.3 Punta il Contatore verso il Ricevitore

Nella WebUI corrente del contatore, seleziona la modalità di esecuzione HTTP e inserisci una destinazione come:

{indirizzo-server}:8000/upload

Configura l'endpoint HTTP ricevente nella WebUI IAMMETER corrente

Gli endpoint HTTPS possono utilizzare la porta predefinita o una porta personalizzata. Le regole correnti per gli indirizzi, inclusi https://host:port, sono documentate nella sezione firmware HTTP/HTTPS.

Dopo aver salvato l'impostazione, controlla la console del ricevitore per il percorso della richiesta e il JSON caricato. Conserva questo primo payload grezzo come fixture di test per i successivi test del parser e del database.

3. Comprendi il Payload IAMMETER in Arrivo

IAMMETER utilizza una struttura JSON di misurazione principale coerente attraverso i trasporti di push supportati. Il trasporto cambia il modo in cui il payload arriva, ma il modello di misurazione rimane coerente.

Un payload normalmente include campi a livello di dispositivo come:

  • SN — numero di serie del contatore utilizzato per identificare il dispositivo;
  • version — versione del firmware del contatore;
  • method — metodo del messaggio o tipo di payload;
  • Data o Datas — array di misurazioni.

Data viene utilizzato per un singolo canale di misurazione. Datas contiene più array di misurazioni per un contatore multicanale o trifase.

Esempio di struttura a canale singolo:

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

Non硬编码are un conteggio di array per ogni contatore. Il numero di canali e i campi disponibili dipendono dal modello di contatore e dalle funzionalità di misurazione abilitate.

Utilizza la definizione autorevole quando implementi il parser:

3.1 Elaborazione Specifica per Modello

Mantieni l'elaborazione specifica per modello separata dal ricevitore di trasporto.

Ad esempio, WEM3046T e WEM3046TE misurano l'uscita secondaria da 5 A di un trasformatore di corrente esterno. I loro valori devono essere convertiti con il rapporto CT applicabile per ottenere la misurazione lato primario. Questa è una caratteristica del contatore e del CT, non una differenza di HTTP, MQTT o TCP.

Una pipeline di acquisizione pratica quindi separa:

  1. decodifica del trasporto;
  2. validazione JSON;
  3. identificazione del contatore e del canale;
  4. scalatura o normalizzazione specifica per modello;
  5. archiviazione e calcoli aziendali.

4. Progetta il Modello Dati di Acquisizione

Memorizza informazioni sufficienti per riprodurre e diagnosticare la lettura originale.

Un modello minimo utile include:

Campo Scopo
SN del contatore Mappa il payload a un dispositivo registrato
Indice del canale o della fase Distingue i dati monofase, bifase e trifase
Ora di ricezione del server Fornisce un timestamp di acquisizione coerente
Tensione Misurazione elettrica
Corrente Misurazione elettrica
Potenza attiva Ingresso/uscita in tempo reale o input per il calcolo del carico
kWh importati Energia importata cumulativa
kWh esportati Energia esportata cumulativa
Versione firmware Supporta la risoluzione dei problemi e la compatibilità del parser
Payload grezzo Consente replay, audit e correzione del parser

Campi aggiuntivi come frequenza, fattore di potenza e misurazioni reattive dovrebbero essere memorizzati quando il modello selezionato e la configurazione li forniscono.

4.1 Mantieni Separati i Dati Grezzi e Normalizzati

Per i sistemi di produzione, considera di mantenere:

  • un record di acquisizione grezzo immutabile o a breve conservazione;
  • letture normalizzate a livello di canale utilizzate dall'applicazione;
  • valori orari, giornalieri e mensili aggregati.

Questo facilita la correzione della logica di parsing o del rapporto CT senza perdere il payload originale.

4.2 Usa con Cautela l'Ora di Ricezione del Server

Registra l'ora in cui il server ha accettato il payload. Se il sistema aziendale utilizza anche un timestamp del dispositivo o della sorgente, memorizza entrambi i valori separatamente invece di sostituire l'uno con l'altro.

Il ritardo di rete, le riconnessioni e l'elaborazione in coda possono rendere l'ora di acquisizione diversa dall'ora di misurazione. Definisci il timestamp utilizzato per grafici, fatturazione e allarmi prima della distribuzione in produzione.

5. Implementa gli Altri Tipi di Ricevitore

5.1 Ricevitore MQTT o MQTTS

Per l'acquisizione MQTT, il sistema del cliente fornisce:

  • un broker MQTT raggiungibile;
  • regole di autenticazione e controllo degli accessi;
  • un servizio subscriber o consumer;
  • validazione e persistenza del payload;
  • monitoraggio della salute del broker e del consumer.

IAMMETER pubblica dati in tempo reale sotto un topic del dispositivo come:

device/{SN}/realtime

Utilizza la guida dedicata per la configurazione del broker, le credenziali, i topic e le considerazioni MQTTS:

La scoperta MQTT di Home Assistant non è richiesta per un'integrazione generale server-cliente.

5.2 Ricevitore TCP

IAMMETER fornisce un listener TCP Node.js minimale:

L'esempio è in ascolto sulla porta 8000 e stampa i dati ricevuti. Un ricevitore TCP di produzione deve inoltre fornire:

  • gestione del ciclo di vita della connessione;
  • buffering e validazione del payload;
  • gestione sicura di chunk socket parziali o combinati;
  • identificazione del dispositivo;
  • persistenza e gestione degli errori;
  • monitoraggio e limiti di risorse controllati.

Non assumere che un evento socket data corrisponda sempre a un messaggio applicativo completo.

5.3 Ricevitore TLS

L'esempio TLS ufficiale dimostra un listener TLS con una chiave del server e un certificato:

Prima dell'uso in produzione, sostituisci i certificati e le impostazioni dimostrative con il certificato, la gestione delle chiavi e la configurazione di sicurezza approvati dall'organizzazione. Il ricevitore dovrebbe registrare separatamente i fallimenti TLS dai fallimenti di validazione del payload.

I formati degli indirizzi lato contatore per TCP e TLS sono mantenuti nella guida delle interfacce del firmware.

6. Pianifica l'Intervallo di Upload e la Capacità del Server

Il firmware corrente supporta un intervallo di upload verso terze parti fino a 2 secondi. Un intervallo breve è utile solo quando il sistema ricevente, l'archiviazione e l'applicazione necessitano della risoluzione aggiuntiva.

Record approssimativi generati per contatore:

Intervallo di upload Record per contatore al giorno 100 contatori al giorno 1.000 contatori al giorno
60 secondi 1.440 144.000 1.440.000
10 secondi 8.640 864.000 8.640.000
2 secondi 43.200 4.320.000 43.200.000

Questi numeri rappresentano eventi di upload, non necessariamente righe del database. Un payload trifase può essere normalizzato in diversi record di canale, e gli indici, la conservazione del payload grezzo o l'archiviazione replicata aumentano il volume effettivo del database.

La pianificazione della capacità dovrebbe includere:

  • connessioni concorrenti di picco;
  • richieste o messaggi al secondo;
  • costo del parsing JSON;
  • moltiplicazione delle righe a livello di canale;
  • indici del database e conservazione;
  • dashboard e query di aggregazione;
  • log, tentativi e archiviazione dei messaggi non elaborabili;
  • traffico di backup e replica.

Per controllo o automazione al secondo sulla stessa LAN, considera Modbus TCP invece di utilizzare una pipeline di upload remota.

7. Gestisci Affidabilità e Qualità dei Dati

Un ricevitore di produzione dovrebbe aspettarsi guasti di rete e applicativi.

7.1 Valida Ogni Payload

Valida almeno:

  • sintassi JSON;
  • campi di identità richiesti;
  • struttura dell'array prevista;
  • tipi numerici e intervalli ragionevoli;
  • mapping del modello o del canale supportato;
  • variazioni di campo dipendenti dal firmware.

Mantieni i payload malformati in un percorso diagnostico controllato senza permettere loro di bloccare i dispositivi validi.

7.2 Pianifica Upload Duplicati e Mancanti

Non assumere che ogni intervallo produca esattamente un record永久emente memorizzato. Interruzioni di rete, comportamento di riconnessione, tentativi del server o elaborazione applicativa possono produrre eventi di acquisizione mancanti o ripetuti.

Definisci come il sistema aziendale:

  • rileverà i record duplicati;
  • identificherà le lacune;
  • distinguerà un contatore silenzioso da un ricevitore guasto;
  • eviterà di calcolare l'energia sommando ciecamente i registri kWh cumulativi;
  • riconcilierà l'energia cumulativa dopo un'interruzione.

7.3 Monitora il Percorso Completo dei Dati

Monitora più del semplice processo web o socket. Segnali utili includono:

  • ora dell'ultimo payload per contatore;
  • conteggio dei payload non validi;
  • tempo di risposta del ricevitore e tasso di errore;
  • connessioni TCP/TLS attive;
  • ritardo del consumer MQTT;
  • latenza di scrittura del database;
  • profondità della coda;
  • utilizzo del disco e processi di conservazione.

8. Proteggi il Sistema Ricevente

Per un ricevitore esposto a Internet:

  • preferisci un trasporto crittografato supportato dalla distribuzione;
  • limita le porte esposte e le sorgenti di rete dove possibile;
  • applica l'autenticazione MQTT e l'autorizzazione dei topic;
  • proteggi gli endpoint HTTP con l'architettura di sicurezza di rete o applicativa circostante;
  • gestisci in modo sicuro i certificati TLS e le chiavi private;
  • evita di scrivere credenziali o payload sensibili completi nei log applicativi;
  • limita la frequenza e isola il traffico malformato o abusivo;
  • mantieni aggiornati il sistema operativo, il runtime e le dipendenze.

Consulta il comportamento corrente del firmware MQTTS, TLS e HTTPS nella guida del firmware e delle interfacce aperte prima di selezionare una progettazione di sicurezza.

9. Checklist per la Distribuzione in Produzione

Contatore e rete

  • Versione del firmware registrata e validata
  • SN del contatore mappato al sito e ai canali corretti
  • Indirizzo di destinazione e porta verificati
  • Percorso DNS, firewall, NAT o VPN testato
  • Intervallo di upload richiesto confermato

Ricevitore

  • Payload grezzo catturato da ogni modello di contatore in ambito
  • Test del parser creati da fixture di payload reali
  • Payload a canale singolo e multicanale gestiti
  • Elaborazione del rapporto CT WEM3046T/E validata dove applicabile
  • Payload malformati e non supportati isolati in modo sicuro
  • Il ricevitore restituisce o mantiene il comportamento previsto dal trasporto selezionato

Archiviazione e operazioni

  • Politica dei timestamp documentata
  • Politica per dati duplicati e mancanti documentata
  • Capacità del database calcolata per il numero di dispositivi e l'intervallo
  • Log, metriche e avvisi ultimo-rilevato per contatore abilitati
  • Conservazione, backup e ripristino testati
  • Certificati, credenziali e regole di accesso revisionati
  • Interruzione di rete e riavvio del ricevitore testati

10. Documentazione Correlata

11. Screenshot della Configurazione Lato Contatore Legacy

La versione originale di questo documento si concentrava sulla configurazione del firmware più vecchio del contatore. Questi screenshot sono mantenuti solo per gli utenti che identificano un'installazione esistente. Per le nuove integrazioni, utilizza la WebUI corrente e il firmware più recente.

Pagina TCP legacy

Configurazione legacy del server TCP IAMMETER

Pagina TLS legacy

Configurazione legacy del server TLS IAMMETER

Pagina HTTP/HTTPS legacy

Configurazione legacy del server HTTP/HTTPS IAMMETER

La documentazione precedente del firmware utilizzava anche il metodo di configurazione locale /api/uploadinterval e descriveva un minimo di sei secondi. Il firmware corrente espone l'intervallo nella WebUI e supporta un minimo documentato di 2 secondi.

Ultimo aggiornamento: 16 luglio 2026

In alto