Получи случайную криптовалюту за регистрацию!

Недавно мне прислали на модификацию скрипт для управления штор | Программирование Fibaro, Larnitech

Недавно мне прислали на модификацию скрипт для управления шторами Dooya по RS485. Основная проблема – команды отправляются по одной шторе, вследствие чего, сели дизайнерски шторы объединены в группу, то наблюдаются задержки в управлении, отсутствует синхронность. В скрипте действительно для отправки всем шторам используются задержки при отправки последовательности команд. Иначе никак, это же RS485, адресный проприетарный протокол, где каждой шторе соответствует свой адрес на шине.
Но, у приводов штор Dooya/Larnitech есть особенность – можно управлять не только по адресу конкретной шторы, но и отправлять команду сразу нескольким шторам, объединенных группой.
Каким образом шторы объединяются в группы? С помощью правильного задания id, которые нужно задавать так: 256*(Номер шторы) + (Номер группа).
Например, 4 шторы в первой группе и 3 шторы во второй группе. Тогда, id номера для штор будут: 256+1, 256*2+1, 256*3 + 1, 256*4 + 1 – это первая группа. Три шторы во второй группе: 256+2, 256*2+2, 256*3 + 2.
Что изменилось в исходном скрипте. Добавил 10 виджетов для управления группами. Стоит отметить, что по заданным id скрипт сам определяет количество групп, начиная с 1. Т.е., если групп совсем нет, то управление группой будет эквивалентно управлению индивидуальному.
Кроме того, при тестировании скрипта выяснилось, что монтажник по дизайн-проекту может повесить привода противофазно, когда приводы окажутся, грубо говоря, по правую руку, а второй – по левую, т.е. при объединении в группу на команду открыть – один открывается, другой закрывается и перевернуть на 180 градусов нет возможности. Для этого случая ставим в скрипте галку «Инверсия» и в режиме «Калибровка» один раз нажимаем виджет «Направление». Скрипт задает всем приводам соответствующее направление (прямое или противоположное).
Мастер виджет (все шторы) также был переработан, т.к. исходный скрипт отправлял команду по очереди каждой шторе. В итоге был добавлен широковещательный адрес, воспринимаемый сразу всеми шторами на шине.