Рулонные шторы - простая автоматизация

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 09 дек 2014, 15:19

Совершенно верно!
Я разрабатывал альтернативную программу для контроллера шторы - с настройкой его кнопками на высоту окна - настройка количества шагов необходимых для полного закрытия окна. Результат сохранял в EEPROM, получалось универсально. Но когда начал на практике собирать - собрал на M430G2452, а в этом контроллере EEPROM нету, потому эту ветку развития забросил, буду прошивать под каждое окно отдельно.

GandalvAB
Сообщения: 110
Зарегистрирован: 01 сен 2013, 13:36
Откуда: Тюмень
Контактная информация:

Re: Рулонные шторы - простая автоматизация

Сообщение GandalvAB » 19 апр 2015, 11:23

Тоже задумался на счет штор. Мне кажется что сервер должен лишь выдавать команды на какой процент открыть штору, а уже контроллер шторы должен сам все делать и возможно для обратной связи выдавать сигнал о выполнении команды либо ошибке. Если двигаться в таком направлении то сигнал о проценте открытия шторы можно задавать как в сервах. длительность импулься от 1 до 2 мс соответственно закрыта или открыта, промежуточное время - процент открытия. Если сигнала нет вообще значит ошибка обрыв провода. Ну и в обратную сторону идет сигнал о том что команда выполняется либо ошибка( в каком виде, я еще не придумал). Но тогда возникает проблема, иегу нужно научить выдавать такой сигнал.
Все будет збс!

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 19 апр 2015, 11:29

Можно и так.
Я сейчас вообще задумался о другом варианте.
ESP8266. Думаю, она может сама управлять шаговым двигателем через ULN2003, сама же сможет и концевик считывать.
Провода тогда нужны только на питание, модуль получится крохотный и недорогой.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 19 апр 2015, 16:41

Я вообще сторонник проводных коммуникаций, где можно протянуть медь, надо тянуть медь. Но во-первых, шторы на окнах это некритическая задача, провода тянуть к открывающейся створке сложно, и проводов надо много. К тому-же задача крутить шаговик, считать шаги и следить за концевиком - задача простая. Вешать же контроллер, радиомодуль, uln2003 только ради одной шторы... Не логично. Тянуть витую пару + питание - тоже. Потому думаю логично будет протянуть гибким проводом питание, а остальное по ВайФаю будет логично, тем паче что esp несёт в себе и контроллер, значит компонентов будет всего 3: esp-03 + uln2003 + питание. Да и цена решения укладывается в 7-8$.

Fox
Сообщения: 153
Зарегистрирован: 05 авг 2014, 11:01

Re: Рулонные шторы - простая автоматизация

Сообщение Fox » 19 апр 2015, 17:02

Я тоже делал радиоуправление шторами на таком же шаговом двигателе и простом микроконтроллере 16F676. Управление возможно как с брелка, так и через web - интерфейс. Вот ссылка на девайс - http://electromost.com/news/kontroller_ ... -09-30-128
Может, как тут говорили, это несколько и "громоздко", но уж что получилось, то и получилось :D

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 19 апр 2015, 17:16

Спасибо, интересный проект :-)
Но как я понял - он без обратной связи? И такой мощный контроллер шаговика, по моему излишне.

Fox
Сообщения: 153
Зарегистрирован: 05 авг 2014, 11:01

Re: Рулонные шторы - простая автоматизация

Сообщение Fox » 19 апр 2015, 17:24

kod.begemot писал(а): Но как я понял - он без обратной связи? И такой мощный контроллер шаговика, по моему излишне.
Обратная связь есть при управлении через web - интерфейс. При управлении с брелка, её просто быть не может. Ну или примотать к брелку ещё и приемник :D
Контроллер шаговика (видимо, Вы имели ввиду драйвер ШГ) шел в комплекте с самим ШГ, так что я ничего тут не придумывал, это был готовый модуль. Он просто устанавливается на основную плату контроллера (см. принципиальную схему)

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 19 апр 2015, 17:28

Хм... Я покупал эти движки в комплекте с uln2003. А сейчас купил uln2003 в корпусах Smd, они вообще маленькие.

Fox
Сообщения: 153
Зарегистрирован: 05 авг 2014, 11:01

Re: Рулонные шторы - простая автоматизация

Сообщение Fox » 19 апр 2015, 17:34

kod.begemot писал(а): А сейчас купил uln2003 в корпусах Smd, они вообще маленькие.
Ну так это ведь здорово, можно значительно уменьшить габариты контроллера :)

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 19 апр 2015, 18:06

Так и я о том :) и пульта не нужно, если с есп, достаточно смартфона.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 19 апр 2015, 18:27

Вот только такой зоопарк прошивок для ESP, что я запутался пока, ищу наиболее оптимальную.
Может кто подскажет что?

Aquarius
Сообщения: 362
Зарегистрирован: 19 дек 2011, 17:17
Откуда: Дзержинск

Re: Рулонные шторы - простая автоматизация

Сообщение Aquarius » 21 апр 2015, 16:11

kod.begemot писал(а):Вот только такой зоопарк прошивок для ESP, что я запутался пока, ищу наиболее оптимальную.
Может кто подскажет что?
Смотря для каких задач. Попробуйте NodeMCU.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 21 апр 2015, 16:24

Так задача описана - простое управление шаговым двигателем.
Ну при этом, разумеется, управление через WEB.

Aquarius
Сообщения: 362
Зарегистрирован: 19 дек 2011, 17:17
Откуда: Дзержинск

Re: Рулонные шторы - простая автоматизация

Сообщение Aquarius » 21 апр 2015, 16:57

kod.begemot писал(а):Так задача описана - простое управление шаговым двигателем.
Ну при этом, разумеется, управление через WEB.
Через NodeMCU можно управлять шаговым двигателем. Через веб тоже можно, но только не будет полноценной страницы, а просто отправлять команды.
Хотя я могу и ошибаться.
Вон ещё Arduino IDE для ESP8266 появилось - надо будет попробовать.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 24 апр 2015, 13:00

Дело сдвинулось с мёртвой точки. Удалось закрутить шаговой мотор напрямую, через ULN2003. Пробую в Arduino IDE for ESP. Пришлось делать без библиотеки движка, вручную - с библиотекой при любом к ней обращении ESP ребутится.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 25 апр 2015, 17:20

В общем есть значительный прогресс. Вроде бы всё получилось. Осталось отловить баги - иногда зависает устройство, и разобраться и тем, что подчас не хочет запускаться, когда GPIO 2 притянут к земле при старте. У меня этот GPIO используется для концевика верхнего положения шторы. А так вобще вполне прикольно получается. Буду разводить плату небольшую под это дело когда придут ULN2003 в SMD корпусах, постараюсь втиснуться в минимальный размер, благо компоненты позволяют...
При использовании ESP12 по идее GPIO хватит даже для пары кнопок "ручного" закрывания / открывания.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 28 апр 2015, 22:05

Код пока ужасный, но он работает. Его ещё причесывать и причесывать, пока что это ещё альфа версия, отладочная.
Ещё нет реакции на кнопки, нет работы с EEPROM, а следовательно и нет режима обучения высоте окна, нет обратной связи с сервером.
Многое что касается функционала "вебсервера" понадергано из примеров пока без должного понимания, потому коряво.
Собственно шаги тоже не оптимально.
Но для начала всё-же...

Код: Выделить всё

#include <ESP8266WiFi.h>
const char* ssid = "your-network";
const char* password = "your-network-pass";

WiFiServer server(80);

// NEW+
int loglevel  = 1;
const int ender = 5;
const int motor_pin_1 = 14;
const int motor_pin_2 = 13;
const int motor_pin_3 = 12;
const int motor_pin_4 = 16;
const int step_up = 40000;
const int step_down = 22000; 
  int steps_left;
  int last_step_time; 
   int last_step_time2;  
  int step_number;
  int global_down_step_number=step_up;
  int global_up_step_number=0;

  int directionmotor = 1;
  int step_delay = 3;
     int step_delay2 = 500;
  int moveroll=1;
int enderstate = 1;  
int buttonState = 0;  
int i;
int  buttonupstate = 1;
int buttonup = 2;
int  buttondownstate =1;
int buttondown = 4;




void moveupcommand()
{
moveroll=1;
directionmotor=1;
}
void movedowncommand()
{
moveroll=1;
directionmotor=0;
}


void motorstop()
{
moveroll=0;
digitalWrite(motor_pin_1, LOW);
digitalWrite(motor_pin_2, LOW);
digitalWrite(motor_pin_3, LOW);
digitalWrite(motor_pin_4, LOW);

}

 void motor(int thisStep)
{
	switch (thisStep) {
		case 0:    // 0001
			digitalWrite(motor_pin_1, LOW);
			digitalWrite(motor_pin_2, LOW);
			digitalWrite(motor_pin_3, LOW);
			digitalWrite(motor_pin_4, HIGH);
		break;
		case 1:    // 0011
			digitalWrite(motor_pin_1, LOW);
			digitalWrite(motor_pin_2, LOW);
			digitalWrite(motor_pin_3, HIGH);
			digitalWrite(motor_pin_4, HIGH);
		break;
		case 2:    //0010
			digitalWrite(motor_pin_1, LOW);
			digitalWrite(motor_pin_2, LOW);
			digitalWrite(motor_pin_3, HIGH);
			digitalWrite(motor_pin_4, LOW);
		break;
		case 3:    //0110
			digitalWrite(motor_pin_1, LOW);
			digitalWrite(motor_pin_2, HIGH);
			digitalWrite(motor_pin_3, HIGH);
			digitalWrite(motor_pin_4, LOW);
		break;
		case 4:    // 0100
			digitalWrite(motor_pin_1, LOW);
			digitalWrite(motor_pin_2, HIGH);
			digitalWrite(motor_pin_3, LOW);
			digitalWrite(motor_pin_4, LOW);
		break;
		case 5:    // 1100
			digitalWrite(motor_pin_1, HIGH);
			digitalWrite(motor_pin_2, HIGH);
			digitalWrite(motor_pin_3, LOW);
			digitalWrite(motor_pin_4, LOW);
		break;
		case 6:    //1000
			digitalWrite(motor_pin_1, HIGH);
			digitalWrite(motor_pin_2, LOW);
			digitalWrite(motor_pin_3, LOW);
			digitalWrite(motor_pin_4, LOW);
		break;
		case 7:    //1001
			digitalWrite(motor_pin_1, HIGH);
			digitalWrite(motor_pin_2, LOW);
			digitalWrite(motor_pin_3, LOW);
			digitalWrite(motor_pin_4, HIGH);
		break;
	}
}
//NEW- 
void go(){

//Опрашиваем кнопки и датчики  
  enderstate=digitalRead(ender);
  buttonupstate=digitalRead(buttonup);
  buttondownstate=digitalRead(buttondown);  

//Если количество шагов больше чем разрешено при движении вниз. И если направление - вниз.  
if (global_down_step_number > step_down && directionmotor == 0)
  {
    if (loglevel > 0)  
    Serial.println("Roll stop by limit step down");
    motorstop();
}

//Если нажали кнопку "Вверх"
if (buttonupstate == 0)
  {
Serial.println(WiFi.status());  
  
  /*
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  */
  
  
  
  
  
//    if (loglevel > 0)
//    Serial.println("Press button to up");
//    moveupcommand();
}
   /*if (millis() - last_step_time2 >= 10000)
  { 
    Serial.println(WiFi.status());
  }
  
  */
//Если шагов не осталось при движении вниз (меньше 0)
//  if (global_down_step_number < 0 && directionmotor==0)
//motorstop();


//Реакция на концевик + направление вверх.  
    if (enderstate == 0&&directionmotor==1)
{
  if (loglevel > 0)      
  Serial.println("Roll stop by ender, moving up");
  motorstop();  
  global_down_step_number = 1;
}  
  
//Собственно движение, если  разрешено (moveroll = 1)
  if (moveroll==1){
   if (millis() - last_step_time2 >= step_delay2)
  { 
    if (loglevel > 0)
   Serial.print(".");
last_step_time2 = millis();  
}
  if (millis() - last_step_time >= step_delay) 
{
      last_step_time = millis();
//Если двигаемся вверх
if (directionmotor==1){
motor(step_number);
  step_number++;
  global_down_step_number--;
if (step_number > 7)
{step_number = 0;}
}
//Если двигаемся вниз
if (directionmotor==0){

if (step_number == 0)
step_number = 7;
motor(step_number);
  step_number--;
  global_down_step_number++;
          }
    }
}


}
void setup() {

//Присвоение времени с начала работы времени последнего шага.
last_step_time = millis();
 //
 pinMode(ender, INPUT_PULLUP);
  pinMode(buttonup, INPUT_PULLUP);
   pinMode(buttondown, INPUT_PULLUP);
 
 pinMode(motor_pin_1, OUTPUT);
 pinMode(motor_pin_2, OUTPUT);
 pinMode(motor_pin_3, OUTPUT);
 pinMode(motor_pin_4, OUTPUT);
 
  digitalWrite(motor_pin_1, 0);
  digitalWrite(motor_pin_2, 0);
  digitalWrite(motor_pin_3, 0);
  digitalWrite(motor_pin_4, 0);
//NEW-
  
  Serial.begin(57600);
  delay(10);

  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();
  Serial.println("Server started");


  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {

  go();  
    return;
  }

  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  
  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
  
  // Match the request
  go();  
  int val;
  if (req.indexOf("/down") != -1)
{    val = 0;
moveroll=1;
directionmotor=0;
if (loglevel > 0)
  Serial.println("Recived command to down");
}
  else if (req.indexOf("/up") != -1)
 {   val = 1;
moveupcommand();
if (loglevel > 0)
  Serial.println("Recived command to up");
}
 else if (req.indexOf("/stop") != -1)
 {   val = 1;
  motorstop();
  if (loglevel > 0)
    Serial.println("Recived command to stop");
 }
 else if (req.indexOf("/log+") != -1)
 loglevel  = loglevel + 1;
 else if (req.indexOf("/log-") != -1)
 loglevel  = loglevel - 1;
 
 
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  // Set GPIO2 according to the request
  //digitalWrite(16, val);
  
  client.flush();

  // Prepare the response

  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += global_down_step_number;
  s += moveroll;
  s += "</html>\n";
  
  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");

  // The client will actually be disconnected 
  // when the function returns and 'client' object is detroyed
}
Схема понятна, я так думаю.
На ULN идёт 5 вольт, на ESP 3.4
Будут вопросы - задавайте, а я пока буду рисовать печатку под всё это дело... Печатки рисовать у меня опыта почти что никакого... Но будем пробовать...
P.S. в этой версии кода есть отсылка отладочных сообщений в UART, их можно убрать. По кнопке в этой версии отправляется в UART статус WiFi - это я пытался понять, знает программа об "отвале" или нет.

shemnik69
Сообщения: 338
Зарегистрирован: 20 дек 2012, 15:52
Откуда: Саратов Saratov
Контактная информация:

Re: Рулонные шторы - простая автоматизация

Сообщение shemnik69 » 29 апр 2015, 10:11

В самом начале форума, была уже данная тема. там был описан и привод и его управление.
Самый оптимальный привод, это тот у которого минимум внешних органов управления и предельно простой алгоритм поведения.
Открыть/закрыть и еще промежуточное положение скажем 30-50%.
"Ловить" крайние положения привода т.е закрытое либо открытое, самое оптимальное решение это разрыв цепи питания двигателя. Способ самый "железный" но самый надежный.
Как можно отловить промежуточные положения,? каким образом?
1. На силовой установке, иметь датчики типа энкодера т.е. счетчик импульсов. Сами импульсы могут быть от оптодатчиков (могут иметь помехи), контактные датчики с разнесением по окружности на 30 % (механический энкодер) либо взять готовый энкодер и встроить его в один из опорных элементов (противоположная опора шторы от привода).
2. Можно также использовать шаговые двигатели но тут упадет скорость хотя функциональность возрастет.
Самые же оптимальный вариант это когда сам привод имеет в своем составе все необходимые элементы защита, ограничение. мягкий пуск и и тп.
Готовые варианты есть но очень уж дорогие (20 и более ТР) за такое чудо? Ну кто может хорошо но не все готовы.
Вариант из промышленного. Это типовые редукторные двигатели на 220 в это РД-9 (но он "крупноват", хотя самый "оптимальный" провернет любую по размеру штору) привод на основе редуктора от РВМ-1 (реле времени механическое)решение удачное, поскольку идеально встраивается двигатель от кассетного магнитофона и на выходе получаем очень удобный силовой агрегат. Размеры тоже оптимальные D 6 cм. толщина 2.5 единственный минус довольно неприятно "визжит" :D при работе. также хорошо работают приводы от стекло подъемников и видел вариант (на Хабре) с приводом применяемого для управления заслонкой отопителя автомобиля. "Газель".
Была в работе штора с таким приводом (РД-9) (сейчас после ремонта, и установки глухого забора на участке в ней уже нет необходимости).
Контроллер был на основе простой логики. Питание 12 в. управлялась также от команд ИК пультов, а также просто закрыть открыть время закрытия примерно 20 сек. Сама шторы это довольно большая штанга из трубки на 2 окна. Имела 3 точки крепления крайняя одна из которых сам привод и средняя на основе втулки. Сами элементы были укрыты карнизом и как таковые т.е валик шторы не были видны. Основной же "эстетичный" элемент "привод" был расположен в самом углу и с учетом боковых элементов отделки, а также карниза не был виден совсем.
Крайние положения самой шторы определялись так.
Длинна рулона шторы в расправленном состоянии (типовая римская штора (правда она была немецкая) была подобраны по высоте окна и закреплена на самой штанге путем петли с несколькими точками крепления. (в штанге 2-3 отверстия петля охватывает штангу через отверстия крепкой ниткой с затяжкой закрепляем саму штору. Можно еще стянуть стяжкой под цвет шторы (короче вариантов много).
При нижнем положении штора опускается практически на подоконник и в ее нижнем крае в естественную складку можно вложить 1-2 магнита (использовались от сигнализации они размером 6-6-40 мм и очень мощные.
В сам подоконник (пластик ПВХ по сути самый распространенный) встраивается геркон. Его размещение простое поскольку подоконник имеет ячеистую структуры и в нем достаточно полостей. Геркон крепится как клеем так любым подомным способом :D
Чтобы магнит, точно попал на геркон,(ы) необходимо так подобрать его место чтобы при возможных отклонениях ( сама штора довольно стабильна из за веса) от препятствий он по возможности попадал на них (например было что кот на окне спит) но когда на него штора опускается он как правило убегает... :D Магниты и герконы советую размещать с обеих сторон подоконника, разместить их нет проблем, поскольку сняв боковые заглушки можно добраться до полостей.
Если же сама штора закреплена на самой штанге петлей то страшного от того что она не остановится нет просто ее опять смотает на штангу и сработает концевик крайнего верхнего положения.
Теперь про верхнее положение. Тут много вариантов, тот же магнит в шторе, можно отследить диаметр, совпадение нескольких сигналов т.е нет сигнала внизу. привод идет вверх. любой датчик на останов.
Сам использовал те же герконы поскольку магнит на самом краю то его легко ловят герконы их тоже 2. Герконы могут быть как на замыкании так и переключаемые (3 контактные) такие использовать не советую у них более длинный ход и необходимо более сильное магнитное поле. Мне понравились герконы из старой клавиатуры от старой 80-е г. немецкой ЭВМ (жалко было, хорошо сделана но .... :( ) они очень миниатюрные 3/10 мм и очень чувствительные, кроме того выводы уже имели напаянные гибкие проводники что упростило их монтаж.
Контроллер это простая схема на элементарной КМОП логике хотя можно и МК.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: Рулонные шторы - простая автоматизация

Сообщение kod.begemot » 29 апр 2015, 10:49

Читал я про подобные решения, и похожие пути решения задачи возникали в голове намного раньше шаговых моторов, разумеется. У меня есть несколько моторов от советских камер видеонаблюдения, небольшие по диаметру, с серьёзным планетарным редуктором (шестерни металл конечно :) ) и т.п. можно и концевиков нацеплять кучу - никто не спорит...
Но в поисках недорогого, компактного и эстетичного варианта остановился на том, что описал.
Ничего не мешает сейчас засунуть описанное мной устройство в небольшой корпус, длиной сантиметров 10-12, в него-же можно и верхний концевик вставить (концевик - геркон, магнит внизу шторы в утяжелителе), и кнопки "вверх" и "вниз". Всё. Нужно питание и всё. Причем питание от 7 до 26 вольт. Отслеживать нижнее положение совсем не обязательно - можно просто считать шаги вниз. Управление для штор по WiFi очень удобно, а надёжность передачи команд тут дело второе, шторы - не замок двери и не лампочка.
Если посмотреть на те шторы, о которых я писал - становится понятно, что они крепятся непосредственно на окно.
Получится аккуратный маленький моторчик на боковом крепеже шторы, небольшой прямоугольный корпус на окне вниз от мотора, копус можно сделатьи из куска хорошего кабель канала (легранд к примеру), получится как часть конструкции окна.

В описаном вами устройстве куча недостатков на мой взгляд, преимуществ два - возможна огромная мощность на валу и возможность собрать из подручных материалов, ничего не заказывая.
Вопрос цены - отдельный.
В моём случае:
ESP-03: 200 руб.
мотор с драйвером: 70 руб.
DC-DC: 50 руб.
кнопки, плата, резисторы, разъёмы, линейный стаб - ну никак не больше 180 руб.
Итого привод одной шторы = 500 руб.
С управлением по WiFi.

MSapogov
Сообщения: 312
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: Рулонные шторы - простая автоматизация

Сообщение MSapogov » 25 май 2015, 20:41

А на ЕСП будет возможность кнопками двигать вверх/вниз?
Я их использую (07 и 12 модели) в рамках проекта http://homes-smart.ru/index.php/oborudo ... arodmon-ru
Пока очень доволен, но у Вас как я понял прошивка Lua?
А на какие выводы что Вы подключали?

Ответить