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

Вещи (Things)

Вещи (Things) — это сущности, которые физически могут быть добавлены в систему и которые потенциально могут обеспечить множество функций в одной вещи. Важно отметить, что вещи не обязательно должны быть устройствами, но они также могут представлять собой веб-службу или любой другой управляемый источник информации и функциональности. С точки зрения пользователя они актуальны для процесса установки и конфигурирования, но не для управления системой.

Вещи могут иметь свойства конфигурации, которые могут быть необязательными или обязательными. Такие свойства могут быть базовой информацией, такой как IP-адрес, ключ (token) доступа для веб-службы или конфигурация устройства, изменяющая его поведение.

Каналы (Channels)

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

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

Мосты (Bridges)

Особый тип вещей — «мост». Мосты — это вещи, которые необходимо добавить в систему, чтобы получить доступ к другим вещам. Типичным примером моста является IP-шлюз для какой-либо системы домашней автоматизации на основе не IP-протокола (KNX, RS-485, ModBus, Z-Wave и т.п.) или конфигурации веб-службы с информацией проверки подлинности, которая может понадобиться каждой вещи из этой веб-службы.

Обнаружение (Discovery)

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

Состояние вещей (Thing Status)

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

СостояниеОписание
UNINITIALIZEDЭто начальный статус вещи, когда она добавляется или запускается система. Этот статус также присваивается, если процесс инициализации завершился неудачно или привязка недоступна. Команды, которые отправляются на каналы, обрабатываться не будут.
INITIALIZINGЭто состояние назначается, когда привязка инициализирует вещь. Это зависит от привязки, сколько времени занимает процесс инициализации. Команды, которые отправляются на каналы, обрабатываться не будут.
UNKNOWNОбработчик полностью инициализирован, но из-за характера представленного устройства/службы он еще не может сказать, находится ли вещь в сети или в автономном режиме. Поэтому вещь потенциально может работать правильно уже и может или не может обрабатывать команды. Но система позволяет отправлять команды, потому что некоторые устройства на основе радио могут выходить в интернет, если команда отправляется им. Обработчик должен позаботиться о том, чтобы переключить вещь в онлайн или офлайн как можно скорее.
ONLINEПредполагается, что устройство/служба, представленная вещью, работает правильно и может обрабатывать команды.
OFFLINEПредполагается, что устройство/служба, представленная вещью, работает неправильно и не может обрабатывать команды. Но система позволяет отправлять команды, потому что некоторые устройства на основе радио могут вернуться в онлайн, если команда отправляется им.
REMOVINGУстройство / служба, представленная вещью, должна быть удалена, но привязка еще не подтвердила удаление. Некоторые привязки должны взаимодействовать с устройством, чтобы отключить его от системы. Устройство наверняка не работает, и команды не могут быть обработаны.
REMOVEDЭтот статус указывает, что устройство/служба, представленная вещью, была удалена из внешней системы после удаления, инициированного платформой. Обычно этот статус является промежуточным, так как вещь удаляется из базы данных после назначения этого статуса.

Переходы между состояниями (Status Transitions)

Эта схема показывает возможные переходы между состояниями.

Начальное состояние вещи UNINITIALIZED. От UNINITIALIZED вещь переходит к инициализации (INITIALIZING). Если инициализация не удается, вещь возвращается к UNINITIALIZED. Если инициализация прошла успешно, привязка устанавливает состояние объекта в UNKNOWN, ONLINE или OFFLINE, что означает, что обработчик объекта полностью инициализирован. Из одного из этих состояний вещь может вернуться в UNINITIALIZED, REMOVING или REMOVED. Состояния REMOVING и REMOVED также может быть достигнуто из любого другого состояния.

Подробное состояние (Status Details)

Состояние подробно описано далее с объектом Status detail. В следующей таблице перечислены различные сведения о состоянии для каждого статуса:

UNINITIALIZED NONE Никаких дополнительных сведений о статусе.
HANDLER_MISSING_ERROR Не удается инициализировать обработчик, так как ответственная привязка недоступна или запущена.
HANDLER_REGISTERING_ERROR Сбой обработчика на этапе регистрации службы.
HANDLER_CONFIGURATION_PENDINGОбработчик зарегистрирован, но не может быть инициализирован из-за отсутствия параметров конфигурации.
HANDLER_INITIALIZING_ERRORThe handler failed in the initialization phase.
BRIDGE_UNINITIALIZEDМост, связанный с этой вещью, не инициализирован..
DISABLEDВещь отключена.
INITIALIZING NONEНикаких дополнительных сведений о статусе.
UNKNOWN NONEНикаких дополнительных сведений о статусе.
ONLINE NONEНикаких дополнительных сведений о статусе.
CONFIGURATION_PENDINGВещь ждет, чтобы передать информацию о конфигурации на устройство. Некоторые привязки должны взаимодействовать с устройством, чтобы убедиться, что конфигурация принята.
OFFLINE NONEНикаких дополнительных сведений о статусе.
COMMUNICATION_ERRORОшибка связи с устройством. Эта ошибка может быть временной.
CONFIGURATION_ERRORПроблема с конфигурацией вещи препятствует общению с представленным устройством или сервисом. Эта проблема может быть решена путем перенастройки Вещи.
BRIDGE_OFFLINEИз-за отключенного моста считается, что и Вещь отключена.
FIRMWARE_UPDATINGВ настоящее время происходит обновление прошивки.
DUTY_CYCLEВ настоящее время Вещь находится в состоянии DUTY_CYCLE, использование заблокировано.
GONEThe Thing has been removed from the bridge or the network to which it belongs and is no longer available for use. The user can now remove the Thing from the system.
REMOVING NONEНикаких дополнительных сведений о статусе.
REMOVED NONEНикаких дополнительных сведений о статусе.

Описание состояния (Status Description)

Для получения дополнительной информации о текущем состоянии. Описание состояния должно быть задано привязкой. Это описание может использоваться в целях отладки и не должно показываться пользователю, поскольку оно может содержать нечитаемую техническую информацию (например, код состояния HTTP или любую другую информацию, специфичную для протокола, которая помогает идентифицировать текущую проблему).

Интерфейс получения состояния (Thing Status API)

При помощи метода getStatusInfo () можно получать текущее состояние Вещи. В следующем коде показано, как распечатать состояние каждой вещи в консоли:

Collection<Thing> things = thingRegistry.getAll();
for (Thing thing : things) {
    ThingStatusInfo statusInfo = thing.getStatusInfo();
    switch (statusInfo.getStatus()) {
        case ONLINE:
            System.out.println("Вещь доступна.");
            break;
        case OFFLINE:
            System.out.println("Вещь недоступна.");
            break;
        default:
            System.out.println("Вещь в состоянии " + statusInfo.getStatus());
            break;
    }
    System.out.println("Подробности состояния Вещи: " + statusInfo.getStatusDetail());
    System.out.println("Описание состояния Вещи: " + statusInfo.getDescription());
}

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Спасибо!

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