гаджеты и прочие приборы,  Документация,  дом,  Переводы,  софт,  стройка

Семантическая модель умного дома в openHAB

Семантическая модель стала новинкой версии 3 openHAB и она является развитием концепции групп для того что бы этот уровень абстракции можно было как легко интегрировать и транслировать в другие системы умного дома, так и упростить описание логики в перспективе. Но с первого взгляда этот уровень абстракции кажется излишним, а со второго просто системой меню для поиска элементов, но авторы openHAB уверяют, что «это что-то большее» и ровно из-за этого важно вдумчиво прочесть статью ниже.

Исторически она появилась в версии 2.4.0 M5, однако, практический смысл в виде автоматической генерации отображений появился только в 3й версии с появлением нового интерфейса.

Вещи представляют собой устройства, а также датчики и приводы этих устройств. Но одна из целей openHAB заключается в том, чтобы абстрагироваться от специфики каждой из сотен поддерживаемых технологий и API, чтобы выключатель света был выключателем света, будь то управление лампочкой Hue, настенным выключателем KNX или пользовательским реле DIY, которое использует MQTT. Чтобы обеспечить эту абстракцию, openHAB использует элементы.

Существует фиксированный набор типов элементов, представляющих все различные способы представления показаний датчика или управления устройством. Конфигурация ваших элементов — это то, где значение применяется к вашим устройствам. Например, вместо того, чтобы иметь дело с zwave:1231242:node12:switch, мы можем иметь дело с «Livingroom_Lamp».

Элементы являются основными объектами, с которыми работает openHAB, включая Pages, Sitemaps, Rules и persistence.

Существует множество способов организации ваших элементов, один из которых заключается в использовании семантической модели (описания местоположения, типа оборудования и многого другого). openHAB 3 широко использует семантическую модель для автоматического создания страниц (см. следующий раздел) и обеспечения взаимодействия на естественном языке. Поэтому мы рекомендуем создать семантическую модель с самого начала и придерживаться ее. Это облегчит вашу жизнь в долгосрочной перспективе. Уделение времени пониманию и выбору логической структуры для вашего дома избавит вас от необходимости переделать работу в будущем.

Однако модель не предназначена для представления всех ваших групп и элементов. Модель представляет только физическую компоновку вашей домашней автоматизации. Следовательно, она имеет некоторые ограничения, обсуждаемые ниже. Но это не означает, что другие способы организации и группировки элементов не поддерживаются. Например, можно создать сквозную функциональную группу на основе AllLights. Только не включайте AllLights в модель. Несмотря на то, что семантическая модель оперирует с элементами типа Group — это не означает, что все группы входят в семантически модель.

В этом разделе приведен пример одного из способов моделирования вашего дома с указанием местоположения и описания оборудования. Семантическая модель, при правильной настройке, позволит openHAB выключать все источники света на кухне, когда его просят, так как фреймворк может понять местоположение кухни и какие предметы являются светом в этом месте. После создания модель позволяет использовать действия семантики в правилах, например, для определения местоположения элемента или связанного с ним оборудования. Это поможет создать, обобщить и упростить Правила на основе шаблонов и цели.

#Введение в онтологию и отношения

онтологические отношения

На рисунке показана связь между четырьмя основными понятиями в модели.

  • Местоположение (Location) — это групповой элемент, который может содержать локации, оборудование и точки и представляет собой физическое местоположение (здание, комната и т. д.).
  • Оборудование (Equipment) обычно является групповым элементом, который может содержать оборудование и точки.
  • Точка (Point) не является группой, но представляет любой другой тип элемента и обычно связана с каналом.
  • Свойство (Property) — это дополнительная метка для элемента, которая указывает, что это за точка. Например, термометр является точкой измерения температуры и у него будет тип «измерения», а свойство «температура». Неприятное свойство перевода в том что не всегда понятно как именно выглядит это в конфигурации. Рекомендую внимательно изучать примеры ниже.

Помимо этих отношений, существуют ограничения.

  • Местоположение может напрямую входить в нулевую группу или в одну группу типа местоположение.
  • Оборудование может входить только в нулевую группу или одну локацию или быть частью другого оборудования. Иными словами, Оборудование может входить только в одну группу, которая имеет семантический тег.
  • Точка может входить в нулевую группу или входить в одно местоположение или в одно оборудование. Другими словами, точка может входить только группы «Местоположение» или «Оборудование».

Поскольку модель представляет физическую сущность, эти ограничения вполне естественны. Оборудование или точка не могут находиться более чем в одном месте одновременно. Точка не может быть частью более чем одного оборудования одновременно.

Пример расширенной модели:

Левая колонка голубого цвета это Места (Locations), вторая колонка песочного цвета — Оборудование (Equipment), третья колонка серого цвета — Точки (Points) и отдельно обозначены группы не входящие в семантическию модель.

У нас есть сущность под крышей (Indor), которая называется дом (House). Как сказал один поэт-певец (типа «акын») в 1982 году:
«Моя эффективность растет с каждым днем;
Я люблю свои стены, я называю их «дом».
Ко мне поступают сигналы с разных сторон…»

Ну вот прямо точное описание сути умного дома в 2021 году! Вот официальное видео образца 1982 года, если кто хочет посмеяться… мобильных тогда не было, но была мода на часы на цепочке с крышкой… а вот смайлики и «антенны 5G» и тогда уже были!!!

В доме есть первый этаж (Ground Floor), а на первом этаже есть комнаты, включая гостиную (Living Room). В гостиной есть привод штор (Rollershutter), которое, в свою очередь, имеет точку управления (Control) и выключатель питания (Power). Места (Indor, House, First Floor, Living Room) и оборудование (Rollershutter) — это Групповые элементы (элементы у которых установлен тип Group, если будете их создавать не из семантической модели, а с нуля, то этот пункт находится в конце списка возможных типов элементов), а Управление и Питание — это элементы (Items) других типов.

Как уже говорилось, не требуется использовать только семантическую модель. При необходимости можно и рекомендуется создавать группы и элементы, которые находятся вне модели. В этом примере привод штор в гостиной является членом группы AllRollershutters, которая может быть использована для определения, открыты ли какие-либо из них, и отправки команд всем приводам штор в доме одновременно. Но эта функциональная сквозная группа не является ни Оборудованием, ни Местом, и она позволяет обойти ограничения модели. На практике умный дом может быть только на 60-80%% описан семантической моделью. Подробнее о создании элементов и групп вне модели читайте ниже.

Вы можете использовать бесконечно много уровней размещения (Locations), чтобы смоделировать свой дом. Например, если вы живете в квартире, вашим корневым местоположением могут быть просто комнаты. Если у вас только одно здание (без двора и забора), вы можете пропустить внутренний/наружный слой и слой здания, чтобы оперировать только иерархий этажей и комнат и т. д. От себя добавлю, что в случае когда управление делается по проводам то возникает вопрос отмечать устройство по месту нахождения устройства управления или по месту того чем оно управляет, например, у меня блоки реле стоят в гараже, но управляют они и светом во дворе и воротами всякими и поливом.

Оборудование (Equipment) часто сопоставляется с Вещами (Things), но не всегда. Вы можете описывать одно Оборудование с несколькими вещами. Например, у компьютера могут быть точки (Points) для его включения (отправка пакета пробуждения по сети), выключение (команда операционной системы), определение того, находится ли он онлайн (опрос сети) и сколько энергии он потребляет (настенная вилка Z-Wave). Все эти разные элементы из разных вещей (Things) могут быть объединены для моделирования одного прибора (Equipment).

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

Входная дверь может иметь точки для определения того, открыта или закрыта (с датчиком) или заблокирована (с интеллектуальным замком), а также детектор камеры/движения.

Наконец, Оборудование может состоять из нескольких устройств. Используя приведенный выше пример, донгл Z-Wave можно смоделировать как вспомогательное оборудование компьютера.

Построение модели местоположений

На экране «Настройки» нажмите «Модель».

Давайте начнем с иерархии местоположений. Нажмите кнопку Добавить местоположение (Add Location).

Добавьте свой первый элемент, группу, представляющую первый этаж. Дайте ему имя, но выбирайте осторожно, так как вы не можете изменить его впоследствии. Выберите метку, категорию (в основном она определяет значок по умолчанию), а затем уточните элемент, выбрав более точный семантический класс, чем «Местоположение». Здесь мы используем «GroundFloor».

Как только он будет создан, убедитесь, что он по-прежнему выбран слева, и снова нажмите «Добавить местоположение». Это добавит еще одно место на первом этаже. Как правило, комнаты находятся непосредственно под этажами. Добавьте элемент, представляющий гостиную, назвав его LivingRoom. Задайте категорию дивана и семантический класс гостиной.

Теперь давайте добавим кухню (Kitchen). Обязательно снова выберите Первый этаж и выберите Добавить местоположение, чтобы добавить третий элемент (название: Кухня (Kitchen), категория: Kitchen, семантический класс: Kitchen).

Чтобы добавить первый этаж на корневой уровень, нам нужно сначала очистить выделенный фрагмент. Нажмите на пробел в дереве или Очистить на нижней панели инструментов. Добавьте первый этаж и его комнаты (главную спальню, ванную комнату и т. д.) в свою модель.

В конечном итоге вы должны получить что-то похожее на это:

Моделирование оборудования

Теперь давайте добавим оборудование (Eqipment) и точки (Points). Можно было бы действовать так же, как и для Локаций, и создавать их вручную, но есть более простой способ. Если добавляемое оборудование является одной из вещей, которые вы уже добавили, у вас есть два варианта.

Со страницы модели

Выберите, где в модели вы хотите добавить оборудование, например, кухню, и нажмите кнопку Создать оборудование из вещи.

Выберите вещь, из которой вы хотите создать Оборудование, и измените сведения о элементе (Item) Оборудования, который будет создан. Если вы не нашли подходящий семантический класс, выберите «Оборудование» (Equipment).

Ниже приведены все каналы, определенные Вещью. Иногда Things будет иметь сотни каналов, поэтому здесь у вас есть возможность выбрать, какие из них будут связаны с новыми Точками (Points) элементов (Items). Проверьте каналы, которые вас интересуют и отметьте только те.

Для датчика растений Вещь(Thing), добавленного ранее, у нас есть возможность изменить основные типы чисел по умолчанию и сделать их количественными. Типы количества (Число с размером) обеспечивают возможности преобразования между единицами измерения, а сохранение по умолчанию более детализированным. Для таких процентов, как влажность или уровень заряда батареи, используйте Number:Dimensionless, который является типом количества без размера.

Также установите семантический класс в Измерение (Measurement) и выберите соответствующее связанное свойство.

Закончив, нажмите кнопку Добавить в строке заголовка. Оборудование и очки должны быть добавлены в модель, где вы хотите.

Оборудование «Датчик растения» теперь создано под местоположением «Кухня», и все выбранные точки представляют выбранные каналы Вещи.

Со страницы вещи

В разделе «Настройки» нажмите «Вещи» (Things), а затем нажмите «Вещь» (Thing), которую вы хотите добавить в модель. Перейдите на вкладку «Каналы» (Channels).

Нажмите кнопку Добавить оборудование в модель (Add Equipment to Model) под списком. Вы столкнетесь с таким же экраном, как и выше. Разница в том, что вместо того, чтобы выбирать вещь, вы должны выбрать, где в модели вы хотите добавить Оборудование.

Выберите «Выбрать из модели» в разделе «Родительская группа», появится древовидное представление «Местоположения и оборудование». Выберите родительскую группу, например, гостиную (Living Room), затем выберите Выбрать в правом верхнем углу диалогового окна. Если это оборудование является частью другого оборудования, выберите это оборудование в качестве родительского, а не местоположение.

Затем сделайте то же самое, что и выше, настройте пункт Оборудование и Точки, а затем нажмите кнопку Добавить.

Вернитесь к модели, выбрав «Модель» на боковой панели, и убедитесь, что оборудование, добавленное в модель со страницы вещи находится там же где и его точки. В данном случае: Living Room — Локация или Местоположение, Dining Table Lights — Оборудование, а Точками в модели являются каналы отмеченные молниями. То есть тут отображается тот самый расклад по уровням, что был описан в начале статьи.

Обратите внимание, как в разделе «Ссылки на каналы» отображается ссылка на вещь/канал, а также у вас есть виджет управления для управления элементом. Поскольку он связан с Цветовым каналом лампочки положение ползунков будет отражать состояние элемента (H-Оттенок, S-Насыщенность и B-Яркость).

#Добавление существующих элементов в модель

Могут быть случаи, когда пользователю нужно добавить существующие элементы в свою модель. Возможно, они мигрируют со старой версии OH или они не последовали вышеприведенному совету «начать с модели» или они следуют учебнику или примеру, который не включает модель. В этом случае не все потеряно. Существующие элементы могут быть добавлены в модель. Просмотрите элемент в настройках элементов (Items), нажмите кнопку Изменить и выберите соответствующий семантический класс и семантическое свойство. Затем добавьте точку в качестве члена соответствующего оборудования или группы местоположения. Если Группа оборудования еще не существует, создайте группу и сначала используйте соответствующую семантическую метку оборудования и добавьте Оборудование в соответствующую группу местоположения.

#Изменение модели

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

#Значки

Это таблица, описывающая классы оборудования, точки и свойства, необходимые для отображения значков статуса и измерения на карточках местоположения.

ЗначокВидОборудованиеТочкаСвойство
Осветительные приборыСтатусЛюбаяУправление, переключательСвет
ОкнаСтатусОкноОткрытое состояниеЛюбая
ДвериСтатусДверь, передняя дверь, задняя дверь, внутренняя дверь, погребная дверь, боковая дверьОткрытое состояниеЛюбая
Гаражные двериСтатусГаражные двериОткрытое состояниеЛюбая
ШторыСтатусШторыОткрытое состояниеЛюбая
ПрисутствиеСтатусЛюбаяСтатусПрисутствие
ЗамокСтатусЗамокСтатус, OpenState, Control, SwitchЛюбая
КлиматСтатусHVACСтатус, управление, переключательЛюбая
ЭкраныСтатусЭкран, телевидениеСтатус, управление, переключательМощность
КолонкиСтатусПриемник, динамикСтатус, управление, переключательМощность
ПроекторыСтатусПроекторСтатус, управление, переключательМощность
СигнализацияСтатусЛюбаяСигнал тревогиЛюбая
ЯркостьИзмерениеЛюбаяИзмерениеСвет
ТемператураИзмерениеЛюбаяИзмерениеТемпература
ВлажностьИзмерениеЛюбаяИзмерениеВлажность

Эта таблица основана на источниках:

#Несемантические предметы и группы

Как обсуждалось выше, ожидается, что многие элементы и группы будут находиться за пределами семантической модели. Возможно, они являются только вспомогательными элементами, используемыми только для правил. Возможно, это необработанные элементы, которые подают прокси-элемент или обобщающую группу. Если они представляют собой группу, возможно, они основаны функционально, а не физически, например, Все источники света.

Как обсуждалось выше, в модель могут быть добавлены существующие элементы. Обратное также верно, элемент можно удалить из модели, просто удалив их семантические теги, установив их в «Нет». Обратите внимание, что при удалении пары тегов точка/свойство сначала удалите свойство, иначе тег свойства останется на элементе.

#Создание несемантических элементов

Обратите внимание, что группа является особым типом элемента. Его можно создать только со страницы настроек элементов (если он не создан из модели), но процесс создания группы такой же, как и любого другого элемента.

#Со страницы модели

Выбор существующего элемента и удаление сематических тегов, нажав кнопку «Изменить» и установив семантические теги значение «Нет». Это особенно полезно, если вы создали Оборудование из вещи, но только некоторые из созданных элементов должны быть частью модели.

#Со страницы вещей

Выберите «Вещи» и нажмите на вкладку «Каналы». Нажмите на канал, из которого должен быть создан элемент. Нажмите «Добавить ссылку на элемент…» и выберите «Создать новый элемент». Заполните информацию о создаваемом элементе, не упустив семантические теги. Наконец, нажмите «Создать ссылку».

#На странице настроек элементов

В разделе «Администрирование» нажмите «Настройки», а затем на «Предметы». Все элементы, определенные в системе, перечислены. Список элементов можно отфильтровать с помощью поля поиска в верхней части списка. Можно искать по имени элемента, метке элемента или типу элемента (например, показать все элементы переключателя).

В нижней части этой страницы есть синий значок «+», который при нажатии позволяет создать элемент. Нажатие на этот параметр предлагает два варианта: «Добавить элементы из текстового определения», который позволяет импортировать один или несколько элементов на основе синтаксиса текстовой конфигурации, и «Добавить элемент», который позволяет создавать пользовательский интерфейс путем заполнения формы.

Опять же, оставьте семантические теги, и Элемент не станет частью модели.

#Членство в группе

После создания группы в качестве членов группы могут быть добавлены другие элементы. Обратите внимание, что этот процесс также работает для групп с семантическими тегами. Перейдите или найдите группу на странице «Настройки элементов» и выберите «Группу». В середине страницы будет поле с надписью «Прямые члены группы». Нажмите «Изменить», а затем «Участники».

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

После завершения нажмите кнопку «закрыть», а затем нажмите «Применить», чтобы изменить членов Группы.

#Предметы Лучшие практики

  • Включайте в модель только те элементы, которые имеют смысл. Не все элементы могут и не все должны быть в модели.
  • Используйте значимые и уникальные метки для элементов. Если все температурные элементы просто помечены как «Температура», при использовании поиска на странице настроек элементов или в пользовательском интерфейсе будет невозможно определить какой из них имеется ввиду.
  • Используйте созданные вручную группы, которые находятся за пределами модели, чтобы создать функциональные возможности, такие как способ отправить команду на все источники света в доме одним касанием или увидеть максимальную температуру в доме.
  • Группы имеют возможность применить функцию агрегирования. Можно семантически пометить эти группы с помощью тега Point/Property и поместить группу в оборудование или местоположение. Это может быть полезно в тех случаях, когда несколько предметов логически управляются как одно устройство, например, три смарт-лампы в одной люстре.

Leave a Reply

Ваш адрес email не будет опубликован.

Спасибо!

Теперь редакторы в курсе.