Взаимодействие нескольких устройств в рамках одного сценария в платформе RIC
В этом кейсе мы подключим к платформе RIC Zigbee кнопку, Zigbee датчик температуры и влажности и плату Node MCU с подсоединенным к ней светодиодом. Нажимая на кнопку, мы будем управлять включением/выключением светодиода.
Мы покажем, как связать в одном сценарии устройства, связанные между собой только через RIC.
Изучить многообразие Zigbee устройств можно по ссылке.
Для получения данных с устройств воспользуемся проектом Zigbee2mqtt.
Ссылка на разбор этого кейса на нашем YouTube канале.
Создание модели и добавление объекта
Вы можете импортировать готовую модель нашего Zigbee устройства себе в RIC:
В этой модели уже есть параметры температуры и влажности, информация о количестве нажатий на кнопку.
Далее создаем объект с этой моделью.

Подробнее о создании модели и добавлении объекта вы можете ознакомиться в этой статье.
Подключение Zigbee устройств
- Подключаем к компьютеру один из Zigbee-адаптеров, который будет выступать в роли координатора.
- Скачиваем код проекта Zigbee2mqtt.
- Устанавливаем зависимости проекта командой npm install в папке проекта.
- Заходим в редактор конфигурационного файла (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
А если у вас возникнут вопросы, то добро пожаловать в наш чат единомышленников: