Rightech IoT Cloud v2.9

02 сентября, 2022

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


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

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

Модели

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

Было:

Стало:

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

  • настройка видимости узла вынесена из скрытого меню;
  • меню с редактированием узла перенесено к правому краю окна редактирования дерева;
  • узел дерева выделяется фоном при наведении на него;
  • изменен формат поисковой строки.

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

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

Объекты

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

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

Было:

Стало:

Действие

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

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

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

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

Обработчики

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

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

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

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

  • максимальный размер библиотеки — 65 Кбайт;
  • максимальное время сборки — 30 сек.
  • не должны использоваться нестандартные возможности JavaScript, такие как встроенные модули и объекты Node.js и других сред выполнения

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

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

  • Простой пример обработчика, который возвращает сумму входных параметров.

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.

  • Пример разбора NMEA при помощи пакета gps из npm.

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

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 };
}

Геозоны

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

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

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

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

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

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

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

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

Было:

0

Стало:

Отчеты

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

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

Протоколы

WebSocket

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

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

  • objects/:id/connect;
  • api/v1/objects/:id/connect

Например, 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:

0

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

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

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

0Выбор действий

ПротоколАдресПримечание
WebSocketws://ws.dev.rightech.io или wss://ws.dev.rightech.ioОписание процесса подключения описаны выше в этом Release Notes.
LwM2Mdev.rightech.io:5683/UDPLwM2M — легковесный протокол межмашинного взаимодействия. Подробнее.
CoAPdev.rightech.io:5683/UDPПротокол CoAP предназначен для взаимодействия простых устройств, например датчиков малой мощности, выключателей, клапанов, которые управляются или контролируются удаленно через сеть. Подробнее.
Navtelecom (FLEX)dev.rightech.io:21400/TCP https://www.navtelecom.ru/ru/oborudovanie/seriya-signalОбновлен до актуальной версии
Teltonikadev.rightech.io:21451/TCPДля протокола teltonika на наш github были добавлены примеры кейсов для оборудования: GH5200, TMT250, TAT100, TFT100, TST100.
АвтофонПо запросуОборудование для контроля и мониторинга перемещений ТС, грузов, людей и т.п. http://www.autofon.ru/
Starline По запросу Охранно-телематическое оборудование для защиты автомобилей.
https://www.starline.ru/
OKAI По запросу Электровелосипеды и электросамокаты. https://okai.co/
Omnilock По запросу Протокол для электросамокатов,  электровелосипедов, велосипедных замков
https://www.smartlockssupplier.com/ru/products.htm
Concox По запросу Телематические устройства для контроля автомобилей, людей (персональный трекинг), электросамокатов, велосипедов и грузоперевозок
https://www.iconcox.com/
Queclink По запросу Телематические устройства для контроля автомобилей, электросамокатов, грузоперевозок и т.д.https://www.queclink.com/
Gate8000 По запросу Контроллер системы контроля доступа (СКУД). http://www.skd-gate.ru/produkty/gate/apparatnaya_chast/gate-8000/
DiWo По запросу Умная каска DiWo GSM https://diwo.tech/

0