Съжаляваме, вашият браузър не поддържа JavaScript!
Вход

Получавайте данни за енергията от IAMMETER на собствения си сървър

Получавайте данни за енергията от IAMMETER на собствения си сървър

Wi-Fi електромерите на IAMMETER могат да изпращат измервателни данни директно към сървър, MQTT брокер или платформа за данни, контролирани от клиента. Това позволява на разработчиците и системните интегратори да изградят собствена EMS, BMS, IoT услуга, база данни или табло за мониторинг, без да използват IAMMETER-Cloud като дестинация за данните.

Това ръководство разглежда интеграцията от страната на приемащия сървър:

  • стартиране на тестов приемник;
  • улавяне на първия пакет данни от електромера;
  • идентифициране на електромера и измервателните канали;
  • нормализиране и съхраняване на данните;
  • оценка на обема на приеманите данни;
  • подготовка на приемника за продуктивно внедряване.
IAMMETER измервателен уред
      │
      │ HTTP/HTTPS, MQTT/MQTTS или TCP/TLS
      ▼
Услуга за приемане на данни на клиента
      │
      ├── Дневник на необработените данни
      ├── База данни за времеви редове или релационна база данни
      ├── EMS / BMS / ERP
      └── Услуги за табла, отчети и аларми

За възможностите на фърмуера от страната на електромера и форматите на адресите използвайте Ръководство за локалния API и отворения интерфейс на IAMMETER. За избор на архитектура вижте Разработете собствена система за мониторинг на енергия.

1. Избор на архитектура на приемника

Електромерът може да изпраща измерванията си чрез няколко транспорта. Приемащата система трябва да избере един основен път за приемане на данни.

Транспорт Компонент на приемника Добра отправна точка за
HTTP / HTTPS Уеб крайна точка REST среди и най-простата първа интеграция
MQTT / MQTTS MQTT брокер и абонат Съществуващи IoT платформи и потоци от съобщения
TCP / TLS Слушател на сокет Специализирани колектори и услуги с персонализиран протокол

HTTP обикновено е най-лесният начин да се инспектира първият пакет данни, тъй като официалният тестов приемник може да бъде стартиран с малък пример на Node.js. MQTT е силен избор, когато брокер вече е част от системата. TCP/TLS предоставя интеграция на по-ниско ниво чрез сокет, но изисква повече инженерна работа от страната на приемника.

Сигурните транспорти и форматите с персонализиран порт се поддържат в актуалното ръководство за фърмуера, а не се повтарят тук.

2. Бърз старт: получаване на първия пакет данни по HTTP

IAMMETER предоставя официален пример за HTTP приемник на Node.js за тестване на интеграцията.

2.1 Стартиране на тестовия приемник

Изтеглете примера от:

Изпълнете:

node Server.js

Примерът слуша на порт 8000. Когато пристигне заявка, той:

  • събира тялото на HTTP заявката;
  • отпечатва URL адреса на заявката;
  • отпечатва каченото тяло;
  • връща HTTP статус 200 с малък JSON отговор за успех.

Примерът е умишлено минимален. Той не предоставя удостоверяване, устойчиво съхранение, валидиране, ограничаване на честотата на заявките или продуктивна сигурност.

2.2 Осигуряване на достъп до приемника

Преди да конфигурирате електромера, потвърдете, че:

  • сървърът слуша на очаквания интерфейс и порт;
  • защитната стена позволява връзката;
  • електромерът може да разреши домейн името, когато се използва домейн;
  • всеки път през NAT, обратен прокси сървър или VPN работи;
  • крайният URL адрес достига до предвидения маршрут на приложението.

За тест в локална мрежа електромерът и приемникът могат да използват една и съща локална мрежа без достъп до интернет. За отдалечен приемник обектът трябва да има маршрут до сървъра.

2.3 Насочване на електромера към приемника

В актуалния уеб интерфейс на електромера изберете режим на работа HTTP и въведете дестинация като:

{server-address}:8000/upload

Конфигуриране на приемащата HTTP крайна точка в актуалния уеб интерфейс на IAMMETER

Крайните точки по HTTPS могат да използват порта по подразбиране или персонализиран порт. Актуалните правила за адресите, включително https://host:port, са документирани в раздела за HTTP/HTTPS фърмуер.

След като запазите настройката, проверете конзолата на приемника за пътя на заявката и качения JSON. Запазете този първи необработен пакет данни като тестов пример за последващи тестове на анализатора и базата данни.

3. Разбиране на входящия пакет данни от IAMMETER

IAMMETER използва последователна основна JSON структура на измерванията при всички поддържани транспорти за изпращане. Транспортът променя начина, по който пристига пакетът данни, но моделът на измерванията остава последователен.

Пакетът данни обикновено включва полета на ниво устройство като:

  • SN — сериен номер на електромера, използван за идентифициране на устройството;
  • version — версия на фърмуера на електромера;
  • method — метод на съобщението или тип на пакета данни;
  • Data или Datas — масиви с измервания.

Data се използва за един измервателен канал. Datas съдържа множество масиви с измервания за многоканален или трифазен електромер.

Пример за структура с един канал:

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

Не задавайте твърдо един и същ брой елементи в масива за всички електромери. Броят на каналите и наличните полета зависят от модела на електромера и от включените функции за измерване.

Използвайте официалното определение, когато реализирате анализатора:

3.1 Обработка, специфична за модела

Дръжте обработката, специфична за модела, отделно от транспортния приемник.

Например WEM3046T и WEM3046TE измерват 5 A вторичен изход на външен токов трансформатор. Техните стойности трябва да бъдат преобразувани с приложимия коефициент на трансформатора, за да се получи измерването от първичната страна. Това е характеристика на електромера и токовия трансформатор, а не разлика между HTTP, MQTT или TCP.

Практичен конвейер за приемане на данни затова разделя:

  1. декодиране на транспорта;
  2. валидиране на JSON;
  3. идентифициране на електромера и канала;
  4. мащабиране или нормализиране, специфично за модела;
  5. съхранение и бизнес изчисления.

4. Проектиране на модела на данните за приемане

Съхранявайте достатъчно информация, за да можете да възпроизведете и диагностицирате първоначалното отчитане.

Полезен минимален модел включва:

Поле Предназначение
SN на електромера Свързва пакета данни с регистрирано устройство
Индекс на канал или фаза Разграничава данни за еднофазен, двуфазен и трифазен режим
Време на получаване от сървъра Осигурява последователен времеви печат на приемане
Напрежение Електрическо измерване
Ток Електрическо измерване
Активна мощност Вход за изчисляване на вноса/износа в реално време или на натоварването
Внесени kWh Кумулативна внесена енергия
Изнесени kWh Кумулативна изнесена енергия
Версия на фърмуера Подпомага отстраняването на проблеми и съвместимостта на анализатора
Необработен пакет данни Позволява повторно възпроизвеждане, одит и коригиране на анализатора

Допълнителни полета като честота, фактор на мощността и реактивни измервания трябва да се съхраняват, когато избраният модел и конфигурация ги предоставят.

4.1 Дръжте необработените и нормализираните данни отделно

За продуктивни системи обмислете поддържането на:

  • неизменяем запис за приемане на необработени данни или такъв с кратък срок на съхранение;
  • нормализирани отчитания на ниво канал, използвани от приложението;
  • агрегирани почасови, дневни и месечни стойности.

Това улеснява коригирането на логиката за анализ или за коефициента на токовия трансформатор, без да се губи първоначалният пакет данни.

4.2 Използвайте внимателно времето на получаване от сървъра

Записвайте момента, в който сървърът е приел пакета данни. Ако бизнес системата използва също времеви печат от устройството или от източника, съхранявайте двете стойности отделно, вместо да заменяте едната с другата.

Мрежово закъснение, повторни връзки и обработка на опашка могат да направят времето на приемане различно от времето на измерване. Определете времевия печат, използван от графиките, фактурирането и алармите, преди продуктивното внедряване.

5. Реализиране на останалите типове приемници

5.1 MQTT или MQTTS приемник

За приемане на данни по MQTT системата на клиента предоставя:

  • достъпен MQTT брокер;
  • правила за удостоверяване и контрол на достъпа;
  • абонатна или потребителска услуга;
  • валидиране и устойчиво съхранение на пакетите данни;
  • мониторинг на състоянието на брокера и потребителя.

IAMMETER публикува данни в реално време в тема на устройството като:

device/{SN}/realtime

Използвайте специализираното ръководство за конфигурация на брокера, идентификационни данни, теми и съображения за MQTTS:

MQTT Discovery за Home Assistant не е необходим за обща интеграция със сървър на клиента.

5.2 TCP приемник

IAMMETER предоставя минимален TCP слушател на Node.js:

Примерът слуша на порт 8000 и отпечатва получените данни. Продуктивният TCP приемник трябва допълнително да предоставя:

  • управление на жизнения цикъл на връзката;
  • буфериране и валидиране на пакетите данни;
  • безопасна обработка на частични или обединени части от сокета;
  • идентифициране на устройството;
  • устойчиво съхранение и обработка на грешки;
  • мониторинг и контролирани ограничения на ресурсите.

Не приемайте, че едно събитие data на сокета винаги е равно на едно пълно съобщение на приложението.

5.3 TLS приемник

Официалният пример за TLS демонстрира TLS слушател с ключ и сертификат на сървъра:

Преди продуктивна употреба заменете демонстрационните сертификати и настройки с одобрените от организацията сертификат, управление на ключове и конфигурация за сигурност. Приемникът трябва да записва TLS грешките отделно от грешките при валидиране на пакетите данни.

Форматите на адресите от страната на електромера за TCP и TLS се поддържат в ръководството за интерфейса на фърмуера.

6. Планиране на интервала на изпращане и капацитета на сървъра

Актуалният фърмуер поддържа интервал на изпращане към трета страна до 2 секунди. Краткият интервал е полезен само когато приемащата система, съхранението и приложението се нуждаят от допълнителната детайлност.

Приблизителен брой записи, генерирани на електромер:

Интервал на изпращане Записи на електромер на ден 100 електромера на ден 1 000 електромера на ден
60 секунди 1 440 144 000 1 440 000
10 секунди 8 640 864 000 8 640 000
2 секунди 43 200 4 320 000 43 200 000

Тези числа представляват събития на изпращане, а не непременно редове в базата данни. Трифазен пакет данни може да бъде нормализиран в няколко записа за канали, а индексите, съхранението на необработените данни или репликираното съхранение увеличават действителния обем на базата данни.

Планирането на капацитета трябва да включва:

  • пиков брой едновременни връзки;
  • заявки или съобщения в секунда;
  • разходи за анализ на JSON;
  • умножение на редовете на ниво канал;
  • индекси и срок на съхранение в базата данни;
  • табла и заявки за агрегиране;
  • дневници, повторни опити и съхранение на необработени съобщения;
  • трафик за архивиране и репликация.

За управление или автоматизация с интервал от една секунда в същата локална мрежа обмислете Modbus TCP вместо използване на отдалечен конвейер за изпращане.

7. Осигуряване на надеждност и качество на данните

Продуктивният приемник трябва да очаква мрежови и приложни повреди.

7.1 Валидирайте всеки пакет данни

Валидирайте най-малко:

  • синтаксиса на JSON;
  • задължителните полета за идентификация;
  • очакваната структура на масива;
  • числовите типове и разумните диапазони;
  • поддържаното съответствие на модел или канал;
  • вариациите в полетата в зависимост от фърмуера.

Съхранявайте неправилно формираните пакети данни в контролиран диагностичен път, без да позволявате те да блокират валидните устройства.

7.2 Планирайте дублирани и липсващи изпращания

Не приемайте, че всеки интервал създава точно един постоянно съхранен запис. Прекъсвания на мрежата, поведение при повторно свързване, повторни опити на сървъра или обработка в приложението могат да доведат до липсващи или повторени събития на приемане.

Определете как бизнес системата ще:

  • открива дублирани записи;
  • идентифицира пропуски;
  • разграничава тих електромер от повреден приемник;
  • избягва изчисляване на енергия чрез сляпо сумиране на кумулативните регистри в kWh;
  • съгласува кумулативната енергия след прекъсване.

7.3 Наблюдавайте целия път на данните

Наблюдавайте повече от уеб процеса или процеса на сокета. Полезни сигнали включват:

  • време на последния пакет данни за всеки електромер;
  • брой невалидни пакети данни;
  • време за отговор и процент на грешки на приемника;
  • активни TCP/TLS връзки;
  • изоставане на MQTT потребителя;
  • закъснение при запис в базата данни;
  • дълбочина на опашката;
  • използване на дисковото пространство и задачи за почистване.

8. Защита на приемащата система

За приемник с достъп от интернет:

  • предпочитайте криптиран транспорт, поддържан от внедряването;
  • ограничавайте изложените портове и мрежовите източници, където е възможно;
  • прилагайте удостоверяване и оторизация на теми за MQTT;
  • защитавайте HTTP крайните точки чрез околната мрежова или приложна архитектура за сигурност;
  • управлявайте TLS сертификатите и частните ключове сигурно;
  • избягвайте записването на идентификационни данни или на цели чувствителни пакети данни в дневниците на приложението;
  • ограничавайте честотата и изолирайте неправилно формирания или злоупотребяващ трафик;
  • поддържайте операционната система, средата за изпълнение и зависимостите актуални.

Прегледайте актуалното поведение на фърмуера при MQTTS, TLS и HTTPS в ръководството за фърмуера и отворения интерфейс, преди да изберете дизайн за сигурност.

9. Контролен списък за продуктивно внедряване

Електромер и мрежа

  • Версията на фърмуера е записана и валидирана
  • SN на електромера е свързан с правилния обект и канали
  • Адресът и портът на дестинацията са проверени
  • Пътят през DNS, защитна стена, NAT или VPN е тестван
  • Необходимият интервал на изпращане е потвърден

Приемник

  • Необработен пакет данни е уловен от всеки модел електромер в обхвата
  • Тестове на анализатора са създадени от реални примерни пакети данни
  • Пакетите данни с един и с няколко канала са обработени
  • Обработката на коефициента на токовия трансформатор за WEM3046T/E е валидирана, когато е приложимо
  • Неправилно формираните и неподдържаните пакети данни са изолирани безопасно
  • Приемникът връща или поддържа поведението, очаквано от избрания транспорт

Съхранение и операции

  • Политиката за времевите печати е документирана
  • Политиката за дублирани и липсващи данни е документирана
  • Капацитетът на базата данни е изчислен за броя устройства и интервала
  • Дневниците, метриките и алармите за последно виждане на електромер са включени
  • Срокът на съхранение, архивирането и възстановяването са тествани
  • Сертификатите, идентификационните данни и правилата за достъп са прегледани
  • Прекъсване на мрежата и рестартиране на приемника са тествани

10. Свързана документация

11. Екранни снимки от старата конфигурация от страната на електромера

Първоначалната версия на този документ беше съсредоточена върху конфигурирането на по-стар фърмуер на електромера. Тези екранни снимки са запазени само за потребители, които идентифицират съществуваща инсталация. За нови интеграции използвайте актуалния уеб интерфейс и най-новия фърмуер.

Стара страница за TCP

Стара конфигурация на TCP сървър на IAMMETER

Стара страница за TLS

Стара конфигурация на TLS сървър на IAMMETER

Стара страница за HTTP/HTTPS

Стара конфигурация на HTTP/HTTPS сървър на IAMMETER

По-ранната документация за фърмуера използваше също локалния метод за конфигурация /api/uploadinterval и описваше минимум от шест секунди. Актуалният фърмуер показва интервала в уеб интерфейса и поддържа документиран минимум от 2 секунди.

Последна актуализация: 16 юли 2026 г.

Нагоре