Умный дом вопросы и ответы, изучение спроса | Крымский форум
  • Добро пожаловать на форум! Рады видеть вас здесь! Зарегистрируйтесь или Войдите в аккаунт, чтобы иметь полный доступ к площадке!

anthony3d

Местный житель
Эксперт
Сообщения
899
Реакции
13
Репутация
107
Я довольно неплохо продвинулся в вопросах умного дома:
- Устройства с веб-интерфейсом
- Голосовое управление
- Работа устройств в заданное время
- Интернет вещей

Вижу, вокруг этим занимаются единицы, и в основном для себя.

Короче говоря:
Если кто-то задумывался о голосовом управлении дома, ну, типа, «Алиса, включи свет», «Алиса, открой штору» или «Алиса, приготовься к приему гостей» (и она ставит тихую музыку, приглушает свет, включает кофемашину, теплый пол и заказывает доставку пиццы)...

... Или у кого-то есть дача и хочется включать в ней обогреватели, кондиционеры, насос для воды и поливалку пока вы ещё только туда едете...

... Или вам хотелось бы постоянно видеть актуальное количество ваших фолловеров в Инстаграме в виде картинки со светящимися цифрами в рамочке на стене...

... то я могу ответить на вопросы как это делать. Что купить из серийных устройств, как их настроить.

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

(Примеры кастомных устройств:
У меня в большой прихожей 9 потолочных светильников-софитов. Они очень хорошо освещают помещение. Кстати, зажигаются и гаснут они не все сразу, а по очереди, рисуя определённую фигуру.
Но ночью яркий свет наоборот вызывает раздражение. Поэтому, начиная с 23:00 работает только один софит.

Еще пример:
Я люблю засыпать под амбиентные звуки. Но воспроизведение нужно выключить.
И, казалось бы: доиграет плейлист и остановится? Но, нет. Это телефон остановится, но нужно еще выключить усилитель.
Поэтому, по команде: «Алиса, спокойной ночи» ставится таймер на час, по истечении которого по Блютуз передается команда на телефон остановить воспроизведение, а после этого по веб-интерфейсу выключается усилитель. А чтобы в момент выключения не было щелчка динамиков, умная электроника динамики предварительно отключает.)
 
Цитата
по веб-интерфейсу

что в основе?
Пробовал освоить Majordomo , с первого раза не получилось, пока отложил.... Как там реализована идея мне понравилось.
А так во всем доме свет может включить и выключить алиса ( в основе по умный дом от яндекс) , стоит пару датчиков на открытие/закрытие, датчик движение, все сработки приходят на телефон.
В основе все оборудование SonOff .

У вас на основе какой программы УД ?
 
А по-простому!
BLYNK + Домовенок Кузя + самоделки на ESP8266 + сайты с JavaScript, PHP, скрипты на bash и Python
Sonoff расстраивает слабым функционалом.
Это просто выключатели. Я от них беру только радиоканал 433. И то он глючит по нескольку раз на день.
Поначалу я пробовал обвешивать готовое промышленное устройство своими элементами, но постоянно что-то вылезало. Обычно по питанию.
И тогда пришлось разработать свое.
 
Это очень интересная тема, давно на Алишке слюну пускаю на все эти датчики и тд! Хочу себе тоже «умный дом» сделать как продолжу стройку летом... Только вот пока не понял, что именно хочу. Но, пока, определённо хочу дистанционно проверять выключила ли жена фен/утюг, чтобы в вечернее время автоматически включалась подсветка во дворе, чтобы при выходе из комнаты выключался свет автоматом, дистанционное управление котлом отопления
smile.gif
))
Подпишусь на обновления, потом вам в личку напишу чтобы подробней всё узнать, что купить, как настроить!
 
Вопрос питания - главный.
Десятки датчиков - это батарейки, которые надо не забывать менять.

Конечно можно еэспэ+бп+розетка - насколько это гуманно по потреблению/пожарной#безопастности/вэчэ#излучению?

Или тянуть провода с питанием?
Раз уж тянешь провода с питанием, то почему-бы параллельно не кинуть провода с шиной данных, типа 485 интерфейса?
Тем более, что всё это укладывается в обычную витуху, уложенную(тут тавтология) по периметру: 2 пары на питание, остальные - данные

Раз уж используются проводные интерфейсы, то еэспэ с вайфайом как-бэ и не нужны...

Переболел умным домом по простой причине: дом не умный, совсем не умный.
Просто пульт управления розетками.


Для фанатов голосового управления:
1. Выключаете интернет - управления нет.
2. Не забывайте про громко работающие телевизоры и прочие устройства, так-же про весёлых гостей(нг, днюха)
3.
А) Выключаете интернет(на 20 минут) в смарте с установленным яндобровзером и "навязчиво" обсуждаете какие-либо темы: "наличие/отстутствие икры в вобле", "застилку пола ламинатом/линолиумом".
Б) включаете инет в смарте и через 6-8 часов наблюдаете вобло-линолеумную контекстную рекламу в яндекс.новостях.
Гугол и мэйл.ру в бессовестности подслушивания тоже не отстают.

Так, что все эти "умные" колонки - всего-лишь штатная прослушка с централизованным(видимо для удобства
smoke.gif
) управлением.

Умный дом не будет отсылать голосовые и видео данные за пределы входной двери , даже по вацфаю, не говоря уже за интернет.

Умный дом определит(opeNcv ?), что хозяин перестал ворочаться и лупать зенками(спит?) - аккуратненько и плавненько убавит звук телевизора с последующим отключением.

Говорят такие дома есть.
Но очень дорого.

Для остальной "умной" автоматизации достаточно пульта, штатного таймера отключения и штатного-же термостата.
В 99.999999% случаев.
 
obscure
Shanghai
Согласен с вами на 100% , если делать по настоящему умный дом то это очень дорого, и конечно он будет строится не на вафай релушках с облаком в Китае....
 
Цитата(anthony3d @ 19 Марта, 2020, 1:22)
BLYNK

Блинк хорош тем что очень прост,но все же хочется отвязаться от облака...
 
Цитата(Anatolii129 @ 19 Марта, 2020, 8:33)
Согласен с вами на 100% , если делать по настоящему умный дом то это очень дорого, и конечно он будет строится не на вафай релушках с облаком в Китае....

Умный дом бывает разный,его строят на тех же ПЛК,например Сименс-лого, и это будет тоже по-своему умный дом, можно поднять сервак на малине и подружить его с ПЛК и будет уже полноценный умный дом в бюджетном варианте
 
Цитата
хочется отвязаться от облака...

1. Блинк можно (и нужно) развертывать локально.

2. Сначала у меня был синдром «фатального недостатка» и я не стал разбираться в том, что придумали до меня и написал полностью свою распределенную систему, локально размещающуюся на ESPшках, вовсе без центрального сервера.
Она вообще не выходит в инет, только через шлюз.
И это, кстати, неплохо работает. (Гоняет, правда, постоянно пакеты по WiFi, но Блинк их что-ли не гоняет?? Он их вообще на облако шлет! А тут по локалке, да и то только если есть клиент.)

Был сделан сайт, локально размещенный на Raspberry pi с тачскрин-экранчиком, который показывает план квартиры и все выключатели, которые можно использовать дистанционно.
Когда все, например, собрались на кухне на ужин, но оказалось, что дети забыли выключить свет у себя в комнатах, достаточно подойти к этому экранчику, вмонтированному в стену, и понажимать на выключатели в интерфейсе.
 
Цитата(anthony3d @ 19 Марта, 2020, 13:34)
достаточно подойти к этому экранчику, вмонтированному в стену, и понажимать на выключатели в интерфейсе.


Прикольно подходить к экранчику при заюзанном для связи файфае.
Может вебсервак на расбери и ходить тудой со смарта, а не ножками?


anthony3d я не в коем случае не пытаюсь обгадить или навязать чего-то.
С точки зрения применённых технологий, знаний и железок - всё блестяще.

У мну у самого нрф24л01 модулей 5 шт. в коробочке лежит, программатор, пики, стм-ка с али.

Когдато мечтал всё автоматизировать.
Руки не дошли.

Сегодня вот с холодишкой самсунг(своим) борюсь.
Морозит только после сброса.
Играет музыку, я настраиваю режимы морозилки/камеры, он набирает холоду...
Всё, как по нотам!
Только вот после выхода на режим он прекращает охлаждение:
Датчики показывают, что всё в порядке в камере +4, в морозилке -20.
А на самом деле +15/+6

Умный холодильник с музыкой и приятными цыферками-индикаторами превратился в тыкву.

И нет механического реле холода в запасном контуре...
 
Цитата(anthony3d @ 19 Марта, 2020, 12:34)
2. Сначала у меня был синдром «фатального недостатка» и я не стал разбираться в том, что придумали до меня и написал полностью свою распределенную систему, локально размещающуюся на ESPшках, вовсе без центрального сервера.
Она вообще не выходит в инет, только через шлюз.
И это, кстати, неплохо работает. (Гоняет, правда, постоянно пакеты по WiFi, но Блинк их что-ли не гоняет?? Он их вообще на облако шлет! А тут по локалке, да и то только если есть клиент.)


Тобишь управление только осуществляется в своей сети, управление из любой точки мира не получится ?
 
Цитата(ENERGETIK @ 19 Марта, 2020, 19:05)
управление из любой точки мира не получится ?


Для этого придуман впн.
Только смысл - управлять пустой квартирой?

Холодильник в режим "вокэйшн".
Остальное в офф.
 
Цитата
Тобишь управление только осуществляется в своей сети, управление из любой точки мира не получится ?


Почему же?
Получится, но через шлюз.
Распределенные сервера, каждый на своей ESPшке, юзаются шлюзом, который имеет выход в инет.
Это удобней, в т.ч. тем, что без облака (например, Блинк) пришлось бы выводить наружу каждый ESP через порт-форвардинг и DDNS.
А так один шлюз вывел, и счастье.
 
Цитата
Прикольно подходить к экранчику при заюзанном для связи файфае.

Экранчик просто очень удобно расположен, и кроме того их в квартире три.
Но можно и со смарта, конечно, и с любого компа. Заходишь на 192.168.0.100, а там этот сайт.
Я так музыку, бывает, выключаю, не вставая с постели.

unsure.gif

Сейчас, правда, всего описанного функционала с экранчиками нет, все переделано на Блинк, и не красиво пока..., поэтому я не могу показать.
Да и шлюз не был реализован в полном объеме, все управление было только внутри дома.
На случай необходимости удаленного управления я рассчитывал пока поднимать на одном из экранчиков сервер VNC (такой TeamViewer для Линукса) и заходить Remote Desktop'ом, так сказать.
 
Кстати, мы с сыном однажды, год назад, делали жене и дочке квест по комнатам в квартире.
Там по сюжету была космическая станция, захваченная террористами, которую нужно было взломать и перепрограммировать, а потом сразиться с супер-мозгом искусственным интеллектом.
И эти экранчики (ну, и все компьютеры и смартфоны в доме, конечно) исполняли роль элементов управления станцией.
bigwink.gif


Квест тоже был сделан на сайте, для удобства выложенном в сеть.

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

Ну и светодинамика софитов в прихожей и на кухне, куда же без нее..
Лампочками коды высвечивались, которые нужно было тоже применять.
Например, вводить на экране блокировки смартфона
smile.gif



Можно глянуть странички этапов здесь
(Если в URL поменять 1 на 2,3,4 будут разные этапы. Не всё видно, это только начальные экраны этапов.

В четвертом можно набрать М3П,614,117,573,519,Л3А робот станет мирным и будет концовка.
В третьем 117,519 и посмотреть диалоги.
Можно еще звук включить..
smile.gif


Все делалось бегом, за несколько вечеров, не пинайте.
Сын придумал сюжет, нарисовал персонажи и готовил картинки на смартфоны.
Я писал сайт на Бутстрэпе, рисовал странички, программировал контроллеры.
Интерфейсы и бэкграунды мы спёрли в инете.)
 
Цитата(anthony3d @ 19 Марта, 2020, 20:55)
очему же?
Получится, но через шлюз.
Распределенные сервера, каждый на своей ESPшке, юзаются шлюзом, который имеет выход в инет.
Это удобней, в т.ч. тем, что без облака (например, Блинк) пришлось бы выводить наружу каждый ESP через порт-форвардинг и DDNS.
А так один шлюз вывел, и счастье.

Можете подробней или видео может есть подобное,очень познавательно будет для меня
 
Цитата
Можете подробней


Видео нет
smile.gif

Каждый управляемый выключатель имеет свой внутрисетевой URL, который его включает, выключает и проверяет состояние. Например,
Код
http://192.168.0.185/LEDON
http://192.168.0.185/LEDOFF
http://192.168.0.185/STATE


(У Блинка примерно так же, только всё через облако)
Я им потом NetBIOS имена давал с четкой мнемоникой что это за свитч и где он расположен. Но это сути не меняет.

Шлюз (можно на Raspberry Pi, а можно и на ESP, там все равно нагрузки нет) транслирует внешние вызовы типа
Код
http://{внешнийIP}/switch1/LEDON (LEDOFF/STATE)
во внутрисетевые команды и отдает ответы.

Каждый ESP программируется как сервер в общей сети.
Я сначала много экспериментировал с разными серверами, что есть в экзамплах, но вернулся все равно на простой дефолтный, который есть в библиотеке WiFi по-умолчанию.
Код
#include <ESP8266WiFi.h>
WiFiServer server(80);
[...]
 WiFi.begin(ssid, password);
 while (WiFi.status() != WL_CONNECTED) { delay(100); }
 server.begin();



А уже в коде пишу
/style_images/CaliV6/read_more.gif



Код
 WiFiClient client = server.available(); // Если клиент вообще подключен
 if (client) {
   request = client.readStringUntil('\r');     // Смотрим что он там пишет..
   if ( request.indexOf("LEDON") > 0 )  {// Если пришла команда на включение
     switchState = __ON;  switchRelay(switchState);
     client.print( headerOk );
   } else if ( request.indexOf("LEDOFF") > 0 ) {// Если пришла команда на выключение
     switchState = __OFF; switchRelay(switchState);
     client.print(F("HTTP/1.1 200 OK\r\n"));
   } else if ( request.indexOf("STATE") > 0 ) {// Если пришла команда на проверку состояния
     client.print( headerOk + headerHTML );
     client.print((switchState) ? F("LEDOFF") : F("LEDON"));
   } else {                                    // Без команд просто показать сайт
     client.print( headerOk + headerHTML );
     client.print( html );                     // В переменной код сайта
     delay(5);
   }
   client.flush();




Вот код странички. Он длинный, но больше всего места там занимает красивый CSS чекбокс
smile.gif


/style_images/CaliV6/read_more.gif



Код

String headerОк = "HTTP/1.1 200 OK\r\n";
String headerHTML = "Content-Type: text/html\r\n\r\n";
String html = R"=====(
<!DOCTYPE html>
<html>
<head>
 <meta name='viewport' content='width=device-width, initial-scale=1.0'/>
 <meta charset='utf-8'>
 <style>
   #main {display: table; margin: auto;  padding: 0 10px 0 10px; }    

.checkbox {
 position: absolute;
 z-index: -1;
 opacity: 0;
 margin: 10px 0 0 20px;
}
.checkbox + label {
 position: relative;
 padding: 0 0 0 60px;
 cursor: pointer;
}
.checkbox + label:before {
 content: '';
 position: absolute;
 top: -4px;
 left: 0;
 width: 50px;
 height: 26px;
 border-radius: 13px;
 background: #CDD1DA;
 box-shadow: inset 0 2px 3px rgba(0,0,0,.2);
 transition: .2s;
}
.checkbox + label:after {
 content: '';
 position: absolute;
 top: -2px;
 left: 2px;
 width: 22px;
 height: 22px;
 border-radius: 10px;
 background: #FFF;
 box-shadow: 0 2px 5px rgba(0,0,0,.3);
 transition: .2s;
}
.checkbox:checked + label:before {
 background: #9FD468;
}
.checkbox:checked + label:after {
 left: 26px;
}
.checkbox:focus + label:before {
 box-shadow: inset 0 2px 3px rgba(0,0,0,.2), 0 0 0 3px rgba(255,255,0,.7);
}

 </style>
 <script>
   var switchState = false;
   var iCan = true;
   window.setInterval(function(){
     if (iCan) ajaxLoad('STATE');
   }, 1000);
   function switchLED(chk) {
     iCan = false;
     if (chk.checked) {
       ajaxLoad('LEDON');
       switchState = true;
     }
     else {
       ajaxLoad('LEDOFF');
       switchState = false;
     }
     //console.log(switchState);
     iCan = true;
   }
   var ajaxRequest = null;
   if (window.XMLHttpRequest)  { ajaxRequest =new XMLHttpRequest(); }
   else                        { ajaxRequest =new ActiveXObject("Microsoft.XMLHTTP"); }

   function ajaxLoad(ajaxURL) {
     if(!ajaxRequest){ alert("AJAX is not supported."); return; }
     //console.log('ajaxLoad');
     ajaxRequest.open("GET",ajaxURL,true);
     ajaxRequest.onreadystatechange = function() {
       if(ajaxRequest.readyState == 4 && ajaxRequest.status==200) {
         var ajaxResult = ajaxRequest.responseText;
         //console.log(ajaxResult);
         if ( ajaxResult.indexOf('LEDON') !== -1 ) {
           //console.log('LEDON received');
           document.getElementById('checkbox').checked = true;
         } else if ( ajaxResult.indexOf('LEDOFF') !== -1 ) {
           //console.log('LEDOFF received');
           document.getElementById('checkbox').checked = false;
         }
       }
     }
     ajaxRequest.send(); // Error handling needed here
   }
 </script>
 <title>Smart Home</title>
</head>
<body>
 <div id='main'>
   <input type="checkbox" class="checkbox" id="checkbox" onclick="switchLED(this)" />
   <label for="checkbox"></label>
 </div>
</body>
</html>)=====";




На сайте с планом дома я вывел все эти свичи быстро-грязно каждый в своем iframe
 
anthony3d
Вроде так понятно,но со шлюзом чета совсем не улавливаю, с командами лэд он и лэд офф знаком,баловался на примерах в ардуино йде. Может видео есть подходящие на Ютубе ,вчера искал -ничего подобного нет.
Смотрел канал "инженерка" вчера ,как организовать локальный сервер блинка-это жэсть конечно,там столько манипуляций,аж мозги закипели
 
Шлюз я не делал, код не приведу.

Но вижу так:
1. На выделенном, постоянно включенном устройстве стоит программа-сервер. Написана на чем удобно. Если это ESP, то на Ардуинном С++, а если Распик, то можно и на Питоне. Этот сервер принимает внешние запросы, примерно как и LEDON-LEDOFF-STATE, только больше и структурней (типа ROOM1->LAMP1->ON или KITCHEN->KETTLE->STATE), и в соответствие с полученной командой дергает URLы во внутренней сетке. И возвращает ответы. Этот сервер выведен в интернет через статичный IP, купленный у провайдера или через DDNS на роутере. К нему подключается: 1) сайт, размещенный уже на хостинге, который реализует внешнее управление. Сайт запароленный или с какой-то другой системой ограничения доступа. 2) Приложение для Андроида. Собственно, тот же сайт.

2. Просто, как я делал. На том базовом клиенте, который может включать/выключать эти свичи на ESPшках, стоит сервер удаленного десктопа. VNC или TeamViewer. Вы заходите на этот сервер, видите пульт управления домом и включаете что надо.
 
А что со шлюзом непонятно.
Ну допущу вариант системы...Выше было писано что управление фактически феб-интерфейсом.
Ну вот в виде шлюза ставится прокся, через которую и ходить вовнутрь. А в виде безопасности - парольный доступ к прокси. Это конечно-быстро-на коленке.
А качественно - тот-же веб, одним URLом смотряший в сеть, но с сервером умеющим, и требующим, аутентификацию если твой IP не в белом списке (домашней локальной сети)
всё.
А так скажу - спасибо. Интересно почитать. Хотя сам я этой темой вообще не болею, а с другой стороны сильно заморочисто и нет нормальных готовых решений.
 
Назад
Сверху