Адаптер SENEC для ioBroker
Контролируйте и управляйте вашей домашней системой хранения данных SENEC. Адаптер поддерживает четыре независимых разъема, которые можно использовать по отдельности или в комбинации:
- Локальный (lala.cgi) — Прямой запрос к локальной сети с данными в реальном времени за 10 секунд. Предоставляет полные данные BMS, показания сетевых счетчиков, данные настенного блока и управление устройствами.
- API приложения SENEC — Запросы через API приложения SENEC на основе облачных технологий. Данные панели мониторинга, история измерений, сведения о системе и информация о настенном блоке.
- mein-senec.de — Веб-портал для запросов. Обзор состояния, история измерений, автономность, аварийное электропитание, сглаживание пиковых нагрузок, готовность к использованию энергосберегающих устройств (SG-Ready) и управление переключаемыми розетками.
- SENEC.Connect — API на базе Azure. Данные о батарее и счетчиках передаются по ключу подписки.
Не все коннекторы обязательно должны быть активированы. Выбирайте в соответствии с вашими потребностями — чисто локальные настройки работают так же хорошо, как и чисто облачные конфигурации для систем без локального веб-интерфейса.
Поддерживаемые системы
Практически все системы хранения данных SENEC совместимы: серия Home, начиная с ранних моделей на свинцовом и литиевом топливе, включая V2, V2.1 и V3, и заканчивая текущим поколением V4 | P4 | E4, а также бизнес-модели и варианты от партнеров ADS Tec, OEM LG и Solarinvert.
Системы с локальным веб-интерфейсом могут использовать все четыре коннектора. Системы без него, включая поколение V4, работают через API приложения SENEC, mein-senec.de и SENEC.Connect. Доступные точки данных зависят от модели.
Полный список моделей поможет вам найти подходящую систему.
Отказ от ответственности
Все названия продуктов и компаний, а также логотипы являются товарными знаками™ или зарегистрированными® товарными знаками соответствующих владельцев. Их использование не подразумевает какой-либо связи с этими компаниями или их филиалами или одобрения с их стороны! Этот личный проект создан в свободное время и не преследует коммерческих целей.
Никаких гарантий и никакой ответственности. Этот адаптер — любительский проект, предоставляется «как есть» под лицензией MIT. Он взаимодействует с дорогостоящим устройством через интерфейсы, которые SENEC не документирует и не поддерживает, и может отправлять команды, изменяющие поведение этого устройства. Все, что вы с ним делаете, вы делаете на свой страх и риск. Автор не несет ответственности за повреждение вашей системы, за потерю или некорректные данные, за потерю выработки электроэнергии или любые другие последствия его использования, а также не может сказать вам, повлияет ли его использование на гарантию или поддержку со стороны SENEC или вашего установщика. Если вы не принимаете эти условия, не используйте этот адаптер.
Требования
- ioBroker с Node.js >= 22
- Система хранения данных SENEC в локальной сети (для локального коннектора)
- Аккаунт my-senec.de (для API и веб-коннектора)
- Установлен адаптер ioBroker.web (для интегрированной панели управления).
установка
Установите адаптер через репозиторий адаптеров ioBroker. После установки создайте экземпляр адаптера и настройте как минимум один коннектор.
конфигурация
Настройки адаптера организованы в виде вкладок — по одной для каждого разъема, а также общие настройки и параметры отладки.
Счет SENEC

Введите здесь свои учетные данные для входа в mein-senec.de. Эти данные используются API приложения SENEC и сайтом mein-senec.de. Здесь же вы можете настроить режим user-agent для исходящих HTTP-запросов.
Двухфакторная аутентификация (2FA)
Если для учетной записи mein-senec.de активирована двухфакторная аутентификация, адаптер все равно сможет автоматически входить в систему — никому не нужно будет сидеть рядом с ним и вводить код.
В процессе настройки отобразится QR-код приложения-аутентификатора, а также тот же секретный ключ в текстовом виде. Этот текст следует записать в поле «Секрет TOTP» . Запишите его, пока открыта страница настройки: После активации секретный ключ больше не будет отображаться; новый будет сгенерирован только при повторной настройке. Пробелы и дефисы в секретном ключе не имеют значения.
Речь идёт о постоянном секретном ключе, а не о шестизначном коде из приложения — он меняется каждые тридцать секунд и истек бы задолго до того, как адаптер смог бы его использовать.
Для обоих облачных коннекторов достаточно одного секретного ключа, поскольку они оба авторизуются в одной и той же учетной записи. Если запись отсутствует, даже если требуется двухфакторная аутентификация, адаптер явно указывает на это в журнале, вместо того чтобы просто сообщать о неудачной попытке входа.
Локальное соединение (lala.cgi)

| Отношение | Описание | стандарт |
|---|---|---|
| Подключение через lala.cgi | Включить локальный запрос | А |
| Система IP SENEC | IP-адрес или полное доменное имя устройства SENEC | — |
| Используйте HTTPS | Включить, если устройство использует HTTPS. | Из |
Разверните настройки запроса для параметров времени:
| Отношение | Описание | стандарт |
|---|---|---|
| Интервал запроса (высокий приоритет) | Интервал для передачи данных в реальном времени (в секундах) | 10 |
| Интервал запроса (низкий приоритет) | Интервал для редко изменяющихся данных (минуты) | 60 |
| Превышено время ожидания запроса | Ограничение по времени для HTTP-запросов (мс) | 5000 |
В случае ошибок подключения адаптер автоматически повторяет попытки с экспоненциальной задержкой — ручная настройка не требуется. Если устройство SENEC временно недоступно (перезагрузка, обновление прошивки), запрос автоматически возобновится, как только устройство снова подключится к сети.
Проверка TLS-сертификата
Адаптер проверяет HTTPS-сертификат устройства SENEC с помощью многоэтапного процесса:
- Сертификация CA пользователя — Загрузите сертификат SenecGui-Root CA через панель управления (вкладка «Система» → «Сертификат TLS»). Скачайте его с сайта mein-senec.de (Документы / Общие документы / SenecGui-Root), затем загрузите файл .pem или .zip. SENEC распространяет этот сертификат после авторизации, поэтому адаптер не может его включить.
- Кэшированный сертификат центра сертификации — Если пользовательский сертификат отсутствует, адаптер может автоматически загрузить сертификат центра сертификации с сайта mein-senec.de (при условии, что коннектор mein-senec.de включен). Загруженный сертификат сохраняется в состоянии адаптера и остается активным после перезапуска.
- TOFU (Trust On First Use) — Если сертификат центра сертификации не подтвержден, адаптер запоминает отпечаток сертификата устройства при первом контакте и сравнивает с ним каждое последующее соединение. Если происходят изменения (например, после обновления прошивки), регистрируется предупреждение, и автоматически применяется новый отпечаток.
Адаптер последовательно проверяет каждый этап и использует тот, который проходит проверку.
TOFU — это проверка целостности, а не привязка сертификата: она уведомляет вас об изменении сертификата устройства, но не отклоняет новый и не проверяет цепочку сертификатов. Это преднамеренный компромисс для устройства в вашей собственной сети — законное изменение сертификата не должно отключать адаптер на такое длительное время, чтобы кто-то заметил запись в журнале. Для полной проверки вы указываете центр сертификации (CA): загрузка CA необязательна, но является более надежным вариантом.
Если автоматическая загрузка сертификата CA не удалась и вы хотите повторить попытку, установите..._local.tls.certFetchFailed наfalse — Адаптер попытается загрузить данные при следующем перезапуске или немедленно, если он запущен.
Важно : чрезмерная частота запросов или слишком большое количество точек данных могут перегрузить устройство SENEC. Это может привести к перезапускам, недоступности или отсутствию синхронизации с облаком. В случае возникновения проблем уменьшите частоту запросов или остановите адаптер.
Дополнительные приоритетные данные опросов общественного мнения

Вы можете добавить дополнительные диапазоны данных (например, BMS, PV1, WALLBOX) к опросу с высоким приоритетом. Для этого необходимо принять соответствующее заявление. Допускаются только символы от A до Z, цифры от 0 до 9 и запятые.
API приложения SENEC

| Отношение | Описание | стандарт |
|---|---|---|
| Использование API приложения SENEC | Включить запрос к Cloud API | Из |
| Интервал панели мониторинга | Интервал запроса данных на панели мониторинга/текущих данных (в минутах) | 6 |
| Детальный интервал | Интервал запроса для ежедневных измерений (в минутах) | 60 |
| Тяжелый интервал | Интервал запроса для ежемесячных/годовых измерений (в минутах) | 14:40 (24 ч) |
| Параллелизм / Максимальный параллелизм | Ограничения на количество параллельных запросов к API. | 1 / 1 |
| Минимальный интервал запроса | Минимальное время между запросами к API (мс) | 400 |
| Ограничение по времени для запросов к API | Время ожидания обычного API-запроса — Панель мониторинга, Состояние системы, Подробности (мс). Увеличьте это значение, если эти запросы регистрируются как таймауты. | 30000 |
| Ограничение по времени для запроса значений измерений | Время ожидания агрегации измерений (мс). Увеличьте это значение, если частые опросы в журнале приводят к превышению времени ожидания. | 60000 |
Восстановление истории
API-коннектор может полностью восстановить исторические данные измерений (суммы за все время). Настройте режим восстановления и начальный год по мере необходимости. Этот процесс выполняется в фоновом режиме во время интенсивного цикла опроса.
mein-senec.de

| Отношение | Описание | стандарт |
|---|---|---|
| use mein-senec.de | Активировать запрос веб-портала | Из |
| Интервал состояния | Интервал запроса данных о состоянии (минуты) | 6 |
| Средний интервал | Интервал запроса за вчерашний день/самодостаточность/резервная мощность (в минутах) | 360 (6 ч) |
| Медленный интервал | Интервал запроса для получения ежемесячных/годовых/общевременных данных (в минутах) | 14:40 (24 ч) |
| История измерений запроса | Активировать запрос данных измерений | Из |
| Включите подробные данные за 5 минут. | Запрос подробных данных с высокой степенью детализации (~3500 дополнительных штатов) | Из |
| Параллелизм / Максимальный параллелизм | Ограничения на количество параллельных запросов | 1 / 2 |
| Минимальный интервал запроса | Минимальное время между запросами (мс) | 500 |
Прочие активы счета
Если к учетной записи mein-senec.de привязано несколько систем (замененное устройство остается видимым рядом со своим преемником), адаптер распознает все системы при запуске и помещает каждую из них в [соответствующую категорию/настройку]._meinsenec.Plants.{steuereinheitnummer}. к.
По умолчанию запрашивается только первая система. Каждая дополнительная система получает свой собственный переключатель.control.Plants.{steuereinheitnummer}.poll Изначально эта функция отключена. При её включении уровень медленных запросов включает эту систему и заполняет её той же структурой измерений, что и основная система:
| Состояние | Содержание |
|---|---|
_meinsenec.Plants.{sn}.System.* | Название продукта, номер устройства, номер системы |
_meinsenec.Plants.{sn}.Measurements.Daily.today /.yesterday | Почасовые значения |
_meinsenec.Plants.{sn}.Measurements.Monthly.* | Суточные значения за месяц |
_meinsenec.Plants.{sn}.Measurements.Yearly.* | Ежемесячные значения в год |
_meinsenec.Plants.{sn}.Measurements.AllTime.* | Итоговые суммы |
_meinsenec.Plants.{sn}.Autarky.* | Самодостаточность за период |
Суммарные значения извлекаются один раз при первом обнаружении системы, даже если переключатель выключен — таким образом, окончательные значения деактивированного устройства доступны без постоянного запроса к нему.
Обратите внимание, что каждая дополнительно активированная система увеличивает количество запросов к порталу. Если вам нужны только исторические данные по более старому устройству, лучше оставить переключатель выключенным.
SENEC.Connect

| Отношение | Описание | стандарт |
|---|---|---|
| Используйте SENEC.Connect | Включить запрос к API Azure | Из |
| Интервал запроса | Частота запросов (в секундах) | 300 |
| Истекло время ожидания запроса | Время ожидания ответа (мс) | 30000 |
| Ключ подписки | Ключ подписки API Azure | — |
| Включенные области | Какие области данных запрашиваются? | батарея, счетчик, EVSE, табличка с названием Bess |
Внешние источники

Добавьте внешние источники энергии от других адаптеров ioBroker — например, солнечные панели на балконе, дополнительные инверторы, автономные настенные зарядные устройства, тепловые насосы или внешние аккумуляторные батареи. Значения нормализуются в ваттах и отображаются на диаграмме потока энергии и кривой мощности в реальном времени на панели управления.
Воспользуйтесь поиском по идентификатору штата , чтобы найти идентификатор штата нужной точки данных и вставить его в таблицу.
| Расколоть | Описание |
|---|---|
| Идентификатор штата / Формула | Идентификатор одного штата (например,solar.0.power ) или формула с{stateId} -Ссылки (например,{wallbox.0.l1_amps} * {wallbox.0.l1_volts} ) |
| тип | Фотоэлектрические панели, потребители (настенные панели, тепловые насосы и т. д.) или аккумуляторы. |
| Единица | Вт или кВт — это значение, применяемое к конечному значению. |
| режим | Интегрировать = добавить к общему значению SENEC (один узел). Разделить = отобразить как отдельный узел в потоке энергии. |
| штат СОК | (Только для батареи) Укажите идентификатор штата для определения уровня заряда (%) |
| емкость | (Только для батареи) Емкость батареи в кВт·ч — позволяет оценить время работы. |
| Обозначение | Отобразить имя на диаграмме потока энергии |
Поддержка формул+ - * / ( ) Операторы. Идентификаторы состояний без фигурных скобок автоматически распознаются, если они содержат арифметические операторы. Для сложных формул планируется внедрение конфигуратора на основе панели управления с интерактивным выбором состояний.
Управление устройством

Функции управления позволяют изменять настройки устройства SENEC. Каждая функция управления доступна через определенные разъемы:
| рулевое управление | Местный | API | Веб |
|---|---|---|---|
| Принудительная зарядка аккумулятора | х | ||
| Блокировка разряда | х | ||
| Перезагрузите устройство | х | ||
| Аварийный резерв электроэнергии | х | ||
| Peak Shaving | х | ||
| SG-Ready | х | ||
| Розетки с переключателем | х | х | |
| Управление настенным блоком | х | х |
Используйте на свой страх и риск. Функции управления должны быть явно включены в настройках с соответствующим предупреждением. Адаптер не защищает от конфликтующих команд от нескольких разъемов.
Отладка и ведение журналов

Настраивается для каждого коннектора (Local, API, mein-senec.de, Connect):
- Отображать информацию об опросе в журнале информации — Отображает сообщения о состоянии опроса в журнале информации, а не только в журнале отладки.
- Запись запросов и ответов в журнал — Ведет журнал подробных сведений о HTTP-запросах на уровне отладки (может содержать конфиденциальные данные).
- Диагностика очереди в информационном журнале — Отображает статистику очереди в информационном журнале (только для API и веб-версии)
- Запись диагностических данных в состояния — Записывает данные очереди в выделенные состояния ioBroker (только для API и веб-версии)
Создать отладочный журнал
Большинство проблем можно выявить по лог-файлу, а без него — практически ни одной.
- Установите уровень логирования экземпляра в режим отладки : ioBroker Admin → Instances → senec instance → Поле выбора уровня логирования.
sillyОно существует, но редко даёт более глубокое понимание и порождает много шума. - На вкладке «Отладка и логирование» адаптера включите параметр «Логировать запросы и ответы» для соответствующего коннектора. Этот параметр изменяет сообщение «запрос не удался» на «данный URL ответил с таким-то статусом».
- Дайте процессу поработать достаточно долго, чтобы проблема возникла хотя бы один раз. Для медленно обрабатываемых запросов — значений измерений, ежемесячных или годовых данных — это может означать ожидание следующего цикла вместо перезапуска.
- Скопируйте лог из вкладки «Логи» ioBroker или из файла.
/opt/iobroker/log/использовать. - Затем переключитесь обратно в режим «информация» . Журнал отладки очень обширен и может заполнять жесткий диск в течение нескольких недель.
Пожалуйста, ознакомьтесь с этим перед пересылкой. Журнал запросов содержит URL-адреса и ответы, которые могут включать идентификатор системы, номер системы и серийный номер. Пароли не включены, но это ваши данные. Замените все, что вы не хотите делать общедоступным.
Сообщить об ошибке
Пожалуйста, отправляйте отчеты через GitHub . Вот что ускоряет обработку отчета:
- Какая система — модель и, если известно, версия прошивки (
_local.FACTORYи_local.SYS_UPDATE(Включает оба варианта при условии, что локальный коннектор запущен) - Какие коннекторы активны, поскольку один и тот же симптом может иметь разные причины как локально, так и в облаке.
- Версии адаптера и ioBroker , а также версия для Node.js.
- Что ожидалось и что произошло вместо этого — фразу «отсутствует уровень заряда батареи» можно отредактировать, «не работает» требует уточнения.
- Приведен соответствующий фрагмент журнала на уровне отладки, содержащий несколько строк до и после ошибки, а не только саму строку с ошибкой.
Прежде чем начать: неправдоподобные значения обычно исходят от устройства, а не от адаптера. Адаптер в основном передает значения, поэтому температура или уровень заряда, которые отображаются некорректно на панели управления, обычно будут выглядеть так же некорректно и в веб-интерфейсе устройства. Быстрый просмотр там часто решает проблему — а если нет, то это сравнение является наиболее полезной информацией в сообщении.
Встроенная панель управления
Адаптер включает в себя полноценную веб-панель управления, доступную по адресу:http://<iobroker-ip>:8082/senec/ Для его работы требуется адаптер ioBroker.web, и он отображается на главной странице ioBroker.web.
Функции:
- Темный и светлый дизайн (переключаются в заголовке).
- Интернационализация — 11 языков, соответствует языковым настройкам браузера.
- Обновления в реальном времени через подписки на состояние socket.io
- Данные со всех коннекторов, имеющих значки источника.
- Доступ с помощью клавиатуры (навигация по вкладкам, метки ARIA)
вкладка «Обзор»

Диаграмма потока энергии — Визуализация потоков энергии в реальном времени в формате SVG между фотоэлектрическими панелями, батареей, сетью, домом и настенным зарядным устройством. Анимированные пути потока с толщиной, пропорциональной мощности. Отображение состояния заряда батареи (SOC) с указанием уровня заряда. Значок режима работы. Оценка времени (до разряда/заряда). Итоговые данные за период (сегодня/месяц/год) с указанием процента самообеспечения. Выбор источника данных (Авто/Локальный/API/Веб).
График изменения мощности в реальном времени — линейный график изменения мощности в реальном времени для всех пяти показателей (солнечные батареи, дом, сеть, батарея, настенное зарядное устройство). Плавная монотонная кубическая интерполяция между точками данных. Предустановленные временные окна от 10 минут до 24 часов, а также масштабирование с помощью колесика мыши (от 5 мин до 30 дней, с понижением разрешения для повышения производительности). Перетаскивание для прокрутки истории с отложенной загрузкой и маркерами даты в полночь. Отдельные линии можно отображать/скрывать, включая дополнительную линию состояния заряда (по умолчанию отключена) справа по оси 0–100%. Переключатель паузы/отключения. Кнопка «Live» для возврата к реальному времени. Когда адаптер истории (InfluxDB, SQL или History) включен для состояний мощности, график предварительно заполняется историческими данными о нагрузке. Каждое состояние обрабатывается индивидуально — состояния могут записываться разными адаптерами истории, и незарегистрированное состояние влияет только на свою собственную линию. Кнопка ⓘ отображает состояния за каждой линией вместе с адаптером истории записи — это позволяет понять, почему у линии нет прошлых данных.

Хронология событий — компактная 24-часовая полоса, отображающая сегодняшние оповещения (оранжевый), ошибки (красный) и сбои (фиолетовый) из журнала устройства. Наведите курсор для получения подробной информации. Автоматически обновляется каждые 10 минут. Требуется настроенный IP-адрес устройства.

Планшет с батарейным питанием

- Отчет о состоянии здоровья (SOH) — Состояние здоровья системы и упаковки с цветовой кодировкой (зеленый > 80%, оранжевый > 60%, красный)
- Статус модуля — Количество активных/загружаемых/выгружаемых модулей
- Циклы зарядки — количество циклов на один комплект и энергия за весь срок службы (заряжено/разряжено)
- Тепловая карта напряжения ячеек — цветовая сетка, отображающая напряжение отдельных ячеек во всех модулях. Красный = самое низкое значение, зеленый = самое высокое. Индикаторы разницы для каждого модуля. Позволяет мгновенно увидеть дисбаланс ячеек.
- Температуры — общая, на модуль и на ячейку.
- Комплект электрических систем — Pro-Pack для измерения напряжения и тока
Данные получены из локальных источников (BMS) и/или API (SystemDetails) с указанием источника.

вкладка «Диаграммы»

Гистограммы данных измерений энергопотребления:
- Сегодня — Часовая шкала (автоматически ограничивается часами, по которым есть данные)
- В этом месяце — ежедневные бары
- В этом году — Месячные бары
Функции:
- Можно отображать/скрывать отдельные типы измерений (солнечные батареи, потребление, импорт/экспорт в сеть, зарядка/разрядка аккумуляторов).
- Сводная диаграмма (производство против потребления)
- Режим сравнения (вчера, предыдущий месяц, выбираемый год)
- Наложение графика уровня заряда батареи (%) . API-коннектор считывает эти данные из истории измерений. Сайт mein-senec.de не предоставляет такой истории, поэтому веб-коннектор вместо этого измеряет текущий уровень заряда: почасовые средние значения для ежедневного просмотра, суточные средние значения для месячного просмотра. Таким образом, эти значения начинают отображаться только тогда, когда адаптер работает — для дня, когда адаптер не работал после полуночи, суточные средние значения отсутствуют и не могут быть получены задним числом. В годовом просмотре уровень заряда батареи в веб-коннекторе не отображается.
- Выбор источника данных (Автоматический/API/Веб)
- Таблица данных
- экспорт изображения в формате PNG
- режим автоматического обновления

Вкладка «Система»

- Качество электроэнергии — частота, полная мощность, напряжение/мощность/ток по фазам. Поддерживает EnFluRi 1 и EnFluRi 2 (автоматическое определение).
- Фотоэлектрические стринги — мощность, напряжение и ток Pro-Tracker MPP
- Wallbox — состояние подключения электромобиля, интеллектуальная зарядка, ток зарядки по фазам.
- Флаги функций — Активные функции для каждого разъема с обнаружением отклонений
- Сведения о системе — Продукт, версия прошивки, версия графического интерфейса/нейронного процессора, состояние инвертора, температура (корпуса, микроконтроллера, батареи, инвертора), время работы, дата установки, контактные данные установщика.
На значках источника указано, какой коннектор обеспечивает соответствующее значение.
Вкладка «Управление»

Интерактивное управление, соответствующее возможностям управления адаптера:
- Принудительная зарядка аккумулятора (переключатель)
- Перезагрузите устройство (с подтверждением).
- Аварийный резерв мощности (в процентах)
- Сглаживание пиков (поля, зависящие от моды)
- SG-Ready (Активация + Пороги)
- Переключаемые сокеты (режим работы каждого сокета, пороговые значения, редактирование имени)
- Настенная зарядная станция (умная зарядка, ограничение тока)
Контроллеры проверяют доступность разъемов и отображают предупреждения, если необходимый разъем неактивен. Кнопка «Применить» отображает сообщение «Отправлено».
вкладка «Статистика»
mein-senec.de предлагает еженедельный экспорт CSV-файлов с 5-минутным разрешением, охватывающий несколько лет — гораздо больше данных, чем может содержать ioBroker. Таким образом, данные не сохраняются постоянно: адаптер хранит только список доступных недель, обновляемый раз в день, и загружает данные за одну неделю только по запросу. Данные существуют только пока открыта вкладка.
- Выбор системы, который также отображает предыдущие устройства учетной записи (не применимо, если имеется только одна система). Система, запрашиваемая данным экземпляром, будет предварительно выбрана.
- Выбор недели с указанием диапазона дат в течение недели.
- Ежедневный фильтр — ограничивает количество строк за неделю (примерно 2000) одним днем.
- Разрешение — почасовые средние значения или 5-минутные исходные значения.
- Переключатели для десяти экспортируемых столбцов, включая напряжение батареи, ток и уровень заряда.
- Заголовки столбцов можно сортировать; третий щелчок восстанавливает хронологический порядок.
- Сводная строка, отображающая минимальное, среднее и максимальное значения отображаемых строк.
- Табличный или графический вид; на диаграмме столбцы мощности имеют общую левую ось кВт, процентные значения имеют свою собственную правую ось 0–100%, а пробелы в строке разрывают линию, а не перекрываются.
- Скачать текущий выбор в виде CSV-файла
Для работы требуется активированный и подключенный коннектор mein-senec.de.
вкладка «Протоколы»

Поиск в журналах устройств SENEC по дате:
- Фильтруемая таблица (время, уровень, категория, сообщение)
- Фильтры этапов: Информация, Предупреждение, Ошибка, Паника
- Фильтр по категориям (автоматически заполняется на основе записей журнала)
- Поиск по свободному тексту
- Цветовая кодировка линий в зависимости от степени тяжести
- Самые новые записи — первыми
- Режим реального времени — автоматическое обновление журнала за сегодняшний день (совместимость с UTC)
- Загрузите необработанные файлы журналов.
Требуется указать IP-адрес устройства (даже если локальный коннектор не включен).
Ссылка на штат
Адаптер создает состояния, организованные по типу разъема и области данных. Все состояния доступны только для чтения, если они явно не помечены как управляющие состояния.
Подключение и статус (info.* )
| Состояние | Описание |
|---|---|
info.connection | Общий статус соединения (истина, если коннектор активен) |
info.connectionStatus | Подробная информация о состоянии соединения:all (все настроенные разъемы подключены)partial (частично связанные), none |
info.localConnected | Статус локального соединения (lala.cgi) |
info.apiConnected | статус подключения API приложения SENEC |
info.webConnected | статус подключения my-senec.de |
info.connectConnected | Статус подключения SENEC.Connect |
info.lastPoll.HighPrio | Временная метка последнего локального запроса с высоким приоритетом. |
info.lastPoll.LowPrio | Временная метка последнего локального запроса с низким приоритетом. |
Штаты TLS (_local.tls.* )
| Состояние | тип | Писать | Описание |
|---|---|---|---|
_local.tls.mode | нить | нет | Активный режим проверки TLS:user ,cached ,tofu или none |
_local.tls.fingerprint | нить | нет | Отпечаток SHA-256 принятого сертификата устройства (режим TOFU, зашифрованный) |
_local.tls.userCaPem | нить | Да | Сертификат центра сертификации, загруженный пользователем (PEM, зашифрованный). |
_local.tls.cachedCaPem | нить | нет | Сертификат центра сертификации (CA) загружен с сайта mein-senec.de (PEM, зашифрованный). |
_local.tls.certFetchFailed | логический | Да | Наfalse запланирована попытка загрузки нового сертификата CA |
Местные штаты
Данные из запроса lala.cgi хранятся непосредственно под именем области (например,ENERGY.* ,BMS.* ,PV1.* ,WIZARD.* ).
Ключевые энергетические государства:
| Состояние | тип | Описание |
|---|---|---|
ENERGY.GUI_INVERTER_POWER | Число (W) | Текущая выработка фотоэлектрической энергии |
ENERGY.GUI_BAT_DATA_POWER | Число (W) | Питание от батареи (положительный полюс = зарядка, отрицательный = разрядка) |
ENERGY.GUI_GRID_POW | Число (W) | Мощность сети (положительный полюс = потребление, отрицательный полюс = подача электроэнергии в сеть) |
ENERGY.GUI_HOUSE_POW | Число (W) | Текущее потребление домохозяйств |
ENERGY.GUI_BAT_DATA_FUEL_CHARGE | Число (%) | Уровень заряда батареи |
ENERGY.STAT_STATE | Число | код состояния работы |
ENERGY.STAT_STATE_Text | текст | Рабочий статус в текстовом виде |
ENERGY.STAT_HOURS_OF_OPERATION | Число (h) | Часы работы |
Важные состояния системы управления батареей (BMS):
| Состояние | тип | Описание |
|---|---|---|
BMS.MODULE_COUNT | Число | Количество аккумуляторных модулей |
BMS.SOH.{n} | Число (%) | Состояние здоровья по каждому модулю |
BMS.CYCLES.{n} | Число | Циклы зарядки на модуль |
BMS.CELL_VOLTAGES_MODULE_{A-D}.{n} | Число (мВ) | Напряжение отдельных ячеек |
BMS.TEMP_MIN.{n} /BMS.TEMP_MAX.{n} | Число (°C) | Диапазон рабочих температур модуля |
BMS.VOLTAGE.{n} /BMS.CURRENT.{n} | Номер (В/А) | Напряжение и ток батареи |
Состояния API (_api.* )
Данные Cloud API хранятся в_api.Anlagen.{systemId}.* сохранено:
Dashboard.currently.*— Значения мощности в реальном времени (Вт)Measurements.Daily.*— Данные почасовых измерений (кВт·ч)Measurements.Monthly.*— Данные ежедневных измерений (кВт·ч)Measurements.Yearly.*— Ежемесячные данные измерений (кВт·ч)Measurements.AllTime.*— Общее потребление энергии за весь срок службы (кВт·ч)SystemDetails.*— Подробная информация о батарее, температурах, прошивкеSystemStatus.*— Рабочее состояние, флаги функций
Состояния веб-сайта (_meinsenec.* )
Данные mein-senec.de хранятся в_meinsenec.* сохранено:
Status.*— Текущие значения мощности (кВт), рабочее состояниеMeasurements.*— Исторические данные измерений (кВт·ч)Autarky.*— Процент самообеспеченности (день/неделя/месяц/год/всего)EmergencyPower.*— Настройки аварийного резерва питанияPeakShaving.*— Максимальная конфигурация для бритьяSGReady.*— Настройки, соответствующие требованиям SGSockets.*— Состояния переключаемых розеток
Соединить состояния (_connect.* )
Данные SENEC.Connect хранятся в_connect.Systems.{system_id}.* с подобластями батареи и счетчика. Учетная запись может включать несколько систем; каждая получает свой собственный канал, названный в соответствии с ее моделью и адресованный через вbessNameplate Сообщаемый идентификатор системы — это позволяет системе сохранять свои состояния, даже если API возвращает системы в другом порядке._connect.info.systemCount сообщает, сколько систем видит API.
РазделbessNameplate Запрос выполняется всегда, независимо от настроенных разделов, поскольку он содержит этот идентификатор.
Настенные коробки хранятся аналогичным образом, под соответствующим указанным номером.id :_connect.Systems.{system_id}.evse.{wallbox_id}.* Если объект wallbox исчезает из ответа, его состояния удаляются, а не сохраняются с последними значениями.
Если система не сообщает об отсутствииsystem_id Вместо этого используется серийный номер. Система распознается по каждому идентификатору, который она когда-либо сообщала, поэтому ответ, в котором отсутствует один из этих идентификаторов, не приведет к его перенаправлению. Если ответ вообще не содержит идентификатора, система использует позицию в ответе, как это было до версии 2.15.0, и очистка приостанавливается на это время.
Состояния системы, которая больше не отправляет данные в API, удаляются. В адаптерах до версии 2.15.0 системы нумеровались в соответствии с их позицией в ответе._connect.Systems.0.* Эти состояния будут удалены во время первого опроса после обновления, как только будут идентифицированы соответствующие системы.
Для пользователей, регистрирующих состояния SENEC.Connect с помощью адаптера истории (History, InfluxDB, SQL): этот параметр привязан к самому состоянию и будет потерян вместе со старым состоянием. Автоматическое продолжение регистрации данных прекратится — пожалуйста, повторно включите регистрацию состояний по новым путям после обновления.
Внешние состояния (_external.* )
Данные из внешних источников хранятся в_external.{typ}.{index}.* сохранено:
| Состояние | Описание |
|---|---|
_external.pv.{n}.power | Внешняя фотоэлектрическая мощность (Вт) |
_external.consumer.{n}.power | Внешний потребитель (W) |
_external.battery.{n}.power | Питание от внешней батареи (Вт, обозначено знаком) |
_external.battery.{n}.soc | Уровень заряда внешней батареи (%) |
_external.battery.{n}.capacity | Емкость внешнего аккумулятора (кВт·ч) |
_external.{typ}.{n}.label | Пользовательская метка |
_external.{typ}.{n}.mode | Режим отображения (интегрированный/раздельный) |
_external.{typ}.{n}.sourceId | Идентификатор иностранного государства или формула |
Управляющие состояния (control.* )
Доступные для записи состояния для управления устройством:
| Состояние | тип | Описание |
|---|---|---|
control.ForceCharge | Логический | Принудительная зарядка аккумулятора (вкл/выкл) |
control.BlockDischarge | Логический | Блокировка разряда включена/выключена |
control.RebootAppliance | Логический | Запустить перезапуск устройства |
control.EmergencyPower.ReserveInPercent | Число | Аварийный резерв мощности (%) |
control.PeakShaving.* | Различный | Максимальные настройки бритья |
control.SGReady.* | Различный | Настройки SG-Ready |
control.Sockets.{n}.* | Различный | Управление розетками Pro |
control.Wallbox.{n}.* | Различный | Управление настенным блоком |
Состояния управления создаются только в том случае, если соответствующая функция включена и доступна через настроенный коннектор.
Поиск неисправностей
Устройство не отвечает / часто перезагружается : уменьшите интервал опроса с высоким приоритетом или удалите пользовательские точки данных с высоким приоритетом. Устройство SENEC имеет ограниченные ресурсы.
Нет данных из API/веб-интерфейса : проверьте свои учетные данные для входа на mein-senec.de на вкладке «Учетная запись SENEC». Адаптер регистрирует ошибки аутентификации на уровне предупреждения.
Панель управления не загружается : Убедитесь, что ioBroker.web работает на порту 8082. Панель управления установлена как веб-расширение./senec/ предоставил.
Отсутствующие состояния : Доступные состояния зависят от модели вашего SENEC, версии прошивки и настроенных разъемов. Не все состояния доступны во всех системах.
Состояния управления не отображаются : функции управления должны быть явно включены в настройках управления устройством. Для каждого элемента управления требуется определенный активный разъем.
Ошибка TLS-сертификата при локальном подключении : адаптер обрабатывает проверку сертификата автоматически. Проверьте_local.tls.mode Чтобы узнать, какой метод проверки активен. Если активен режим TOFU и вы хотите перейти на проверку CA, активируйте коннектор mein-senec.de — адаптер попытается автоматически загрузить сертификат CA. Если предыдущая загрузка не удалась, установите_local.tls.certFetchFailed наfalse попробовать еще раз.
Помощь и обмен
Для вопросов, настроек и обмена информацией с другими пользователями существует специальная тема на форуме ioBroker — обычно это самый быстрый способ получить ответ.
Если вам кажется, что это ошибка, пожалуйста, создайте заявку на GitHub . Инструкции по созданию отладочного журнала и по тому, как сделать сообщение редактируемым, приведены выше.
Changelog
2.15.4 (2026-09-12)
- Dependency updates
2.15.3 (2026-08-31)
- Fix: The SENEC App API login posted only the fields it fills in itself and did not send back the hidden fields the login form contains. A browser sends those back, and the SSO uses them to carry the state of a login across its steps, so an account whose login takes a route that depends on them could not get past the first step. Every field of the form is now returned with the values the adapter supplies on top. This applies to the two-factor step as well, where the form names which of several configured codes is being answered.
- Fix: The mein-senec.de login had the same gap and now sends the form's hidden fields back as well. Its login-page debug dump is redacted before it is written, which it previously was not.
- Change: A login step that fails now records the page the SSO answered with, without Log requests and responses having to be switched on beforehand. The instance log level still has to be
debugor more verbose, and the adapter now checks that before it does the work — it previously prepared the page at every log level and then handed it to a call that discarded it. The one-line reason says which step failed but not what the SSO put in front of the adapter, which is where an unexpected login route shows itself, and by the time a report is written the login that produced it is gone, so it cannot be asked for afterwards. A login failing the same way on every retry writes the page once and afterwards only notes that it has not changed — the comparison now ignores the identifiers the SSO issues afresh for every attempt, which previously differed each time and defeated it. - Change: More of a logged login page is masked. Login codes are masked as hidden form values as well as in query strings, the account's mail address is masked in its plain, percent-encoded and HTML-entity-encoded spellings, and a password echoed back inside a form value is masked. The pages are shortened before they reach the log.
- Change: The short error text taken from a rejected login page now goes through the same masking as the debug page dump. It is logged at
errorlevel, so it is visible at the default log level — a wider audience than the page dump reaches, and until now it was the less thoroughly redacted of the two. - Change: With Log requests and responses switched on, the login form as it was served and the page after the username step are logged as well. These say nothing when a login works, so they stay behind the option.
2.15.2 (2026-08-28)
- Fix: A failing SENEC App API login reported nothing but
Request failed with status code 400— neither which of the four requests of the login had failed nor what the SSO had said about it, which is all the information there is. Every step of the login now names itself and repeats the reason the SSO gave, so a login that fails on one account but not on others can be told apart from an outage. - Fix: The request/response log (settings → SENEC App API → Log requests and responses) covered the data requests but not the login, so switching it on to investigate a login problem produced nothing about the login. It now logs each step of the SSO exchange as well, including where a redirect leads. Login codes are masked and neither credentials nor request bodies are ever written to the log.
- Change: A stored refresh token the SSO no longer accepts is an ordinary event — it happens whenever the session behind it has expired, and the full login that follows is the cure, not a symptom. It is no longer logged as a warning, so an ordinary re-login stops reading like a fault.
- Change: When the SSO ends the login somewhere other than the app itself — a further login step, or a refusal — the adapter now names the destination instead of reporting a missing authorization code.
- Dependency Updates
2.15.1 (2026-08-23)
- Dependency Updates
2.15.0 (2026-08-14)
- 🔎 Wanted: testers for the SENEC.Connect connector. I cannot see what your subscription returns, and real responses are what this connector is missing — especially from accounts holding more than one system, and from responses containing more than
batteryandmeter(evse,bessNameplate). If SENEC.Connect reports anything at all for your account, please get in touch in the ioBroker forum thread or via a GitHub issue. - Breaking (SENEC.Connect only): The systems of a SENEC.Connect account were stored by their position in the API response, as
_connect.Systems.0.*,_connect.Systems.1.*and so on. The API does not promise an order, so on an account with more than one system that position can change from one poll to the next — two systems then swap their states inside the same history, with nothing in the values to show it happened. Each system is now stored under the system id from itsbessNameplatesection instead, for example_connect.Systems.P4H1-1234567.*, and gets a channel named after its model. A system is remembered by every identifier it has ever reported, so a response that omits one of them does not move it; a system that reports no identity at all keeps its old position-based path and is left alone. The old numbered states are deleted on the first poll after the update; scripts, charts and visualisations that refer to them have to be pointed at the new paths, and the history recorded under the old paths ends there. If you log these states with a history adapter, that setting is stored on the state and does not survive the move — switch logging back on for the new paths, or recording stops silently. Accounts with a single system are affected the same way, but nothing else changes for them. - Breaking (SENEC.Connect only): Wallboxes are stored under the
idthey report rather than their position in the response, for the same reason and with the same consequence —_connect.Systems.{system_id}.evse.{wallbox_id}.*. A wallbox that disappears from the response now has its states removed instead of leaving them frozen at their last values, looking current. - New:
_connect.info.systemCountreports how many systems SENEC.Connect returns, and the states of a system the API stops reporting are removed. - New: SENEC.Connect has its own request timeout, adjustable between 5 and 120 seconds and 30 seconds by default. It previously borrowed the local appliance's timeout, which is capped at ten seconds and is not even shown unless the local connection is switched on — so a slow cloud response failed every poll with no reachable setting to change.
- Fix: A SENEC.Connect reply that arrived with a success code but did not contain the expected data — an error page or a captive portal, for instance — left the connector reporting itself as connected indefinitely while nothing was being read.
- Fix: A SENEC.Connect polling interval outside the permitted range is corrected on start-up, as the other intervals already were. Only a value written directly into the instance settings could get there, but a negative one made the adapter poll a request-metered API in a tight loop.
- Fix: A SENEC.Connect request in progress is now cancelled when the adapter stops, instead of running on and writing during shutdown, and it identifies itself with the same user agent as the adapter's other requests.
- Fix: Clearing the SENEC.Connect section list in the settings fell back to fewer sections than the field's own default, silently dropping wallbox data.
- Change: The
bessNameplatesection is now always requested from SENEC.Connect regardless of the configured sections, because it carries the id the states are stored under. The API is billed per request, not per section, so this costs nothing. - Fix: When mein-senec.de measurement detail states were cleared at the daily rollover and written again in the same cycle, they came back as bare values — the name, unit and role were gone, because the adapter still believed the deleted definitions existed.
- Fix: On appliances not set to German,
ENERGY.STAT_STATE_Textwas never created at all. It puts the numeric system state into plain language — "Laden", "Akku voll", "Fernabschaltung" — but the English and Italian tables were stored under a name the adapter never looked them up by, so nothing was written and no error appeared. English is also what the adapter falls back to when it cannot read the appliance's language, so this affected most installations. The state now appears; on an affected system it shows up as a new datapoint after the update.FACTORY.COUNTRY_Textwas missing on Italian appliances for the same reason. - Fix: System state 41 was labelled "Schlafmodus" / "Sleeping mode". The appliance itself calls it "Abschaltung Lithium" / "Lithium shutdown", which is a different condition; the Italian text already said so. State 74 also carried a spelling mistake.
- New: Three more numeric datapoints are translated into text —
BMS.MANUFACTURER_Textnames the battery module generation (BMZ or Ampace / LFP),PWR_UNIT.ENFLURI_Textsays which meter a power unit is measured by, andCASC.STATE_Textgives the cascade state. - Change: A datapoint your appliance does not have no longer gets a state, and an existing one says so. The adapter asks every appliance for the same set of datapoints and no model provides all of them, so the answer "I do not have that one" is normal rather than a fault. Until now that answer was stored as the value, so the state read
VARIABLE_NOT_FOUND. No state is created for it any more, and one that already exists is set to "not provided by appliance" so it is obvious at a glance instead of sitting there with a stale number that still looks current. Nothing is deleted, nothing is reported as a problem, and nothing is required of you. A datapoint that merely failed to be read this once is left untouched, because the real reading is expected back. A whole section your appliance does not have is handled the same way; it previously left behind a state called<SECTION>.OBJECT_NOT_FOUNDholding nothing. This covers what the adapter asks for by name and the sections it requests — a field that quietly vanishes from a section still being provided cannot be detected this way, because the appliance simply omits it rather than saying anything about it. - Fix: An unreadable datapoint could be published as a real-looking measurement. The appliance answers with a word where a number was expected, and that word slipped into the conversions for flags, factors, dates and IP addresses: a flag was stored as
true, a scaled value asNaN, a timestamp as "Invalid Date" and an address as garbage. Nothing is stored for such an answer any more, so a state either holds a real reading or does not exist. A datapoint answering with an empty value no longer becomes0either, and a few value formats the appliance uses were decoded wrongly — text beginning with "u" could be read as a number, so a state could show 14 where the appliance had sent no reading at all. - Change:
ENERGY.GUI_BAT_DATA_OA_CHARGINGis no longer polled every few seconds. A SENEC.Home V3 does not have it, it is absent from every field that appliance reports for this section, and the appliance's own web interface never asks for it. It remains defined, so an older appliance that still provides it keeps the state from the slower poll. - Fix: The appliance's display language was read once at start-up, in a race with the first poll of the datapoint that carries it. On a fresh installation the adapter could therefore stay on English for the whole session, and changing the language on the appliance never took effect until the adapter was restarted. It is now picked up as soon as the appliance reports it, and a language the adapter has no texts for falls back to English instead of silently leaving every translated state empty.
- Fix: A code that is not in a translation table was shown as "(unknown)", which discarded the very number needed to identify it. It now reads "(unknown 7)". If you see one, the number is worth reporting.
- Change: Translated
_Textstates are no longer marked writable — writing to them never did anything — and are declared as text rather than as a measurement. Existing ones are corrected on the first poll after the update. - Fix: The operating-mode text on the web dashboard now comes from the appliance's own system state on English and Italian systems as well. It previously fell back to the cloud status text there, because the local text did not exist.
- Fix: Several labels in the English and Italian system-state lists were misspelled, one Italian entry contained a stray fragment of an untranslated string, and some Italian entries were missing their accents.
- Change: The adapter warns when the datapoints configured for high-priority polling make a request large enough to approach the size the appliance can still answer. Beyond that size the appliance replies with a truncated body, which used to surface only as a connection error.
Former Updates
License
MIT License
Copyright (c) 2020-2026 Norbert Bluemle github@bluemle.org
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.