объекты
В ioBroker существует два типа информации, и разница между ними объясняет почти все остальное:
- Объекты описывают , что что-то собой представляет. Они редко меняются: название, единица измерения, указание на то, можно ли что-то прочитать или написать.
- Указанные значения — это сами величины: 23,5 °C.
true«Гостиная». Условия постоянно меняются. Они указаны на отдельной странице: Условия .
Термометр — это не просто "21,3". Это предмет, который говорит: вот число, оно имеет единицу измерения °C, оно читаемо, но не поддается описанию, и называется "температура в гостиной". Значение 21,3 связано именно с этим.
Адрес: ID
Каждый объект имеет идентификатор (ID). Он имеет иерархическую структуру и разделяется точками — как путь к файлу, только вместо косых черт используются точки.
hm-rpc.1.ABC110022.2.VALUE
| Часть | Значение |
|---|---|
hm-rpc | адаптер |
1 | его экземпляр — второй, отсчет начинается с 0. |
ABC110022 | адрес устройства |
2 | канал |
VALUE | точка данных |
Все, что создаёт адаптер, находится в его собственном пространстве имён.<adapter>.<instanz>. Кроме того, существуют некоторые фиксированные пространства имен:
| пространство имен | Содержание |
|---|---|
system. | всё, что касается самого ioBroker |
system.adapter. | конфигурация адаптеров и их экземпляров |
system.host. | компьютеры, на которых запущен ioBroker |
system.user. ,system.group. | Пользователи и группы |
enum. | Комнаты, ремесла и другие группы |
alias. | Псевдонимы — пользовательские, стабильные имена для внешних точек данных. |
0_userdata.0. | Место для ваших личных вещей — см. ниже. |
scripts.js. | скрипты адаптера JavaScript |
Идентификаторы могут иметь длину до 240 байт. Следующие символы не допускаются:[ ] * , ; ' " ` < > \ ? ; от^ $ ( ) / Это не рекомендуется. Тем, кто создает собственные данные, лучше всего использовать буквы, цифры, подчеркивания и точки.
Структура объекта
Каждый объект имеет четыре поля:
| Поле | Что в нём содержится |
|---|---|
_id | адрес, указанный выше |
type | Какой это тип объекта (см. ниже)? |
common | Представление ioBroker: Имя, тип, единица измерения, роль, права на чтение и запись. |
native | Перспектива целевой системы: всё, что понимает только подключенное устройство или сервис. |
На изображении показан дверной замок Homematic.common В нем указано то, что ioBroker должен знать об этом — название и символ.native Устройство обладает определенными характеристиками: адрес, прошивка, радиоадрес, тип устройства. ioBroker ничего из этого не считывает; адаптеру необходима вся эта информация.
Разделениеcommon иnative Именно поэтому виджет в визуализации может обрабатывать данные Homematic так же хорошо, как и данные Zigbee: все необходимое для ioBroker всегда находится в одном и том же месте.common Что касается самого устройства, то оно остается в пределах нормы.native и никому не мешает.
Типы объектов
В повседневной жизни вы будете сталкиваться в основном с первыми пятью:
| тип | Что это такое |
|---|---|
state | Точка данных — место, где хранится значение. |
channel | суммирует несколько взаимосвязанных точек данных. |
device | объединяет каналы в одно устройство |
folder | папка, исключительно для организации информации. |
enum | группировка: комната, торговля, собственная категория |
adapter | шаблон установленного адаптера |
instance | его работающая копия |
host | компьютер, на котором запущен ioBroker |
user ,group | Пользователи и группы |
script | сценарий |
meta | Редко изменяющаяся дополнительная информация об адаптере |
config | настройки, например system.config |
chart | описание диаграммы |
Устройства, каналы и точки данных не образуют обязательной иерархии — некоторые адаптеры создают устройства и каналы, другие — только точки данных в папках. Допускаются оба варианта.
Где вы можете их увидеть
В панели администратора, в разделе «Объекты» , структура дерева выглядит следующим образом: каждый уровень между двумя точками представляет собой строку. Значок инструмента в конце строки позволяет редактировать объект, а значок лупы позволяет просмотреть исходное содержимое — которое зачастую более информативно, чем любое описание.
Изображение следует читать сверху вниз следующим образом:hm-rpc это адаптер0 по его просьбе,LEQ0903185 устройство («замок»), включающее два канала, и в канале1 Там расположены точки данных. Столбец «Тип» указывает тип объекта для каждой строки, столбец « Роль» объясняет, что представляет собой точка данных, а текущее значение отображается в крайнем правом углу.
Пространство именsystem. Эта функция видна только в экспертном режиме (переключатель в верхней части панели инструментов). Это сделано намеренно: там нет ничего, что использовалось бы в повседневных ситуациях.
Объекты, созданные адаптером, принадлежат этому адаптеру. Внесение изменений вручную приведет к их перезаписи при следующем запуске экземпляра. Если точке данных необходимо присвоить постоянное имя или сущность, правильным решением будет использование псевдонима .
Собственные объекты:0_userdata.0
Для объектов, не являющихся результатом работы адаптера — маркера для скрипта, самоподдерживающейся заданной точки, буфера обмена между двумя автоматизациями — существует отдельное пространство имен:0_userdata.0 .
Оно не принадлежит ни одному адаптеру и не перезаписывается ни одним из них. Именно поэтому это подходящее место. Точки данных, размещенные в пространстве имен адаптера, могут исчезнуть при следующем запуске экземпляра.
Они создаются в административной панели в разделе «Объекты» с помощью знака плюса или с помощью скрипта — там же указывается полный ID:
createState('0_userdata.0.Heizung.Sollwert', 21, { type: 'number', unit: '°C', read: true, write: true });
Без полного прохождения маршрута, этоcreateState точка данных ниже экземпляра скрипта (javascript.0.… Это работает, но данные в этом случае остаются на адаптере, который ими не владеет.
Где расположены объекты
Объекты и состояния хранятся в двух отдельных базах данных — поэтому они иногда отображаются отдельно в пользовательском интерфейсе. Обе управляются контроллером js-приложения и доступны в нескольких версиях:
| Подача документов | За что |
|---|---|
jsonl | файлы по умолчанию, начиная с js-controller 4objects.jsonl иstates.jsonl в каталоге данных |
file | старый формат файлов, который до сих пор встречается в более старых версиях программ. |
redis | база данных в оперативной памяти для больших систем |
Обе базы данных настраиваются отдельно . Поэтому возможно, и даже является обычным подходом, хранить в Redis только состояния, а объекты — в...jsonl Допускается следующее: состояния постоянно меняются, объекты — почти никогда.iobroker status показывает, что используется в данный момент.
Для подавляющего большинства установок эта настройка является правильной. Рассматривать Redis стоит только в том случае, если js-контроллер постоянно потребляет много вычислительного времени и система работает медленно.
Эти две базы данных хранят только текущее состояние. Значение точки данных неизвестно вчера. Если вам нужна историческая запись, например, для графика, необходимо включить запись данных; см. раздел «Запись данных» .
Читать далее
- Государства — сами ценности и чёрный флаг.
- Роли - что
common.roleозначает - Списки - Комнаты и профессии
- Структура объектов — полный справочник для разработчиков.