Sorry, uw browser ondersteunt geen JavaScript!
Inloggen

Ontvang IAMMETER-energiedata op uw eigen server

Ontvang IAMMETER-energiedata op uw eigen server

IAMMETER Wi-Fi-energiemeters kunnen meetgegevens rechtstreeks naar een server, MQTT-broker of dataplatform sturen die door de klant worden beheerd. Dit stelt ontwikkelaars en systeemintegrators in staat om hun eigen EMS, BMS, IoT-dienst, database of monitoringsdashboard te bouwen zonder IAMMETER-Cloud als gegevensbestemming te gebruiken.

Deze gids benadert de integratie vanaf de ontvangende serverzijde:

  • een testontvanger opzetten;
  • de eerste meter-payload vastleggen;
  • de meter en meetkanalen identificeren;
  • de gegevens normaliseren en opslaan;
  • het innamvolume schatten;
  • de ontvanger voorbereiden op productie-implementatie.
IAMMETER meter
      │
      │ HTTP/HTTPS, MQTT/MQTTS of TCP/TLS
      ▼
Innamedienst van de klant
      │
      ├── Log van ruwe payloads
      ├── Tijdreeks- of relationele database
      ├── EMS / BMS / ERP
      └── Dashboard-, rapport- en alarmdiensten

Raadpleeg voor meterzijde firmwaremogelijkheden en adresformaten de IAMMETER Local API and Open Interface Guide. Voor architectuurkeuze, zie Develop Your Own Energy Monitoring System.

1. Kies een ontvangerarchitectuur

De meter kan zijn metingen via verschillende transporten verzenden. Het ontvangende systeem moet één primair innamepad kiezen.

Transport Ontvangercomponent Goed startpunt voor
HTTP / HTTPS Web-eindpunt REST-backends en de eenvoudigste eerste integratie
MQTT / MQTTS MQTT-broker en -abonnee Bestaande IoT-platforms en berichtpijplijnen
TCP / TLS Socket-listener Dedicated collectors en aangepaste protocoldiensten

HTTP is normaal gesproken de eenvoudigste manier om de eerste payload te inspecteren, omdat de officiële testontvanger kan worden gestart met een klein Node.js-voorbeeld. MQTT is een goede keuze wanneer er al een broker deel uitmaakt van het systeem. TCP/TLS biedt een socketintegratie op een lager niveau, maar vereist meer engineering aan de ontvangerzijde.

De beveiligde transporten en indelingen voor aangepaste poorten worden onderhouden in de huidige firmwarehandleiding, in plaats van hier te worden herhaald.

2. Snel aan de slag: ontvang de eerste payload via HTTP

IAMMETER biedt een officieel Node.js HTTP-ontvangervoorbeeld voor integratietests.

2.1 Start de testontvanger

Download het voorbeeld van:

Voer uit:

node Server.js

Het voorbeeld luistert op poort 8000. Wanneer een verzoek binnenkomt, gebeurt het volgende:

  • de HTTP-verzoekbody wordt verzameld;
  • de verzoek-URL wordt afgedrukt;
  • de geüploade body wordt afgedrukt;
  • er wordt HTTP-status 200 geretourneerd met een kleine JSON-succesrespons.

Het voorbeeld is bewust minimaal. Het biedt geen authenticatie, persistentie, validatie, snelheidsbeperking of productiebeveiliging.

2.2 Maak de ontvanger bereikbaar

Controleer voordat u de meter configureert het volgende:

  • de server luistert op de verwachte interface en poort;
  • de firewall staat de verbinding toe;
  • de meter kan de domeinnaam resolveren wanneer een domein wordt gebruikt;
  • eventuele NAT, reverse proxy of VPN-pad werkt;
  • de uiteindelijke URL bereikt de beoogde applicatieroute.

Voor een LAN-test kunnen de meter en ontvanger hetzelfde lokale netwerk gebruiken zonder internettoegang. Voor een externe ontvanger moet de site een route naar de server hebben.

2.3 Richt de meter naar de ontvanger

Selecteer in de huidige meter-WebUI de HTTP-runmodus en voer een bestemming in zoals:

{server-adres}:8000/upload

Configureer het HTTP-eindpunt voor ontvangst in de huidige IAMMETER WebUI

HTTPS-eindpunten kunnen de standaardpoort of een aangepaste poort gebruiken. De huidige adresregels, inclusief https://host:port, worden beschreven in de HTTP/HTTPS-firmwaresectie.

Nadat u de instelling hebt opgeslagen, controleert u de ontvangerconsole op het verzoekpad en de geüploade JSON. Bewaar deze eerste ruwe payload als testmateriaal voor latere parser- en databasetests.

3. Begrijp de binnenkomende IAMMETER-payload

IAMMETER gebruikt een consistente JSON-meetstructuur voor alle ondersteunde pushtransporten. Het transport verandert hoe de payload aankomt, maar het meetmodel blijft consistent.

Een payload bevat normaal gesproken velden op apparaatniveau zoals:

  • SN — serienummer van de meter, gebruikt om het apparaat te identificeren;
  • version — firmwareversie van de meter;
  • method — berichtmethode of payloadtype;
  • Data of Datas — meetarrays.

Data wordt gebruikt voor een enkel meetkanaal. Datas bevat meerdere meetarrays voor een meerkanaals- of driefasenmeter.

Voorbeeld van een enkelkanaalsstructuur:

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

Hardcodeer niet één arraytelling voor elke meter. Het aantal kanalen en beschikbare velden hangt af van het metermodel en de ingeschakelde meetfuncties.

Gebruik de gezaghebbende definitie bij het implementeren van de parser:

3.1 Modelspecifieke verwerking

Houd modelspecifieke verwerking gescheiden van het transportontvangst.

WEM3046T en WEM3046TE meten bijvoorbeeld de 5 A secundaire uitgang van een externe stroomtransformator. Hun waarden moeten worden omgerekend met de toepasselijke CT-verhouding om de primaire meting te verkrijgen. Dit is een kenmerk van de meter en CT, niet een verschil in HTTP, MQTT of TCP.

Een praktische innamestream scheidt daarom:

  1. transportdecodering;
  2. JSON-validatie;
  3. meter- en kanaalidentificatie;
  4. modelspecifieke schaling of normalisatie;
  5. opslag en bedrijfsberekeningen.

4. Ontwerp het innamemodel voor gegevens

Sla voldoende informatie op om de oorspronkelijke meting te kunnen reproduceren en diagnosticeren.

Een nuttig minimummodel omvat:

Veld Doel
Meter-SN Koppelt de payload aan een geregistreerd apparaat
Kanaal- of fase-index Onderscheidt enkelfasige, split-phase en driefasige gegevens
Ontvangsttijd op server Zorgt voor een consistente innametijdstempel
Spanning (Voltage) Elektrische meting
Stroom (Current) Elektrische meting
Actief vermogen (Active power) Invoer voor realtime import/export of verbruiksberekening
Import kWh Cumulatieve geïmporteerde energie
Export kWh Cumulatieve geëxporteerde energie
Firmwareversie Ondersteunt probleemoplossing en parsercompatibiliteit
Ruwe payload Maakt herhaling, controle en parsercorrectie mogelijk

Aanvullende velden zoals frequentie, arbeidsfactor en blindmetingen moeten worden opgeslagen wanneer het geselecteerde model en de configuratie deze bieden.

4.1 Houd ruwe en genormaliseerde gegevens gescheiden

Overweeg voor productiesystemen het volgende gescheiden te houden:

  • een onveranderlijk of kort bewaard ruw innamerecord;
  • genormaliseerde metingen op kanaalniveau die door de applicatie worden gebruikt;
  • geaggregeerde uurlijkse, dagelijkse en maandelijkse waarden.

Dit maakt het gemakkelijker om parser- of CT-verhoudingslogica te corrigeren zonder de oorspronkelijke payload te verliezen.

4.2 Gebruik de ontvangsttijd op de server zorgvuldig

Leg het tijdstip vast waarop de server de payload heeft geaccepteerd. Als het bedrijfssysteem ook een apparaat- of brontijdstempel gebruikt, sla dan beide waarden afzonderlijk op in plaats van de ene door de andere te vervangen.

Netwerkvertraging, herverbindingen en verwerking in de wachtrij kunnen ervoor zorgen dat de innametijd afwijkt van de meettijd. Definieer de tijdstempel die wordt gebruikt door grafieken, facturatie en alarmen vóór productie-implementatie.

5. Implementeer de andere ontvangertypen

5.1 MQTT- of MQTTS-ontvanger

Voor MQTT-inname levert het klantsysteem:

  • een bereikbare MQTT-broker;
  • authenticatie- en toegangscontroleregels;
  • een abonnee- of consumerdienst;
  • payload-validatie en persistentie;
  • monitoring van de broker- en consumerstatus.

IAMMETER publiceert realtime gegevens onder een apparaatonderwerp zoals:

device/{SN}/realtime

Gebruik de speciale gids voor brokerconfiguratie, inloggegevens, onderwerpen en MQTTS-overwegingen:

Home Assistant MQTT Discovery is niet vereist voor een algemene klant-serverintegratie.

5.2 TCP-ontvanger

IAMMETER biedt een minimale Node.js TCP-listener:

Het voorbeeld luistert op poort 8000 en drukt ontvangen gegevens af. Een productie-TCP-ontvanger moet bovendien het volgende bieden:

  • beheer van de verbindingslevenscyclus;
  • buffering en validatie van payloads;
  • veilige verwerking van gedeeltelijke of gecombineerde socket-chunks;
  • apparaatidentificatie;
  • persistentie en foutafhandeling;
  • monitoring en gecontroleerde resourcebeperkingen.

Ga er niet vanuit dat één socket data-gebeurtenis altijd overeenkomt met één compleet applicatiebericht.

5.3 TLS-ontvanger

Het officiële TLS-voorbeeld toont een TLS-listener met een serversleutel en -certificaat:

Vervang vóór productiegebruik de demonstratiecertificaten en -instellingen door de goedgekeurde certificaat-, sleutelbeheer- en beveiligingsconfiguratie van de organisatie. De ontvanger moet TLS-fouten apart loggen van payload-validatiefouten.

De adresformaten aan de meterzijde voor TCP en TLS worden onderhouden in de firmware-interfacehandleiding.

6. Plan het uploadinterval en de servercapaciteit

De huidige firmware ondersteunt een uploadinterval voor derden tot 2 seconden. Een kort interval is alleen zinvol wanneer het ontvangende systeem, de opslag en de applicatie de extra resolutie nodig hebben.

Geschatte records per meter:

Uploadinterval Records per meter per dag 100 meters per dag 1.000 meters per dag
60 seconden 1.440 144.000 1.440.000
10 seconden 8.640 864.000 8.640.000
2 seconden 43.200 4.320.000 43.200.000

Deze aantallen vertegenwoordigen uploadgebeurtenissen, niet noodzakelijkerwijs database-rijen. Een driefasen-payload kan worden genormaliseerd naar meerdere kanaalrecords, en indexen, retentie van ruwe payloads of gerepliceerde opslag verhogen het werkelijke databasevolume.

Capaciteitsplanning moet het volgende omvatten:

  • piek gelijktijdige verbindingen;
  • verzoeken of berichten per seconde;
  • JSON-parsingkosten;
  • rijvermenigvuldiging op kanaalniveau;
  • database-indexen en retentie;
  • dashboards en aggregatiequeries;
  • logs, retries en dead-letter-opslag;
  • back-up- en replicatieverkeer.

Overweeg voor besturing of automatisering binnen één seconde op hetzelfde LAN Modbus TCP in plaats van een uploadpijplijn op afstand te gebruiken.

7. Zorg voor betrouwbaarheid en gegevenskwaliteit

Een productieontvanger moet rekening houden met netwerk- en applicatiefouten.

7.1 Valideer elke payload

Valideer ten minste:

  • JSON-syntax;
  • vereiste identiteitsvelden;
  • verwachte arraystructuur;
  • numerieke typen en redelijke bereiken;
  • ondersteunde model- of kanaalkoppeling;
  • firmware-afhankelijke veldvariaties.

Houd misvormde payloads in een gecontroleerd diagnostisch pad zonder dat ze geldige apparaten kunnen blokkeren.

7.2 Houd rekening met dubbele en ontbrekende uploads

Ga er niet vanuit dat elk interval precies één permanent opgeslagen record oplevert. Netwerkonderbrekingen, herverbindingsgedrag, server-retries of applicatieverwerking kunnen leiden tot ontbrekende of herhaalde innames.

Definieer hoe het bedrijfssysteem:

  • dubbele records detecteert;
  • hiaten identificeert;
  • een stille meter onderscheidt van een defecte ontvanger;
  • energieberekening vermijdt door blindelings cumulatieve kWh-registers op te tellen;
  • cumulatieve energie na een onderbreking reconcileert.

7.3 Monitor het volledige datapad

Monitor meer dan alleen het web- of socketproces. Nuttige signalen zijn onder andere:

  • laatste payloadtijd per meter;
  • aantal ongeldige payloads;
  • responstijd en foutpercentage van de ontvanger;
  • actieve TCP/TLS-verbindingen;
  • MQTT-consumer-achterstand;
  • databaseschrijflatentie;
  • wachtrijdiepte;
  • schijfgebruik en retentietaken.

8. Beveilig het ontvangende systeem

Voor een internetgerichte ontvanger:

  • geef de voorkeur aan een versleuteld transport dat door de implementatie wordt ondersteund;
  • beperk blootgestelde poorten en netwerkbronnen waar mogelijk;
  • pas MQTT-authenticatie en onderwerpauthorisatie toe;
  • bescherm HTTP-eindpunten met de omringende netwerk- of applicatiebeveiligingsarchitectuur;
  • beheer TLS-certificaten en privésleutels veilig;
  • vermijd het schrijven van inloggegevens of volledige gevoelige payloads naar applicatielogs;
  • beperk de snelheid van en isoleer misvormd of misbruikend verkeer;
  • houd het besturingssysteem, de runtime en afhankelijkheden up-to-date.

Raadpleeg het huidige MQTTS-, TLS- en HTTPS-firmwaregedrag in de firmware- en open-interfacehandleiding voordat u een beveiligingsontwerp kiest.

9. Checklist voor productie-implementatie

Meter en netwerk

  • Firmwareversie geregistreerd en gevalideerd
  • Meter-SN gekoppeld aan de juiste site en kanalen
  • Bestemmingsadres en -poort geverifieerd
  • DNS, firewall, NAT of VPN-pad getest
  • Vereist uploadinterval bevestigd

Ontvanger

  • Ruwe payload vastgelegd van elk metermodel in scope
  • Parser-tests gemaakt op basis van echte payloads
  • Enkel- en meerkanaals-payloads verwerkt
  • WEM3046T/E CT-verhoudingsverwerking gevalideerd waar van toepassing
  • Misvormde en niet-ondersteunde payloads veilig geïsoleerd
  • Ontvanger retourneert of handhaaft het gedrag dat het geselecteerde transport verwacht

Opslag en operaties

  • Tijdstempelbeleid gedocumenteerd
  • Beleid voor dubbele en ontbrekende gegevens gedocumenteerd
  • Databasecapaciteit berekend voor het aantal apparaten en interval
  • Logs, metrieken en per-meter laatste-keer-gezien-waarschuwingen ingeschakeld
  • Retentie, back-up en herstel getest
  • Certificaten, inloggegevens en toegangsregels gecontroleerd
  • Netwerkonderbreking en herstart van ontvanger getest

10. Gerelateerde documentatie

11. Legacy-configuratieschermafbeeldingen aan meterzijde

De oorspronkelijke versie van dit document was gericht op het configureren van oudere meter-firmware. Deze schermafbeeldingen worden alleen bewaard voor gebruikers die een bestaande installatie identificeren. Gebruik voor nieuwe integraties de huidige WebUI en nieuwste firmware.

Legacy TCP-pagina

Legacy IAMMETER TCP-serverconfiguratie

Legacy TLS-pagina

Legacy IAMMETER TLS-serverconfiguratie

Legacy HTTP/HTTPS-pagina

Legacy IAMMETER HTTP/HTTPS-serverconfiguratie

Eerdere firmwaredocumentatie gebruikte ook de lokale /api/uploadinterval-configuratiemethode en beschreef een minimum van zes seconden. De huidige firmware toont het interval in de WebUI en ondersteunt een gedocumenteerd minimum van 2 seconden.

Laatst bijgewerkt: 16 juli 2026

Boven