WebSocket
Пример на GitHub >>> (opens in a new tab)
Модель
Задача: Предположим, у вас есть датчик, который передает данные освещенности помещения и состояние включения лампы по протоколу WebSocket. В пакете данных информация приходит в формате JSON
{
"luminosity": 134,
"lamp": true
}
Также датчик реагирует на команды включения и выключения лампы, если в теле пакета данных приходит
{
"device": "lamp",
"data": 1
}
или
{
"device": "lamp",
"data": 0
}
Для подключения датчика к платформе создайте для него модель WebSocket.
В шаблонной модели есть несколько параметров. Создайте необходимые параметры для освещенности и состояния лампы, а все лишние параметры удалите.
Подробнее о формировании аргументов WebSocket >>>
Также в шаблонной модели есть две команды, отредактируйте их:
-
смените идентификатор на более подходящий по смыслу;
-
смените имя, с которым команда отображается в интерфейсе;
-
укажите текст команд согласно тому, что ожидает принять устройство.
Подробнее о формировании действий 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=
иначе подключиться к объекту не получится.
Убедитесь, что данные от устройства присылаются и отображаются в интерфейсе.
Отправьте команды и проверьте, что подключенное устройство на них реагирует.