Описание команд радиомодуля.

Модуль поддерживает команды управления шторами и жалюзи по радиоканалу.
Реализованы протоколы Somfy и Dooya (Akko).
Описываются команды и их параметры.
Интерфейс модуля - UART, скорость обмена - 115 200 бод, размер данных - 8 бит, стоп бит - 1, проверки на чётность нет.
Команды можно передавать как строчными, так и прописными символами.
Окончание ввода команды определяется по символу, значение которого меньше 0x0E, т.е. команда может заканчиваться, например, символом '\n', или '\r'.
Команду от параметров должен отделять пробел.
Все числовые параметры - числа в шестнадцатеричной системе исчисления. Записываются без символов '0x'.
Если параметров несколько, они разделяются только запятой за которой сразу же, без пробела, следует следующий параметр. Любой параметр или все сразу могут быть пропущены. В этом случае команда будет использовать параметры предыдущей команды из своей группы, кроме параметра num_repeats. Если пропущен параметр num_repeats, будет использовано значение по-умолчанию т.е. команда будет передана так, как будто на пульте клавиша команды была нажата кратковременно.
Например, команда smf_up 15,e - передать команду Move up для устройства Somfy, имеющего адрес Somfy_ID_base + 21 (0x15->21). Команду передать 14 раз (0x0e->14), т.е. команда соответствует длительному нажатию на клавишу “^” на радиопульте Somfy.
При успешном выполнении команды в UART будет выведено сообщение "OK". После этого можно отправлять следующую команду.
В случае ошибки в UART будет выведено сообщение "ERROR". Никакой дополнительной информации о причине ошибки не выводится.

Команды Somfy
Команда
Параметры
Описание
smf_my
counter , num_repeats
Стоп, или переместиться в заданную позицию. Соответствует нажатию кнопки "my" на пульте Somfy.
smf_up
counter , num_repeats
Открыть или Вверх. Соответствует нажатию кнопки "^".
smf_my_up
counter , num_repeats
Установить верхний предел в режиме начального программирования.
smf_down
counter , num_repeats
Закрыть или Вниз.
smf_my_down
counter , num_repeats
Установить нижний предел в режиме начального программирования.
smf_up_down
counter , num_repeats
Режим начального программирования.
smf_prog
counter , num_repeats
Привязка/отвязка пульта.
smf_sun_flag
counter , num_repeats
Разрешить реагировать на детекторы освещённости и ветра.
smf_flag
counter , num_repeats
Отключить детекторы освещённости и ветра.
smf_set_base_id
smf_id_base
Задать базовый адрес устройств Somfy.
smf_counters_show
Нет.
Показать занчения счётчиков команд Somfy.
smf_set_counter
counter , value
Установить значение счётчика.
Команды Dooya (Akko).
Команда
Параметры
Описание
dy_stop
group , channal
Стоп.
dy_open
group , channal
Открыть или Вверх.
dy_close
group , channal
Закрыть или Вниз.
dy_bind_straight
group , channal
Привязать пульт и установить вращение мотора по часовой стрелке, при нажатии на кнопку '<|>'.
dy_bind_backward
group , channal
Привязать пульт и установить вращение мотора против часовой стрелки, при нажатии на кнопку '<|>'.
dy_bind
group , channal
Привязать дополнительный пульт.
dy_set_base_id
dy_id_base
Задать базовый адрес устройств Dooya (Akko).
Общие команды.
Команда
Параметры
Описание
help
Нет.
Выводится ссылка на это описание.
cmd_list
Нет.
Выводится список всех команд.
version
Нет.
Выводится версия по.
ids_show
Нет.
Выводятся базовые адреса устройств.

Параметр counter может принимать занчения 0x00 - 0x1F. Т.о. модуль поддерживает 32 адреса для привязки к устройствам Somfy.

Параметр num_repeats может принимать занчения 0x00 - 0x1F. При значениях 0x00 - 0x02 команда будет передана 2 раза. Параметр используется для того, чтобы можно было эмулировать кратковременное и долгое нажатие кнопок на пульте Somfy. Граница между коротким и длинным нажатием - 0x0e. Т.е. если количесво повторов команды мешьше 0x0e (14), будет воспринято кратковременное нажатие на кнопку. Если 0x0e или больше - длительное. Граница 0x0e может быть различной для разных устройств, поэтому параметр принимает не два значения (короткое/длинное нажатие), а точное, цифровое.

Параметр smf_id_base это базовый адрес устройств Somfy. Размер - три байта. Адреса устройств Somfy получаются прибавлением к smf_id_base номера счётчика.

Параметр value может принимать занчения 0x0000 - 0xFFFF. В протоколе Somfy носит название rolling code. Это счётчик команд для конкретного адреса Somfy. Размер - два байта. Увеличивается при каждом нажатии на кнопку пульта. Окно разрешённых занчений - текущее занчение + 100. Т.о. если два пульта имеют один и тот же адрес, устройство Somfy будет выполнять команды только от пульта, rolling code которого будет попадать в окно разрешённых значений.

Параметр group может принимать занчения 0x0 - 0xF. Выбирается группа каналов. В группе 15 каналов т.е. до 15 устройств Dooya могут быть объединены в группу. При передаче команды на 0-м канале, эту команду выполнят все устройства, находящиеся в группе.

Параметр channal может принимать занчения 0x0 - 0xF. При привязке устройсва нужно использовать значения 0x1 - 0xF. Команда, переданная на канале 0x0 будет выполнена всеми устройствами, входящими в группу.

Параметр dy_id_base это базовый адрес устройств Dooya. Размер - четыре байта. Адреса устройств Dooya получаются заменой младшего байта dy_id_base на байт состоящий из номера группы и номера канала.

Не реализовано т.к. пока не пригодилось:

Видео: Сопряжение радиомодуля с устройствами Akko и Somfy.