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

Самостоятелно хостван мониторинг на енергия с Docker

Самостоятелно хостван мониторинг на енергия с Docker

Самостоятелно хостваната система за мониторинг на енергия оставя сървъра за мониторинг и данните за електроенергията под ваш контрол. Вместо да изпраща всяко показание към публичен облак, електромерът качва данни към Docker контейнер, работещ на локален сървър, NAS, Raspberry Pi или съвместим рутер.

IAMMETER-Docker предоставя готов за употреба локален сървър за мониторинг на енергия за потребление на електроенергия и соларни PV системи. Той може да събира измервания, да показва данни в реално време и исторически данни, да предоставя API и по избор да работи като офлайн даталогер.

IAMMETER energy meter
        │
        │ Wi-Fi / local network
        ▼
IAMMETER-Docker
        │
        ├── Local web dashboard
        ├── Historical energy data
        ├── REST API
        ├── MQTT
        ├── CSV datalogger
        └── Optional forwarding

IAMMETER-Docker е практична опция за самостоятелно хостване, но не възпроизвежда всяка функция и отчет в IAMMETER-Cloud. Ако все още избирате архитектура, сравнете опциите на страницата с решения за самостоятелно хостван мониторинг на енергия.

🎬 Гледайте видео урока за IAMMETER-Docker

1. Кога трябва да използвате самостоятелно хоствана система за мониторинг на енергия?

IAMMETER-Docker е подходящ, когато искате да:

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

Типични инсталации включват:

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

Ако се нуждаете само от директни показания от електромера за Home Assistant, Node-RED, PLC или собствен софтуер, разгръщането на пълен сървър може да е излишно. Вижте опциите за локална и самостоятелно хоствана интеграция, преди да изберете.

2. Какво ви е необходимо

Преди разгръщане подгответе:

  • устройство, което може да изпълнява Docker, например Linux сървър, NAS, Raspberry Pi или съвместим рутер;
  • постоянно хранилище за базата данни на приложението;
  • свободен TCP порт 5050 за уеб приложението и API;
  • TCP порт 1883, ако ще се използва вградената MQTT услуга;
  • стабилен IP адрес или DHCP резервация за Docker хоста;
  • електромер IAMMETER или друг източник на данни, който може да подава поддържания API формат.

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

3. Разгръщане на IAMMETER-Docker

Текущото издание в Docker Hub е IAMMETER-Docker V2.4.

3.1 Вариант A: docker run

Създайте работна директория и стартирайте контейнера с постоянно хранилище:

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  iammeter/iammeter

Променете TZ=Etc/UTC на правилната часова зона за обекта за мониторинг. Отчетите за енергия зависят от местната дата и час, затова задайте това преди събиране на производствени данни.

3.2 Вариант B: Docker Compose

Създайте compose.yaml:

services:
  iammeter:
    image: iammeter/iammeter
    container_name: myiammeter
    restart: always
    ports:
      - "5050:5050"
      - "1883:1883"
    environment:
      TZ: Etc/UTC
    volumes:
      - ./data:/app/data

Стартирайте услугата:

docker compose up -d

Проверете състоянието ѝ:

docker compose ps
docker compose logs --tail=100 iammeter

3.3 Отворете локалното табло

Отворете следния адрес в браузър в същата мрежа:

http://<docker-host-ip>:5050

Данни за достъп по подразбиране:

Username: testuser
Password: 123456

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

IAMMETER-Docker login

4. Първоначална конфигурация

След влизане:

  1. Създайте Място за дома, соларния обект или наблюдавания обект.
  2. Добавете Електромер.
  3. Въведете серийния номер на електромера (SN).
  4. Изберете правилния тип електромер — еднофазен или трифазен.
  5. Задайте всяка фаза или канал като Grid, Inverter или Load.
  6. Потвърдете часовата зона на обекта и структурата на измерванията, преди да оценявате отчети.

Configure a meter in IAMMETER-Docker

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

5. Свързване на електромер IAMMETER

Електромерите IAMMETER могат да качват данни директно към локалния Docker сървър.

В WebUI на електромера конфигурирайте HTTP качване от трета страна и използвайте адреса на Docker хоста:

<docker-host-ip>:5050/api/v1/sensor/uploadsensor

IP адресът на Docker хоста трябва да е достъпен от Wi-Fi мрежата на електромера. Използвайте същия SN на електромера, който е добавен в IAMMETER-Docker.

Configure HTTP upload to IAMMETER-Docker

След запазване на конфигурацията на електромера:

  1. изчакайте първото качване;
  2. потвърдете, че електромерът се показва онлайн в IAMMETER-Docker;
  3. сравнете стойностите на напрежение, мощност и енергия с локалните данни на електромера;
  4. проверете посоката и задаването на каналите, преди да разчитате на изчисленията за соларна енергия или внос/износ.

Използване на IAMMETER-Cloud едновременно

IAMMETER-Docker може по избор да препраща данни от електромера към IAMMETER-Cloud. Активирайте препращането само когато искате както локално съхранение, така и услугите на IAMMETER-Cloud.

Forward local data to IAMMETER-Cloud

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

6. Качване на данни от друго устройство или приложение

IAMMETER-Docker може също да получава поддържани данни за енергия чрез своя REST API. Това е полезно за симулатори, шлюзове или клиентски приложения, които не използват електромер IAMMETER.

Създайте електромер с персонализиран SN, след което използвайте същия SN във всяка API заявка.

Интерактивната API документация е достъпна на локалния сървър:

http://<docker-host-ip>:5050/docs

IAMMETER-Docker API documentation

Test an IAMMETER-Docker API request

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

7. Работа с офлайн даталогер за енергия

IAMMETER-Docker V2.4 може да записва данни в CSV, когато е монтирана директория за даталогера. Това е полезно за отдалечен соларен обект, фабрика или помещение с оборудване без надеждна интернет връзка.

docker run с хранилище за даталогера

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  -v "$PWD/datalogger:/app/datalogger" \
  iammeter/iammeter

За Docker Compose добавете този том:

volumes:
  - ./data:/app/data
  - ./datalogger:/app/datalogger

Отворете страницата на даталогера на:

http://<docker-host-ip>:5050/datalogger

Страницата на даталогера първоначално използва:

Username: admin
Password: admin

Променете тази парола като част от разгръщането. За пълния работен процес с рутер и експорт в CSV вижте Офлайн даталогер за енергия с IAMMETER-Docker.

8. MQTT и други разширени функции

Порт 1883 се използва от MQTT услугата на IAMMETER-Docker. Електромер или друго приложение може да публикува поддържани данни от измервания към IAMMETER-Docker, а MQTT клиентите могат да се абонират за стойности в реално време.

IAMMETER-Docker също поддържа функции като:

  • MySQL вместо локалната база данни по подразбиране за по-големи набори от данни;
  • публикуване и абониране по MQTT;
  • препращане към PVOutput;
  • съвместими данни за енергия от Tasmota;
  • аларми в реално време и сценарии за даталогер с едносекундна резолюция.

Тези функции умишлено са извън основния път за разгръщане. Конфигурирайте и тествайте първо основния контейнер, след което продължете с разширеното ръководство за IAMMETER-Docker.

9. Архивирайте данните си за енергия

Томът /app/data съдържа постоянните данни на приложението. Архивирайте редовно съответната директория на хоста.

Безопасен основен процес е:

  1. спрете или поставете на пауза записа към контейнера;
  2. копирайте цялата монтирана директория data в хранилище за архиви;
  3. включете директорията datalogger, когато CSV записът е активиран;
  4. съхранявайте повече от едно поколение архиви;
  5. тествайте възстановяването в отделен контейнер, преди да разчитате на плана за архивиране.

Не третирайте файловата система на контейнера като постоянно хранилище. Ако /app/data не е монтиран, премахването на контейнера може да премахне и базата данни за мониторинг.

10. Обновяване на IAMMETER-Docker

Преди обновяване архивирайте директорията с постоянни данни.

За Docker Compose:

docker compose pull
docker compose up -d
docker compose logs --tail=100 iammeter

За контейнер, създаден с docker run:

  1. запишете съществуващите портове, часова зона и монтирани томове;
  2. изтеглете новия образ;
  3. спрете и премахнете стария контейнер;
  4. създайте контейнера отново със същия постоянен том;
  5. проверете влизането, състоянието на електромера и историческите данни.
docker pull iammeter/iammeter
docker stop myiammeter
docker rm myiammeter

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

11. Отстраняване на проблеми

Уеб страницата не се отваря

  • Потвърдете, че контейнерът работи, с docker ps или docker compose ps.
  • Проверете дали портът 5050 на хоста не се използва вече.
  • Прегледайте логовете на контейнера.
  • Потвърдете, че защитната стена разрешава достъп от локалната мрежа.

Електромерът не се показва онлайн

  • Потвърдете, че електромерът може да достигне IP адреса на Docker хоста.
  • Проверете URL адреса за качване и порта.
  • Потвърдете, че SN в IAMMETER-Docker съвпада със SN на електромера.
  • Избягвайте използването на localhost като адрес на сървъра в електромера; той се отнася до самия електромер, а не до Docker хоста.
  • Потвърдете, че изолацията на клиенти или гостуваща Wi-Fi мрежа не блокира LAN трафика.

Данните за соларна енергия изглеждат неправилни

  • Проверете посоката на CT и окабеляването.
  • Потвърдете кой канал е зададен за Grid и кой за Inverter.
  • Проверете знака на активната мощност при внос и износ.
  • Потвърдете часовата зона, преди да сравнявате дневните общи стойности на енергията.

Данните изчезват след пресъздаване на контейнера

  • Потвърдете, че /app/data е монтиран към постоянна директория на хоста.
  • Проверете правата на директорията.
  • Възстановете най-новия проверен архив, ако оригиналният том не е наличен.

12. IAMMETER-Docker, IAMMETER-Cloud или собствена система?

Опция Най-подходяща за Място на данните Усилия за настройка Основен компромис
IAMMETER-Docker Готов локален сървър за мониторинг Вашият Docker хост Ниски до средни По-малко управлявани облачни функции
IAMMETER-Cloud Готов мониторинг, отчети и отдалечен достъп IAMMETER-Cloud Ниски Използва хоствана облачна услуга
Home Assistant / Node-RED Обекти за умен дом и персонализирана автоматизация Ваша собствена платформа Средни Вие проектирате таблото и работните процеси
Собствен сървър Продукт, EMS или специализиран поток от данни Вашата инфраструктура Високи Вие разработвате и поддържате системата

Продължете с:

13. Контролен списък за разгръщане

  • Docker хостът има стабилен LAN адрес.
  • /app/data е монтиран към постоянно хранилище.
  • Часовата зона съвпада с тази на обекта за мониторинг.
  • Паролите по подразбиране са променени.
  • Портовете 5050 и 1883 не са ненужно изложени към интернет.
  • SN на електромера и задаването на каналите са правилни.
  • Локалното качване е проверено с реални измервания.
  • Препращането към облака е активирано само когато е необходимо.
  • Процедурите за архивиране и обновяване са тествани.
  • Томът на даталогера е монтиран, ако е необходим CSV експорт.

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

Нагоре