Устройство Blinds-RS485 упрощает интеграцию электрокарнизов, электрожалюзи и подобных устройств, поддерживающих протокол RS-485 компании Dooya в системы «Умного дома» ( Home Assistant, Wiren Board, Domoticz, MajorDoMo, Node-Red и т.п.)
Низкоуровневый протокол заменён понятными текстовыми командами, что облегчает чтение и понимание происходящего в системе. При этом ответы от исполнительных устройств отображаются в виде кодов, что делает простой их обработку системами домашней автоматизации. Ошибки выдаются текстом, что также удобно — ошибки чаще всего возникают на этапе настройки системы и должны читаться человеком. После настройки система получает коды, которые легко обрабатывать программным обеспечением.
Контрольная сумма при отправке команд вычисляется самим устройством.
Подстройка к временным интервалам и времени ответа исполнительных устройств делается автоматически. Как показала практика, временные интервалы у разных устройств, отличаются более, чем в 10 раз. Подключение одного медленного устройства, если не делать адаптацию, приведёт либо к тому, что медленное устройство не будет работать, либо вся система будет работать с максимальными задержками. С blinds-rs485 команды отправляются на максимально возможной скорости, адаптируя временные интервалы для медленных и быстрых устройств. Это важно для быстрого опроса состояния большого количества устройств. В традиционных операционных системах (не реального времени) затруднительно получать небольшие временные интервалы при формировании протокола, что снижает производительность и сказывается на высоко нагруженных системах, либо системах с ограниченными ресурсами.
Есть буфер команд — можно отправлять команды подряд, не дожидаясь выполнения предыдущих. Это бывает необходимо в системах умного дома, когда последовательности команд (например опрос состояния всех устройств с интервалом в 1 сек.) формируются программным обеспечением автоматически.
Больше не нужно разрабатывать и поддерживать драйвера для каждой системы — все особенности протокола, весь накапливаемый опыт сосредотачивается в одном месте — во внешнем устройстве.
При самостоятельной реализации протокола не хватает времени на учёт всех особенностей протокола, на реализацию всех команд. Обычно реализуются только базовые команды. На остальное нет времени.
Настройки для каждого устройства можно сохранять или подготовить перед монтажом на объекте. Это позволяет часть работы выполнить заранее и сокращает время нахождения непосредственно на объекте.
Если вместо 1 указать 0, то команду выполнят все устройства в группе:
close 12 0
Если оба параметра указать, как 0, команду выполнят все устройства:
stop 0 0
Если вам удобнее, параметры и команду можно менять местами (это улучшает читаемость кода и особенно полезно, когда код просматривается редко, спустя какое-то время):
12 1 open
Или даже разместить по середине:
12 1 close% 30
Можно указывать параметры в шестнадцатеричной форме. Перед параметром в этом случае нужно поставить символ “$”:
$c 1 open
Все ответы от устройств отображаются в шестнадцатеричном виде. Символ $ при этом не выводится.
Пояснения к таблице:
Пояснения по цветам (легенда):
55 — стартовый байт, всегда 0x55, начало пакета
F7 D6 — контрольная сумма
02 FE- адрес устройства, от которого получен ответ. FE — группа, 02 — адрес устройства в группе
A4 — то, на что нужно обратить внимание. Это данные, в ответе, которые нас интересуют
Выводит 1, если в буфере команд достаточно места ( более 10 байт) для записи очередной команды. 0, если недостаточно.
Параметр id_h — это номер группы. Может принимать значение от 0 до 254 ($FE). В группу может входить до 254 моторов.
Параметр id_l — это номер мотора в группе. Может принимать значение от 0 до 254 ($FE). Если указать 0, то команду выполнят все моторы, входящие в группу. Так одной командой, можно, например разом закрыть все шторы в одном помещении.
Если указать в команде id_h = 0 и id_l = 0 команду выполнят все моторы в системе.
Параметр xx% может принимать значения от 0 до 100 ($64). Обозначает долю в процентах, на которую будут закрыты шторы или жалюзи.
Параметр mode может принимать значения от 1 до 64. Работает только, если установлены верхний и нижний лимиты.
Параметр ang_coef может принимать значения от 0 до 255.