LazyRolls

Подключение приводов в режиме Master/Slave (Главное устройство и ведомые)

На окнах часто бывает несколько рулонных штор сразу. Иногда достаточно запараллелить моторы, для синхронной работы штор. Но интереснее режим мастер/слейв.

По сравнению с подключением нескольких моторов в параллель, данный способ требует установки по одной esp8266 на каждый мотор (по полноценному приводу на штору), но зато имеет следующие преимущества:

  • - приводы соединяются всего одним проводом или вообще без провода, не считая питания (для параллельного мотора нужно тянуть минимум 4 провода);
  • - длина штор и скорость моторов может быть разной;
  • - управлять (по mqtt или http) можно как всеми шторами сразу, так и индивидуально;
  • - расписание можно задавать индивидуально для каждого привода.

Для удобства управления, приводы можно группировать. Один привод становится главным, а остальные - ведущими. Тогда, управляя главным, любым доступным способом (через интерфейс, по http/mqtt, по расписанию или кнопкой) можно сделать работу всех секций синхронной. Ведомые приводы можно, для удобства, разделить на 5 групп, с произвольным количеством в каждой. Это дает возможность управлять как всеми сразу, так и отдельной группой. Если в группе только одна штора, то получается возможность индивидуального управления.

Подключить ведомые шторы можно двумя способами. Во-первых, по WiFi. Главный привод будет рассылать команды подчиненным по сети. Во-вторых, соединив отдельным проводом.

Подключение приводов по WiFi

Начиная с версии v0.15 можно добавить до 10 ведомых приводов по IP адресу. Ведомые тоже должны быть v0.15+. В настройках есть кнопка Scan, позволяющая найти в локальной сети доступные приводы. Можно добавить IP и вручную. Все объединяемые приводы должны иметь IP адреса, отличающиеся только последним числом. Адреса ведомых приводов лучше всего зафиксировать, сделав их статическими, или зафиксировать в настройках роутера. WiFi-ведомым может быть любой привод, кроме ведомого по проводу (он отключается от сети и не сможет принимать команды).

В списке ведомых приводов, слева от каждого адреса, можно выбрать номер группы, к которой относится этот привод. Справа от адреса - кнопка удаления привода из ведомых. Сохранить можно до 10 адресов.

Подключение приводов по проводу

Этот режим может быть полезен c целью сокращения числа устройств в WiFi сети. Данный режим добавлен в прошивку с версии v0.11.

Подключение

Соединить пин TX главного устройства с пинами RX всех ведомых. Можно звездой или шлейфом, но желательно наиболее коротким путём. Провод любого сечения, даже лучше небольшого. Если приводы питаются от разных блоков питания, то необходимо соединить ещё и Gnd. Максимальная дальность подключения пока не выяснена, думаю метра 3 должно работать.

Настройка

В настройках главного привода выбирается режим Master (Главный). В остальных приводах - Slave (Ведомый). Номер группы (1-5) можно выбрать разным, тогда будет возможно независимое управление. Приводы с одинаковым номером будут реагировать на команды одновременно. Ведомые приводы MQTT не используют.

WiFi

Приводы, у которых включен режим ведомого, не подключаются к WiFi. Потребляют при этом всего 20-30мА. Время получают от главного. "Разбудить" ведомые устройства можно несколькими способами.

  • - отключить главный привод, питанием или переведя его в режим Standalone/Независимый;
  • - отключив линию связи;
  • - по команде с главного устройства http://ip/set?wake&addr=X где X - номер группы ведомого;
  • - через кнопку "разбудить" в настройках главного привода (с версии v0.15). Подключившиеся к сети ведомые приводы становятся доступны для настройки.

При потери связи от главного устройства, через минуту-другую (константа SLAVE_MAX_NO_PING_MS в прошивке) ведомый привод подключается к WiFi сети. Свою точку доступа привод создаёт только если связи с главным не было с момента включения и недоступна указанная в настройках сеть. Т.е. также, как в обычном режиме, только с большей задержкой после старта.

При отсутствии сетевой активности ведомый привод отключает WiFi через 3 минуты (константа SLAVE_SLEEP_TIMEOUT_MS в прошивке).

Управление

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

По MQTT к командам можно добавить префикс '$X', где Х - номер ведомого устройства (1-5) или 0 - главное. Например $0open - открыть только главный привод, $3@2 - отправить ведомые шторы с номером 3 в положение 2. Исключение команды led_*, они управляют только главным приводом.

По HTTP можно добавить параметр addr=X, где Х - номер ведомого устройства (1-5) или 0 - главное. Например http://ip/open?addr=3 или http://ip/set?pos=50&addr=3

Для управления с кнопки или по расписанию, выбрать адресата можно прямо в настройках.

Дополнительно по HTTP действуют команды:

  • /set?wake&addr=X - разбудить ведомое устройство с номером X.
  • /set?blink&addr=X - мигнуть светодиодом на устройстве с номером X.