Hoymiles MS Интеграция

Этот адаптер интегрирует Hoymiles MS-A2 в iobroker.

Текущий релиз
0.2.2
Разработчик
mcm1957
Лицензия
MIT

Обзор

Адаптер ioBroker.hoymiles-ms интегрирует системы хранения энергии Hoymiles MicroStorage (в настоящее время поддерживается модель Hoymiles MS-A2) в платформу ioBroker. Этот адаптер позволяет осуществлять мониторинг и управление вашей системой хранения энергии Hoymiles MS-A2 через платформу ioBroker.

Hoymiles MS-A2 — это микронакопительное устройство, сочетающее в себе возможности солнечного инвертора и аккумуляторного хранения энергии. Более подробную информацию об устройстве можно найти в разделе здесь.

Примечание: Этот адаптер не связан с Hoymiles и является независимым проектом, созданным местным сообществом.

Функции

  • Мониторинг в реальном времени: состояние батареи, потребление энергии, взаимодействие с сетью.
  • Отслеживание энергопотребления: Мониторинг производства, потребления и хранения энергии.
  • Мониторинг сети: отслеживание работы энергосистемы, подключенной к сети и автономной от нее.
  • Системная статистика: Подробный обзор производительности системы.
  • Управление мощностью: Установка и регулировка уровней выходной мощности.
  • Поддержка нескольких устройств: одновременная работа с несколькими устройствами MS-A2.
  • Связь по протоколу MQTT: Надежная связь по протоколу MQTT.

Предварительные условия

Перед настройкой адаптера убедитесь, что у вас есть:

  1. Система ioBroker запущена (Node.js >= 20)
  2. Микрохранилище Hoymiles MS-A2
  3. На вашем мобильном устройстве должно быть установлено приложение S-Miles Home.
  4. Сетевое соединение между ioBroker и устройством MS-A2
  5. Свободный TCP-порт для связи по протоколу MQTT (по умолчанию: 1881)

Настройка и конфигурация адаптера

Шаг 1: Установите адаптер

Установите адаптер через административный интерфейс ioBroker:

  1. Откройте административный интерфейс ioBroker в веб-браузере.
  2. Перейдите на вкладку «Адаптеры».
  3. Найдите "hoymiles-ms" в репозитории адаптера.
  4. Нажмите кнопку «Установить» рядом с адаптером.

Важно: Никогда не устанавливайте адаптеры ioBroker напрямую через npm. Всегда используйте административный интерфейс ioBroker для правильной установки и управления зависимостями.

Шаг 2: Настройка адаптера

  1. Откройте административный интерфейс ioBroker.
  2. Перейдите в раздел «Адаптеры» и найдите «hoymiles-ms».
  3. Нажмите на значок настроек (шестерёнка).
  4. Настройте следующие параметры:

Конфигурация MQTT-сервера

ПараметрОписаниеЗначение по умолчаниюПримечания
Клиентский режимВключить режим клиента MQTTfalseВ настоящее время не реализовано
Порт MQTTTCP-порт для MQTT-сервера1881Во избежание конфликтов с другими MQTT-сервисами
Порт MQTTTCP-порт для сервера MQTT1881Избегайте конфликтов с другими службами MQTT

Важные примечания:

— В настоящее время адаптер работает только в режиме MQTT-сервера.

  • Поддержка аутентификации пока отсутствует - убедитесь в безопасности вашей сети.
  • Порт 1881 выбран во избежание конфликтов с ioBroker.mqtt (1883) и ioBroker.shelly (1882).

Шаг 3: Сохраните и запустите адаптер

  1. В диалоговом окне настроек нажмите «Сохранить и закрыть».
  2. Включите экземпляр адаптера.
  3. Адаптер запустится и начнет принимать соединения MQTT.

Настройка устройства Hoymiles MS-A2

Для подключения устройства MS-A2 к адаптеру ioBroker необходимо выполнить его настройку с помощью приложения S-Miles Home.

Шаг 1: Откройте приложение S-Miles Home

  1. Запустите приложение S-Miles Home на своем мобильном устройстве.
  2. Убедитесь, что вы подключены к той же сети, что и ваше устройство MS-A2.

Шаг 2: Доступ к конфигурации MQTT

  1. Перейдите на страницу Настройки (значок шестеренки в правом верхнем углу).
  2. Прокрутите вниз, чтобы найти раздел "MQTT-Service".
  3. Включите службу MQTT.

Шаг 3: Настройка параметров MQTT

НастройкаЗначениеОписание
Адрес сервера<ioBroker-IP>IP-адрес вашей системы ioBroker
Префикс клиентаMSAНеобязательный префикс идентификатора (по умолчанию: MSA)
АутентификацияDisabledДолжна быть отключена (пока не поддерживается)
АутентификацияОтключеноДолжно быть отключено (пока не поддерживается)

Пример конфигурации:

  • Адрес сервера: 192.168.1.100 (замените на IP-адрес вашего ioBroker)
  • Порт: 1881
  • Префикс клиента: MSA
  • Имя пользователя: (оставьте пустым)
  • Пароль: (оставьте пустым)

Шаг 4: Примените настройки

  1. Сохраните конфигурацию MQTT в приложении S-Miles Home.
  2. Устройство MS-A2 перезапустит службу MQTT.
  3. Проверьте журналы ioBroker для подтверждения подключения.

Операции и поток данных

Интервалы обновления данных

Устройство MS-A2 отправляет данные с различными интервалами (эти интервалы определяются API Hoymiles и не могут быть настроены):

  • Конфигурационные данные: Отправляются один раз при установлении соединения.
  • Данные в реальном времени: обновляются каждые 1 секунду
  • Системная статистика: Обновляется каждые 5 минут

Состояние подключения устройства

  • Адаптер автоматически отслеживает подключение устройства. — Устройства считаются отключенными, если в течение 30 секунд не поступают данные.
  • Статус подключения отображается в состоянии info.online.

Состояния, созданные адаптером

Адаптер динамически создает состояния на основе данных, полученных от вашего устройства MS-A2. Состояния организованы в иерархическую структуру:

Состояния информации об устройстве

ШтатТипПодразделениеРольОписание
device.manufacturerстрока-текстПроизводитель устройства
device.nameстрока-info.nameИмя устройства
device.sw_versionстрока-info.firmwareВерсия программного обеспечения
device.identifiersмассив-списокИдентификаторы устройств
device.identifiersмассив-списокИдентификаторы устройств

Состояния батареи

ШтатТипПодразделениеРольОписание
device.bat_iчислоAзначение.текущееТок батареи
device.bat_tempчисло°Cзначение.температураТемпература батареи
device.bat_vчислоВзначение напряженияНапряжение батареи
device.bat_stsстрока-текстСостояние батареи
device.socчисло%значениеСостояние заряда
device.socчисло%значениеУровень заряда

Состояния подключения к сети (сеть включена)

ШтатТипПодразделениеРольОписание
device.grid_on.vчислоВзначение напряженияНапряжение сети (в сети)
device.grid_on.fчислоГцзначение.частотаЧастота сети (в сети)
device.grid_on.pчислоВтзначение.мощность.активнаяАктивная мощность (в сети)
device.grid_on.qчислоVarзначение.мощность.реактивнаяРеактивная мощность (в сети)
device.grid_on.einчислоВт·чзначение.энергия.потребленоПотребленная энергия (в сети)
device.grid_on.eoutчислоВт·чзначение.энергии.произведеноПроизведенная энергия (в сети)
device.grid_on.etinчислоВт·чзначение.энергия.потребленоОбщее количество потребленной энергии (в сети)
device.grid_on.etoutчислоВт·чзначение произведенной энергииОбщая произведенная энергия (в сети)
device.grid_on.etoutчислоВт·чзначение.энергия.произведеноОбщая произведенная энергия (в сети)

Состояния подключения к сети (сеть отключена)

ШтатТипПодразделениеРольОписание
device.grid_off.vчислоВзначение напряженияНапряжение сети (автономное)
device.grid_off.fчислоГцзначение.частотаЧастота сети (вне сети)
device.grid_off.pчислоВтзначение.мощность.активнаяАктивная мощность (автономный режим)
device.grid_off.qчислоVarзначение.мощность.реактивнаяРеактивная мощность (автономная)
device.grid_off.einчислоВт·чзначение.энергия.потребленоПотребленная энергия (автономная)
device.grid_off.eoutчислоВт·чзначение.энергии.произведеноПроизведенная энергия (автономная)
device.grid_off.etinчислоВт·чзначение.энергия.потребленоОбщее потребление энергии (автономное энергоснабжение)
device.grid_off.etoutчислоВт·чзначение произведенной энергииОбщее количество произведенной энергии (автономная система)
device.grid_off.etoutчислоВт·чзначение.энергия.произведеноОбщее количество произведенной энергии (в автономном режиме)

Состояния инвертора

ШтатТипПодразделениеРольОписание
device.inv.vчислоВзначение напряженияНапряжение инвертора
device.inv.pчислоВтзначение.мощность.активнаяАктивная мощность инвертора
device.inv.qчислоVarзначение.мощность.реактивнаяРеактивная мощность инвертора
device.inv.einчислоВт·чзначение.энергия.потребленоПотребляемая энергия инвертора
device.inv.eoutчислоВт·чзначение.энергии.произведеноЭнергия, произведенная инвертором
device.inv.etinчислоВт·чзначение.энергия.потребленоОбщее количество потребленной энергии инвертора
device.inv.etoutчислоВт·чзначение.энергия.произведеноОбщая произведенная инвертором энергия
device.inv.etoutnumberВт·чvalue.energy.producedОбщая произведенная инвертором энергия

Состояния данных в реальном времени

ШтатТипПодразделениеРольОписание
realtime.bat_pчислоВтзначение.мощностьЗаряд батареи в реальном времени
realtime.grid_on_pчислоВтзначение.мощностьМощность сети в реальном времени (в сети)
realtime.grid_off_pчислоВтзначение.мощностьМощность сети в реальном времени (автономная)
realtime.socчисло%значениеСостояние заряда в реальном времени
realtime.sys_bat_pчислоВтзначение.мощностьЗаряд батареи системы в реальном времени
realtime.sys_grid_pчислоВтзначение.мощностьМощность энергосистемы в реальном времени
realtime.sys_load_pчислоВтзначение.мощностьМощность нагрузки системы в реальном времени
realtime.sys_plug_pчислоВтзначение.мощностьМощность системы в реальном времени
realtime.sys_pv_pчислоВтзначение.мощностьМощность фотоэлектрической системы в реальном времени
realtime.sys_socчисло%значениеСостояние заряда системы в реальном времени
realtime.sys_sp_pчислоВтзначение.мощностьУставка мощности системы в реальном времени
realtime.sys_sp_pчислоВтзначение.мощностьМощность, заданная системой в реальном времени

Статистические данные системы (состояния)

ШтатТипПодразделениеРольОписание
system.bat_pчислоВтзначение.мощностьМощность батареи системы
system.dchg_eчислоВт·чзначение.энергии.производстваЭнергия разряда системы
system.grid_pчислоВтзначение мощностиМощность сети
system.ems_modeстрока-состояниеРежим системы управления энергопотреблением
system.plug_in_eчислоВт·чзначение.потребленной.энергииЭнергия, потребляемая системой
system.plug_out_eчислоВт·чзначение.энергии.производстваВыходная энергия системы
system.pv_eчислоВт·чпроизведенная энергияЭнергия фотоэлектрической системы
system.pv_pчислоВтзначение.мощностьМощность фотоэлектрической системы
system.socчисло%значениеСостояние заряда системы
system.sp_pчислоВтзначение мощностиУставка мощности системы
system.sp_pчислоВтзначение.мощностиУставка мощности системы

Состояния управления мощностью

ШтатТипПодразделениеРольДоступОписание
power_ctrl.minчислоВтзначение мощностиЧтениеМинимальная настройка мощности
power_ctrl.setчислоВтуровень мощностиЧтение/ЗаписьУставка мощности (регулируемая)
power_ctrl.stepчислоВтзначение мощностиЧтениеШаг регулировки мощности
power_ctrl.stepчислоВтзначение мощностиЧтениеШаг регулировки мощности

Информационные состояния

ШтатТипПодразделениеРольОписание
info.onlineлогическое значение-indicator.reachableСтатус подключения устройства
info.timestampномер-датаОтметка времени последних данных
device.rssiчислодБзначениеуровень сигнала Wi-Fi
device.rssiчислобаза данныхзначениеуровень сигнала Wi-Fi

Штаты, находящиеся под контролем службы скорой медицинской помощи

СостояниеТипРольДоступЗначенияОписание
ems_mode.commandстрокасостояниеЧтение/Записьgeneral, mqtt_ctrlУправление режимом EMS

Функциональность управления питанием

Адаптер обеспечивает возможности управления питанием посредством определенных состояний, допускающих запись:

Настройка выходной мощности

Для регулировки выходной мощности вашего устройства MS-A2:

  1. Установка режима EMS: Сначала установите ems_mode.command в значение mqtt_ctrl.
  2. Установка уровня мощности: Запишите желаемое значение мощности в функцию power_ctrl.set.
  3. Допустимый диапазон: значение мощности должно находиться в диапазоне от power_ctrl.min до power_ctrl.max.
  4. Шаг: Используйте power_ctrl.step для выбора соответствующего шага.

Пример управления мощностью

// Enable MQTT control mode
setState('hoymiles-ms.0.MSA_12345.ems_mode.command', 'mqtt_ctrl');

// Set power output to 500W (example)
setState('hoymiles-ms.0.MSA_12345.power_ctrl.set', 500);

Примечания по управлению питанием

  • Управление питанием доступно только тогда, когда устройство находится в режиме mqtt_ctrl.
  • Настройки мощности применяются блоком MS-A2 немедленно.
  • Отслеживание состояния в реальном времени для проверки изменений мощности. — Вернитесь в «общий» режим, чтобы восстановить автоматическую работу.

Поддержка нескольких устройств

Адаптер автоматически поддерживает работу нескольких устройств MS-A2:

Каждое устройство идентифицируется своим уникальным идентификатором клиента.

  • Состояния создаются динамически для каждого подключенного устройства. — Объекты устройств организованы в отдельных папках. — Статус подключения к сети отслеживается индивидуально для каждого устройства.

Поиск неисправностей

Распространенные проблемы

Устройство не подключается:

  1. Проверьте сетевое соединение между ioBroker и MS-A2.
  2. Проверьте конфигурацию MQTT-сервера в настройках адаптера.
  3. Убедитесь, что порт 1881 не заблокирован брандмауэром.
  4. Проверьте настройки MQTT в приложении S-Miles Home.

Информация по штатам не обновляется:

  1. Проверьте онлайн-статус устройства (info.online)
  2. Проверка обновлений метки времени (info.timestamp)
  3. Проверьте журналы адаптера на наличие сообщений об ошибках.
  4. При необходимости перезагрузите адаптер.

Управление питанием не работает:

  1. Убедитесь, что режим EMS установлен на mqtt_ctrl.
  2. Убедитесь, что значение мощности находится в пределах минимального/максимального диапазона.
  3. Убедитесь, что устройство подключено к сети и отвечает.
  4. Отслеживайте изменения состояния в режиме реального времени.

Анализ логов

Включите подробное логирование, установив уровень логирования адаптера на "debug" или "silly":

  • Уровень информации: События подключения и основные операции
  • Уровень отладки: Подробная информация о взаимодействии по протоколу MQTT.
  • Уровень "для развлечения": Все сообщения MQTT и обновления состояния.

Требования к сети

  • Порт 1881/TCP: Должен быть доступен из MS-A2 для ioBroker.
  • Брандмауэр: Убедитесь, что трафик MQTT разрешен.
  • Стабильность сети: Для надежной работы необходимо стабильное соединение.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

В: Могу ли я использовать другой порт MQTT? О: Да, настройте любой свободный порт в параметрах адаптера и обновите конфигурацию MS-A2 соответствующим образом.

В: Поддерживает ли адаптер аутентификацию? О: Пока нет. Поддержка аутентификации планируется в будущих версиях.

В: Могу ли я отслеживать состояние нескольких устройств MS-A2 одновременно? О: Да, каждое устройство будет отображаться как отдельное устройство со своим собственным состоянием.

В: Как часто обновляются данные? О: Данные обновляются в режиме реального времени каждую секунду, системная статистика — каждые 5 минут (управляется через API Hoymiles).

В: Могу ли я управлять графиком зарядки/разрядки? О: В настоящее время поддерживается только управление выходной мощностью. Расширенные возможности планирования могут быть добавлены в будущих версиях.

В: Что произойдет, если сетевое соединение будет потеряно? О: Адаптер обнаружит устройства, находящиеся в автономном режиме, и пометит их соответствующим образом. Передача данных возобновится после восстановления соединения.

В: Есть ли какие-либо ограничения? О: В настоящее время адаптер ограничен мониторингом только для чтения и базовым управлением питанием. Расширенные функции зависят от возможностей API Hoymiles.

Поддержка и вклад

По вопросам, проблемам или предложениям:

Если вам понравился этот адаптер, пожалуйста, рассмотрите возможность пожертвования:

[paypal


Этот адаптер — независимый проект, созданный силами местного сообщества, и не связан с компанией Hoymiles.

Changelog

0.2.2 (2026-01-10)

  • (mcm1957) Subscription code has been fixed to allow operation with hoymiles mqtt v3.0
  • (mcm1957) NOTE: TOU topics are not yet supported and raising warnings currently.

0.2.1 (2026-01-09)

  • (mcm1957) ignore empty and invalid payloads. [#90]
  • (mcm1957) Dependencies have been updated

0.2.0 (2025-08-23)

  • (mcm1957) States are created dynamically now. So no states should be created if a system does not provide data for it (i.e slave micro storage).
  • (mcm1957) State values are reset during startup now to prevent stale information.
  • (mcm1957) Support to control power consumption and delivery has been added.
  • (mcm1957) Dependencies have been updated

0.1.2 (2025-08-03)

  • (mcm1957) Warnings raised from slave systems have been removed
  • (mcm1957) Dependencies have been updated

0.1.1 (2025-07-27)

  • (mcm1957) Handling of configuration has been corrected
  • (mcm1957) Translations have been adapted

0.1.0 (2025-07-26)

  • (mcm1957) initial release

License

MIT License

Copyright (c) 2025-2026 mcm1957 mcm57@gmx.at

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.