Адаптер 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.
Оглавление
Отказ от ответственности и условия использования
Данный адаптер не связан с компанией 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 |
| authcache | iobroker-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, установщик обнаруживает этот профиль и пытается:
- virtualenv в
python/.venv(или--without-pip+ pip внутри venv) - Используйте
get-pip.pyс параметром--break-system-packages, если системный Python соответствует PEP 668. - В качестве запасного варианта используйте
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]).).
- Включите протокол Modbus TCP в приложении Anker (солнечная батарея: система / управление сторонними сервисами; X1: профессиональное приложение → настройки связи; зарядное устройство для электромобилей V1: настройки → интеграции).
- Администрирование адаптера → Modbus (локальный) → включить канал, добавить IP-адреса каждого устройства.
- Дополнительно: включите только Modbus (без облака), если вы не хотите использовать вход в облако Anker. В этом случае Python, учетные данные и условия использования не требуются; экземпляр будет зеленым, если подключено хотя бы одно устройство Modbus (в противном случае - желтым).
- Датчики:
anker-solix.0.modbus.<name>.sensors.*(SOC, PV, grid, battery, SN, …). - Элементы управления:
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).
Конфигурация
- Создайте экземпляр:
iobroker add anker-solix - Учетная запись: Электронная почта Anker, пароль, код страны (например,
DE) - сохраните после ввода пароля - Учетная запись: разрешить использование неофициального API (флажок внизу вкладки)
- Параметры: интервал опроса 60-180 с, MQTT при необходимости,
deviceDetailMultiplier(по умолчанию в Home Assistant: 10) - Устройства: Загрузка устройств, дополнительный фильтр идентификатора сайта / серийного номера устройства.
- Объекты (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 + MQTT | SB4, Max, Max AC (порт 502) |
| combiner_box | Power Dock (мультисистемный) - объединенные элементы управления, если применимо | да | - |
| умный счетчик | Трехфазный счетчик Anker, США, Shelly 3EM / 3EM Pro, умный счетчик второго поколения (AE1X0) | да | второго поколения (только для чтения) |
| инвертор | Автономный MI80 (виртуальный сайт в API) | да | - |
| умная розетка | Умная розетка 2500 Вт, Умная розетка второго поколения | да | 2-е поколение (power_switch) |
| pps / solarbank_pps | Портативные электростанции | в основном MQTT | - |
| ev_charger | Интеллектуальное зарядное устройство для электромобилей V1 | В основном MQTT | Modbus TCP (локально) |
| транспортное средство | Виртуальные электромобили для зарядных устройств | ориентирован на чтение | - |
| PowerPanel / HES | Панель управления электропитанием США, X1 HES | Ограниченный API | X1 Modbus TCP (локальный) |
| зарядное устройство | Prime / зарядные станции | MQTT | - |
| home_backup | E10, 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. Библиотека не может обработать капчу.
- Подтвердите вход в приложение в той же локальной сети; укажите правильную страну; отключите VPN на хосте ioBroker.
- Не очищайте кэш при входе в систему, чтобы «исправить» капчу.
- Скопируйте
authcacheиз Home Assistant или войдите в систему заново, когда облако позволит это сделать. - После многочисленных неудачных попыток подождите 15-30 минут.
- Используйте адаптер ≥ 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_w − max_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. После установки или обновления:
- Перезапустите экземпляр anker-solix (или дождитесь появления строки в логе автоматической синхронизации).
- Перезагрузите редактор VIS/VIS-2 (F5).
- В окне выбора виджетов откройте набор 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:package → test/io-package-policy.js; выполняется локально с помощью npm run verify:ci перед каждым push):
- Увеличьте значение параметра
versionв файлахpackage.jsonиio-package.json(они должны совпадать). - Добавьте раздел
### x.y.zв этот список изменений README (E6006). - Добавьте одну новую запись в
common.newsдля этой версии только при публикации в npm (тегv*); сохраните не более 7 ключей новостей - только версии, уже размещенные в npm (плюс версия, которую вы собираетесь опубликовать). Промежуточные версии, доступные только на GitHub, не должны появляться вcommon.news(E2004). Переместите удаленный текст в CHANGELOG_OLD.md. Задокументируйте все версии в этом файле README с изменениями. - Администрирование
jsonConfig.json: размер заголовкаsizeдолжен быть ≤ 5 (используйте5для самого маленького заголовка). - Не добавляйте корневые файлы в npm
files, если это не требуется (файлCHANGELOG_OLD.mdне входит в состав пакета). - Файл
package.jsonс параметромosдолжен соответствовать матрице ОС в файлеtest-and-release.yml(E3027). Поддерживайте синхронизацию файлаi18n/*.jsonв административной панели с файломen.json(W5604/W5605). - Не добавляйте скрипт
prepare(E0094). После клонирования запуститеnpm run setup:githooksодин раз, чтобы хук pre-push запустилverify:ci.
Changelog
0.10.105
- Repo checker (#9): removed forbidden
preparescript (E0094);common.newslists npm-published versions only (E2004); enable local hooks withnpm run setup:githooks - CI (#10): adapter tests on Node.js 22 / 24 / 26;
@iobroker/adapter-core→ 3.4.3; Modbus TCP read timeout usesadapter.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.*.htmlstates) 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 nocombiner_boxobject 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
gridSVG 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) vsphotovoltaic_to_grid_power(export); battery usesbat_charge_powervsbat_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);
restartAdaptersvis + vis-2; requiresiobroker upload anker-solixafter 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) (
hiddenmust usedata.enableModbus; tableitemsas array withattr) - 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 %) andpreset_discharge_priority(switch) viaset_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-releaseworkflow — adapter tests on every push/tag (Linux + Windows matrix), deploy only after all jobs succeed (noalways()/ no skipped-tests workaround); declarelinux+win32inpackage.json; README: Windows supported & tested, macOS not supported
0.10.80
- Object dump fix: persist
periodScheduleOffsetSecviaextendForeignObjectAsynconsystem.adapter.<instance>(avoids invalidanker-solix.0.system.adapter.*object withouttype/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.setTimeoutinstead of plainsetTimeout(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-script5.2.1 (E0036)
0.10.74
- TypeScript 6 (W0083);
tsconfig.jsonadds mocha types fortsc --noEmit - CI:
testing-action-adapterandtesting-action-deployuse@v1(S3043/S3044);testing-action-checkstays@v2.0.0(no floating@v2tag) - Tests:
npm packmust excludeCHANGELOG_OLD.md(S9508)
0.10.73
- README: removed discouraged GitHub-URL installation section (adapter-check E6013)
- Tests:
test/io-package-policy.jsguards against GitHub URL install text in README
0.10.72
- Repository checker: admin i18n synced for all languages (W5604/W5605);
package.jsonosaligned with Linux CI (E3027) - Tests:
test/i18n-policy.jsand E3027 check intest/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.pywith--break-system-packages/PIP_BREAK_SYSTEM_PACKAGESfor PEP 668 - Windows: tries
py -3.13,py -3.12, Program Files paths; parses--version(no broken shell-ccheck); addstzdataforEurope/Berlin - Bridge: uses resolved Python spawn spec (
py -3.12args) consistently in daemon and one-shot mode - Deps check:
aiohttp+ZoneInfo("Europe/Berlin")before skipping install
0.10.70
- Repository / CI:
common.newscapped at 7 npm-published versions; workflow concurrency per ioBroker.example; admin headersize≤ 5; automated checks intest/io-package-policy.js;CHANGELOG_OLD.mdexcluded from npm package
0.10.69
- Curtailment: after midnight (Europe/Berlin) phase
inactiveuntil solarprognose forecast signature changes; then safemodeAfterrelease (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
useNativeresponses
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_snempty for site totals); avoidsenergy_analysis10003 with combiner SN; year still viaenergy_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_limitonly when live PV ≥ 50 W — no midnight feed-in from forecast (fixes 4800 W atlivePv=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_percentstate object is created on start (was missing since 0.10.16)
0.10.24
- Fix:
NameError: needs_daily_energy_poll/ missingPERIOD_YEARimports in 0.10.23 (incomplete release)
0.10.23
- Fix: missing
_update_energy_periodscrashed the bridge daemon (AttributeError) → one-shot fallback and extra 429 load - Year/month/week only: skips daily
poll_device_energy(no “today” entity group); periodenergy_analysisonly 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 eachsolarbank.*
0.10.21
- Fix:
IoBrokerAnkerApiClientstored noconfig→ daemon crashed (AttributeError), one-shot bridge fallback, extra API load and 429 rate limits - Week/month/year
energy_analysiscalls 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 flatweek_*understatistics.*) - 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 Ankerenergy_analysisAPI
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-Leistungsgrenze → Anpassen). Rebuiltbuild/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, andsoc_percent
0.10.15
- Curtailment:
ac_output_limitvia API only (no MQTT) to avoid station side effects - Fix SOC handling when combiner had no SOC (
max_charge_wwrong); ensuremissing_charge_whstate exists on upgrade
0.10.14
- Curtailment: only manual mode +
ac_output_limit(nogrid_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_powerfor live PV
0.10.10
- Curtailment combiner: export via
set_output_power(later replaced); 4800 W cap; more PV sensors forlive_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
- Curtailment: read ioBroker.solarprognose forecast (kW → W, path
11h.power)
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.jsonkeywordioBroker; entity group headers with schemasizeproperty
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
authcachepath when login cache file is missing
0.9.3
- Fix: Valid
authcacheno longer treated as failed login after restart (captcha 100032)
0.9.2
- Keep
authcacheon 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_parmcrash
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