Адаптер e3oncan для ioBroker
Примечание: Навигационные ссылки в этом документе лучше всего работают при просмотре на GitHub . Относительные ссылки на другие документы (например, data-points.md ) также открываются на GitHub.
Немецкая версия. Документация доступна: README.de.md.
Оглавление
Обзор
Устройства серии Viessmann E3 (экосистема One Base) обмениваются большими объемами данных по шине CAN. Этот адаптер подключается к этому обмену данными и делает их доступными внутри ioBroker.
Два режима работы работают независимо и могут быть объединены:
| Режим | Описание |
|---|---|
| Собирать | Пассивно прослушивает шину CAN и извлекает данные в режиме реального времени по мере обмена ими между устройствами. Запросы не отправляются. Идеально подходит для быстро меняющихся значений, таких как поток энергии. |
| UDSonCAN | Активно считывает и записывает данные с использованием протокола UDS (Universal Diagnostic Services over CAN). Необходимо для заданных значений, расписаний и данных, не передаваемых автоматически. |
Доступные режимы зависят от топологии вашего устройства. Подробности см. в разделе «Топология устройства» . Примеры использования адаптера можно найти в разделе «Клинические примеры» .
Важные части этого адаптера основаны на проекте open3e . Реализация на Python, использующая только протокол MQTT и предназначенная для сбора данных, доступна на сайте E3onCAN .
Что нового в версии 1.1.1
Обновлены определения точек данных.
Определения точек данных обновлены до версий 20260705 (общая) и 20260630 (вариантная).
Новый кодек O3ESwitch
Новый кодекO3ESwitch Добавлена возможность для точек данных, структура которых зависит от байта-дискриминатора типа устройства. Первый байт выбирает активный вариант из набора предопределенных ветвей кодека. Это позволяет осуществлять полное структурированное декодирование DID слотов устройств ZigBee (2086–2143, 2262), где декодируемые поля различаются в зависимости от типа устройства (например, датчик климата, термостатический клапан, напольный термостат, исполнительный механизм).
Округление десятичных знаков для числовых кодеков
Числовые кодеки (O3EInt8 ,O3EInt16 ,O3EInt32 ,O3EInt64 ,O3EFloat32 ) теперь поддерживают необязательный параметрdecimals Параметр. Если ему присвоено значение больше 0, декодированный результат округляется до указанного количества десятичных знаков. Это используется, например, дляSignalLevel (шкала 2,55, десятичные знаки 2), чтобы избежать чрезмерно длинных значений с плавающей запятой.
Единицы измерения и метаданные устанавливаются при запуске при изменении структуры точек данных.
Когда адаптер при запуске обнаруживает изменение структуры точки данных (новая версия вdidsE3var.json илиdidsE3.json Теперь система корректно регистрирует единицы измерения и описания для всех подсостояний перестроенного дерева. Ранее единицы измерения устанавливались только во время сканирования точек данных; для их заполнения после обновления структуры требовалось последующее сканирование.
Что нового в версии 1.0.3
После обновления Node.js пересборка больше не требуется.
Встроенный модуль CANsocketcan Обновлено до версии 4.2.1, которая использует стабильный интерфейс N-API . Модуль больше не требует перекомпиляции при изменении версии Node.js. Обновление Node.js (например, с версии 22 до 24) больше не требует запускаiob rebuild После этого адаптер запускается без каких-либо дополнительных действий.
Фильтр запланированных точек данных на вкладке «Точки данных».
Теперь, при нажатии на зелёный значок, отображающий количество запланированных точек данных на карточке устройства , карточка фильтруется, отображая только запланированные точки данных . Это упрощает просмотр или корректировку расписания для конкретного устройства. Повторное нажатие на значок или заголовок карточки восстанавливает полный вид.
Защита определений пользовательских вариантов данных
Определяемые пользователем структуры вe3oncan.0.<DEVICE>.info.udsDidsSpecific Теперь от автоматических обновлений можно защитить , добавив"protected": true к записи. Необязательно"reason" Поле регистрируется всякий раз, когда вступает в силу защита. Без защиты определения точек данных вариантов (те, которые также перечислены вdidsE3var.json ) обновляются автоматически при появлении более нового определения — это поведение остается неизменным. Подробности см. в документации .
Обновлены определения точек данных.
Внесены изменения в определения точек данных до версий 20260528 (общая) и 20260527 (вариантная). Основные изменения:
- ZigBee DID 2084–2319 в полностью структурированном виде (свойства устройства, текущие значения в 57-байтовом и 68-байтовом вариантах)
- Номера DID помещений за 1884–1943 годы, структурированные (название, тип, контроль температуры, обнаружение окон, минимальная/максимальная влажность).
- Новые структуры DID, полученные на основе ViGuide, для метрик топливных элементов, охвата энергопотребления и подписок на батареи/инверторы.
Unknown*теперь последовательно используются поляRawCodec
Что нового в версии 1.0.0
вкладка «Точки данных»
Новая страница с данными e3oncan закреплена непосредственно в строке экземпляра адаптера в представлении экземпляров ioBroker. Щелкните Нажмите кнопку в строке экземпляра, чтобы открыть его. Он предоставляет специальный пользовательский интерфейс для управления расписаниями и настройками сбора данных для каждого устройства и точки данных — нет необходимости открывать полный диалог конфигурации адаптера для ежедневных изменений.
Автоматическое определение счетчиков электроэнергии
Счетчики электроэнергии (E380 и E3100CB) теперь автоматически обнаруживаются во время сканирования устройств путем пассивного прослушивания CAN-каналов на обоих CAN-каналах. Названия состояний присваиваются автоматически на основе обнаруженного CAN-адреса и канала. Переключение в активное/неактивное состояние и задержка сбора данных для каждого счетчика электроэнергии настраиваются исключительно на вкладке «Точки данных».
При первом запуске после обновления с более ранней версии предыдущая конфигурация счетчика электроэнергии автоматически переносится.
Автоматическое обнаружение устройств, способных осуществлять сбор данных.
В процессе сканирования точек данных адаптер теперь пассивно прослушивает шину CAN, чтобы определить, какие устройства поддерживают режим сбора данных. Обнаруженные устройства выделяются значком булавки в заголовке карточки устройства на вкладке точек данных.
Гибкое сканирование точек данных
Новая опция «Сохранять значения точек данных в дерево объектов во время сканирования » определяет, будут ли текущие значения записываться в дерево объектов во время сканирования. Если эта опция отключена, адаптер все равно обновляет значения и метаданные для всех существующих объектов точек данных — только новые объекты не создаются во время сканирования. Это полезно для обновления метаданных после миграции без перезаписи всех значений состояния.
Анализ топологии шины
После сканирования точек данных адаптер автоматически анализирует данные топологии шины, собранные во время сканирования, и генерирует сводку. Результат сохраняется в двух новых состояниях.info канал:
info.topology– структурированный JSON со всеми обнаруженными доступными через UDS устройствами и элементами топологии (без дубликатов во всех матрицах топологии).info.topologyHtml– Отображаемая HTML-таблица, цветовая кодировка которой зависит от типа шины (CanInternal, CanExternal, CanRaw, ModBus, ServiceBus), с значком UDS на устройствах, также доступных через UDS. Готова к отображению в vis, jarvis или любом другом виджете, поддерживающем HTML.
Быстрый старт
Предварительные требования
- USB-адаптер для подключения к CAN-шине или CAN-адаптер, подключенный к внешней или внутренней CAN-шине вашего устройства Viessmann E3.
- Хост-система на базе Linux (поддерживается только Linux).
- CAN-адаптер подключен и виден в системе, например, как
can0(проверить с помощьюifconfig). - Подробную информацию о настройке CAN-адаптера см. в вики-странице проекта open3e .
Важно: Убедитесь, что во время первой настройки этого адаптера не запущен ни один другой клиент UDSonCAN (например, open3e). Параллельная связь UDS приведет к ошибкам в обоих приложениях.
Первоначальная настройка – краткий обзор
- Установите адаптер и откройте диалоговое окно его настройки.
- Настройте свой CAN-адаптер(ы) на вкладке «CAN-адаптер» и сохраните изменения.
- Выполните поиск устройств E3 на вкладке «Список устройств UDS» .
- Поиск точек данных на вкладке «Список точек данных» (занимает до 5 минут).
- На вкладке «Задания» настройте расписание чтения и сохраните его.
Подробные шаги описаны в руководстве по настройке, приведенном ниже.
Руководство по настройке
Шаг 1 – CAN-адаптер
Откройте диалоговое окно настройки адаптера и перейдите на вкладку «CAN-адаптер» .
- Введите название вашего CAN-интерфейса (по умолчанию:
can0). - Установите флажок «Подключиться к адаптеру» для каждого интерфейса, который вы хотите использовать.
- Нажмите СОХРАНИТЬ . Экземпляр адаптера перезапустится и подключится к шине CAN.
Если у вас есть вторая шина CAN (например, внутренняя шина), настройте её здесь как второй адаптер. После настройки второго адаптера появится вторая вкладка «Назначения» .
Шаг 2 – Сканирование устройства и обнаружение счетчика электроэнергии
Перейдите на вкладку «Список устройств UDS» и нажмите кнопку «Сканировать» .
- Сканирование занимает несколько секунд. Вы можете отслеживать ход выполнения в журнале адаптера (откройте вторую вкладку браузера).
- Будут перечислены все устройства E3, обнаруженные на шине. Вы можете переименовывать устройства во втором столбце — эти имена используются в качестве идентификаторов в дереве объектов ioBroker.
- После завершения нажмите кнопку СОХРАНИТЬ . Экземпляр перезапустится.
В процессе сканирования устройства адаптер также считывает конфигурацию формата данных устройства (точка данных 382), включая единицы измерения температуры (°C или °F) и форматы даты/времени. Эти данные сохраняются и используются при последующих сканированиях точек данных.
Обнаружение счетчика электроэнергии
Во время сканирования устройств адаптер пассивно прослушивает шину CAN на предмет сигналов от счетчиков электроэнергии E380 и E3100CB. Дополнительное время сканирования не требуется — обнаружение происходит параллельно. Результат сохраняется и отображается:
- В диалоговом окне настройки адаптера (вкладка «Список устройств UDS» ) в виде текстового описания.
- На странице данных e3oncan представлены отдельные карточки для каждого обнаруженного типа счетчика (см. ниже ).
Шаг 3 – Сканирование точек данных
Перейдите на вкладку «Список точек данных» , нажмите «Начать сканирование…» и подтвердите нажатием кнопки «ОК» .
Наберитесь терпения – сканирование может занять до 5 минут. Ход выполнения отображается в журнале адаптера.
Что делает сканирование:
- Обнаруживает все доступные точки данных для каждого устройства.
- Добавляет метаданные (описание, единица измерения, доступ для чтения/записи) к каждому объекту точки данных.
- Устанавливает физические единицы измерения на основе конфигурации формата устройства, полученной на шаге 2.
- Создает полное дерево объектов для каждого устройства в ioBroker.
- Обнаруживает устройства, поддерживающие функцию Collect, пассивно прослушивая передаваемые ими временные сигналы по шине CAN (дополнительное время сканирования не требуется — работает параллельно). Для каждого обнаруженного устройства в заголовке карточки устройства на странице данных e3oncan отображается значок булавки.
Этот шаг не является строго обязательным для использования в режиме только для чтения, но настоятельно рекомендуется — и необходим, если вы хотите записать данные в какую-либо точку данных.
Сохранение значений точек данных в дерево объектов во время сканирования.
По умолчанию сканирование также записывает текущее значение каждой точки данных в дерево объектов.json ,raw ,tree (состояния). Вы можете настроить поведение, используя опцию «Сохранять значения точек данных в дереве объектов во время сканирования» над кнопкой сканирования. Если эта опция отключена, адаптер обновляет значения и метаданные для уже существующих объектов точек данных, но не создает новые — они создаются автоматически при первом получении данных после сканирования.
Эта опция полезна, если вы хотите избежать большого количества записей состояния во время сканирования (например, в системах с большим количеством устройств). Если вы ранее запускали сканирование с сохраненными значениями и теперь хотите начать с чистого листа, вы можете безопасно удалить данные любого устройства.json ,raw , илиtree Вложенные объекты из дерева объектов ioBroker — адаптер автоматически создаст их заново при следующем получении данных. Примечание: удаление большого количества объектов одновременно приводит к одновременному срабатыванию множества внутренних событий ioBroker, что может кратковременно увеличить использование оперативной памяти. Удаляйте объекты небольшими партиями, если ваша система испытывает нехватку памяти.
Примечание об адаптерах истории: удаление объектов не приводит к удалению исторических данных, хранящихся в адаптере истории (History, InfluxDB, SQL). Записанные значения остаются в бэкэнде адаптера и снова отображаются на графиках после повторного создания идентификатора состояния. Однако конфигурация подписки на историю (флаг "enabled" у объекта) теряется при удалении объекта и должна быть повторно включена вручную для нового объекта.
Предупреждение: Никогда не удаляйте
infoканал (например)e3oncan.0.infoВ нем хранятся результаты сканирования, данные об обнаружении счетчика электроэнергии, задержки, активные флаги, сводки топологии шины и состояние CAN-соединения. Удаление этого файла приведет к потере конфигурации, которую невозможно будет автоматически восстановить.
Анализ топологии шины
После завершения сканирования адаптер автоматически генерирует сводку топологии шины и сохраняет её в двух состояниях.info канал:info.topology (JSON) иinfo.topologyHtml (HTML). Подробности см. в разделе «Анализ топологии шины» ниже.
После сканирования просмотрите и управляйте обнаруженными точками данных, используя страницу точек данных e3oncan (см. ниже ).
Шаг 4 – Задания и расписания
Рекомендуемый способ настройки расписаний чтения и режима сбора данных для каждого устройства — страница точек данных e3oncan (см. ниже ).
счетчики электроэнергии
Если при сканировании устройства были обнаружены счетчики электроэнергии E380 или E3100CB, на странице данных e3oncan появится карточка для каждого обнаруженного счетчика. Активируйте сбор данных с помощью переключателя «Сбор» на карточке. Используйте поле «Задержка (с)» , чтобы установить минимальный интервал между обновлениями значений в ioBroker. Рекомендуется значение по умолчанию 5 секунд — счетчики электроэнергии передают более 20 значений в секунду, и установка этого значения на 0 создаст значительную нагрузку на ioBroker.
После завершения нажмите «Сохранить и закрыть» . Проверьте дерево объектов, чтобы убедиться, что данные собираются.
Анализ топологии шины
После сканирования точек данных адаптер анализирует все данные о топологии шины, собранные во время сканирования, и сохраняет результат в двух состояниях.info канал:
| Состояние | Роль | Содержание |
|---|---|---|
info.topology | json | Структурированный JSON: список доступных устройств UDS и всех элементов топологии, без дубликатов во всех матрицах топологии. |
info.topologyHtml | html | Отображаемая HTML-таблица, цветовая кодировка которой соответствует типу шины, с значком UDS на устройствах, также доступных через UDS. |
Отображение HTML-таблицы
Самый простой способ отобразить топологию в ioBroker — использовать инструмент панели мониторинга, который может отображать состояния в формате HTML:
- jarvis : Добавить виджет stateHTML → выбрать
e3oncan.x.info.topologyHtml. - vis / vis2 : Добавить базовый виджет – строковый (неэкранированный) или HTML- виджет → выбрать
e3oncan.x.info.topologyHtml.
Примечание:
info.topologyиinfo.topologyHtmlСостояния могут быть слишком большими для отображения в стандартном диалоговом окне редактора состояний административной панели ioBroker. Это известное ограничение административного интерфейса для состояний, содержащих большие строки. Состояния записываются корректно и могут использоваться обычным образом скриптами и виджетами.
вкладка "Точки данных e3oncan"
Страница точек данных e3oncan — это основное место для просмотра точек данных и настройки расписаний чтения UDSonCAN и режима сбора данных для каждого устройства. Она открывается в новой вкладке браузера при нажатии на кнопку ссылки «Точки данных» в строке экземпляра адаптера в представлении экземпляров администратора ioBroker.
Данные о просмотре
Все устройства и обнаруженные счетчики электроэнергии отображаются в виде разворачиваемых карточек, которые изначально свернуты, что позволяет быстро получить общий обзор всей системы. Щелкните заголовок карточки, чтобы развернуть ее. Поле поиска фильтрует данные по имени или идентификатору, и соответствующие карточки разворачиваются автоматически.
Если сканирование точек данных для устройства еще не выполнялось, в верхней части страницы отображается предупреждающий баннер в качестве напоминания. Если сканирование было выполнено, но функция автоматического обнаружения Collect, появившаяся в версии 1.x, еще не запущена, появляется информационный баннер с рекомендацией выполнить новое сканирование точек данных. Это подсказку можно навсегда закрыть для каждого экземпляра с помощью кнопки « Больше не показывать» .
Платы устройств
На каждой карточке устройства указаны точки данных с идентификатором, именем, кодеком и настройками расписания. В заголовке карточки отображается переключатель «Сбор данных» и минимальное время обновления. Если во время сканирования точек данных был обнаружен трафик сбора данных с устройства, в заголовке карточки отображается зеленая булавка в качестве подтверждения. Если какие-либо точки данных запланированы, появляется зеленый значок «N запланировано» — щелкните по нему, чтобы развернуть карточку и отобразить только запланированные точки данных. Щелкните по значку еще раз, чтобы снять фильтр; щелчок по заголовку карточки снимает фильтр и сворачивает или полностью разворачивает карточку, в зависимости от того, открывала ли ее карточка со значком.
Карты учета электроэнергии
Если в ходе сканирования устройств были обнаружены счетчики электроэнергии (см. Шаг 2 ), в верхней части страницы появится карточка для каждого обнаруженного счетчика. Используйте переключатель «Сбор данных» , чтобы активировать сбор данных, и поле «Задержка (с)» , чтобы установить минимальный интервал между обновлениями значений в ioBroker.
Планирование
Для каждой точки данных вы можете:
- Проверка при запуске – данные считываются один раз при запуске адаптера.
- Введите интервал (или интервалы) – точка данных считывается повторно с указанным интервалом.
Оба варианта можно комбинировать. Используйте фильтр расписания (Все / В начале / Интервал), чтобы быстро сосредоточиться на уже запланированных точках данных.
Топология
Кнопка «Топология» на панели инструментов открывает диаграмму топологии шины в модальном диалоговом окне. Диаграмма генерируется автоматически после сканирования каждой точки данных (см. Анализ топологии шины ). Кнопка неактивна до тех пор, пока не будут доступны данные топологии.
Сбережения
Нажмите «Сохранить» , чтобы применить изменения, не закрывая вкладку. «Сохранить и закрыть» сохраняет и закрывает вкладку, возвращая вас к представлению экземпляров. «Отменить и закрыть» закрывает вкладку без сохранения — перезапуск адаптера не запускается. Значок «Несохраненные изменения» появляется, когда есть ожидающие изменения.
Примечание: При сохранении расписания для всех устройств, отображаемых на этой вкладке, перестраиваются на основе текущего состояния пользовательского интерфейса. Расписания для устройств, не указанных здесь (например, добавленных непосредственно в диалоговом окне конфигурации адаптера), сохраняются без изменений. Если у одного и того же устройства есть расписания в обоих местах, при сохранении приоритет имеет вкладка «Точки данных». Дублирующиеся записи удаляются автоматически.
Чтение точек данных
Данные считываются автоматически в соответствии с настроенными вами расписаниями. Значения отображаются в дереве объектов ioBroker под именем устройства, организованные по категориям.json ,raw иtree Вложенные объекты с удобочитаемыми именами и метаданными.
Считывание конкретной точки данных по запросу.
Вы можете запросить любую точку данных в любое время, отредактировав состояние.e3oncan.0.<DEVICE>.cmnd.udsReadByDid и ввод списка идентификаторов точек данных, например.[3350, 3351, 3352] Если точка данных доступна на устройстве, значение отобразится в дереве объектов и может быть использовано в расписаниях чтения.
В настоящее время диапазон числового сканирования ограничен (например, 256–3338 в версии 0.11.0). ИспользуйтеudsReadByDid для проверки точек данных за пределами этого диапазона.
Запись точек данных
Написание кода намеренно упрощено: изменить значение соответствующего состояния в ioBroker и сохранить его, не проверяя его.Acknowledged (ack) флажок. Адаптер обнаруживает неподтвержденную запись и отправляет ее на устройство.
Примерно через 2,5 секунды после записи адаптер считывает данные с устройства и сохраняет подтвержденное значение. Если после этого состояние не подтверждается, проверьте журнал адаптера для получения подробной информации об ошибке.
Белый список доступных для записи точек данных
Запись разрешена только для точек данных из белого списка, хранящихся по адресу:
e3oncan.0.<DEVICE>.info.udsDidsWritable
Вы можете расширить список, отредактировав это состояние. Сохраните его, не устанавливая флажок.Acknowledged .
Некоторые параметры данных нельзя изменить, даже если они внесены в белый список — устройство вернет отрицательный ответ. В этом случае адаптер повторит попытку, используя альтернативный сервис (только внутренняя шина CAN). Всегда проверяйте операции записи, убеждаясь, что значение было подтверждено.
Точки данных и метаданные
Подробную информацию о структуре точек данных, работе с вариантами точек данных и метаданными, а также обработке форматов температуры/даты/времени см. в файле data-points.md .
счетчики электроэнергии
Счетчики электроэнергии обнаруживаются автоматически во время сканирования устройств. Ручная настройка не требуется. Адаптер присваивает имя состояния в дереве объектов ioBroker в зависимости от того, где был обнаружен каждый счетчик:
| Канал | CAN-адрес | Название штата |
|---|---|---|
| UDS CAN | 98 | e380 |
| UDS CAN | 97 | e380_97 |
| 2-й CAN | 98 | e380_98 |
| 2-й CAN | 97 | e380_97 |
e380 (без суффикса) используется для CAN-адреса 98 на CAN-канале UDS для сохранения обратной совместимости с существующими установками.e3100cb Этот параметр всегда используется для E3100CB.
Задержку сбора данных (по умолчанию 5 с) можно настроить для каждого типа счетчика на странице точек данных e3oncan . Изменения вступают в силу после перезапуска адаптера.
Данные и единицы измерения E380
Поддерживается подключение до двух счетчиков электроэнергии E380. Идентификаторы точек данных зависят от CAN-адреса устройства:
- CAN-адрес 97: точки данных с четными идентификаторами
- CAN-адрес 98: точки данных с нечетными идентификаторами.
| ИДЕНТИФИКАТОР | Данные | Единица |
|---|---|---|
| 592, 593 | Активная мощность L1, L2, L3, суммарная | В |
| 594, 595 | Реактивная мощность L1, L2, L3, суммарная | вар |
| 596, 597 | Абсолютный ток L1, L2, L3; cosPhi | А, — |
| 598, 599 | Напряжение L1, L2, L3; частота | В, Гц |
| 600, 601 | Совокупный импорт, экспорт | кВтч |
| 602, 603 | Полная активная мощность, полная реактивная мощность | В, вар |
| 604, 605 | Совокупный импорт | кВтч |
Данные и устройства E3100CB
| ИДЕНТИФИКАТОР | Данные | Единица |
|---|---|---|
| 1385_01 | Совокупный импорт | кВтч |
| 1385_02 | Совокупный экспорт | кВтч |
| 1385_03 | Состояние: −1 = подача электроэнергии / +1 = подача электроэнергии | — |
| 1385_04 | Суммарная активная мощность | В |
| 1385_08 | Активная мощность L1 | В |
| 1385_12 | Активная мощность L2 | В |
| 1385_16 | Активная мощность L3 | В |
| 1385_05 | Суммарная реактивная мощность | вар |
| 1385_09 | Реактивная мощность L1 | вар |
| 1385_13 | Реактивная мощность L2 | вар |
| 1385_17 | Реактивная мощность L3 | вар |
| 1385_06 | Текущий, абсолютный L1 | А |
| 1385_10 | Текущий, абсолютный L2 | А |
| 1385_14 | Текущий, абсолютный уровень L3 | А |
| 1385_07 | Напряжение L1 | В |
| 1385_11 | Напряжение L2 | В |
| 1385_15 | Напряжение L3 | В |
Часто задаваемые вопросы и ограничения
Почему стоит использовать Collect и UDsonCAN вместе?
Collect предоставляет данные в реальном времени обо всем, чем обмениваются устройства между собой – быстро меняющиеся значения, такие как поток энергии, и медленно меняющиеся значения, такие как температура, все обновляется в момент изменения. UDSonCAN позволяет получать доступ к данным, которые не передаются автоматически, как правило, к заданным значениям и параметрам конфигурации. Сочетание обоих методов дает наиболее полную и актуальную картину вашей системы.
Какие устройства поддерживают режим сбора данных?
В настоящее время протокол collect известен следующими особенностями:
- Витокал / HPMUMASTER (Получить удостоверение личности)
0x693(внутренняя шина CAN) - Vitocharge VX3 и Vitoair / EMCUMASTER (получите ID)
0x451(внешняя и внутренняя шина CAN)
Идентификаторы Collect CAN назначаются автоматически на основе имени устройства UDS во время сканирования устройств. У устройства, не указанного выше, идентификатор Collect не будет назначен автоматически; его можно ввести вручную в конфигурации адаптера.
Можно ли использовать Open3e одновременно?
Да, с условиями. Если в этом адаптере используется только режим Collect, open3e может работать параллельно без каких-либо ограничений. Если вы используете UDSonCAN, не запускайте open3e для одних и тех же устройств одновременно — это вызовет периодические ошибки связи в обоих приложениях.
Адаптер перестал работать после обновления Node.js. Что мне делать?
Начиная с версии адаптера 1.0.3, собственный модуль CAN (socketcan) использует N-API и больше не требует пересборки после обновления Node.js. Если вы используете более старую версию, сначала обновите адаптер. Если проблема сохраняется после обновления, пожалуйста, создайте заявку в службу поддержки.
Чем проект отличается от проекта open3e?
- Прямая интеграция с ioBroker: настройка через диалоги, данные отображаются непосредственно в дереве объектов.
- В дополнение к UDSonCAN доступен режим сбора данных в режиме реального времени.
- Запись данных проще: достаточно изменить значение состояния и сохранить без подтверждения.
- Протокол MQTT не требуется (хотя MQTT, конечно, доступен через стандартную конфигурацию ioBroker).
- 64-битное целочисленное кодирование для записи ограничено значениями ниже 2^52 (4 503 599 627 370 496). Декодирование корректно работает во всем 64-битном диапазоне.
Могу ли я запросить точки данных за пределами диапазона сканирования?
Да. Отредактируйте состояние.e3oncan.0.<DEVICE>.cmnd.udsReadByDid и введите список идентификаторов точек данных, например:[3350, 3351, 3352, 3353] Доступные точки данных отобразятся в дереве объектов и могут быть использованы в расписаниях чтения. Недоступные точки данных приведут к появлению сообщения «Отрицательный ответ» в журнале.
Пожертвовать
Если вам понравился этот проект — или вы просто чувствуете себя щедрым, — подумайте о том, чтобы угостить меня пивом. За ваше здоровье! :beers:
Changelog
1.1.3 (2026-09-11)
- (MyHomeMyData) Fixed CAN connection dropping unexpectedly and never recovering on a healthy bus (updated
socketcanto 4.3.1, which stops treating a recoverable socket error the same as a real disconnect). Refer to issue #255.
1.1.2 (2026-07-16)
- (MyHomeMyData) Fixed missing update of meta data (unit, description) when user changes device specific data point definition
1.1.1 (2026-07-06)
- (MyHomeMyData) Update of list of data points for E3 devices to version 20260705 (common)
- (MyHomeMyData) Fixed duplicate display of variant data points in data point list of WebUI
1.1.0 (2026-07-05)
- (MyHomeMyData) Update of list of data points for E3 devices to version 20260701 (common) and 20260630 (variant)
- (MyHomeMyData) Added codec
O3ESwitchfor device-dependent data point structures selected by a discriminator byte - (MyHomeMyData) Added optional
decimalsparameter to numeric codecs to round decoded values - (MyHomeMyData) Added update of meta data during startup, when structure of data point has changed
1.0.3 (2026-06-02)
- (MyHomeMyData) Update of list of data points for E3 devices to version 20260528 for common and 20260527 for variant data points; For details see this changelog
- (MyHomeMyData) Suppress spurious variant-did warning when common dict covers the length
- (MyHomeMyData) User-defined variant data point structures in
udsDidsSpecificcan now be protected from automatic updates by adding"protected": true(and an optional"reason"text) to the entry; see documentation - (MyHomeMyData) Updated socketcan dependency to 4.2.1 (N-API) — the native CAN module no longer needs to be rebuilt after a Node.js upgrade
Older versions
Older changelog entries are available in CHANGELOG_OLD.md.
License
MIT License
Copyright (c) 2024-2026 MyHomeMyData juergen.bonfert@gmail.com
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.