Электрокарнизы Акко и Somfy

+7(812)99-22-796
с 9.00 до 19.00 (Мск)
8(800)250-88-39
бесплатно по России
  • Главная
  • СТАТЬИ
    • Об электрокарнизах
    • ТЕХПОДДЕРЖКА
      • Все про подключение и настройку
      • Видеоинструкции
    • Новости
    • Умный дом
    • Технологии
  • Каталог
    • Пульты управления
    • Электрокарнизы Somfy и Аkko
    • Рулонные шторы с электроприводом
    • Карнизы для римских штор
    • Автоматические жалюзи и плиссе
      • Горизонтальные жалюзи
      • Шторы-плиссе с электроприводом
    • Ткани рулонных штор
    • Электроприводы штор и их части
    • Контроллеры и системы
      • Система безопасности
      • Беспроводные датчики
      • IP видеокамеры
      • Управление светом
      • Управление техникой
      • Управление сценами
  • ОПЛАТА И ДОСТАВКА
    • Оплата и доставка
    • Правила возврата товара.
  • ГАЛЕРЕЯ
    • Галерея электрокарнизы
    • Галерея рулонные шторы
    • Галерея карнизы для римских штор
  • О КОМПАНИИ
    • О компании
    • Контакты и карта
    • Сотрудничество
  • КОРЗИНА
    No products in cart.

Подключение штор и жалюзи Akko, Dooya и Somfy по радиоканалу к Wiren Board. Продвинутый (более правильный) способ.

Автор: breelek / Понедельник, 18 апреля 2022 / Опубликовано в Новости, Умный дом

Статьи на сайте о том как подключить электрокарнизы, жалюзи и рулонные шторы с электроприводом к контролеру для автоматизации Wiren Board:

Беспроводное подключение штор Akko и Dooya к контроллеру Wiren Board.

Беспроводное подключение электрокарнизов и радиореле Somfy к универсальному контролеру автоматизации Wiren Board.


Материал можно посмотреть как видео:

Способ подключения, описанный в предыдущих статьях для устройств Akko, Dooya и Somfy, имеет недостаток. Если отправлять команды в  RF-Blinds по одной, с интервалами в несколько секунд — всё будет хорошо. Но если интервалы малы, то гарантированно выполнится только первая команда. Последующие могут быть проигнорированы. Это особенно заметно на устройствах Somfy.

Second command lost
Somfy command lost

Сегодня мы посмотрим почему так происходит и это исправим.

Начнем с того, что подключимся к контролеру Wiren Board:

ssh root@192.168.31.79

Напомню, что у меня Wiren Board в локальной сети имеет адрес IP 192.168.31.79.

Если будете копировать команды не забывайте менять его на свой.

Мне потребуется пара пакетов, которые изначально не были установлены.

Устанавливаем:

apt install socat git -y
apt install socat git
apt install socat git

Подключимся к RF-Blinds:

socat - /dev/ttyUSB0,cr,echo=0

И отправим команду:

smf_up 1,d

Видим, что ответ ‘OK’ появляется не сразу, а спустя пару секунд.

Command delay response
OK появляется только через пару секунд, после отправки команды.

Это особенность радиопротокола Somfy. Жалюзи и реле Somfy по-разному реагируют на кратковременную и длительную отправку той же команды. На время больше двух секунд. Если во время передачи команды отправить ещё одну, не дождавшись ответа  ‘OK’, команда будет потеряна. Это не так заметно, но справедливо и для радиопротокола Dooya. Обмен по радиоканалу происходит медленнее обмена через консоль.

Чтобы это исправить на python3 я написал пару скриптов. И для автозапуска скрипта сервера под linux, создал конфигурационный файл. Всё это разместил на gitlab.

Со скриптом сервера команды моторам и реле можно отправлять через сокет.

Это позволит управлять устройствами очень гибко. Можно будет отправлять команды из нескольких независимых источников. В том числе по сети. Команды при этом будут сохраняться в буфер и отправляться в RF-Blinds одна за одной, по мере их выполнения. Это позволит отправлять команды по несколько штук разом — пакетами. И команды при этом не будут теряться. Вы столкнетесь с необходимостью отправки команд пакетами сразу же, как только начнете создавать скрипты автоматизации для своего умного дома.

Копируем репо:

git clone https://gitlab.com/breelek/rf_blinds_socket.git

Появилась новая папка — rf_blinds_socket

Перейдём в неё и посмотрим содержимое:

cd rf_blinds_socket/ && ls -la
git clone
git clone

Файл bl_srv – это скрипт нашего сервера. Написан на python3. Его код можно изучить и изменить, если будет необходимость.

Для того, чтобы было не нужно вводить полный путь к скрипту при его запуске, перенесем файл bl_srv в /usr/bin:

mv bl_srv /usr/bin

Убедимся в том, что скрипт доступен для запуска (заодно начинаем знакомство с тем, как он работает):

bl_srv --help
bl_srv --help
bl_srv —help

Запустим сервер в режиме вывода отладочных сообщений. Не забудьте подключить радиомодуль RF-Blinds если вдруг он был не подключен:

bl_srv -v=True &

По ответу видим, что RF-Blinds найден. Нам не надо проходить квест с поиском порта, к которому подключен RF-Blinds:

rf-blinds found on port /dev/ttyUSB0

Чтобы окончательно убедиться в том, что всё работает дадим несколько команд.

Для DOOYA:

socat - tcp:localhost:8124 <<< "dy_open 1,1"
socat - tcp:localhost:8124 <<< "dy_stop 1,1"

Для SOMFY:

socat - tcp:localhost:8124 <<< "smf_down 1,d"

Команды можно отправлять сразу по несколько штук, разделяя их символом “;”. Сервер сохранит их в очереди и передаст так, чтобы они не потерялись.

Как пример, можем передать сигнал бедствия (морзянка SOS):

socat - tcp:localhost:8124 <<< 'smf_up 1;smf_up 1;smf_up 1;smf_up 1,6;smf_up 1,6;smf_up 1,6;smf_up 1;smf_up 1;smf_up 1'

Все остальные команды, разумеется тоже работают.

Выполните:

socat - tcp:localhost:8124 <<< "help"

Можно посмотреть полный перечень доступных команд:

socat - tcp:localhost:8124 <<< "cmd_list"
cmd_list
cmd_list

Скрипт bl_srv запускает сокет на машине. И теперь команды можно отправлять не только с устройства, на котором запущен bl_srv, но и с любого другого, который имеет доступ к вашей локальной сети. С планшета, телефона, роутера, обычного компьютера. C микроконтроллеров вроде ESP8266 или ESP32. И интеграция в системы умного дома получилась тоже очень простой — можно интегрироваться в любую т.к. поддержка сокетов есть везде. При этом система умного дома может быть запущена на другом устройстве. Нужно только чтобы устройства могли связываться между собой по сети.

Я покажу как это можно сделать под windows.

Чтобы у вас тоже получилось – должен быть установлен python3.

В windows, в любом удобном месте создадим папку с именем, например, forDel.

Перейдём в неё.

Дальше я открою терминал в этой папке.

Копирую репо (мы уже это делали на wiren board):

git clone https://gitlab.com/breelek/rf_blinds_socket.git

Перейду в созданную папку:

cd .\rf_blinds_socket\

И убежусь в том, что всё работает, что я могу управлять шторами, отправляя команды через сеть:

python3 .\bl_client -ip 192.168.31.79 'dy_open 1,1'
python3 .\bl_client -ip 192.168.31.79 'dy_stop 1,1'
commands from windows terminal
commands from windows terminal

Теперь есть возможность управлять шторами с любого устройства в сети.

Я написал небольшой скрипт и снял короткое видео о том, как это может выглядеть:

Это окно терминала закрываем.

Папку forDel можно удалить, если она не нужна.

Возвращаемся в окно терминала с ssh подключением к Waren Board.

Нам осталось только сделать так, чтобы сервер bl_srv автоматически запускался при старте системы.

Для этого в каталог /etc/systemd/system/ переместим файл rf-blinds@rfblinds.service:

mv ~/rf_blinds_socket/rf-blinds@rfblinds.service /etc/systemd/system/

Добавляем скрипт в автозагрузку с помощью следующей команды:

systemctl enable rf-blinds@rfblinds

Вы должны увидеть сообщение:

Created symlink /etc/systemd/system/multi-user.target.wants/rf-blinds@rfblinds.service → /etc/systemd/system/rf-blinds@rfblinds.service.

Нужно перезагрузить систему и убедиться, что bl_srv запускается при старте системы:

reboot

После переподключения убедимся, что всё в порядке, отправив:

Для Dooya:

socat - tcp:localhost:8124 <<< "dy_open 1,1"
socat - tcp:localhost:8124 <<< "dy_stop 1,1"

Для Somfy:

socat - tcp:localhost:8124 <<< "smf_up 1"

Папку, куда скопировали репозиторий можно удалить:

rm -r ~/rf_blinds_socket

В консоли мы закончили.

Переходим к настойке веб-интерфейса Wiren Board.

Эта процедура уже должна быть вам знакома по предыдущим статьям. Поэтому я постараюсь показать всё по-короче.

На вкладке «Правила» веб-панели WirenBoard я создам два файла.

Один — dooya_socket.js, для мотора Dooya.

Содержимое файла dooya_socket.js:

//-------- Параметры: --------

tname = 'Dooya DM35'  // Имя устройства в веб-интерфейсе.
channel = '1'         // Номер канала, заданный при привязке устройства к rf-blinds.
group = '1'           // Номер группы каналов, заданный при привязке к rf-blinds.
port = '8124'         // Номер порта, на котором поднят сокет.
host = 'localhost'    // Если сокет поднят на удаленном хосте, укажите IP

//----------- Код: -----------

/* Создаём виртуальное устройство к которому будем обращаться
** по имени 'rf_blinds_dy_'+group+'_'+channel,
** которое будет отображаться в веб-интерфейсе как значение, указанное в tname,
** с тремя кнопками:
** 1 - open;
** 2 - stop;
** 3 - close;
*/
defineVirtualDevice('rf_blinds_dy_'+group+'_'+channel, {
  title: tname,
  cells: {
    open: {
      type: 'pushbutton',
      order: 1
    },
    stop: {
      type: 'pushbutton',
      order: 2
    },
    close: {
      type: 'pushbutton',
      order: 3
    }
  }
});

// Каждой кнопоке виртуального устройства зададим действие:

defineRule('dooya_open_'+group+'_'+channel, {
  whenChanged: 'rf_blinds_dy_'+group+'_'+channel+'/open',
  then: function () {
    runShellCommand ('echo "dy_open '+group+','+channel+'"|socat - TCP:'+host+':'+port);
  }
});

defineRule('dooya_stop_'+group+'_'+channel, {
  whenChanged: 'rf_blinds_dy_'+group+'_'+channel+'/stop',
  then: function () {
    runShellCommand ('echo "dy_stop '+group+','+channel+'"|socat - TCP:'+host+':'+port);
  }
});
  
defineRule('dooya_close_'+group+'_'+channel, {
  whenChanged: 'rf_blinds_dy_'+group+'_'+channel+'/close',
  then: function () {
    runShellCommand ('echo "dy_close '+group+','+channel+'"|socat - TCP:'+host+':'+port);
  }
});

Второй — somfy_socket.js, для радиореле Somfy Centralis Indoor RTS VB.

Содержимое файла somfy_socket.js:

//-------- Параметры: --------

tname = 'Somfy Relay' // Имя устройства в веб-интерфейсе.
id = '1'              // Номер, заданный при привязке устройства к rf-blinds.
port = '8124'         // Номер порта, на котором поднят сокет.
host = 'localhost'    // Если сокет поднят на удаленном хосте, укажите IP

//----------- Код: -----------

/* Создаём виртуальное устройство к которому будем обращаться
** по имени 'rf_blinds_smf_'+id,
** которое будет отображаться в веб-интерфейсе как значение, указанное в tname,
** с пятью кнопками:
** 1 - open;
** 2 - open step;
** 3 - stop;
** 4 - close step;
** 5 - close;
*/
defineVirtualDevice('rf_blinds_smf_'+id, {
  title: tname,
  cells: {
    open: {
      type: 'pushbutton',
      order: 1
    },
    open_step: {
      type: 'pushbutton',
      order: 2
    },
    stop: {
      type: 'pushbutton',
      order: 3
    },
    close_step: {
      type: 'pushbutton',
      order: 4
    },
    close: {
      type: 'pushbutton',
      order: 5
    }
  }
});

// Каждой кнопоке виртуального устройства зададим действие:

defineRule('somfy_open'+id, {
  whenChanged: 'rf_blinds_smf_'+id+'/open',
  then: function () {
    runShellCommand ('echo "smf_up '+id+',10"|socat - TCP:'+host+':'+port);
  }
});

defineRule('somfy_open_step'+id, {
  whenChanged: 'rf_blinds_smf_'+id+'/open_step',
  then: function () {
    runShellCommand ('echo "smf_up '+id+'"|socat - TCP:'+host+':'+port);
  }
});
  
defineRule('somfy_stop'+id, {
  whenChanged: 'rf_blinds_smf_'+id+'/stop',
  then: function () {
    runShellCommand ('echo "smf_my '+id+'"|socat - TCP:'+host+':'+port);
  }
});
  
defineRule('somfy_close_step'+id, {
  whenChanged: 'rf_blinds_smf_'+id+'/close_step',
  then: function () {
    runShellCommand ('echo "smf_down '+id+'"|socat - TCP:'+host+':'+port);
  }
});

defineRule('somfy_close'+id, {
  whenChanged: 'rf_blinds_smf_'+id+'/close',
  then: function () {
    runShellCommand ('echo "smf_down '+id+',10"|socat - TCP:'+host+':'+port);
  }
});
tab rules wiren board
Вкладка «Правила» веб-панели Wiren Board.

Переходим на вкладку «Устройства», видим, что появилось два новых:

tab devices new
Два новых устройства в веб панели Wiren Board.

Убеждаемся, что всё работает и команды не теряются. Теперь можно управлять шторами с wiren board по радиоканалу.

  • Tweet
Метки: dooya, somfy, wiren board, умный дом, управление шторами, шторы wiren board, шторы с электроприводом

O breelek

Что почитать ещё

Крайние точки открытия автоматических штор
Как настроить крайние точки открытия штор?
Управление электрокарнизами и рольшторами по радиоканалу со смартфона.
Умный дом 2014

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

КАТЕГОРИИ ТОВАРОВ

  • Пульты управления
  • Электрокарнизы Somfy и Акко
  • Рулонные шторы с электроприводом
  • Карнизы для римских штор
  • Автоматические жалюзи и шторы плиссе
  • Ткани рулонных штор
  • Электроприводы штор и их части

СТАТЬИ

  • Об электрокарнизах
  • Техподдержка и ответы
  • Новости
  • Умный дом
  • Технологии

Свежие комментарии

  • breelek к записи RF-Blinds модем. Универсальный радиопередатчик Somfy и Akko с RS232 и RS485 для управления шторами.
  • Сергей к записи RF-Blinds модем. Универсальный радиопередатчик Somfy и Akko с RS232 и RS485 для управления шторами.
  • Дмитрий Павлов к записи RF-Blinds модем. Универсальный радиопередатчик Somfy и Akko с RS232 и RS485 для управления шторами.
  • Сергей к записи RF-Blinds модем. Универсальный радиопередатчик Somfy и Akko с RS232 и RS485 для управления шторами.
  • Дмитрий Павлов к записи Электрокарниз AM82TV с управлением по радио и пофазно

МЕНЮ

  • Главная
  • Каталог
  • Карта сайта
  • Управление шторами и жалюзи
  • Публикации
  • Контроллеры и комплекты
  • Техподдержка
  • Системы безопасности
  • Напишите нам
  • Управление освещением

ПОДПИСАТЬСЯ НА НОВОСТИ

Подписавшись на нашу рассылку, Вы всегда будете в курсе новостей и наших спец предложений.

Мы не рассылаем СПАМ!

НАШ ОФИС

ООО "Акко" (LLC Akko)
Адрес: 195271, Санкт-Петербург,
Российский проспект 14

Телефон: + 7 812 99-22-796
Электронная почта: office@smarttone.ru

Москва

+7 (499) 390-05-88

Санкт-Петербург

+ 7 (812) 992-27-96

Звонки по России

+7 800 250-88-39
(звонок бесплатный)
  • МЫ В СОЦСЕТЯХ

© 2013-2025 SmartTone. All Rights Reserved.
Designed & Developed by TradeArt

ВВЕРХ
preloader