Взаимодействие нескольких устройств в рамках одного сценария в платформе RIC

В этом кейсе мы подключим к платформе RIC Zigbee кнопку, Zigbee датчик температуры и влажности и плату Node MCU с подсоединенным к ней светодиодом. Нажимая на кнопку, мы будем управлять включением/выключением светодиода.

Мы покажем, как связать в одном сценарии устройства, связанные между собой только через RIC.

Изучить многообразие Zigbee устройств можно по ссылке.

Для получения данных с устройств воспользуемся проектом Zigbee2mqtt.

Ссылка на разбор этого кейса на нашем YouTube канале.

Создание модели и добавление объекта

Вы можете импортировать готовую модель нашего Zigbee устройства себе в RIC:

Ссылка на GitHub

В этой модели уже есть параметры температуры и влажности, информация о количестве нажатий на кнопку.

Далее создаем объект с этой моделью.

Подробнее о создании модели и добавлении объекта вы можете ознакомиться в этой статье.

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

  1. Подключаем к компьютеру один из Zigbee-адаптеров, который будет выступать в роли координатора.
  2. Скачиваем код проекта Zigbee2mqtt.
  3. Устанавливаем зависимости проекта командой npm install в папке проекта.
  4. Заходим в редактор конфигурационного файла (data/configuration.yaml) и указываем там server (mqtt://dev.rightech.io) и client_id (идентификатор объекта — mqtt-lesson_zigbee).

5. Запускаем программу командой node index.js.
6. Осуществляем сопряжение (pairing) устройств. Как это сделать, написано на странице самого устройства.

Видим появление информации о температуре, влажности и кликах кнопки.

Настройка координатора и подключение устройств прошло успешно, данные приходят в платформу, однако по модели пока не разбираются.

Это происходит потому, что в модели еще не прописаны верные топики в источниках параметров.

Обратите внимание, в логах в терминале отображается топик и сами данные:

  • топик состоит из base_topic, который мы указали в конфигурационном файле, и Zigbee device IEEE addr — уникального идентификатора Zigbee-устройства;
  • данные представляют из себя информацию в формате JSON.

Возвращаемся на вкладку «Models», заходим в модель и редактируем топик у узлов с типом «Object». Это узлы «Temperature Sensor» и «Button». С их помощью по модели раскладывается информация, которая приходит в формате JSON.

Отредактируем топики в модели:

  • по датчику температуры и влажности
  • по кнопке

Чтобы изменения модели вступили в силу необходимо в разделе «Objects» выбрать наш объект и, из вкладки «Commands» отправить команду «Update model». Модель также автоматически обновляется при подключении объекта к платформе.

Создание автомата

Теперь создаем сценарий, в котором по одинарному клику на Zigbee-кнопку свет будет включаться, а по двойному — выключаться. Напоминаем, что светодиод в свою очередь подключен к другому объекту и имеет другую модель, поэтому в автомате будут фигурировать две модели (модель для кнопки и модель для светодиода).

Теперь при выборе события перехода или действия в состоянии есть выбор, по какой модели необходимо это выполнить.

Общий вид автомата:

Добавим необходимые объекты на вкладке «Objects».

Выделяем объекты и нажимаем кнопку «Start».

Переходим в любой из объектов и видим запущенный автомат на вкладке «Services».

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


Попробуйте создать свой IoT-проект вместе с Rightech IoT Cloud уже сейчас 🙂

https://dev.rightech.io/signup

А если у вас возникнут вопросы, то добро пожаловать в наш чат единомышленников:

https://t.me/rightech_iot