Anker Solix

Anker Solix через облачный API

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

Адаптер ioBroker для энергетических систем Anker Solix (солнечные батареи, умные счетчики, PPS, зарядные устройства для электромобилей и многое другое). Он основан на интеграции с Home Assistant thomluther/ha-anker-solix и использует ту же неофициальную библиотеку Python solixapi.

Поддерживаемые операционные системы > > | ОС | Статус |

|----|--------| | Linux | Основная целевая платформа для производства - протестировано в CI (Docker, NAS, Raspberry Pi, …) | | Windows | Поддерживается и протестировано на ioBroker для Windows (Python 3.12+) | | macOS | Не поддерживается - автоматическая установка Python/venv не была проверена |

Установка из каталога npm / package.json: только linux и win32. Подробности: Поддерживаемые платформы.

Небольшой мост на Python (постоянный демон, как в Home Assistant) опрашивает облако Anker и, при необходимости, MQTT, а затем предоставляет значения в виде состояний ioBroker. Дополнительные группы сущностей (начиная с версии 0.9.0) повторяют область действия Home Assistant: по умолчанию включен только Core для ограничения нагрузки на API.

Оглавление

  1. Ограничения
  2. Услуги
  3. Список изменений

Отказ от ответственности и условия использования

Данный адаптер не связан с компанией Anker. Торговые марки и названия продуктов принадлежат их соответствующим владельцам.

Адаптер использует неофициальную библиотеку Python для взаимодействия с облачным API Anker Power (аналогичным API мобильного приложения). Этот API может измениться или перестать работать в любое время. Неправильные настройки могут повлиять на устройства; пользователь принимает на себя эти риски, активируя экземпляр (вкладка Учетная запись). В будущих обновлениях адаптера могут быть расширены возможности мониторинга или управления.


Поддерживаемые платформы

ПлатформаСтатусПримечания
Linux (Debian, Ubuntu, Docker, Proxmox, NAS, RPi)Основной / протестирован в CIРекомендуется для продакшена; Python 3.12+ venv (python3-venv, python3-pip)
macOSНе поддерживаетсяТеоретически тот же путь выполнения кода Unix, что и в Linux, но автоматическая загрузка Python/venv не тестировалась - отсутствует поддержка каталога npm (package.json не имеет darwin)
macOSНе поддерживаетсяТеоретически, путь выполнения кода Unix совпадает с путем выполнения кода Linux, но автоматическая загрузка Python/venv не тестировалась - отсутствует поддержка каталога npm (в файле package.json отсутствует darwin)

Linux остается основной целевой платформой для развертывания ioBroker. Windows полностью поддерживается в коде и проверена вручную; GitHub Actions запускает тесты адаптера на ubuntu-latest и windows-latest. macOS исключена из списка поддерживаемых платформ до тех пор, пока не будет протестирована установка Python.


Как работает этот адаптер в ioBroker

СлойРоль
Адаптер Node.jsКонфигурация экземпляра, планирование, состояния ioBroker, очередь управления
Мост Python (python/bridge.py)Длительная сессия: API + опционально MQTT (в стиле Home Assistant)
кэш аутентификацииiobroker-data/<instance>/authcache/<email>.json - используется повторно после успешного входа через API
authcacheiobroker-data/<instance>/authcache/<email>.json - повторно используется после успешного входа через API

Интервал опроса должен составлять 60-180 с (та же рекомендация, что и для HA). Список сайтов обновляется каждый цикл; данные об устройствах/сайтах и данные об энергопотреблении обновляются с более медленным интервалом (deviceDetailMultiplier, по умолчанию каждые 10 опросов).

Важно: Для облачных устройств API Anker обязательно (одного MQTT недостаточно для получения полных системных данных). Исключение: режим только Modbus использует локальный TCP и не требует облачных учетных данных. Этот адаптер не заменяет локальную интеграцию BLE - см. Дополнительные ресурсы.


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

  • ioBroker js-controller >= 6, admin >= 7.6
  • Node.js >= 22
  • Python 3.12+ на хосте ioBroker (рекомендуется / требуется от разработчика):
  • Linux: python3-venv + python3-pip (Debian/Ubuntu) - основная целевая платформа для производства.
  • Windows: Python 3.12+ с python.org или py -3.12; установщик адаптера поддерживает venv и tzdata
  • macOS: не поддерживается (автоматическая установка Python не проверена)
  • Исключение (по мере возможности): Контейнеры Docker для Linux на основе Debian 12 Bookworm (например, buanet/iobroker:latest-v11) могут использовать системный Python 3.11, если версия 3.12 недоступна через apt. Для работы Bookworm на физическом оборудовании, других дистрибутивов и контейнеров, не использующих Bookworm, по-прежнему требуется версия 3.12+. Рекомендуется устанавливать Python 3.12+ в постоянный путь и указывать pythonPath, если это возможно.

Зависимости Python устанавливаются в папку адаптера (python/.venv или python/site-packages). Начиная с версии 0.2.0: автоматически при запуске (ПараметрыautoInstallPython) или при нажатии кнопки Установить зависимости Python.

Установка через ioBroker (рекомендуется):

iobroker install anker-solix

После внесения изменений в файлы адаптера локально, загрузите экземпляр:

iobroker upload anker-solix

Многохостовый режим: используйте --host "PC(SmartHome)" в кавычках, если имя содержит специальные символы.

Удалите устаревшую символическую ссылку, если она присутствует: rm -f /opt/iobroker/node_modules/iobroker.AnkerSolix

Ручная настройка Python (при необходимости):

cd node_modules/iobroker.anker-solix
python3 -m venv python/.venv && python/.venv/bin/pip install -r python/requirements.txt

Home Assistant (дополнение для ioBroker)

В официальном приложении ioBroker для Home Assistant OS часто присутствует профиль python3, но нет профилей pip и нет профилей python3-venv. Установите или обновите адаптер через каталог ioBroker / npm (iobroker install anker-solix). Начиная с версии 0.10.72, установщик обнаруживает этот профиль и пытается:

  1. virtualenv в python/.venv (или --without-pip + pip внутри venv)
  2. Используйте get-pip.py с параметром --break-system-packages, если системный Python соответствует PEP 668.
  3. В качестве запасного варианта используйте pip install --target python/site-packages.

В административной панели экземпляра: ПараметрыУстановить зависимости Python или перезапустите экземпляр с включенной опцией autoInstallPython.

Если в логах по-прежнему отображается No module named pip, откройте терминал ioBroker/SSH на хосте и выполните следующую команду:

cd /data/iobroker/node_modules/iobroker.anker-solix
node tools/install-python.js
iobroker restart anker-solix.0

Скопируйте authcache/<email>.json из работающей конфигурации Anker (например, ha-anker-solix) в iobroker-data/anker-solix.0/authcache/, чтобы избежать капчи при первом входе в систему.

Локальный Modbus (опционально)

Более новые устройства Anker (Solarbank 4 / Max AC / Max, Smart Meter Gen 2, Smart Plug Gen 2, SOLIX X1 HES, V1 Smart EV Charger) можно опрашивать локально через Modbus TCP (порт 502). Карты регистров приведены в Официальные протоколы Modbus от Anker (https://support.ankersolix.com/) и проверенные сообществом сопоставления X1 ([anker-x1-ha]).).

  1. Включите протокол Modbus TCP в приложении Anker (солнечная батарея: система / управление сторонними сервисами; X1: профессиональное приложение → настройки связи; зарядное устройство для электромобилей V1: настройки → интеграции).
  2. Администрирование адаптера → Modbus (локальный) → включить канал, добавить IP-адреса каждого устройства.
  3. Дополнительно: включите только Modbus (без облака), если вы не хотите использовать вход в облако Anker. В этом случае Python, учетные данные и условия использования не требуются; экземпляр будет зеленым, если подключено хотя бы одно устройство Modbus (в противном случае - желтым).
  4. Датчики: anker-solix.0.modbus.<name>.sensors.* (SOC, PV, grid, battery, SN, …).
  5. Элементы управления: anker-solix.0.modbus.<name>.control.*
  • Solarbank: operating_mode, ограничения SOC, backup_soc_enable, battery_power_direction + battery_power_setpoint (установка значения происходит только в third_party_control; сначала установите направление; заряд записывается в отрицательных ваттах).
  • Умная розетка второго поколения: power_switch.
  • Умный счетчик второго поколения: только для чтения.

Без только Modbus для старых устройств и MQTT по-прежнему используется облачный вход. Solarbank 3 не включен в официальные карты Modbus Anker. Если другой клиент Modbus только что запросил устройство, первый запрос может получить отказ в соединении до истечения времени ожидания этого клиента; следующий интервал запроса будет повторен.

Docker (buanet/iobroker)

Официальный образ поставляется с Python 3.11. Начиная с 0.10.87, адаптер принимает его как наилучший вариант в контейнерах Bookworm на Debian 12 - пользовательский образ не требуется. 3.12+ по-прежнему рекомендуется (используется разработчиками из основного репозитория) и по-прежнему требуется на физических серверах и хостах без Bookworm. Руководство: docs/docker-buanet.md (необязательные файлы 3.12 в docs/docker/, PDF: docs/Anker-Solix-buanet-Docker-Anleitung.pdf).


Конфигурация

  1. Создайте экземпляр: iobroker add anker-solix
  2. Учетная запись: Электронная почта Anker, пароль, код страны (например, DE) - сохраните после ввода пароля
  3. Учетная запись: разрешить использование неофициального API (флажок внизу вкладки)
  4. Параметры: интервал опроса 60-180 с, MQTT при необходимости, deviceDetailMultiplier (по умолчанию в Home Assistant: 10)
  5. Устройства: Загрузка устройств, дополнительный фильтр идентификатора сайта / серийного номера устройства.
  6. Объекты (v0.9.0+): включить необязательные группы; по умолчанию включен только Ядроперезапустить адаптер после внесения изменений

Не используйте функцию Очистка кэша входа в Anker, если вам не требуется преднамеренный повторный вход (неверная учетная запись, поврежденный файл). Очистка принудительно выполняет новый вход в облако и часто запускает капчу на серверах - см. Поиск неисправностей.


Кэш учетных записей и входа в Anker

После первого успешного входа через API адаптер сохраняет токены в:

iobroker-data/anker-solix.0/authcache/<your-email>.json

(Имя файла должно точно совпадать с адресом электронной почты в Учетной записи.)

Начиная с приложения Anker 3.10 (середина 2025 года), одну учетную запись часто можно использовать на нескольких клиентах параллельно (приложение + ioBroker + HA). Более старые документы о «только одном токене» сегодня менее критичны, но неудачная повторная авторизация через ioBroker по-прежнему не сможет обновить файл, если Anker вернет капчу.

Учетные записи общего доступа / учетные записи участников: Учетная запись, используемая членами семьи, может отображать меньше информации API, чем учетная запись владельца (аналогично Home Assistant).

Дополнительные примечания к учетной записи: HA INFO.md - счета.


Ограничения

  • Неофициальный API - отсутствует документация; конечные точки могут измениться в любое время.
  • Облако ЕС против COM - неправильная страна в конфигурации → вход в систему работает, но системы/устройства не отображаются. Не меняйте страну после сопряжения устройств.
  • Устаревшие облачные данные, если Wi-Fi устройства отключен; используйте индикаторы подключения к облаку/MQTT, если они включены.
  • Обновления MQTT зависят от цикла публикации устройства; некоторые значения доступны только при триггере в реальном времени (при высокой нагрузке, если соединение круглосуточное).
  • Автономные устройства (блоки питания, зарядные устройства, кулеры, не входящие в систему электропитания) имеют мало или совсем не имеют данных об энергопотреблении по API - может потребоваться MQTT (ограничения Home Assistant).
  • Динамический тариф за пределами Nordpool: прогнозы/ценовые параметры могут быть неверными или доступны только для чтения.
  • Каптча (100032) при прямом входе через API с VPS/VPN/датацентра - см. Устранение неполадок. Скопируйте authcache из HA или другой работающей конфигурации, если ioBroker не может войти в систему.

Для добавления устройств: экспортируйте анонимизированные данные через HA экспорт систем или [anker-solix-api export_system.py]](https://github.com/thomluther/anker-solix-api#export_systempy).


Поддерживаемые устройства

Производитель: Anker SOLIX (поддержка / загрузки). Облачное покрытие соответствует ha-anker-solix (через solixapi). В ioBroker данные отображаются по идентификаторам состояния в зависимости от типа устройства (solarbank, smartmeter, combiner_box, system, modbus, …).

Тип устройстваПримерыОблачное / MQTTЛокальный Modbus
система / сайтСистема электропитания из приложения Anker (= API “сайт”)да-
солнечная батареяE1600 (Gen1), SB2 Pro/Plus/AC, SB3 E2700, SB4 E5000 Pro, Solarbank Max / Max AC (XE)API + MQTTSB4, Max, Max AC (порт 502)
combiner_boxPower Dock (мультисистемный) - объединенные элементы управления, если применимода-
умный счетчикТрехфазный счетчик Anker, США, Shelly 3EM / 3EM Pro, умный счетчик второго поколения (AE1X0)давторого поколения (только для чтения)
инверторАвтономный MI80 (виртуальный сайт в API)да-
умная розеткаУмная розетка 2500 Вт, Умная розетка второго поколенияда2-е поколение (power_switch)
pps / solarbank_ppsПортативные электростанциив основном MQTT-
ev_chargerИнтеллектуальное зарядное устройство для электромобилей V1В основном MQTTModbus TCP (локально)
транспортное средствоВиртуальные электромобили для зарядных устройствориентирован на чтение-
PowerPanel / HESПанель управления электропитанием США, X1 HESОграниченный APIX1 Modbus TCP (локальный)
зарядное устройствоPrime / зарядные станцииMQTT-
home_backupE10, AX170очень ограниченный API-

В адаптере Solarbank 3 есть поддержка облачных сервисов/MQTT, но он не включен в официальные карты регистров Modbus от Anker.

Иерархия устройств (как HA структурирует сущности): [Обсуждение #239. Настройка локального Modbus: Локальный Modbus (необязательно).


Государственная структура и группы субъектов

Типичные пути (экземпляр anker-solix.0):

  • anker-solix.0.solarbank.<deviceId>.sensors.* - мощность, уровень заряда батареи и т. д.
  • anker-solix.0.solarbank.<deviceId>.control.* - доступные для записи элементы управления, где это поддерживается.
  • anker-solix.0.<device>.<id>.statistics.* - суточная выработка кВт·ч (включить Объекты → статистика энергопотребления)
  • …statistics.week.* / statistics.month.* / statistics.year.* - итоговые данные за календарную неделю, месяц и год в кВт·ч (отдельные группы объектов; опрос производится при обновлении подробных данных, а не в каждом цикле)
  • Статистика сайта-комбинатора: доступна только в combiner_box.<id>.statistics.* (не дублируется в system.* или каждом solarbank.*). Без combiner: для каждого solarbank.*smartmeter.* для метрик сетки). Запросы к API выполняются один раз для каждого сайта.
  • anker-solix.0.smartmeter.<deviceId>.sensors.*
  • anker-solix.0.services.* - экспорт, планирование, обновление (состояния кнопок)
  • anker-solix.0.info.connection, anker-solix.0.info.pythonReady

Группы сущностей (Администрирование → Объекты): сопоставляются с наборами функций высокой доступности - потоки электроэнергии, диагностика, PPS, зарядное устройство для электромобилей, HES, цена объекта, информация об учетной записи и т. д. Отключенные группы исключаются из опросов API для снижения нагрузки.


Устройства, управляемые по протоколу MQTT

Включите MQTT в Настройках, если вам нужны данные в реальном времени или элементы управления, которые не предоставляются облачным API (многие функции PPS/EV/зарядных устройств).

  • Дополнительные датчики/элементы управления получаются из MQTT-карт в solixapi (декодируются сообществом для каждой модели).
  • Триггер в реальном времени и запрос статуса работают как кнопки Home Assistant - автоматизация их круглосуточного использования увеличивает трафик и поддерживает устройства в активном состоянии (раздел Home Assistant MQTT).
  • Для гибридного управления (резерв SOC станции, ограничения переменного тока, экспорт электроэнергии из сети в нескольких системах) требуется MQTT + API, как в Home Assistant.
  • Устройства в режиме локального подключения MQTT (например, E10 за Power Dock) подключаются через центральный блок управления - см. ИНФОРМАЦИЯ О HA - Локальный режим MQTT.

Расшифровка новых моделей: [Рекомендации MQTT, инструмент mqtt_monitor.py в [anker-solix-api]](https://github.com/thomluther/anker-solix-api).


Специальные примечания к устройству

Сокращенная версия из README интеграции HA; поведение облачной/MQTT-системы одинаково при использовании solixapi. Локальные примечания Modbus зависят от адаптера.

Solarbank 4 E5000 Pro / Solarbank Max / Max AC

Облако: тот же путь опроса, что и у других солнечных батарей (API + опционально MQTT). Ежедневные кВт·ч (statistics.daily_*) считываются при подробных опросах (каждые deviceDetailMultiplier циклов, по умолчанию ~10), а не каждую минуту - проверьте журнал на наличие Daily kWh statistics updated. С Power Dock/комбинатором: значения отображаются только в combiner_box.<SN>.statistics.*, а не в каждом solarbank.*. Перезапустите адаптер после включения Объекты → Дневная статистика. Итоговые данные за неделю/месяц/год запускаются по вечернему расписанию (23:00 / 23:15 / 23:30 Европа/Берлин).

Локальный Modbus TCP (официальные карты): включите Modbus в приложении Anker (система / управление сторонними сервисами), затем Администрирование → Modbus (локальный). Типичные коды моделей включают AE103 (SB4). Состояния: anker-solix.0.modbus.<name>.sensors.* и .control.* (режим работы, ограничения уровня заряда батареи, заданное значение заряда батареи в управлении сторонними сервисами). Только Modbus пропускает облачные сервисы/Python; светодиод экземпляра горит зеленым, когда подключено хотя бы одно устройство Modbus.

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

Умный счетчик второго поколения / Умная розетка второго поколения

Облачные сущности аналогичны другим счетчикам/розеткам. Локальный Modbus: Счетчик Gen 2 только для чтения (мощность/напряжение/ток на фазу). Интеллектуальная розетка Gen 2 предоставляет доступ к power_switch. Каждому устройству требуется собственный IP-адрес (порт 502).

Автономные инверторы (МИ80)

Это не полноценная «энергетическая система» в виде приложения, а данные, отслеживаемые облаком. API создает виртуальный объект. Состояние Wi-Fi инвертора в API часто бывает неверным; состояние подключения к облаку более надежно. Не изменяйте ограничения инвертора навсегда (циклы записи на оборудование).

Солнечная батарея 1 (E1600)

Облачные обновления происходят примерно каждые 60 секунд во время производства/разрядки; примерно каждый час в режиме ожидания. Ошибка расписания: один слот API на весь день может установить экспорт на 0 Вт - используйте ≥2 слота в приложении, если используете предустановленные параметры вывода. Ежедневная статистика разрядки с середины 2024 года включает в себя пропущенные солнечные батареи (также некорректно в приложении). Мониторинг/управление по MQTT из Home Assistant версии 3.4+/3.5+.

Солнечная батарея 2 + интеллектуальные счетчики

Интервал обновления облачных сервисов часто составляет ~5 минут; изменения в настройках могут отображаться в датчиках до ~6 минут. В общих учетных записях исторически были недоступные объекты (исправлено на стороне Anker). Некоторые пути API для ограничений вывода до сих пор неизвестны.

Солнечная батарея 2 AC

Планы использования по времени суток управляются там, где это поддерживается; обновления облака могут зависать после интенсивного использования приложения (HA #211).

Комбинированный SB2 + каскадный SB1

Итоговые данные/статистика в облаке Anker отражают только SB2; SB1 частично является «черным ящиком». При ручном управлении SB2 на SB1 устанавливается минимальное расписание - некоторые элементы управления ioBroker/HA намеренно показывают недоступность. Для корректной зарядки/разрядки суммируйте мощность батареи для каждого устройства, а не только общую мощность системы (подробности HA).

Солнечная батарея 3

Интеллектуальный режим, динамическое ценообразование, режимы с временными интервалами - часто только переключение через API (предварительно настройте в приложении). Динамическое ценообразование НДС/сборов может быть только кэшируемой настройкой. Прогноз Nordpool наиболее надежен.

Мультисистема с док-станцией питания

До 4 блоков SB3; общие настройки станции (режим использования, резерв SOC, экспорт в сеть). Управление объединено на комбинаторе / Power Dock в логике интеграции. Облачные данные могут передаваться с задержкой на начальных этапах развертывания. Ограничение выходной мощности переменного тока для нескольких систем может быть недоступно для изменения через API.

Управление станцией

Резерв SOC, ограничения PV/AC, экспорт в сеть часто требуют API + MQTT (гибридные системы). Сторонние переключатели, поддерживающие PV/EV, обычно требуют однократной настройки приложения - они не доступны для автоматизации.

PPS / Solarbank PPS (F3000 + американский счетчик)

В США используется автоматизированная система резервного копирования данных на дому; управление осуществляется преимущественно через MQTT.

Зарядное устройство для электромобилей (V1)

Большинство метрик/элементов управления передаются через MQTT; поддерживаются учетные записи участников. Режимы работы соответствуют конечному автомату в стиле Home Assistant - в ioBroker проверьте доступные параметры управления перед запуском скриптов. Статистика истории сессий не реализована (используйте историю состояний).

Транспортные средства

Виртуальные устройства на учетную запись EV; создание через адаптер не требуется - обнаружено при обновлении.

Панель питания и HES (X1)

Ограниченные возможности API; обходное решение использует ~5-минутные средние значения из статистики энергопотребления (~80 МБ/день дополнительного трафика на систему, если включено). При необходимости отключите категории с высокой нагрузкой в объектах.

Локальный Modbus (X1): включите Modbus TCP в приложении Anker Solix Professional, затем Администрирование → Modbus (локальный) → профиль SOLIX X1 HES (или автоматическое определение). Параметры находятся в разделе modbus.<name>.sensors.* и управляют режимом работы / заданным значением заряда батареи (VPP / режим стороннего поставщика). X1 принимает только один клиент Modbus TCP одновременно.

Интеллектуальное зарядное устройство для электромобилей V1 (локальный Modbus)

При использовании учетной записи Anker облачные/MQTT-объекты остаются доступными. Для управления только локально включите Modbus TCP в разделе «Интеграции» в приложении Anker и добавьте профиль «V1 Smart EV Charger». Управление: запуск/остановка зарядки, максимальный ток (6-32 А). Зарядное устройство поддерживает одновременное подключение до двух Modbus-клиентов.

Резервное копирование домашней сети (E10, AX170)

Практически отсутствует облачный API для управления энергопотреблением системы; E10 часто работает в локальном режиме MQTT через док-станцию.

Другие / автономные устройства

Полный API доступен только в энергетической системе; в противном случае требуется MQTT + декодирование сообщества.


Устранение неполадок при входе в систему / опросе

Нет authcache/<email>.json

Файл создается только после успешного входа через API. Если при каждом входе возвращается капча, скопируйте рабочий файл из ха-анкер-соликс (custom_components/anker_solix/solixapi/authcache/) в iobroker-data/anker-solix.0/authcache/, используя то же имя файла, что и в Учетной записи.

(100032) Captcha id empty

Anker блокирует некоторые входы через API серверов/VPN. Библиотека не может обработать капчу.

  1. Подтвердите вход в приложение в той же локальной сети; укажите правильную страну; отключите VPN на хосте ioBroker.
  2. Не очищайте кэш при входе в систему, чтобы «исправить» капчу.
  3. Скопируйте authcache из Home Assistant или войдите в систему заново, когда облако позволит это сделать.
  4. После многочисленных неудачных попыток подождите 15-30 минут.
  5. Используйте адаптер ≥ 0.9.3, чтобы при перезапуске не удалялся действительный кэш.

В логе указан точный путь к кэшу из версии 0.9.4+.

Лимиты скорости (26161 / 429)

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


Услуги

Штаты, указанные в anker-solix.0.services.* (для срабатывания установите значение true):

  • get_schedule, clear_schedule, export_systems, get_system_info, refresh_devices

Использует selectedDeviceId / selectedSiteId из конфигурации. См. вкладку «Объекты» в разделе «Администрирование» (подсказка по службам).


Благодарности и дополнительная информация

РесурсСодержание
thomluther/ha-anker-solixПолный файл README, INFO.md (конфигурация, MQTT, экспорт, тарифы)
Обсуждения HAПанель мониторинга энергопотребления, нулевой экспорт, эффективность
SolixBLEЛокальный BLE (не облачный)
ha-anker-solix-officialОфициальный Modbus (локальные устройства)
ioBroker.pvforecastПрогноз PV (необязательный параметр для предотвращения сокращения производства)
ioBroker.pvforecastПрогноз PV (необязательный параметр для предотвращения сокращения)

Немецкие руководства/видеоролики, ссылки на которые приведены в разделе HA README, концептуально относятся к данным и ограничениям; подключение осуществляется через состояния ioBroker, а не через сущности HA.


Предотвращение ограничений (необязательно)

Вкладка Abregelungsvermeidung / Curtailment avoidance: требует [ioBroker.pvforecast адаптер. (Ранее основан на [ioBroker.solarprognose]](https://www.iobroker.net/#en/adapters/adapterref/iobroker.solarprognose/README.md) / solarprognose.de - переключено, потому что solarprognose.de закрывается и этот источник данных больше не является жизнеспособным.) Установите путь работы электростанции (например, pvforecast.0.plants.pv); значения мощности считываются из {path}.power.hoursToday.*. Разрешение прогноза (60 / 30 / 15 минут, по умолчанию 60) должно соответствовать интервалу, настроенному в pvforecast. Только для управления: ручной режим + ac_output_limit (выход/экспорт переменного тока). Не изменяет базовые настройки станции (ограничение экспорта из сети, allow_grid_export, предустановка домашней нагрузки, ограничение зарядки переменного тока). До: ac_output_limit = активный PV. Активно: missing_charge_wh, max_charge_w = missing_charge_wh ÷ remaining_hours, export_w = live_pv_wmax_charge_w, ac_output_limit = export_w. После: восстановить выбранный режим. Штаты: curtailment.live_pv_w, missing_charge_wh, max_charge_w, export_w, remaining_hours.

Администратор: установите флажок Присутствует поле «Комбинатор» - без комбинирования: идентификатор устройства + тип солнечной батареи + мощность батареи в Вт·ч; с комбинированием: идентификатор комбинирования + до 4 слотов для солнечных батарей (каждый слот может быть отсутствующим). Комбинатор: общий лимит переменного тока = сумма лимитов для каждого устройства (SB2 1000 Вт, SB3 Pro 1200 Вт, SB4 Pro 2500 Вт). Автономный режим: всегда 800 Вт.


Панель мониторинга VIS / VIS-2 (Энергоэффективность дома)

В редакторе VIS/VIS-2 установлен виджет anker-solix:

ВиджетНазначение
Энергоэффективный домФотореалистичный фон дома, отображение состояния солнечных батарей / дома / сети / аккумулятора / электромобиля в реальном времени (ручная настройка состояния)
HTML-панель управленияЛюбое состояние dashboard.sites.*.html (в рабочем состоянии, энергопотребление, настройки и т. д.)
Обзор многосайтовой конфигурацииПривязать к anker-solix.0.dashboard.overview.html
Обзор многосайтовой конфигурацииПривязка к anker-solix.0.dashboard.overview.html

Важно: Виджеты поставляются только с основной версией GitHub / 0.10.100+. npm 0.10.90 их не включает.

Начиная с версии 0.10.104, адаптер копирует widgets/ в файловое хранилище VIS/VIS-2 при запуске и запускает перестройку VIS-2. После установки или обновления:

  1. Перезапустите экземпляр anker-solix (или дождитесь появления строки в логе автоматической синхронизации).
  2. Перезагрузите редактор VIS/VIS-2 (F5).
  3. В окне выбора виджетов откройте набор anker-solix.

Если виджеты по-прежнему отсутствуют, запустите программу на хосте ioBroker:

iobroker upload vis widgets
iobroker upload vis-2 widgets
iobroker restart vis
iobroker restart vis-2

Затем снова загрузите редактор. Для Energy Home назначьте состояния в настройках виджета: Привязка состояний, Потоки сетки, Батарея.

Дополнительный импорт представления VIS-2: widgets/anker-solix/views/energy-home.vis2.json.

Включите отображение потоков мощности и статистики энергопотребления в объектах адаптера для значений в нижнем колонтитуле (самопотребление, сегодняшняя солнечная энергия).


HTML-панели мониторинга (в стиле Solix4)

Вдохновлено ioBroker.solix4 от Майкла Хорна (@michihorn64) - спасибо за оригинальную концепцию панели управления! Подробности: [CREDITS.md]](/#/docs/adapterref/iobroker.anker-solix/CREDITS.md).

После каждого успешного опроса адаптер записывает самодостаточный HTML-код (темная тема, поток энергии в реальном времени, настройки, суточная норма кВтч, диагностика, список устройств) в строковый файл states с ролью html:

СостояниеСодержание
anker-solix.0.dashboard.sites.<siteKey>.live.htmlТекущий поток энергии (Солнечная энергия → Дом ↔ Сеть, батарея)
…energy.htmlЕжедневные показатели потребления кВт·ч + автаркия / собственное потребление
…settings.htmlОграничения и режимы (только для чтения)
…diagnosis.htmlПредупреждения, MQTT, состояние устройства
…devices.htmlИнвентаризация устройств
anker-solix.0.dashboard.overview.htmlСравнение на нескольких площадках
anker-solix.0.dashboard.overview.htmlСравнение сайтов

<siteKey> - это первые 8 символов идентификатора сайта Anker (аналогично solix4).

VIS / VIS-2: добавьте виджет HTML Dashboard (установите anker-solix) и привяжите его, например, к anker-solix.0.dashboard.sites.<siteKey>.dashboard.html, или используйте универсальный виджет VIS HTML. Измените размер до размера планшета (~900×700 пикселей). HTML-код обновляется при каждом опросе адаптера.

Включите Объекты → Tagesstatistiken для плиток кВтч; включите Leistungsflüsse для значений активной мощности.


Публикации (каталог npm и ioBroker)

npm: Выпуск через git-тег (v*) и развертывание в CI после Проверка адаптера прошла успешно (https://adaptercheck.iobroker.in/). Публикация осуществляется с использованием доверенной публикации npm (OIDC из GitHub Actions - без долгосрочного токена npm). Классические токены автоматизации устарели в npm с января 2027 года; этот адаптер уже использует доверенную публикацию. Зарегистрируйтесь в [ioBroker.repositories], как только пакет появится в npm.

Перед каждым релизом (обеспечивается npm run test:packagetest/io-package-policy.js; выполняется локально с помощью npm run verify:ci перед каждым push):

  1. Увеличьте значение параметра version в файлах package.json и io-package.json (они должны совпадать).
  2. Добавьте раздел ### x.y.z в этот список изменений README (E6006).
  3. Добавьте одну новую запись в common.news для этой версии только при публикации в npm (тег v*); сохраните не более 7 ключей новостей - только версии, уже размещенные в npm (плюс версия, которую вы собираетесь опубликовать). Промежуточные версии, доступные только на GitHub, не должны появляться в common.news (E2004). Переместите удаленный текст в CHANGELOG_OLD.md. Задокументируйте все версии в этом файле README с изменениями.
  4. Администрирование jsonConfig.json: размер заголовка size должен быть ≤ 5 (используйте 5 для самого маленького заголовка).
  5. Не добавляйте корневые файлы в npm files, если это не требуется (файл CHANGELOG_OLD.md не входит в состав пакета).
  6. Файл package.json с параметром os должен соответствовать матрице ОС в файле test-and-release.yml (E3027). Поддерживайте синхронизацию файла i18n/*.json в административной панели с файлом en.json (W5604/W5605).
  7. Не добавляйте скрипт prepare (E0094). После клонирования запустите npm run setup:githooks один раз, чтобы хук pre-push запустил verify:ci.

Changelog

0.10.105

  • Repo checker (#9): removed forbidden prepare script (E0094); common.news lists npm-published versions only (E2004); enable local hooks with npm run setup:githooks
  • CI (#10): adapter tests on Node.js 22 / 24 / 26; @iobroker/adapter-core → 3.4.3; Modbus TCP read timeout uses adapter.setTimeout (S5005)
  • News translations expanded for remaining npm versions (W1145)

0.10.104

  • VIS / VIS-2: widget set anker-solix is copied to VIS file storage on adapter start; VIS-2 catalog rebuild triggered automatically
  • VIS widgets: HTML Dashboard, Site Dashboard (tablet), Multi-site Overview (bind dashboard.*.html states) plus existing Energy Home

0.10.103

  • HTML dashboards (solix4-style): live flow, settings, daily kWh, diagnosis, devices, overview under dashboard.sites.*.html — inspired by ioBroker.solix4 (Michael Horn / michihorn64); see CREDITS.md

0.10.102

  • Fix: daily kWh statistics for SB4 / Power Dock — info/warn logs when cloud fetch runs or returns empty; recover poll state that could skip daily energy forever; fallback to solarbank.*.statistics.* when combiner site has no combiner_box object yet
  • Admin: hint under energy statistics (daily vs week/month/year schedule, combiner path)

0.10.101

  • Modbus (local): profiles for Anker SOLIX X1 HES and V1 Smart EV Charger (official protocol register maps; X1 little-endian 32-bit and string decode; existing Solarbank/Gen2 profiles unchanged)

0.10.100

  • VIS Energy Home: duplicate grid-to-home flow line fixed — remove legacy grid SVG paths, show only import or export line at a time (GitHub-only)

0.10.99

  • VIS Energy Home: VIS-1 duplicate grid/battery cards fixed — widget destroy/cleanup on re-render, legacy card removal, cache-busted CSS/JS (GitHub-only)

0.10.98

  • VIS Energy Home: single always-visible grid and battery power cards; label and value switch between import/export and charge/discharge while flow lines show direction (GitHub-only)

0.10.97

  • VIS Energy Home: grid and battery power cards share one slot each and toggle by active flow — Grid → Home vs PV → Grid, Entladen vs Laden (GitHub-only)

0.10.96

  • VIS Energy Home: energy flow lines realigned to the Home hub (PV, grid import/export, battery charge/discharge, EV); SVG coordinates now match card positions (GitHub-only)

0.10.95

  • VIS Energy Home: separate cards for Grid → Home, PV → Grid, SOC, charge, and discharge; dedicated flow lines per direction; widget settings grouped into Grid flows and Battery (GitHub-only)

0.10.94

  • VIS Energy Home: removed auto-discovery and card hiding; all states (PV, home, grid import/export, SOC, battery charge/discharge, EV, footer) are assigned manually in widget settings (GitHub-only)

0.10.93

  • VIS Energy Home: grid uses grid_to_home_power (import) vs photovoltaic_to_grid_power (export); battery uses bat_charge_power vs bat_discharge_power; energy line animation direction matches flow (GitHub-only)

0.10.92

  • VIS / VIS-2 Energy Home: clean house background (no baked-in UI); slim animated SVG energy lines and cards as overlays; broader auto-discovery (system, combiner, smartmeter, solarbank, modbus, ev_charger); all cards always visible; live view subscribes discovered states (GitHub-only until next npm release)

0.10.91

  • VIS / VIS-2: first Energy Home widget (auto state discovery, combiner/modbus aware); restartAdapters vis + vis-2; requires iobroker upload anker-solix after install (GitHub-only until next npm release)

0.10.90

  • Modbus only: skip Anker cloud/Python when the checkbox is enabled; no credentials or usage terms required; instance LED is green when at least one local Modbus device is connected
  • Docs: README supported devices + special notes for SB4 / Max / Modbus Gen 2; valid state roles for usage-mode and EV-charger lists; Modbus admin i18n

0.10.89

  • Admin: fix GUI error when opening Modbus (local) (hidden must use data.enableModbus; table items as array with attr)
  • Docker: buanet guide uses stock Python 3.11 as default (0.10.87 best-effort); 3.12 image/userscript optional

0.10.88

  • Modbus (optional): local TCP poll and control for official devices (Solarbank 4 / Max AC / Max, Smart Meter Gen 2, Smart Plug Gen 2); cloud Python bridge unchanged
  • Docker: buanet/iobroker Python guide (docs/docker-buanet.md)

0.10.87

  • Python: Debian 12 Bookworm Docker containers (e.g. buanet v11) accept system Python 3.11 as best-effort; all other hosts still require 3.12+

0.10.86

  • Solarbank 1 (E1600): writable preset_charge_priority (0–100 %) and preset_discharge_priority (switch) via set_home_load — not applicable to SB2/SB3

0.10.85

  • Admin: curtailment hint/path labels use new i18n keys so Admin no longer keeps stale solarprognose.de text after the pvforecast switch

0.10.84

  • Curtailment: switch forecast source from solarprognose.de / ioBroker.solarprognose to ioBroker.pvforecast because solarprognose.de is shutting down. Plant path (…power.hoursToday); resolution option 60/30/15 min (default 60). (0.10.82/0.10.83 were not published: CI lint / unpublished news entries.)

0.10.83

  • Fix: CI lint for curtailment/pvforecast (prettier, require-await, redundant type unions) — not published (see 0.10.84)

0.10.82

  • Curtailment: switch to pvforecast (solarprognose.de shutting down) — not published (CI lint failure; see 0.10.84)

0.10.81

  • Repository review (mcm1957): restore standard test-and-release workflow — adapter tests on every push/tag (Linux + Windows matrix), deploy only after all jobs succeed (no always() / no skipped-tests workaround); declare linux + win32 in package.json; README: Windows supported & tested, macOS not supported

0.10.80

  • Object dump fix: persist periodScheduleOffsetSec via extendForeignObjectAsync on system.adapter.<instance> (avoids invalid anker-solix.0.system.adapter.* object without type/common, E3004/E3007)

0.10.79

  • Repository re-review: per-instance period energy schedule jitter; sensor-kind state name migration; remove unused curtailmentModeBefore; document Linux + tested Windows support

0.10.78

  • Adapter-check: use adapter.setTimeout instead of plain setTimeout (E5005)

0.10.77

  • Repository review: English-only log messages; English default state names and list labels (common.name/common.states)

0.10.76

  • Object structure: list controls use role state (max_total_ac_output, EV charger mode lists; E1008/E1009)

0.10.75

  • Object structure (PR review): folder → device → channel hierarchy before states (E3009); valid ioBroker roles/types (E1008/E1009/E1011)
  • Dev: @alcalzone/release-script 5.2.1 (E0036)

0.10.74

  • TypeScript 6 (W0083); tsconfig.json adds mocha types for tsc --noEmit
  • CI: testing-action-adapter and testing-action-deploy use @v1 (S3043/S3044); testing-action-check stays @v2.0.0 (no floating @v2 tag)
  • Tests: npm pack must exclude CHANGELOG_OLD.md (S9508)

0.10.73

  • README: removed discouraged GitHub-URL installation section (adapter-check E6013)
  • Tests: test/io-package-policy.js guards against GitHub URL install text in README

0.10.72

  • Repository checker: admin i18n synced for all languages (W5604/W5605); package.json os aligned with Linux CI (E3027)
  • Tests: test/i18n-policy.js and E3027 check in test/io-package-policy.js

0.10.71

  • Python install: detects host profile (Linux server, Home Assistant ioBroker add-on, Windows, container)
  • HA: venv-first, get-pip.py with --break-system-packages / PIP_BREAK_SYSTEM_PACKAGES for PEP 668
  • Windows: tries py -3.13, py -3.12, Program Files paths; parses --version (no broken shell -c check); adds tzdata for Europe/Berlin
  • Bridge: uses resolved Python spawn spec (py -3.12 args) consistently in daemon and one-shot mode
  • Deps check: aiohttp + ZoneInfo("Europe/Berlin") before skipping install

0.10.70

  • Repository / CI: common.news capped at 7 npm-published versions; workflow concurrency per ioBroker.example; admin header size ≤ 5; automated checks in test/io-package-policy.js; CHANGELOG_OLD.md excluded from npm package

0.10.69

  • Curtailment: after midnight (Europe/Berlin) phase inactive until solarprognose forecast signature changes; then safe modeAfter release (no export while waiting)

0.10.68

  • Admin: Python install button at bottom of Options tab

0.10.67

  • Admin: removed Devices tab and cloud device reload; device filter on Objects; Login cache tab rightmost

0.10.66

  • Admin: device list and login-cache status via useNative responses

0.10.65

  • Login cache tab: backup/restore; auto-backup after first login

0.10.64

  • Curtailment admin: hint text; combiner vs standalone field toggle fix

0.10.63

  • Fix bat_discharge_power; admin: terms under Account, Objects tab, curtailment UI (combiner / solarprognose link)

0.10.31

  • Week/month/year statistics: fetched once per day after 23:00 / 23:15 / 23:30 (Europe/Berlin) on the next detail poll, not every detail refresh

0.10.30

  • Week/month statistics: fetched like Home Assistant (energy_daily, device_sn empty for site totals); avoids energy_analysis 10003 with combiner SN; year still via energy_analysis

0.10.29

  • Curtailment: instance setting Minimum live PV (W) (curtailmentMinPvW, default 50); fix ESLint/Prettier CI failure on 0.10.28

0.10.28

  • Curtailment: manual mode and ac_output_limit only when live PV ≥ 50 W — no midnight feed-in from forecast (fixes 4800 W at livePv=0)

0.10.27

  • Period energy_analysis: per-call retry on 10003, partial metrics if only some calls fail; uses combiner/solarbank SN; success log only when kWh values exist

0.10.26

  • Week/month period stats: fetched on first detail refresh when only period groups are enabled (not after ~30 min); week interval = every detail refresh (was every 3rd); log line Period statistics updated (week)

0.10.25

  • Fix: curtailment.soc_percent state object is created on start (was missing since 0.10.16)

0.10.24

  • Fix: NameError: needs_daily_energy_poll / missing PERIOD_YEAR imports in 0.10.23 (incomplete release)

0.10.23

  • Fix: missing _update_energy_periods crashed the bridge daemon (AttributeError) → one-shot fallback and extra 429 load
  • Year/month/week only: skips daily poll_device_energy (no “today” entity group); period energy_analysis only every Nth detail refresh (year ≈ 8×)
  • On 429: no one-shot fallback; period stats back off 30 min; parallel polls skipped

0.10.22

  • Energy statistics (daily + week/month/year) only on combiner_box when a combiner exists; no duplicate states under system.* or each solarbank.*

0.10.21

  • Fix: IoBrokerAnkerApiClient stored no config → daemon crashed (AttributeError), one-shot bridge fallback, extra API load and 429 rate limits
  • Week/month/year energy_analysis calls are rotated (one period per detail refresh) instead of all three at once

0.10.20

  • Period energy statistics (week / month / year) use subfolders: statistics.week.*, statistics.month.*, statistics.year.* (instead of flat week_* under statistics.*)
  • Release 0.10.19 tag had no npm deploy (CI lint); install 0.10.20 or newer

0.10.18

  • Entity groups Weekly / monthly / yearly energy statistics (enableEnergyStatisticsWeek|Month|Year): kWh totals for current calendar week, month, and year via Anker energy_analysis API

0.10.17

  • Fix: Stale build/ still ran old curtailment code that set grid export limit (grid_export_limit) to up to 4800 W on adapter start (App: Netzeinspeisungs-LeistungsgrenzeAnpassen). Rebuilt build/ from current TypeScript; tests verify compiled curtailment never touches feed-in controls

0.10.16

  • Combiner sensor total_state_of_charge: cloud total or capacity-weighted average of all site solarbanks (poll + ioBroker state)
  • Curtailment uses total SOC for missing_charge_wh, max_charge_w, and soc_percent

0.10.15

  • Curtailment: ac_output_limit via API only (no MQTT) to avoid station side effects
  • Fix SOC handling when combiner had no SOC (max_charge_w wrong); ensure missing_charge_wh state exists on upgrade

0.10.14

  • Curtailment: only manual mode + ac_output_limit (no grid_export_limit, allow_grid_export, home load preset, AC charge limit)
  • New state curtailment.missing_charge_wh; active phase: export = live PV − calculated max charge

0.10.12

  • Curtailment combiner: export via ac_output_limit (max_load); home load preset 0 W (superseded by 0.10.14+)

0.10.11

  • Curtailment: prefer system.{siteId}.sensors.total_pv_power for live PV

0.10.10

  • Curtailment combiner: export via set_output_power (later replaced); 4800 W cap; more PV sensors for live_pv_w

0.10.9

  • Curtailment active phase: AC output = full PV (intermediate behaviour; refined in 0.10.14+)

0.10.8

  • Curtailment: before = instant export = live PV; active = slow battery charge + export surplus

0.10.7

  • Curtailment: export limit follows live PV; updates when generation sensors change

0.10.6

  • Curtailment: manual mode, no charge, export limit from hourly forecast (also before curtailment window)

0.10.5

0.10.4

  • Curtailment Admin: combiner checkbox, device ID + solarbank type (standalone) or 4 slots with “none” (combiner); no usage-mode change before curtailment window

0.10.3

  • CI: curtailment unit tests use Mocha/Chai (fixes adapter-check lint)

0.10.2

  • Curtailment AC limits: standalone 800 W; combiner per unit SB2 1000, SB3 1200, SB4 2500 W

0.10.1

  • Curtailment: Combiner limit = sum of per-unit profiles (max 4 mixed solarbanks)

0.10.0

  • Optional curtailment avoidance via solarprognose forecast (Admin tab, curtailment.* states)

0.9.9

  • package.json keyword ioBroker; entity group headers with schema size property

0.9.8

  • Admin UI: all option/entity fields with lg/xl breakpoints; CI release fix

0.9.7

  • Adapter-check: npm news sync, admin responsive layout, README copyright, npm package excludes Python cache

0.9.6

  • Adapter-check compliance: Node 22+, admin UI sizes, compact-mode Python install, dependabot

0.9.5

  • Admin warning before Clear Anker login cache; log after clear

0.9.4

  • Log exact authcache path when login cache file is missing

0.9.3

  • Fix: Valid authcache no longer treated as failed login after restart (captcha 100032)

0.9.2

  • Keep authcache on re-auth; reload token on 401 before forced login

0.9.1

  • Captcha error 100032 mapping and README troubleshooting

0.9.0

  • Configurable entity groups (HA-style); API scope follows enabled groups

0.8.1

  • Fix Python bridge ApiCategories.device_parm crash

0.8.0

  • Daily energy statistics under statistics.*

0.7.0

  • Usage mode preset_usage_mode, AC fast charge switch

0.6.0

  • Persistent bridge daemon, HA-aligned poll, multisystem controls, rate-limit fixes (see CHANGELOG_OLD.md for 0.6.1–0.6.5)

0.5.0

  • Python auto-install, device selection, staggered polling, repository rename (see CHANGELOG_OLD.md for 0.2.0–0.4.2)

Older release notes: CHANGELOG_OLD.md and git history.


License

Copyright (c) 2026 MatthiasUlrich1 info@my-smart-home-support.de

MIT — see LICENSE