Файл io-package.json

Помимо обычногоpackage.json Каждый адаптер содержит второй файл:io-package.json В нём содержится вся необходимая ioBroker информация об адаптере, которая не интересует npm. Это определяет запись в списке адаптеров, объекты экземпляров, значки на плитке и поведение при запуске.

Создатель адаптеров полностью их настраивает. Любой, кто впоследствии будет изменять их вручную, должен знать, для чего нужны эти поля.

Файл содержит несколько блоков верхнего уровня:

блокироватьСодержание
commonОсновная часть: название, режим работы, интерфейс, зависимости.
nativeКонфигурация по умолчанию. Во время выполнения какthis.config.<feld> читаемый.
encryptedNativeполя изnative которые хранятся в зашифрованном виде.
protectedNativeполя изnative , который может прочитать только сам адаптер.
objectsОбъекты, создаваемые один раз для всей системы.
instanceObjectsОбъекты, создаваемые при каждом новом экземпляре.
notificationsНастраиваемые категории уведомлений. См. раздел «Уведомления» .

Сферы, имеющие значение

идентификатор

common.name это название адаптера без префикса.ioBroker. Он написан строчными буквами. Это идентификатор везде: в дереве объектов, в пакете npm, в репозитории. Его нельзя изменить позже.

common.titleLang — это отображаемое имя, многоязычное.common.desc Краткое описание, также на нескольких языках.

common.version необходимо переключиться на версию, указанную вpackage.json Они подходят. Это подтверждает проверка адаптера.

Режим работы

common.mode Определяет способ запуска экземпляра ioBroker:

режимВести себя
daemonПрограмма работает непрерывно. Она перезапускается по завершении процесса. Это нормальное поведение.
scheduleОн работает по расписанию; расписание хранится в объекте экземпляра и может быть изменено в панели администратора.
onceЭта процедура выполняется один раз после каждого изменения объекта экземпляра и после этого не перезапускается.
subscribeНачинается, когда.alive Значение параметра устанавливается равным true и исчезает, когда оно становится равным false.
extensionОн запускается не через ioBroker, а загружается из веб-экземпляра. Вот как это работает.simple-api и аналогичные расширения.
noneЭто вообще не запускает никакого процесса.

Вschedule Настройка по умолчанию относится кcommon.schedule в качестве выражения CRON.

common.compact Это позволяет экземпляру работать в том же процессе, что и другие. На небольших компьютерах это заметно экономит память, но требует от адаптера полной очистки после завершения работы.

поверхность

common.adminUI.config описывает, как выглядит конфигурация:

  • json Адаптер обеспечиваетadmin/jsonConfig.json с. Сегодняшний маршрут.
  • materialize старыйadmin/index_m.html .
  • html : еще более старыйadmin/index.html .
  • none Адаптер не имеет настроек.

common.icon это символ в папкеadmin ,common.extIcon Его адрес на GitHub, чтобы список адаптеров мог отображать его и для неустановленных адаптеров.

Что управляет символами на плитке?

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

  • common.connectionType :local илиcloud Независимо от того, взаимодействует ли адаптер напрямую с устройством или через сервис, предоставляемый производителем.
  • common.dataSource :push ,poll илиassumption Независимо от того, генерируются ли значения автоматически, запрашиваются или просто предполагаются.
  • common.plugins.sentry Включает уведомления о сбоях. См. раздел «Уведомления о сбоях» .

Эти три элемента информации часто забываются. Они занимают всего три строки и избавляют пользователей от необходимости задавать вопрос на форуме.

Зависимости

common.dependencies указывает, что должно присутствовать на том же хосте, например:[{"js-controller": ">=5.0.19"}] .common.globalDependencies указывает, что должно выполняться в определенной части системы, как правило.[{"admin": ">=6.0.0"}] .

common.osDependencies.linux Отображает список пакетов операционной системы, устанавливаемых во время установки.

Значения конфигурации

Всё подnative Это параметр конфигурации по умолчанию. Во время выполнения он выглядит следующим образом:this.config.<feld> готовый.

Каждый пароль и каждые учетные данные доступа должны быть в обоих списках:encryptedNative иprotectedNative Первая настройка гарантирует шифрование значения в базе данных, вторая предотвращает его чтение любым другим адаптером. Настройка только одной из этих настроек создает уязвимость.

Пример из BackItUp:

"encryptedNative": ["cifsPassword", "ftpPassword", "webdavPassword"],
"protectedNative": ["cifsPassword", "ftpPassword", "webdavPassword"]

Объекты, возникающие спонтанно

instanceObjects Это список объектов, которые ioBroker создает с каждым новым экземпляром. Это чистый способ обработки всего, что и так должно всегда существовать, например, ветки.info со статусом подключения:

"instanceObjects": [
  {
    "_id": "info",
    "type": "channel",
    "common": { "name": "Information" },
    "native": {}
  },
  {
    "_id": "info.connection",
    "type": "state",
    "common": {
      "role": "indicator.connected",
      "name": "Verbindung zum Gerät",
      "type": "boolean",
      "read": true,
      "write": false,
      "def": false
    },
    "native": {}
  }
]

?>info.connection Это не просто декоративный эффект: администратор впоследствии окрашивает экземпляр в зеленый или желтый цвет, и другие адаптеры могут реагировать соответствующим образом. Адаптер, устанавливающий соединение, должен находиться в этом состоянии.

Новости

common.messagebox: true Создает диалоговое окно для каждого экземпляра. Без этой записи сообщение не будет получено.sendTo См. Межэкземплярные сообщения .

Переводы

Все многоязычные поля заполняются не вручную. Проект включает в себя...@iobroker/adapter-dev и апелляция

npm run translate

переводит новые английские тексты изio-package.json и из файлов i18n на все поддерживаемые языки. Таким образом, новые тексты вводятся только на английском языке ; команда обрабатывает остальное.

Полный список

В этой главе перечислены поля, которые вам понадобятся в повседневной работе. Полный список всех атрибутов и их особых случаев можно найти в схеме объекта .