RU

WebSocket

Пример на GitHub >>> (opens in a new tab)

Модель

🚩

Задача: Предположим, у вас есть датчик, который передает данные освещенности помещения и состояние включения лампы по протоколу WebSocket. В пакете данных информация приходит в формате JSON

{
  "luminosity": 134,
  "lamp": true
}

Также датчик реагирует на команды включения и выключения лампы, если в теле пакета данных приходит

{
  "device": "lamp",
  "data": 1
}

или

{
  "device": "lamp",
  "data": 0
}

Для подключения датчика к платформе создайте для него модель WebSocket.

В шаблонной модели есть несколько параметров. Создайте необходимые параметры для освещенности и состояния лампы, а все лишние параметры удалите.

Подробнее о формировании аргументов WebSocket >>>

Также в шаблонной модели есть две команды, отредактируйте их:

  1. смените идентификатор на более подходящий по смыслу;

  2. смените имя, с которым команда отображается в интерфейсе;

  3. укажите текст команд согласно тому, что ожидает принять устройство.

Подробнее о формировании действий WebSocket >>>

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

Модель для импорта >>> (opens in a new tab)

Объект

Создайте объект для вашего датчика. Выберите модель, которую только что создали. Затем введите идентификатор, который используется в URL-адресе при подключении. Укажите имя объекта. Для дополнительной защиты доступа к объекту в разделе ws_auth задайте логин и пароль.

Нажмите кнопку Сохранить.

Подключение

Для подключения устройства к платформе укажите адрес

  • ws://ws.dev.rightech.io - для подключения по HTTP;
  • wss://ws.dev.rightech.io - для подключения по HTTPS.

Полный URL-адрес должен выглядеть следующим образом

  • ws://ws.dev.rightech.io/api/v1/objects/ws_lamp/connect

Если вы задавали логин и пароль, не забудьте указать их в соответствующем заголовке

Authorization: Basic bXlfbG9naW46bXlfcGFzc3dvcmQ=

иначе подключиться к объекту не получится.

Убедитесь, что данные от устройства присылаются и отображаются в интерфейсе.

Отправьте команды и проверьте, что подключенное устройство на них реагирует.

Подробнее о подключении устройств >>>