RU

Release 2.9

Рады представить вашему вниманию очередной релиз Rightech IoT Cloud. В этом обновлении мы уделили особое внимание пользовательскому интерфейсу и добавлению новых протоколов.
Release 2.9

Список основных изменений в платформе:

модели — переработка интерфейса редактора моделей;

объекты — небольшие исправления интерфейса объектов;

обработчики — возможность подключать сторонние библиотеки;

геозоны — добавление настройки прозрачности геозон и их контура;

общий интерфейс — редизайн карточек сущностей и переработка всех меню с табами;

отчеты — добавление информативности для экрана построения отчетов;

протоколы — расширение числа поддерживаемых протоколов, включая возможность передачи данных по протоколу WebSocket.

Модели

Редизайн дерева моделей

Было:

2.9-1.png

Стало:

2.9-2.png

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

Скрытие параметров

Изменена механика режима видимости узла. При скрытии узла с типом Подсистема данные, которые в нее входят, также скрываются в журнале объекта.

Объекты

Интерфейс отправки команд

Исправлена проблема, из-за которой в окне с результатом ответа на команду не помещается весь текст полученного сообщения.

Было:

2.9-3.png

Стало:

2.9-4.png

Копирование объектов с паролем

Для протоколов, поддерживающих логин и пароль для авторизации (например, MQTT), в объекте есть соответствующие поля для заполнения. Эти данные хранятся в закрытом виде и недоступны для копирования. Поэтому при копировании или импорте объектов с паролем возникала проблема — поле пароль на новом объекте заполнялось некорректным значением. В связи с этим теперь поля логин и пароль очищаются при копировании и импорте объекта.

Отображение объектов с нулевыми координатами

В одном из прошлых обновлений было добавлено скрытие с карты объектов с невалидными координатами (когда широта и долгота равны 0,0). Для некоторых пользователей это вызывало неудобства при поиске таких объектов на карте. Теперь такие объекты можно найти на карте в точке с координатами 0,0.

Обработчики

Подключение сторонних библиотек в обработчиках

Добавлена возможность подключения сторонних модулей по ссылке в коде обработчика. Сам модуль должен быть написан на языке JavaScript и соответствовать спецификации ESM (EcmaScript modules)

Для импорта уже имеющихся библиотек из npm можно воспользоваться сторонними сервисами:

Ограничения на подключаемые библиотеки:

В случае нарушения этих ограничений обработчик не будет сохранен.

Рассмотрим несколько примеров:

import { sum } from "https://raw.githubusercontent.com/rightech/ric-examples/master/handlers/lib/example.js";
 
function process(a, b) {
  const res = sum(a, b);
  return { sum: res };
}

В данном примере подключается простой JavaScript модуль из нашего репозитория с примерами

export function sum(a, b) {
  return a + b;
}

Использование репозитория GitHub в данном примере необязательно, подойдёт любой интернет-адрес, по которому будет доступно содержимое модуля.

Стоит обратить внимание на то что для импорта файлов из GitHub необходимо, использовать их “raw” версию, т.к. иначе сервер GitHub будет отдавать HTML страницу для просмотра, а не само содержимое файла. Для получения нужного адреса нужно нажать соответствующую кнопку “Raw” в интерфейсе GitHub.

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

import GPS from "https://cdn.skypack.dev/gps@0.6.1";
 
function process(nmea) {
  const gps = new GPS();
 
  let lat = 0;
  let lon = 0;
 
  gps.on("data", (parsed) => {
    lat = parsed.lat;
    lon = parsed.lon;
  });
 
  gps.update(nmea);
 
  return { lat, lon };
}

Геозоны

Прозрачность геозон

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

2.9-5.png

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

Общий интерфейс

Редизайн карточек сущностей

Была проведена работа над унификацией размеров карточек сущностей в платформе. Из-за разных размеров карточек для некоторых сущностей не было достаточно места под все необходимые элементы (например, описание, иконки уровней и прочее).

Табы с большим количеством элементов

Добавлены элементы управления для меню с табами. Раньше при большом числе подменю с табами возникало неудобство, так как не все элементы меню помещались на экран.

Было:

2.9-6.png

2.9-7.png

Стало:

2.9-8.png

2.9-9.png

Отчеты

Экран построения отчета

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

2.9-10.png

Протоколы

WebSocket

Добавлена возможность передавать данные в платформу с помощью протокола WebSocket. Адрес подключения через HTTP — ws://ws.dev.rightech.io, для подключения через HTTPS — wss://ws.dev.rightech.io. В список шаблонов моделей добавлена модель для протокола WebSocket.

Для авторизации в платформе необходимо указать идентификатор (:id) объекта в UriPath одним из следующих способов:

Например, ws://ws.dev.rightech.io:80/objects/my_object_id/connect или ws://ws.dev.rightech.io:80/api/v1/objects/my_object_id/connect

Данные, передаваемые в WS body, должны быть в формате JSON, например:

{
    "stringKey":"value1",
    "booleanKey":true,
    "doubleKey":3.1415,
    "longKey":73
    "jsonKey": {
        "someNumber": 42,
        "someArray": [1,2,3],
        "someNestedObject": {"key": "value"}
    }
}

Для разбора этих данных в модели в поле источник необходимо указывать ключ из JSON. Например, для данных выше можно указать источники: stringKey с типом данных string, booleanKey с типом данных boolean, jsonKey.someNumber с типом данных number, jsonKey.someNestedObject.key с типом данных string:

2.9-11.png

Для отправки команд необходимо добавить в модель узел с типом Действие и указать необходимый вам body:

2.9-12.png

Список добавленных протоколов

За несколько последних релизов был добавлен ряд протоколов для подключения новых типов оборудования. При возникновении вопросов по подключению конкретного типа оборудования напишите на почту development@rightech.io или через форму обратной связи на сайте Rightech.