Выключатель

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

vl29
Сообщения: 11
Зарегистрирован: Вс окт 30, 2016 6:58 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Выключатель

Сообщение vl29 » Ср ноя 09, 2016 7:48 pm

Заказал на Али перечисленные модули и компоненты, перед Новым Годом почта, как обычно перегружена, наверное долго будут идти... Чувствую, потом еще больше вопросов будет. Вы уж меня не бросайте, только от вас и жду посильной помощи. Интернет, конечно, большой, но только здесь я нахожу понятную, доходчивую инфу и добрый человеческий подход! Благодарю вас, форумчане!
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Выключатель

Сообщение immortal » Ср ноя 09, 2016 9:22 pm

vl29 писал(а):Заказал на Али перечисленные модули и компоненты, перед Новым Годом почта, как обычно перегружена, наверное долго будут идти... Чувствую, потом еще больше вопросов будет. Вы уж меня не бросайте, только от вас и жду посильной помощи. Интернет, конечно, большой, но только здесь я нахожу понятную, доходчивую инфу и добрый человеческий подход! Благодарю вас, форумчане!
Вот написал подробную инструкцию по выключателям в разной реализации http://xn--b1afas9b4a.xn--p1ai/archives/670
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
roman_rv
Сообщения: 24
Зарегистрирован: Вт дек 13, 2016 8:01 am
Откуда: Екатеринбург
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: Выключатель

Сообщение roman_rv » Ср янв 18, 2017 5:55 pm

Всем привет! Внесу свои 5 копеек.
Ремонт закончен. Естественно в подрозетнике выключателя два провода в разрыв фазы, выключатель обычный одноклавишный. Сделал из того что нашлось быстро:
1. исполнительное устройство [ac/dc 5в 700мА->WemosD1mini+RelayShild]. LED люстра подключена к нормально разомкнутым контактам реле. По сути, выключатель включает устройство, которое включает люстру. Модуль живет под натяжным потолком.
2. В МД объект типа Relay со свойством status.
Логика работы:
1. Включаем выключатель, esp загружается, запрашивает текущий статус у МД, выставляет реле в актуальное состояние.
2. Если связи с МД нет - включает реле. Можно проще - подключить люстру к нормально замкнутым контактам реле, в этом случае код упрощается, но при статусе 0 в МД необходимо будет включить реле. Это мне кажется немного неправильным, т.к. свет горит меньшую часть суток, а все остальное время реле будет с притянутым якорем.
3. Далее управляется из МД по сценариям/кнопкам методом HTTP GET. Причем статус объекта в МД устанавливает устройство отсылкой GET запроса к свойству объекта (реализация обратной связи. Статус в МД не изменится, если не получен ответ).
4. Доступность устройства проверяется через "устройства онлайн", напоминает, чтобы вернул выключатель во вкл.

Почему так и без MQTT:
1 и основное - ремонт, блин, закончен ))) Думал про умный дом, но в тонкости не вникал, а зря ((
2. Хочется сохранить возможность управления исполнительными устройствами в случае падения МД или умирания роутера. В случае падения МД задачи отправки GET запроса можно реализовать с помощью таскера или appinvertor'а. В тел на этот случай создается резервное приложение прямого управления устройствами. В случае умирания роутера - работает как обычный выключатель, устанавливая реле в 1 при отсутвии связи.
Из минусов - нарабатывание нового навыка не щелкать выключателям выходя из комнаты ))) + тщательная проработка сценариев, чтобы срабатывало когда надо. В остальном, на мой взгляд, резервирование достаточное. Без света не останешься, если компы подведут.
Повторюсь - такие сложности всего лишь из-за того, что не заложил доп провод в штробы, учту на будущее обязательно )))

Управление модулем: http://ip/status/1 - вкл, http://ip/status/0 - выкл.

Код прошивки Wemos прилагаю, шил через Arduino IDE. На чистоту кода не претендую, т.к. не программист далеко, но работает :).
код для Arduino IDEПоказать

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

#include <ESP8266WiFi.h>

const char* ssid = "***";
const char* password = "***"; // имя и пароль wifi

#define RPin D1 // пин реле

WiFiServer server(80); //заготовки для сервера и клиента (порт)
WiFiClient client;
IPAddress MDIP(192,168,1,114); //Majordomo (MD) IP

// переподключение wifi при потери связи
void WiFiReconnect(){
    WiFi.disconnect();
  WiFi.begin(ssid, password);
   while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
}

// выполняется при загрузке один раз
void setup() {
  Serial.begin(115200);
  delay(10);

  // подготовка пина реле
  pinMode(RPin, OUTPUT);
  digitalWrite(RPin, 0);
  
  // Подключение к wifi
  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");
  // Print the IP address
  Serial.println(WiFi.localIP());
  delay(500);

// запрос состояния у мажордома
client.connect(MDIP, 80);
delay (500);
if (client.connected()) {
    client.print("GET /objects/?object=HallLamp&op=m&m=refresh& HTTP/1.1\r\n"); //вызов метода refresh объекта HallLamp
    client.print("Host: 192.168.1.114\r\n");  
    client.print("User-Agent: HallLamp\r\n");
    client.print("Connection: close\r\n\r\n");
    Serial.println("connected");
    }
else {
    // если МД не отвечает
    Serial.println("connection failed");
    digitalWrite(RPin, 1); // включаем реле
  }
  client.stop();
  
  // запуск http сервера для приема команд управления
  server.begin();
  Serial.println("Server started");
}

// основной цикл
void loop() {

  if (WiFi.status() != WL_CONNECTED) {WiFiReconnect;} // Если пропал вайфай - переподключение
  
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    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
  int val;
  if (req.indexOf("/status/0") != -1)
    val = 0;
  else if (req.indexOf("/status/1") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }
  // устанавливаем состояние реле
  digitalWrite(RPin, val);
  
  client.flush();

  // ответ МД-му
  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)?"On":"Off";
  s += "</html>\n";

  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected, send status");

client.connect(MDIP, 80);
client.print("GET /objects/?op=set&object=HallLamp&p=status&v="); //установка статуса объекта HallLamp
client.print(val);
client.print(" HTTP/1.1\r\n"); 
    client.print("Host: 192.168.1.114\r\n");  
    client.print("User-Agent: HallLamp\r\n");
    client.print("Connection: close\r\n\r\n");
    Serial.println("connected");
  client.stop();
}
 
Raspberry Pi 3 hdd boot
ki_dix
Сообщения: 6
Зарегистрирован: Чт янв 26, 2017 7:28 am
Благодарил (а): 0
Поблагодарили: 0

Re: Выключатель

Сообщение ki_dix » Пн янв 30, 2017 1:51 pm

У фирмы Xiaomi есть такой продукт: http://got.by/f4bks
Из плюсов: устанавливается вместо обычного выключателя, не надо ничего придумывать с питанием. Есть обратная связь.
Из минусов: работает только с умным домом от Xiaomi. Исполнение под китайский квадратный стакан. Цена.

Вопрос:
Можно ли своими силами изготовить подобный выключатель, который вберёт в себя все плюсы и исключит минусы?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Выключатель

Сообщение nick7zmail » Пн янв 30, 2017 1:59 pm

Вроде в маркете дополнений появился модуль поддержки устройств умного дома xiaomi...Правда пока что только получение данных работает...Но я думаю управление со временем тоже "взлетит"

Отправлено с моего Redmi 4 через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
ki_dix
Сообщения: 6
Зарегистрирован: Чт янв 26, 2017 7:28 am
Благодарил (а): 0
Поблагодарили: 0

Re: Выключатель

Сообщение ki_dix » Пн янв 30, 2017 2:06 pm

nick7zmail писал(а):Вроде в маркете дополнений появился модуль поддержки устройств умного дома xiaomi...Правда пока что только получение данных работает...Но я думаю управление со временем тоже "взлетит"
Oтличная новость! Значит в скором времени те, кто могут себе позволить купить выключатели Xiaomi на всю квартиру, и кому не затруднительно переделать круглые отверстия в стенах смогут пользоваться данным решением.

Но всё же хочется иметь альтернативную самодельную версию (дешевле и под круглый стакан).
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Выключатель

Сообщение nick7zmail » Пн янв 30, 2017 2:24 pm

Я думаю xiaomi сделают под круглый стакан версии...Если их нет...А скорее всего - они даже уже есть...

Другой вопрос цена...Есть альтернативы управляемые радиопультами но без обратной связи. И стоят почти в 2 раза дешевле...Чтобы делать обратную связь - надо вай фай, nrf, или любые другие протоколы с обратной связью (zeegbee один из них, на нем и работает xiaomi)...
Во-вторых самая главная проблема это питание самого модуля (того же есп)...С паразитным питанием вообще мало представляю как это работает...
Хиаоми и те кто штампуют эти радиовыключатели как то решили эту проблему...

Как только наши решат - появятся предложения...Но далеко не факт что они будут дешевле...ибо старт производства - дело не дешевое...а ручной труд, штучные экзэмпляры - и того дороже....сама начинка выключателя будет стоить рублей 600-800, корпус рублей 200 нормальный...и чтобы окупить свой труд - минимум 40% наценки...вот и выйдут те же 1500р за штуку....

Так же есть не от xiaomi девайсы...xonyar к примеру...там цены еще негуманнее...так что xiaomi - довольно бюджетное решение на самом деле.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Выключатель

Сообщение lanket » Вт янв 31, 2017 12:08 pm

ki_dix писал(а): Но всё же хочется иметь альтернативную самодельную версию (дешевле и под круглый стакан).
https://r.tapatalk.com/shareLink?url=ht ... re_type=sf


Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: Выключатель

Сообщение slgeo » Вт янв 31, 2017 1:34 pm

Ссылка нерабочая
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Выключатель

Сообщение lanket » Вт янв 31, 2017 3:38 pm

slgeo писал(а):Ссылка нерабочая
Блин, в тапаталке нормально не скопировать ссылку.
Этот форум, раздел 'настройка и программирование' далее 'MySensors '

Сенсоры и активаторы, с обратной если надо связью, радиоканал. Полная кастомаьизация.

Полная свобода фантазии для самоделкиных.

ДЁШЕВО.

Полно примеров.
Маленькие размеры с возможностью засунуть в монтажный коробку.
slgeo писал(а):Ссылка нерабочая

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ответить