Извините, ваш браузер не поддерживает JavaScript!
Войти

Docker MQTT Мониторинг Энергии и Продвинутая Настройка IAMMETER-Docker

Docker MQTT Мониторинг Энергии и Продвинутая Настройка

После запуска базового сервера IAMMETER-Docker его можно расширить в локальный сервер мониторинга энергии через MQTT, использовать MySQL для большего объёма данных, пересылать данные солнечной генерации в PVOutput и принимать совместимые сторонние измерения.

Это руководство охватывает продвинутые пути данных и варианты хранения. Информацию об установке, постоянных томах, первом входе, настройке счётчика, резервном копировании и обновлении контейнера начните с Самостоятельный мониторинг энергии с Docker.

IAMMETER meter / compatible device / custom application
                         │
             ┌───────────┼───────────┐
             │           │           │
            HTTP        MQTT       REST API
             │           │           │
             └───────────┼───────────┘
                         ▼
                  IAMMETER-Docker
                         │
       ┌─────────────────┼─────────────────┐
       ▼                 ▼                 ▼
 SQLite / MySQL     MQTT subscribers     PVOutput

Используйте только те интерфейсы, которые требуются проекту. Простая локальная установка мониторинга не нуждается в MySQL, внешних MQTT-клиентах или пересылке данных.

1. Перед Включением Продвинутых Функций

Убедитесь, что базовая установка стабильна:

  • контейнер IAMMETER-Docker запущен;
  • /app/data примонтирован к постоянному хранилищу;
  • хост Docker использует стабильный LAN-адрес;
  • часовой пояс сайта установлен правильно;
  • как минимум один счётчик или тестовый источник данных работает;
  • пароли по умолчанию изменены;
  • существует актуальная резервная копия.

Развёртывание по умолчанию открывает:

  • 5050 для веб-приложения и API;
  • 1883 для MQTT.

Не публикуйте эти порты напрямую в Интернет. Используйте брандмауэр, VPN или другой контролируемый уровень доступа при необходимости удалённого подключения.

2. Выбор SQLite или MySQL

IAMMETER-Docker использует SQLite для простого развёртывания по умолчанию и поддерживает MySQL для установок с большим объёмом данных.

База данных Лучше всего подходит для Преимущества Особенности
SQLite Домашних, тестовых и небольших локальных развёртываний Не требуется отдельная служба БД; простая начальная настройка База данных остаётся привязанной к тому приложения
MySQL Крупных или долгосрочных установок Отдельная служба БД и лучшая пригодность для растущих наборов данных Требуется развёртывание БД, учётные данные, резервное копирование и обслуживание

Не переходите на MySQL только потому, что она доступна. Используйте её, когда ожидаемый объём данных, срок хранения или требования к управлению базой данных оправдывают дополнительную службу.

2.1 Сначала Подготовьте MySQL

Перед выбором MySQL в IAMMETER-Docker:

  1. разверните доступный сервер MySQL;
  2. создайте выделенную базу данных и пользователя;
  3. ограничьте этого пользователя только требуемой базой данных;
  4. подтвердите сетевой доступ из контейнера IAMMETER-Docker;
  5. настройте регулярное резервное копирование базы данных;
  6. безопасно запишите хост, порт, имя базы данных и учётные данные.

Затем введите настройки подключения MySQL в IAMMETER-Docker и подтвердите, что новые измерения сохраняются.

Настройка MySQL в IAMMETER-Docker

Создайте резервную копию существующих данных IAMMETER-Docker перед сменой режима базы данных. Проверьте исторические данные и новые загрузки после изменения.

3. Использование IAMMETER-Docker как MQTT Сервера Мониторинга Энергии

IAMMETER-Docker включает поддержку MQTT для двух разных направлений:

  1. Публикация в IAMMETER-Docker: счётчик или совместимое приложение отправляет измерения на сервер Docker.
  2. Подписка из IAMMETER-Docker: Node-RED, пользовательский сервис или другой MQTT-клиент получает измерения в реальном времени с сервера.

Эти пути используют одинаковый шаблон топика, но разные режимы аутентификации.

3.1 MQTT топик

Документированный топик реального времени:

device/<SN>/realtime

Замените <SN> на серийный номер, зарегистрированный в IAMMETER-Docker. SN в MQTT-топике и конфигурации клиента должен совпадать со счётчиком, созданным в локальной платформе.

3.2 Публикация данных энергии в IAMMETER-Docker

Для публикующего устройства или приложения:

Параметр Значение
Брокер IP-адрес или имя хоста сервера IAMMETER-Docker
Порт По умолчанию 1883
Аутентификация Идентификатор клиента (Client ID)
Client ID SN счётчика, зарегистрированный в IAMMETER-Docker
Топик device/<SN>/realtime
Полезная нагрузка Формат данных загрузки, поддерживаемый IAMMETER

Публикация данных энергии в IAMMETER-Docker через MQTT

Перед использованием рабочих данных:

  1. зарегистрируйте SN в IAMMETER-Docker;
  2. отправьте одну тестовую полезную нагрузку;
  3. проверьте поля напряжения, тока, мощности и энергии;
  4. подтвердите количество фаз или каналов;
  5. проверьте единицы измерения и направление активной мощности;
  6. только после этого включите непрерывную публикацию.

3.3 Подписка на данные энергии в реальном времени

Для MQTT-подписчика:

Параметр Значение
Брокер Адрес сервера IAMMETER-Docker
Порт По умолчанию 1883
Аутентификация Имя пользователя и пароль IAMMETER-Docker
Топик device/<SN>/realtime

Подписка на данные реального времени IAMMETER-Docker

Типичные подписчики включают:

  • автоматизационные потоки Node-RED;
  • локальный сервис обработки данных;
  • MQTT-клиент для отладки;
  • шлюз, пересылающий выбранные измерения;
  • пользовательская панель мониторинга или сервис оповещений.

Если Node-RED является основным приложением и историческое хранение в IAMMETER-Docker не требуется, счётчик также может подключаться к Node-RED напрямую через MQTT, Modbus TCP или свой локальный API. Сравните варианты в руководстве Node-RED энергомониторинг.

4. Тестирование и Устранение Неисправностей MQTT

Начните с одного счётчика и точного топика, а не с широкой wildcard-подписки.

Проверьте следующее, если данные не появляются:

  • порт 1883 проброшен из контейнера;
  • клиент может достичь хоста Docker по LAN;
  • SN существует в IAMMETER-Docker;
  • идентификатор клиента MQTT и топик используют одинаковый SN;
  • топик — device/<SN>/realtime с правильным регистром;
  • не перепутаны режимы аутентификации публикации и подписки;
  • JSON-полезная нагрузка соответствует поддерживаемому порядку полей и единицам;
  • другой MQTT-клиент не отключает сессию, повторно используя тот же идентификатор клиента.

Для надёжных потоков:

  • используйте уникальный идентификатор клиента для каждого подписчика;
  • обрабатывайте переподключения и дублирующие сообщения;
  • проверяйте полезную нагрузку перед записью в базу данных;
  • записывайте исходный SN с каждым сохранённым измерением;
  • используйте сетевую изоляцию вместо открытого доступа к незашифрованному MQTT-порту.

5. Пересылка Данных Солнечной Генерации в PVOutput

PVOutput — это сторонний сервис для обмена и сравнения данных солнечной генерации и потребления энергии. IAMMETER-Docker может пересылать данные площадки в PVOutput.

Используйте эту опцию, когда IAMMETER-Docker остаётся локальным сервером сбора данных, но требуется PVOutput для публичной или внешней отчётности по солнечной энергии.

Перед включением пересылки:

  1. создайте или выберите правильную систему PVOutput;
  2. получите необходимые учётные данные PVOutput;
  3. подтвердите, что каналы Grid и Inverter назначены правильно в IAMMETER-Docker;
  4. проверьте часовой пояс площадки;
  5. включите пересылку только для нужной площадки;
  6. сравните дневной итог в обеих системах после первого полного дня.

Пересылка данных солнечной генерации IAMMETER-Docker в PVOutput

Пересылка PVOutput требует доступа в Интернет с хоста Docker. Она отделена от локального мониторинга: временный сбой соединения с PVOutput не должен препятствовать продолжению загрузки данных счётчиком на локальный сервер.

6. Получение Данных от Совместимого Устройства Tasmota

IAMMETER-Docker включает документированный MQTT-процесс для счётного устройства, работающего под управлением Tasmota. В оригинальном примере использовался Sonoff POW R2.

Это путь совместимости для поддерживаемых энергетических полезных нагрузок, а не утверждение, что каждое устройство Tasmota или шаблон создаёт одинаковую структуру измерений. Протестируйте реальное устройство и прошивку перед развёртыванием.

Используйте следующую MQTT-структуру Tasmota:

Параметр Значение
Хост IP-адрес IAMMETER-Docker
Порт MQTT-порт IAMMETER-Docker, обычно 1883
Клиент SN, зарегистрированный в IAMMETER-Docker
Пользователь Оставьте пустым для этого документированного процесса публикации
Пароль Оставьте пустым для этого документированного процесса публикации
Топик SN, зарегистрированный в IAMMETER-Docker
Полный топик device/%topic%/%prefix%/

Настройка совместимого счётчика Tasmota для IAMMETER-Docker

После настройки проверьте каждое сообщаемое значение в IAMMETER-Docker, включая напряжение, ток, активную мощность, энергию и коэффициент мощности, если поддерживается устройством.

Данные электроэнергии Tasmota в IAMMETER-Docker

7. Использование REST API IAMMETER-Docker

IAMMETER-Docker предоставляет интерактивную документацию API на локальном сервере:

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

REST API можно использовать для:

  • загрузки поддерживаемых измерений с пользовательского шлюза;
  • запроса данных для частной панели мониторинга;
  • подключения локального приложения к самостоятельно размещённому серверу;
  • тестирования полезных нагрузок перед автоматизацией интеграции.

Держите доступ к API в доверенной сети. Если внешняя система должна подключаться удалённо, разместите сервис за соответствующим защищённым уровнем доступа, а не открывайте порт приложения без защиты.

Для разработчиков, создающих полный приёмник или пользовательскую платформу вместо использования IAMMETER-Docker, см. Разработка собственной системы мониторинга энергии.

8. Комбинация Локального Хранилища и Облачных Сервисов

Самостоятельное размещение не означает, что все внешние сервисы должны быть отключены. IAMMETER-Docker может быть локальной системой записи, пока выбранные данные пересылаются в другие места.

Архитектура Локальные данные Зависимость от Интернета Лучше всего подходит для
Только локально IAMMETER-Docker Не требуется после развёртывания Конфиденциальности, офлайн-площадок и LAN-панелей
Локально + IAMMETER-Cloud IAMMETER-Docker и IAMMETER-Cloud Требуется для пересылки Локальной копии плюс отчёты IAMMETER-Cloud и удалённый доступ
Локально + PVOutput IAMMETER-Docker и PVOutput Требуется для пересылки Пользователям солнечной энергии, использующим PVOutput
Локально + MQTT подписчик IAMMETER-Docker и хранилище, определённое подписчиком Не требуется при локальном подписчике Node-RED, автоматизации и пользовательской обработке

Включайте только те направления, которые служат чёткой цели. Больше направлений создаёт больше учётных данных, сетевых зависимостей и путей устранения неисправностей.

9. Контрольный Список Продвинутого Развёртывания

  • Базовый сбор IAMMETER-Docker уже стабилен.
  • Постоянные данные и резервные копии базы данных проверены.
  • MySQL используется только когда её эксплуатационные затраты оправданы.
  • MQTT-порт 1883 доступен только из доверенных сетей.
  • Каждый MQTT-клиент использует подходящий и уникальный идентификатор клиента.
  • SN счётчика, топик и зарегистрированное устройство совпадают.
  • Единицы полезной нагрузки, количество фаз и направление мощности протестированы.
  • Сбои PVOutput или облачной пересылки не прерывают локальный сбор.
  • Совместимость с Tasmota подтверждена на реальном устройстве и прошивке.
  • Изменения тестируются на одном счётчике перед применением к более крупному развёртыванию.

10. История Версий и Примечания

Разделы выше описывают текущие документированные процессы IAMMETER-Docker. Оригинальная страница была написана примерно для версий V1.8 и V1.9; следующая история сохранена для пользователей, обслуживающих старые установки.

V2.4

V2.3

  • Исправлена проблема загрузки в PVOutput.

V2.2

  • Добавлены журналы для сбоев пересылки в IAMMETER-Cloud.

V2.1

V1.9

  • Добавлена поддержка MySQL.
  • Добавлена возможность пользовательского изображения для каждого места (Place).

IAMMETER-Docker V1.9

V1.8

  • Добавлена загрузка MQTT в IAMMETER-Docker.
  • Добавлена подписка MQTT на данные реального времени.
  • Добавлена прямая пересылка PVOutput.
  • Добавлен документированный процесс работы с Tasmota/Sonoff.

11. Связанные Ресурсы

Последнее обновление: 17 июля 2026 г.

Наверх