Разработка плагинов BTP
Публичный контракт для прикладной логики: читать разрешенные данные, выполнять расчет и публиковать результат.
Рабочий пример
Community Starter подписывается на один числовой лист USEPI, вычисляет value = input * scale + offset и публикует JSON через MQTT Host API. Это телеметрия, не команда исполнительному устройству. Пример использует настоящие PluginSession и PluginClient из Rust SDK.
Что входит в загрузку
Самодостаточный source kit 1.0.0 содержит Rust SDK, минимальный публичный контракт, Community Starter, Cargo.lock, manifest, схемы, тесты, build.py и инструменты btp.py. Закрытый репозиторий BlueTraktor не нужен. Это исходники для создания плагинов, не готовый BTP. Зависимости Cargo загружаются из публичного реестра; они не включены в архив.
Версия kit 1.0.0 обозначает Plugin API 1.3; версия crate SDK остается 0.1.0. SOURCE-MANIFEST.json фиксирует SHA-256 исходников и каждого файла. Условия SDK предоставляет правообладатель: см. SDK-TERMS.md. Архив не объявляет open-source лицензию и не предоставляет права на остальные компоненты.
SHA-256: 6abfe482fc469d7ba3f4c7cdd4833b18b0d72076decc8f05182bdcefb5510195Четыре отдельных условия
| Условие | Назначение |
|---|---|
| Проверка пакета | Формат, совместимость и доверие в рамках политики установки |
| Лицензия | Право запуска runtime и точного plugin ID |
| Grants экземпляра | Явно разрешенные операции и пути данных |
| Права пользователя | Установка, настройка, управление и просмотр журналов |
Границы обычного плагина
- Собственный фоновый процесс и декларативная форма настройки экземпляра.
- Чтение и подписка на разрешенный точный лист USEPI, публикация в разрешенные MQTT-топики через Host API.
- Нет произвольных React-компонентов, HTML, JavaScript, iframe, страниц или меню из пакета.
- Нет прямой сети, доступа к базе, файловой системе хоста или аппаратным устройствам.
- MQTT subscribe, secrets API и аппаратный broker не являются рабочим API этого стартера.
- Новые системные виджеты и разделы требуют отдельного согласования по контракту ui-extension.
Версии и совместимость
Для текущего стартера нужны BlueTraktor 0.1.4 или новее И менеджер Plugin API 1.3. Версии продукта недостаточно. UI-extension protocol остается 1. Сверяйте фактические версии установки: публикация руководства не означает, что она уже обновлена.
Подписки появились в API 1.1; API 1.2 добавляет привязку точных grants к настройкам экземпляра. API 1.3 добавляет общий контракт поставщика подключения. Стартер задаёт диапазон 1.3–1.3. Старые бинарники API 1.0/1.1/1.2 сохраняют совместимость с новым Manager; пересборка с SDK release 1.0.0 требует Manager 1.3 из-за Hello 1.3. Старые SDK-архивы и kit студии сохранены. Версия продукта, source kit 1.0.0, crate SDK 0.1.0 и версия API различаются.
Ревизия исходников и обычные relay
Текущие source kit и kit редактора имеют новые неизменяемые адреса с суффиксом 6abfe482fc46. SDK остаётся 1.0.0, crate SDK — 0.1.0, Plugin API — 1.3; это ревизия исходников, а не новая версия API или wire-протокола. Прежние архивы и kit редактора доступны по старым адресам без замены байтов.
Модуль plugin_relays содержит только семь исполняемых констант обычного relay, включая transport.relay:instance и команды QUIESCE/RESUME, а не политику допуска Core или Manager. Для их использования нужен обновлённый хост с поддержкой обычных relay и подтверждённой остановки транспорта; один номер Plugin API 1.3 этого не доказывает. Константы не предоставляют сетевые права и не заменяют проверку подписанного пакета, точного endpoint, топиков, grants, роли администратора и лицензии.