С материалом можно ознакомиться также посмотрев видео:
Статьи на сайте о том как подключить электрокарнизы и шторы с электроприводом к контролеру для автоматизации Wiren Board:
Подключать будем мотор Akko AT35EQ (Dooya DM35EQ) с беспроводным управлением для рулонных штор, римских штор и жалюзи по радиоканалу к универсальному контроллеру автоматизации Wiren Board 6 используя радиомодуль RF-Blinds.
Я начну с подключения к контролеру Wiren Board по ssh. Это не обязательный шаг. Он нужен лишь для лучшего понимания происходящего. Всё вполне себе настраивается через веб-интерфейс.
Для справки: контролер Wiren Board у меня подключен к локальной сети по WiFi и имеет IP: 192.168.31.79
Подключаемся к Wiren Board:
ssh root@192.168.31.79
Обновите систему, если вы не делаете это регулярно, командной:
apt update && apt upgrade -y
Если обновлений было много, перезагрузите систему, дав команду:
reboot
После этого вам нужно будет переподключиться к Wiren Board по ssh.
Нам нужно определить порт, которому будет подключен RF-Blinds. Сделать это можно несколькими способами. Я «воткну» RF-Blinds в разъём USB контролера Wiren Board и дам команду:
dmesg | tail -1
Ответ:
[ 1276.549674] usb 2-1.2: cp210x converter now attached to ttyUSB0
Далее во всех командах я буду использовать название порта ttyUSB0. Если у вас название другое, используйте своё.
Порт мы знаем. Посмотрим его настройки:
stty -F /dev/ttyUSB0
Ответ:
speed 9600 baud; line = 0;
-brkint -imaxbel
Нужно установить скорость порта в 115200.
Меняем командой:
stty -F /dev/ttyUSB0 115200
Убедимся, что скорость изменилась ещё раз опросив параметры ttyUSB0:
stty -F /dev/ttyUSB0
Ответ:
speed 115200 baud; line = 0;
-brkint -imaxbel
Я заранее выполнил привязку радиомодуля Rf-Blinds к мотору электрокарниза AT35EQ и не описываю здесь эту процедуру. Как выполнить сопряжение можно посмотреть в документации на модуль Rf-Blinds.
Кратко процедура привязки Rf-Blinds к мотору.
- Если вы ещё не привязывали Rf-Blinds к каким-либо устройствам, командой dy_set_base_id xxxxxxxx задайте новый адрес для Rf-Blinds (вместо хххххххх укажите новый адрес). Это не обязательная процедура. Адрес у Rf-Blinds уже есть. Делается для того, чтобы избежать коллизий с другими раидомодулями.
- Переведите мотор или реле в режим привязки дополнительного раидопульта. Сделайте это по инструкции к вашему устройству. Не переживайте, если дополнительные радиопульты уже привязаны. К каждому мотору можно привязывать несколько дополнительных радиопультов. Количество может зависеть от модели, но для большинства устройств можно привязать до 16 раидопультов. Обычно это это делается нажатием и удержанием в течении нескольких секунд кнопки на задней крышке мотора.
- Дайте команду dy_bind x,x (вместо x,x укажите группу в которую будет входить мотор и номер мотора в группе). При успешном выполнении процедуры вы заметите отклик от устройства. Мотор переходит в режим привязки дополнительного радипульта лишь на короткое время. Нужно успеть отправить команду привязки в этот интервал.
- Если у вас несколько устройств, проделайте шаги 2 и 3 для всех следующих устройств, не забывая менять по-крайней мере номер устройства в группе.
Если что-то не получилось, или осталось не понятным, посмотрите видео по ссылке, указанной выше.
Убедимся в том, что у нас всё работает. В консоли введём команды:
Включить мотор электрокарниза:
echo "dy_open 1,1" > /dev/ttyUSB0
Изменить направление:
echo "dy_close 1,1" > /dev/ttyUSB0
Остановить:
echo "dy_stop 1,1" > /dev/ttyUSB0
Консоль нам больше не понадобится. Отключаемся. Остальное сделаем через веб-интерфейс.
Вводим в адресную строку браузера IP-адрес контроллера. Напомню, что у меня это http://192.168.31.79/. У вас будет свой:
Чтобы получить возможность вносить изменения, нужно сменить уровень доступа к веб-интерфейсу на уровень «администратор». Чтобы это сделать, идем в Settings → Change access level:
Для большей ясности я покажу скриншот своей вкладки Devices:
Никаких устройств к контролеру Wiren Board, кроме RF-Blinds у меня не подключено. Сам RF-Blinds в интерфейсе не отображается т.к. не настроен.
Настроить отображение RF-Blinds в веб-интерфейсе можно несколькими способами. Я покажу один из простых и прямолинейных, на мой взгляд, подходов.
Перейдём на вкладку Rules:
Как видите, у меня она с одним только файлом rules.js. Этот файл у меня пустой. Скрипты можно создавать в нем, но я создам отедльный файл dooya.js. Мне так удобнее — будет потом легко удалить.
Содержимое файла dooya.js:
/* Создаём виртуальное устройство к которому будем обращаться
** по имени rf-blinds_dy,
** которое будет отображаться в веб-интерфейсе как RF-Blinds Dooya,
** с тремя кнопками:
** 1 - open;
** 2 - stop;
** 3 - close;
*/
defineVirtualDevice("rf-blinds_dy", {
title: "RF-Blinds Dooya",
cells: {
open: {
type: "pushbutton",
order: 1
},
stop: {
type: "pushbutton",
order: 2
},
close: {
type: "pushbutton",
order: 3
}
}
});
/* Устанавливаем параметры последовательного порта ttyUSB0:
** скорость обмена - 115200;
** стоповый бит - 1;
** контроль четности - нет;
** количество бит данных - 8;
** Если у вас несколько файлов, обращающихся к RF-Blinds,
** например, есть по отдельному файлу для каждого мотора и/или радиореле,
** настройку порта можно оставить только в одном файле.
** В других можно закомментировать.
*/
runShellCommand("stty -F /dev/ttyUSB0 115200 -cstopb -parenb cs8");
// Каждой кнопоке виртуального устройства зададим действие:
defineRule("Dooya_open_1", {
whenChanged: "rf-blinds_dy/open",
then: function () {
runShellCommand ('echo "dy_open 1,1" > /dev/ttyUSB0');
}
});
defineRule("Dooya_stop_1", {
whenChanged: "rf-blinds_dy/stop",
then: function () {
runShellCommand ('echo "dy_stop 1,1" > /dev/ttyUSB0');
}
});
defineRule("Dooya_close_1", {
whenChanged: "rf-blinds_dy/close",
then: function () {
runShellCommand ('echo "dy_close 1,1" > /dev/ttyUSB0');
}
});
В файле есть подробные комментарии, поясняющие каждое действие.
Снова перейдём на вкладку Devices:
У нас появилось новое устройство RF-Blinds Dooya. Убеждаемся в том, что оно работает.
После завершения настроек рекомендуется вернуть уровень доступа User.
RF-Blinds — универсальный радиомодуль. Его можно подключить к большому перечню устройств с интерфейсом USB. Для контролера Wiren Board есть специальный вариант, созданный как модуль расширения, устанавливаемый внутрь контролера:
Если контроллер находится в щитке (особенно металлическом), радиосигнал может быть ослаблен. В этом случае радиомодуль RF-Blinds лучше вынести кабелем USB за пределы щитка.
И возможны случаи, когда объект большой, а щиток, в котором находится контроллер расположен не удачно для покрытия радиосигналом всего объекта. Например в гараже, или даже в подвале большого дома. Для таких случаев можно использовать RF-Blinds модем с интерфейсом RS485. В этом случае, радиомодуль можно связать с контролером витой парой и расположить его в подходящем для покрытия всего объекта месте, на достаточном удалении от контролера.