Box Overview
Компания
55,05
рейтинг
11 февраля 2013 в 06:33

Разное → NooLite-2, или умный дом для чайников

После успешной проверки работы системы, я замахнулся на замену всех выключателей в доме на пульты управления, и построение «умного дома», хотя бы в части освещения.
image
В итоге получилась система, сочетающая включение/выключение света как с помощью выключателей, так и через интернет — с помощью кнопок на веб-страничке.
Как это получилось — читайте под катом.


Составляем план

Для начала я, побегав с рулеткой и бумажкой по дому, нарисовал план квартиры, а затем построил 3D модель квартиры в программе SweetHome 3D. Не скажу, что получилось идеально, но представление о квартире дает. Кому интересно, вот фейл файл проекта.
План был красиво отрендерен, и несколько часов мы с женой отбирали друг у друга мышку думали, где какой выключатель должен стоять, и чем управлять. Большим плюсом была возможность управления одной лампой с нескольких выключателей, поэтому было решено отойти от стандартной модели «одна комната — один выключатель» и расположить выключатели в тех местах, в которых человек проводит большую часть времени — около компьютера, кровати и дивана :)
Если интересно, вот план
image
И рендер
image
В конце-концов остановились на том, что выключатели в остальных комнатах останутся на месте, а вот в зале добавятся еще — два, около кровати и компьютера, как я уже говорил. Еще захотелось добавить возможность включать свет не на полную мощность, но, поскольку во всех люстрах стоят энергосберегающие лампы, было решено купить светильник под галогеновую лампу, для регулируемого ночника. Итогом стали три картинки, показывающих взаимное расположение всех светильников и выключателей в квартире.
image
Некоторые пояснения к картинке. Светильники и нагрузки обозначены красными надписями, управляющие элементы — синими.
Свет кухни и пульт №1 — это как раз то, о чем я рассказывал в предыдущем топике.
image
Конечно, большинство ламп находится на потолке, но при этом на плане они закрывали комнату, и смотрелось не очень понятно. Поэтому на картинках потолочные люстры оказались на стенах.
Под каждым названием — модель пульта или силового блока.
image
Вентилятор, хоть и не является освещением, все равно отмечен на плане — он управляется диммируемым блоком(на максимальной мощности слишком шумит).
А теперь мы попробуем со всей этой фигней взлететь
Для претворения этого дерзкого плана в жизнь нам понадобится…
image
Много-много коробочек. Точнее, не их, а их содержимого:
image
Я уже подробно разбирал, что в них в предыдущей статье, поэтому повторяться не буду.
Из нового — адаптер для управления с компьютера:
image
Внутри — диск с программой и сам передатчик.
image
Само-собой, надо разобрать.
image
Внутри — Attiny45 в качестве USB-интерфеса, и PIC12F675:
image
Адаптер определяется как HID-устройство, поэтому работает без драйверов(точнее с системными). Конечно, без программы не обойтись, но для линукса это определенно плюс, никакого kldload noolite.so. :)
Еще — карманный пульт-передатчик.
image
С 4 кнопками, 1 из которых служит для привязки-отвязки(D), 2 — включения-выключения и регулировки яркости(A,B), и еще одна — сценарная().
image
Кстати, с пультом очень удобно проверять работу при подключении всего этого добра, потому что настенный выключатель не так удобно таскать в кармане, и кнопка привязки не такая удобная.
Разберем, для чего необходимо выкрутить 3 винта на обратной стороне:
image
И аккуратно разделяем его на две половинки:
image
Вот плата поближе:
image
Контроллер — PIC16F630.
image
Все остальное без изменений, разве что добавился новый тип выключателей(слева) — с тремя сценарными кнопками.
image
Плюс их в том, что можно привязать к ним сколько угодно силовых блоков, а минус — в том, что если вам надо и включать и выключать свет — нужно будет задействовать две кнопки из трех — одну на включение, другую на выключение. Остается одна, и ее приткнуть часто некуда — если ее повесить на включение лампы, то с этого выключателя ее уже не выключить, и наоборот. Мне бы был удобен выключатель с одной кнопкой включения-выключения и с двумя сценарными, вроде PU212, только наоборот.
И еще новый силовой блок — диммируемый:
image

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

Вместо диммера вентилятора(да-да, с моими любимыми клеммами):
image
И закрываем розеткой:
image
В разрез провода освещения:
image
Провода выключатели соединяем между собой и замуровываем в стену — они нам больше не понадобятся.
Блок временно приклеиваем к потолку термоклеем.
image
Не обращайте внимания на потолок — у меня уже год вялотекущий ремонт, как только закончу ванну — там будет натяжной потолок.
Правда, силовой блок придется перенести куда-нибудь, потому что для настройки нужен физический доступ.
Еще один — в люстру в зале:
image
И блок — в настенный светильник, это будет ночник:
image
После этого настала очередь выключателей. Тот, который на кухне — вы уже видели.
image
В зале, над диваном:
image
Еще один — около компьютера, чтобы не вставать лишний раз:
image
Около кровати:
image
И около ванной:
image
Последний выключатель занял свое место на входной двери:
image
Как оказалось, очень удобно, выходя из квартиры — выключить все освещение, чтобы оно не светилось зря, а приходя обратно — с порога включить на кухне и в зале — чтобы не бродить в потемках с пакетами.
Сервер(полуживой x120e без клавиатуры) занял свое почетное место в ящике тумбы (потому что шумит зело):
image

Управляем с компьютера

Скачиваем и устанавливаем программу для управления контроллером. Втыкаем в компьютер адаптер управления.
Запускаем программу, нажимаем кнопку настройки, и привязываем каналы к силовым блокам. На самом деле наоборот — привязываем силовые блоки к каналам — в память блоков записывается уникальный адрес адаптера, для того, чтобы он не спутал его с адаптером соседа.
image
Процедура проста — нажимаем кнопку на силовом блоке, нажимаем «Привязка» в программе, после того как светодиод на блоке начал мигать быстро — подтверждает привязку еще раз нажав на кнопку блока, и выходим из режима привязки — нажимаем кнопку еще раз. Повторяем для всех блоков. Это надо сделать один раз, и при смене компьютера делать не надо — настройки сохраняются в силовых блоках. Максимальное число каналов — 8 штук.
image
Однако, такое управление с компьютера недостаточно функционально, и подходит, пожалуй, только для управления нагрузками — светотехникой, например. Ну, там, включить стробоскоп, выключить световую голову, включить прожектор, включить подсветку сцены, выключить световую заливку, включить лазер. Но не для умного дома — кому захочется каждый раз подходить к компьютеру, включать программу и тыкать мышкой?
Для нормального применения в умном доме разработчики предлагают открытое API(для windows — запуск программы с параметром -api, для остальных операционных систем — передача посылок напрямую HID-устройству).
А в качестве красивой панели управления — можно использовать проект MajorDoMo (о нем уже писали на хабре, а сам разработчик присутсвует на хабре — Jey).
Установка MajorDoMo и настройка в качестве панели управления для Windows

Установка MajorDoMo и настройка в качестве панели управления для Windows

Идем на страницу загрузки, и скачиваем последнюю версию системы. Устанавливаем (надеюсь, эта стадия вопросов не вызовет).
После запуска MajorDoMo (Пуск-Программы-MajorDoMo или c:/_majordomo/start.bat, кстати, внесите его сразу в автозапуск — сам запускаться не будет) переходим в браузере на страничку системы — localhost или по ip адресу, у меня это 192.168.1.104. В верхнем углу нажимаем на ссылку «Панель управления», заходим под стандартным логином admin/admin.
В панели управления заходим в раздел сценарии(слева, в блоке «Обьекты»), и создаем новый сценарий(если у вас несколько блоков, то можно сначала создать категорию для сценариев — Категории — Добавить категорию).
Называем его, допустим, hall_light, выбираем ранее созданную категорию, а в коде пишем следующее:
if ($params['VALUE']) {
 safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -on_ch5');
   sleep(1);
} else {
 safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -off_ch5');
   sleep(1);
} 

Согласно описанию команд программы управления — ключ api указывает на то, что программа запускается без графического интерфейса, ключи on_ch5 и off_ch5 — соответственно, включение и выключение нагрузки на 5 канале. Еще есть ключ sw_ch5 — он переключает состояние нагрузки, т.е. была включена — выключится, и наоборот.
image
Сохраняем сценарий, нажав кнопку «Добавить» под окном редактора. Создаем сценарии для всех каналов, которыми хотим управлять.
Переходим в пункт «Меню управления»
image
Нажимаем «добавить новый раздел», обзываем его как-нибудь, внизу жмем «добавить».
image
Страница перегружается, появляется вот такая менюшка, там же, внизу страницы. Добавляем новый дочерний пункт, обзываем его, в пункте «Тип» выбираем «Выключатель», а в пункте «Сценарий» — тот сценарий, который мы создали на предыдущем шаге. Сохраняем. Создаем выключатели для всех сценариев (для этого удобно пользоваться кнопкой «клонировать»).
Переходим в основной интерфейс, заходим в созданный раздел и видим сбоку удобную менюшку с переключателями. Ее же можно увидеть, если перейти по адресу localhost/menu.html
image

Управление в Linux

После того, как из-за моих кривых рук винда третий раз за день зависла, я плюнул на это и перевел сервер на линукс. А еще я решил, что MajorDoMo слишком крута для моих целей — получить панель управления с кнопками.

Собираем программу управления:
sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev
cd /tmp
wget https://raw.github.com/pythonchik/nooLite/master/nooLite.c
gcc nooLite.c -o noolite -lusb-1.0 
sudo cp /tmp/noolite /usr/local/bin/
sudo chmod +x /usr/local/bin/noolite 

Взято вот тут.

Управлять вот так:
sudo noolite -api -on_ch 5 # Включить 5 канал
sudo noolite -api -off_ch 5 # Выключить 5 канал
sudo noolite -api -sw_ch 1 # Сменить состояние 1 канала
sudo noolite -api -set_ch 2 30 # Установить мощность второго канала в 30%


Конечно, первые пару раз логинится по ssh на сервер для того, чтобы выключить свет консольной командой прикольно, но жена не оценила душа требует чего-то простого. Сделаем веб-морду. Ну, скорее веб-мордочку.

Код на php, который умеет принимать три параметра и запускать программу управления:
<?
$channel=($_GET['channel']);
$command="-".($_GET['command'])."_ch";
$level=($_GET['level']);
exec("noolite -api $command $channel $level");
?>
Создаем файл в корне веб-сервера, обзываем его index.php, копируем в него вышеприведенные строки, а ниже — ссылки, которые будут исполнять роль кнопок.
<a href="?channel=5&command=on" >Включить основной свет</a>
<a href="?channel=5&command=off" >Выключить основной свет</a> 
Добавляем CSS по вкусу. Получается что-то такое:
image
Скучный код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>NooLite control panel</title>

<style type="text/css">
.light {
    -moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
    -webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
    box-shadow:inset 0px 1px 0px 0px #ffffff;
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
    background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
    background-color:#ededed;
    border:2px solid #dcdcdc;
    display:inline-block;
    color:#8a8a8a;
    width:200px
    min-width: 200px
    font-family:arial;
    font-size:14px;
    font-weight:bold;
    padding:7px;
    text-decoration:none;
}.light:hover {
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
    background:-moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
    background-color:#dfdfdf;
}.light:active {
    position:relative;
    top:1px;
}


.dark {
    -moz-box-shadow:inset 0px 1px 0px 0px #dedede;
    -webkit-box-shadow:inset 0px 1px 0px 0px #dedede;
    box-shadow:inset 0px 1px 0px 0px #dedede;
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #969496), color-stop(1, #a5a6a3) );
    background:-moz-linear-gradient( center top, #969496 5%, #a5a6a3 100% );
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#969496', endColorstr='#a5a6a3');
    background-color:#969496;
    border:2px solid #bebfbd;
    color:#ffffff;
    width:200px
    font-family:arial;
    font-size:14px;
    font-weight:bold;
    padding:7px;
    text-decoration:none;
}.dark:hover {
    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #a5a6a3), color-stop(1, #969496) );
    background:-moz-linear-gradient( center top, #a5a6a3 5%, #969496 100% );
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#a5a6a3', endColorstr='#969496');
    background-color:#a5a6a3;
}.dark:active {
    position:relative;
    top:1px;
}

</style>
<head>
<body>
<h1>NooLite control light panel</h1>

<div>
<p><h3>Зал:</h3></p>
<p>
<a href="?channel=5&command=on" target="invisible" class="light">Включить основной свет</a>
<a href="?channel=5&command=off" target="invisible" class="dark">Выключить основной свет</a> 
</p>
<p><h3>Кухня:</h3></p>
<p>
<a href="?channel=3&command=on" target="invisible" class="light">Включить свет №1</a>
<a href="?channel=3&command=off" target="invisible" class="dark">Выключить свет №1</a> 
</p>
<p>
<a href="?channel=4&command=on" target="invisible" class="light">Включить свет №2</a>
<a href="?channel=4&command=off" target="invisible" class="dark">Выключить свет №2</a> 
</p>
<p><h3>Туалет:</h3></p>
<p>
<a href="?channel=2&command=on" target="invisible" class="light">Включить свет</a>
<a href="?channel=2&command=off" target="invisible" class="dark">Выключить свет</a> 
</p>
<p>
<a href="?channel=1&command=on" target="invisible" class="light">Включить вентиляцию</a>
<a href="?channel=1&command=off" target="invisible" class="dark">Выключить вентиляцию</a> 
</p>
<iframe name="invisible" style="border:0; width: 0; height: 0;"></iframe>


</body>
</html>

<?
$channel=($_GET['channel']);
$command="-".($_GET['command'])."_ch";
$level=($_GET['level']);
exec("noolite -api $command $channel $level");
?>



Теперь все отлично, но чего-то не хватает. Неудобство — то, что при таком использовании устройство, которое показывает страничку, обязательно должно находиться в домашней сети. А если это телефон, на котором выключен Wi-Fi?
Разблокировать, включить WiFI, дождаться включения, зайти на страничку, нажать кнопку, выключить WiFI…

Настраиваем доступ из интернета

Модифицируем немного код для того, чтобы нельзя было выполнить произвольный код, передав нужный GET-параметр.
Острожно, страшнейший быдлокод. Пишу на PHP второй раз в жизни
Если кто-нибудь сможет подсказать, как проверить принадлежность переменной списку разрешенных команд, буду благодарен. Задавать вопрос по такой мелочи не хочется.
<?
if(isset($_GET['channel']) && $_GET['channel'] == '1'){
$channel=($_GET['channel']);
}
if(isset($_GET['channel']) && $_GET['channel'] == '2'){
$channel=($_GET['channel']);
}
if(isset($_GET['channel']) && $_GET['channel'] == '3'){
$channel=($_GET['channel']);
}
if(isset($_GET['channel']) && $_GET['channel'] == '4'){
$channel=($_GET['channel']);
}
if(isset($_GET['channel']) && $_GET['channel'] == '5'){
$channel=($_GET['channel']);
}

if(isset($_GET['command']) && $_GET['command'] == 'on'){
$command="-".($_GET['command'])."_ch";
}
if(isset($_GET['command']) && $_GET['command'] == 'off'){
$command="-".($_GET['command'])."_ch";
}
if(isset($_GET['command']) && $_GET['command'] == 'set'){
$command="-".($_GET['command'])."_ch";
}

if(isset($_GET['level']) && $_GET['level'] == '0'){
$level=($_GET['level']);
}
if(isset($_GET['level']) && $_GET['level'] == '20'){
$level=($_GET['level']);
}
if(isset($_GET['level']) && $_GET['level'] == '40'){
$level=($_GET['level']);
}
if(isset($_GET['level']) && $_GET['level'] == '60'){
$level=($_GET['level']);
}
if(isset($_GET['level']) && $_GET['level'] == '80'){
$level=($_GET['level']);
}
if(isset($_GET['level']) && $_GET['level'] == '100'){
$level=($_GET['level']);
}

exec("noolite -api $command $channel $level");

Остальная страница остается без изменений. Для дальнейшего нам потребуется любой сервер с белым IP, и возможностью доступа по SSH. Настраиваем проброс портов.
На внешнем сервере выполняем:
echo "GatewayPorts=yes" >>  /etc/ssh/sshd_config
На локальном сервере(в который подключен адаптер, и на котором веб-сервер слушает порт 80) выполняем:
ssh vvzvlad@servername -R 8080:localhost:80 
Теперь, открыв страницу http://servername:8080/ мы увидим ту же самую локальную страницу, доступную из интернета.Время срабатывания команды — около секунды.

Последний штрих — защищаемся от обрыва соединения(на локальном сервере):
cd ~/.ssh/
sudo ssh-keygen -t dsa #генерируем ключ для входа без пароля
scp id_dsa servername:~/.ssh/authorized_keys #копируем его на сервер
echo "PubkeyAuthentication yes" >> /etc/ssh/ssh_config
ssh servername -t echo "PubkeyAuthentication yes" >> /etc/ssh/ssh_config #разрешаем логин по ключу
И помещаем в автозапуск любым удобным вам способом:
autossh vvzvlad@servername -R 8080:localhost:80
Вообще, компьютер тут не нужен, для «управления через веб» хватит любого роутера с USB(благо, они все сейчас работают на линуксе). Делается абсолютно тоже самое — собирается програмка, пишется настраиваемый интерфейс(даже php не надо, можно вполне обойтись любым языком, или даже bash, исполняемым через CGI), и настраивается проброс порта на единый сервер(от него не требуется ничего, кроме как работать в качестве туннельного сервера и авторизовывать пользователя — чтобы по ошибке свет не выключали, набрав не тот адрес). Пользователь получает маленькое устройство без вентилятора, которое обеспечивает управление через веб-интерфейс в локальной сети, а при регистрации на сайте производителя — личную веб-страничку с авторизацией по паролю. Логинишся — и получаешь возможность управления нагрузками из любого места.

Пишем приложение для Android

Ну как, пишем. Ни строчки кода написано не было, не считая ссылок. Если это кому-то интересно, я лучше напишу отдельную статью, чем буду тут еще простыню делать. Коснусь только основных моментов:
Идем на beta.appinventor.mit.edu, создаем новое приложение. Закидываем в форму несколько кнопок, чтобы получилось нечто такое:
image
Не забываем добавить компонент Web. Жмем кнопку «Open in block editor». Скачиваем файл, запускаем его(нужна джава).
Перетаскиванием блоков по экрану и соединением их, добиваемся того, чтобы нажатие каждой кнопку приводило к запросу на соответствующий адрес. Как-то так:
image
Потом копируем программу на телефон(Package for phone — download to this computer). Запускаем.
image
Правда, почему-то при нажатии кнопки в приложении, свет включается не через секунду, как при работе с веб-страничкой, а через 3-4 секунды. Подозреваю, что задержка исчезнет, если нормально написать программу, но на это меня не хватило.

Делаем световой будильник или управляемый ночник

image
Существует целый класс устройств, чье предназначение заключается в том, чтобы в определенное время плавно начать поднимать яркость светильника — световые будильники. Так как яркость лампы поднимается плавно, и в течении длительного времени (как правило, от 30 минут до часу), то яркий свет не бьет по глазам, а позволяет спокойно проснуться. Производит такие будильники, например, филипс. А мы чем хуже? Достаточно немного лишь написать небольшой скрипт.
Тоже не самый оптимальный код. Смотреть на свой страх и риск
#!/bin/bash
channel=8 #канал ночника
s=0
case $1 in
"inc")
i=0
e=100
[[ $4 == v ]] && echo Шагов: $[100/$3], Время работы $[$2*100/$3] секунд

while [ $i -lt $e ]
do
  noolite -api -set_ch $channel $i
  i=$[$i+$3]
  s=$[$s+1]
  sleep $2
  [[ $4 == v ]] && echo Шаг $s, текущая яркость: $i
done
[[ $4 == v ]] && echo Конец программы.
exit 1
;;
"dec")
i=100
e=0
[[ $4 == v ]] && echo Шагов: $[100/$3], Время работы $[$2*100/$3] секунд
while [ $i -ge $e ]
do
  noolite -api -set_ch $channel $i
  i=$[$i-$3]
  sleep $2
  s=$[$s+1]
  [[ $4 == v ]] && echo Шаг $s, текущая яркость: $i
done
[[ $4 == v ]] && echo Конец программы.
exit 1
;;
"help")
echo "noolite-candle [inc,dec] second step v"
echo "inc - постепенное увеличение яркости"
echo "dec - постепенное уменьшение яркости"
echo "second - промежуток между измениями яркости в секундах"
echo "step - шаг изменения яркости (1-100)"
echo "v - показывать отчет по каждому изменению"
echo "например noolite-candle inc 2 1 - увеличение яркости с 0 до 100 с шагом в 1(1,2,3,4...) каждые 2 секунды. Время работы 200(2*100) секунд."
exit 1
;;
*)
echo "Используйте параметр help для получения справки"
exit 1
;;
esac
Как им пользоваться — ясно из кода, или из встроенной справки, если запустить скрипт с параметром help.
Например, если нам надо проснуться в 9 утра, то его следует запустить в 8.30 с такими параметрами:
./noolite-candle inc 18 1 
Или в 7 утра, вот так:
./noolite-candle inc 36 1 
При такой команде яркость будет постепенно нарастать в течении часа.
image
Тут видны резкие изменения яркости, потому что была использована команда noolite-candle inc 1 10 — т.е. за один шаг яркость увеличивалась на 10%. Если принять за шаг 1%, то изменение яркости очень плавное.
И конечно, в качестве «ночника» может выступать сколько угодно светильников, или даже люстра, если в ней лампы накаливания или диммируемые энергосберегайки.

Плюсы

  • Стоимость
Всего было использовано:
1 адаптер для компьютера — PC118 — $50
5 силовых блока SL-111-200 (для обычных светильников) — $17,5*5
1 силовой блок SN-111-200 (для ночника) — $17,5
1 силовой блок ST-111-200 (для вентилятора) — $17,5
3 пульта управления PU-313-1 — $16,1*3
3 пульта управления PU-312-1 — $16,1*3
1 пульт-брелок PN313-1
Таким образом, затраты составили: 50+17.5*7+16.1*6=$270

Аналогичное по характеристикам электроника протокола X10, судя по расчетам на сайте (5 точек управления освещением, 2 точки с изменением яркости, управление с настенных беспроводных выключателей, управление с компьютера и телефона) обойдется в 24140 рублей.
Конечно, надо учесть еще стоимость компьютера-сервера, но, думаю, возможность найти старый компьютер или ноутбук проблем не составляет.
Как видно, решение получилось довольно бюджетное.

  • Легкость в установке и настройке
Не требует никаких особых навыков, кроме умения зачистить и соединить два провода с помощью клемм Wago-222, или им подобных. Панели управления хорошо прикрепляются даже на комплектную липучку, или, в крайнем случае — придется сделать дырки в стене дрелью.
Привязка — очень проста, несколько нажатий кнопок. Установка и настройка программы — тоже не вызывает проблем. Установка и настройка сервера для неподготовленного человека могут вызвать трудности, но все так же решаемо.

  • Одновременная работа двух систем
Вместе с полноценным управлением с компьютера сохранилась возможность выключать и включать свет обычными выключателями, расположенными на тех же местах.

  • Возможность установки без переделки и расширяемость
Нет необходимости долбить стены, прокладывать управляющую проводку, или вести питание для каждой точки к щитку. Конечно, решение не такое надежное и гибкое, как «классическая» система умного дома — когда все потребители в виде освещения и систем подключаются напрямую к управляемым реле, расположенным в щитке, а выключатели по слаботочной проводке эти самые реле коммутируют. Подробнее — можно прочитать тут и тут. Но зато оно и не такое трудоемкое и дорогое.
К тому же, не надо продумывать план идеально заранее — в любой момент легко добавить еще один выключатель или блок управления. Легко забрать с собой при переезде.

Минусы

  • Сенсорные выключатели
Для меня это не минус, я привык за пару дней — достаточно помнить какой из трех выключателей за что отвечает, и нащупать пальцами край выключателя — уверенно включаю свет даже в темноте. А вот жена до сих пор жалуется — обычные выключатели были гораздо удобнее, говорит. Не понимаю, что мешает сделать выключатель пусть даже не с переключаемой, а с тактовой кнопкой — логика не изменится, а удобства добавится. Похоже, мне придется разобрать пультик и сделать из все-таки не-сенсорный выключатель для туалета. Ночью вставать.

  • Отсутствие обратной связи
Так как блоки не имеют никакого передатчика, только приемник — сказать о своем состоянии они не могут. Соответственно, панель управления на компьютере не знает о текущем состоянии — включена или выключена нагрузка, что ограничивает применение.

  • Малые возможности настройки.
Я уже об этом писал. При использовании сценарных выключателей — приходится занимать 2 кнопки из 3 только под «выключение-включение». Я бы добавил вторую функцию(например, на жест от одного выключателя к другому, или на двойной клик), или увеличил бы количество выключателей.

Итоги

Отличное решение начального уровня для построение системы управление освещением и нагрузками. Такое вполне себе «конструктор для взрослых». Хочешь — светильники через интернет включай, хочешь — ночник управляемый делай, хочешь — умный дом с голосовыми командами и включением света по расписанию.
Мне нравится :)

Если у вас нет аккаунта на Хабрахабре, вы можете читать и комментировать наши статьи на сайте BoxOverview.com
Что вы ожидаете от умного дома (можно выбрать несколько вариантов)?

Проголосовало 824 человека. Воздержался 131 человек.

В каком направлении двигаться разработчикам?

Проголосовало 817 человек. Воздержалось 166 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Автор: @vvzvlad
Box Overview
рейтинг 55,05
Компания прекратила активность на сайте

Комментарии (80)

  • –70
    лучше бы квартиру побольше купил
    • +7
      Почти уверен, что и ваша, в 3D, покажется такой же маленькой. Я тоже удивился, как я живу в своей, когда составил подобный план.
      • 0
        Просто тогда не пришлось бы высасывать из пальца, что автоматизировать, только и и всего.
    • +8
      За 270$? Конуру если только…
    • +1
      Для одного-двух человек без детей вполне себе нормальная квартира.
      • 0
        А как вам гостинка 14 квадратов, включая туалет, ванну, коридор(кухня в нем же) на двух человек? Наша предыдущая квартира.
        • 0
          Не знаю. Просто я сам на 33 квадратах живу. А дом, где всё детство провёл, и того меньше — 26 квадратов. При этом ещё и печка приличную часть кухни занимает.
          • 0
            Аналогично. 33 кв.м. + совмещенный санузел. Очень интересно было играть в дизайнера, чтобы расставить в одной комнате шкаф + 2 дивана + детская кроватка + большой рабочий стол :)
    • 0
      Лучше бы ты голову дома забыл.
  • +8
    Легко забрать с собой при переезде

    Вот новые хозяева обрадуются =)
  • +1
    >> Отсутствие обратной связи

    Это пожалуй самый большой для меня минус. Есть ли какие-нибудь мысли о реализации этой функции?
    • 0
      Датчики света. Или напряжения, тупо оптопара через резистор. Но, опять же — провода к каждой точке, то от чего хотелось бы избавиться.
      • 0
        Посылка импульса по протоколу UPD.
        • 0
          Я говорил о том, как это добавить в домашних условиях. Понятно, что разработчикам это проще. Вот только это надо в силовой блок добавить передатчик, а в адаптер для компа — приемник.
          • 0
            Рискну предложить операции на низком уровне. On-off обратная связь. Сигнал отправлен — сигнал принят.
            • 0
              Чтобы отправить «сигнал принят», надо в силовой блок добавить передатчик. Сейчас его там нет, просто приемник.
              • 0
                Имею ввиду протокол передачи данных. То есть: Данные отправлены — Данные приняты
                • 0
                  Протокол физического уровня, или программного — до передатчика компьютера?
                  • 0
                    Программного, конечно. Это в дебрях стандартов. Я не изучал IEEE. Передатчик отправляет сигнал на устройство. Устройство как-нибудь сигнализирует о том, что сигнал был успешно принят или не принят? Например, в TCP/IP это есть.
                    • +1
                      Если вы говорите про устройство — то это уже физический уровень. Подтверждение можно запросить вплоть до передатчика, включенного в компьютер, т.е. понять была ли им отправлена команда или нет. Дальше — физический уровень без обратной связи, радиопередатчик просто отправляет пакет с номером канала и командой, а кто на нее откликнулся — уже не узнаем, кроме как по изменению освещения.
                      • 0
                        А, ну да.
                        > Бит 5..7 – количество повторов команды (0..7)
                        Видимо, вообще без намёков на обратную связь.
      • 0
        Тогда уж сразу взять z-wave и не мучиться. Там обратная связь из коробки есть.
    • +1
      Поддерживаю. Пока читал — собирался купить попробовать (больно цена привлекательна по сравнению с Z-Wave или X10), но увидев, что нет обратной связи… Без нее не построить настоящий умный дом. Увы…
    • +1
      ninjablocks?
  • +2
    Смущает один момент — различный функционал у сенсорных панелек в каждой комнате. Не путаетесь?
    • 0
      Нет, запомнил быстро, за пару дней.
  • 0
    судя по пульту, несущая 433МГц? модуляция как и в автосигнализации?
  • 0
    бюджетненько, но я в новый дом все же планирую ставить z-wave
  • +1
    Да, сенсор не очень удобная вещь. Особенно спросонья.
    А дальность действия какая? что-то не увидел в характеристиках.

    Re: Острожно, страшнейший быдлокод. Пишу на PHP второй раз в жизни
    <?php
    
    	// допустимые значения
    	$vars = array( 
    		'channel' => array('1', '2', '3', '4', '5'),  // range(1, 5);
    		'command' => array('on', 'off', 'set'),
    		'level' => array('0', '20', '40', '60', '80', '100'),
    		);
    	// переменные для выполнения + значения по умолчанию
    	$vals = array(
    		'command' => 'on',
    		'channel' => '1', 
    		'level' => '0',
    	);
    	$error = false;
    
    	foreach( $vars as $k => $allowed ) {
    	
    		if ( isset($_GET[$k]) && in_array($_GET[$k], $allowed) )
    			$vals[$k] = $_GET[$k];
    		else 
    			$error = true; // элементарная проверка на ошибки
    	}
    	
    	if ( !$error ) exec("noolite -api " . implode(' ', $vals));
    
    ?>
    

    • 0
      Все, это уже за гранью моего понимания. Но все равно спасибо, хоть такого ужаса не будет.

      Дальность — как минимум 10 метров + внешняя стена дома(правда, в ней окно). Дальше не отходил.
      • 0
        Кстати, не измеряли энергопотребление блока в «ждущем режиме»?
        • 0
          Нет. Но греется он совсем чуть-чуть, меньше ватта.
    • 0
      Вот тут неправильно, надо добавить символы до и после команды.
      $command="-".($_GET['command'])."_ch";
      Как поправить в вашем коде, я не понимаю :)
      • +1
        :) никак. Проморгал.

        Хотя бы поставьте после цикла:
        $vals['command'] = '-'. $vals['command']. "_ch";
        • 0
          Да, заработало.
  • 0
    А как прятали блок при подключении люстры?
    • 0
      Никак, он там и висит, на фото видно. Но там есть пространство, в том месте, где она к потолку прикручивается.
      • 0
        В это пространство вмещается? Визуально кажется, что не вместится.
        • 0
          Помещается, я пробовал. Просто неудобно тогда его привязывать — чтобы нажать кнопку, надо с креплений скручивать. Пока так оставил, как все утрясется, запихну. Или нет, если лень будет.
  • +2
    За хороший обзор продуктов наших соседей белорусов автору спасибо, но хочется написать не об этом.

    Вот сколько читал материалов по теме «умный дом», а также смотрел презентации различных компаний, которые эти умные дома делают… Все сводится к включению/выключению розеток и света дистанционно. И где тут ум у дома проявляется? В чем новизна? В чем автоматизация?
    Вот если бы дом угадывал настроение хозяина и включал соотвествующий плейлист, выставлял яркость освещения и еще что-то делал… тут уже были бы зачатки автоматизации =).

    Чем вот такие кулибины лучше тех, что в сколково сидят? Громкие названия, зачастую не отражающие сути «изобретения», и совершенно примитивные решения. Статью можно было бы назвать «организация дистанционного управления освещением». Не так круто, зато заголовок отражал бы суть описанного.
    • +2
      Так в умном доме 80% — программа, на то он и умный. Вот Majordomo двигается в этом направлении, и вполне юзабельно.
    • 0
      Москва не сразу строилась. Соглашусь с вами насчёт популярного понятия. Но в данном случае, мы имеем недорогое и многофункциональное устройство удалённого управления (применение ограничено фантазией). Самое простое — это система освещения помещения. Да и бытовое устройство жилья не способствует развитию возможностей устройства. Это же не лаборатория Кибердайн Системс.
      • 0
        Даже в освещении помещений «умности» может быть очень много — авторегуляция света при изменении времени наступления темного времени суток, в зависимости от присутствия и поведения человека внутри помещения, экономия электричества (это вообще основное, по идее).
  • +1
    А существует аналог такой же простой системы, чтобы по уходу/возвращению кнопкой перекрывать все воду по квартире?
    • –1
      Может проще подтекающие краны поменять?
      • +1
        Дело не в кранах, а в гибких подводках к кранам, или к стиральной машине. Это самое слабое звено.
        • 0
          [off]Не знаю как насчёт подводки к машине — но ко всем остальным кранам я заменил на изделия из отожжёной меди. И на этом забыл об этих «слабых звеньях»[/off]

          Практически в любой фирме, что ставит систему «аква-стоп» или подобную — можно купить отдельно краны с электросервоприводами. А уж как эти сервы задействовать — уже следующий вопрос.
    • 0
      Есть защита от протечек, если вас это интереусет. Какой нибудь аквасторож, автоматически перекроет кран, при протечке.
    • +1
      Любой управляемый клапан(они работают от 12 или 220 вольт), и силовой блок на каждый клапан. Это если кнопкой хочется. Таким же макаром можно отопление регулировать — отрубать батарею по достижению нужной температуры, если завести управление по данным с термодатчиков на комп. А если именно защита от протечек, то аквасторож и иже с ним. Вот, например, опять же AlexeyNadezhin писал.
      • 0
        Недавно была статья на хабре, где как раз фигурировали управляемые клапаны и обвязка, ссылку не могу найти, буду благодарен если напомните.
        • 0
          Вот тут в комментариях было.
  • –8
    Опять освещение… Ничего нового.
    • +4
      Ценность вашего комментария не поддаётся измерению.
      • +2
        Ну как же, "-4" ))
      • 0
        Не, на самом деле: я давно интересуюсь тематикой «умных домов» и разными проектами в рамках этой идеи. Пока как-то печально, у всех освещение да климат — нет бы roomba интегрировать с центральным сервером, или стиралку-автомат, ну или хотя бы кофеварку.
        • 0
          Много ли в домашней обстановке найдётся того, что можно было бы автоматизировать, научить уму разуму? Имеется ввиду обычная такая, городская квартира. Жена, конечно, не считается. Про медийные устройства можно тоже не говорить, там своё нехилое производство. В основном, к этому можно причислить процессы. Как то: уборка, приготовление пищи, охрана помещения. Но для реализации этого, одними силовыми блоками не обойдёшься. Хитросплетения электроники и машиностроения. Естественно, хочется самолёт, но возможностей хватает только на модельку. Как-то так вот.
  • 0
    Отличный обзор!
    Но вот сенсоры да, к ним привыкнуть нужно, поэтому в качестве основного выключателя я бы использовал традиционную механику, а как вспомогательные пульты уже можно и такие сенсоры ставить.
    Если ребята из Ноотехники ещё сделают USB-приёмник, чтобы можно было перехватывать сигнал от пульта и менять статус объекта освещения в той же MajorDoMo, то вообще здорово получится — тогда можно и без обратной связи в самом силовом блоке обойтись :)
  • 0
    Вопрос: а чтобы управлять «двухканальной» люстрой, то есть, типа 5 рожковой, у которой 3 и 2 лампы включаются независимо, надо покупать два силовых блока, да? Или у них есть двухканальные блоки какие-нибудь?
    • 0
      Извините что вмешаюсь, но в чем проблема зайти на сайт производителя и посмотреть? Там же даже на русском языке. Автор же вроде бы не является евангелистом на зп или региональным представителем, чтобы отвечать на вопросы потенциальных покупателей, не связанных напрямую с его внедрением (и легко получаемые с оф. сайта)?
      • 0
        Я зашёл, посмотрел. Не нашёл «двухканальных» и решил спросить, какой вариант верный: я просто не нашёл, но они есть или я их не нашёл, потому, что их нет?
  • 0
    Статья интересная, автору спасибо.

    А вот про сами устройства… Для себя сравниваю с Z-Wave. Минусы:
    1) Нигде ничего не увидел про безопасность. Значит, ее там нет с вероятностью 99%.
    2) Мне не совсем понятно будут ли устройства мешать друг другу в многоквартирном доме (вспоминая радиотелефоны Panasonic).
    3) Нет обратной связи, но она и не всегда нужна.
    4) «При 4-х нажатиях в день на год хватает батарейки.» — так я каждые 4 месяца буду их менять примерно. Мало.
    5) По фото сложно понять, но многих смущают сенсорные кнопки. Действительно ли будет удобно их в темноте искать.
    6) По функционалу системы (фактически только свет) можно сделать вывод, что она пока что на поиграться (WOW-фактор). Реальный умный дом начинается с экономии (температура в помещении, свет и так люди выключают), безопасности (датчики протечки воды и газа, возможно пожара) и температурного комфорта (датчик температуры, регуляторы батарей и котла). Когда холодно или жарко свет кнопкой включать прикольно, но не первостепенно.

    Плюсы:
    1) дешевле в 2 раза тот функционал, что есть.

    В итоге система получше того, что есть в каком-нибудь Леруа Мерлен тем, что позволяет связывать комплекты между собой и даже подключать к компьютеру для более сложных сценариев. Но реальное применение пока что весьма специфично, сам буду все-таки начинать с системы климат-контроля, затем протечек. А свет пока что по старинке, переключателем.
  • 0
    Кроме уже перечисленных недостатков могу отметить не слишком удобный пульт управления, в таком формате он хорош для автосигнализации, когда его пристёгиваешь к ключам как брелок, а вот как выключатель света маловат. Дизайн выключателей конечно ещё тот… Далеко не к каждому интерьеру подойдёт. Кроме того, не думаю что нащупывать нужный угол клавиши в темноте — удобное занятие! Плюс конечно бюджетность.
  • 0
    Задал авторам nooLite вопрос относительно защиты системы от «прослушки» и постороннего нелегального управления нагрузками, а так же спросил используется ли шифрование в протоколе.
    Пока ответа нет, ждемс…
    • 0
      Вопрос в тех. поддержку УП «Ноотехника»: Насколько защищен радио-протокол системы nooLite от «прослушки» и постороннего нелегального управления нагрузками путем перехвата? Используется ли шифрование в протоколе?

      Ответ: Не защищен, шифрования нет. Только проверка контрольной суммы для исключения случайных срабатываний.
      • 0
        Поэтому и $17
        • 0
          Поэтому он и за $2 не нужен, ибо я не хочу чтобы сосед дядя Вася мог управлять лампочками в моей квартире или еще чем-то более важным.

          Поражает глупость народа, которые вначале хватают товар, ставят в квартиру, а только потом задумываются о безопасности.
          • 0
            Я не заметил что бы автор подмимал панику по безопасности в отличии от Вас. Ну и «если за Вас нет паранои, то это не значит что за Вами не следят.» Я бы с удовольствием поставил такие выключатели, шансов что у «дяди Васи» окажутся такие же выключатели минимальны, как и то, что кто-то специально будет сканировать все диапазоны в поиске лазейки для пакостей.
            • 0
              Если у соседа окажутся такие же, вы друг друга даже не заметите, там авторизацию по серийному номеру есть. Вот против хулиганов действительно защиты нет, но у такого варианта вероятность еще меньше.
  • 0
    Чтобы жена не жаловалась прицепите к выключателю небольшую стразину на липучке и все будет пучком.
  • 0
    Вопрос к счастливым обладателям системы: предположим, что вы всё установили, настроили сценарии, привязали пульты, всё замечательно работает и радует вас. Но тут в доме часа на три отключают электричество. Что произойдёт в этом случае? Снова привязывать пульты к блокам управления?
    У меня несколько ламп в квартире управляется похожей системой, так вот она при отключении электроэнергии «забывает» все пульты, приходится настраивать всё снова. Это очень неудобно.
    NooLite в общем-то устраивает по функционалу, подумываю о полном переводе управления светом в новой квартире, но хотелось бы избежать неприятных сюрпризов. Поэтому прошу подсказать, как обстоит дело с запоминанием настроек при отключении электроснабжения.
    • 0
      Запоминает. У меня месяц отключенный лежал блок, привязанный к пульту, и ничего не забыл.
  • 0
    Подскажите, возможно ли использовать только силовые блоки для управления освещением, и адаптер для компьютера, без использования пульта.
    Т.е. оставить стандартные выключатели, и при этом управлять светом через силовые блоки с компьютера?
    • 0
      Можно, но вот в чем проблема — выключатель для управления с компьютера должен быть включен. Выключив свет выключателем на стене, вы не включите его с компьютера. А выключив с компьютера — не получится включить выключателем.
  • 0
    За указанные деньги у этой системы нет недостатков, есть только особенности :-)
    А если серьезно, то автоматика может быть полезной в случаях:
    — если она позволяет связывать разные системы между собой и отрабатывать с этими системами сценарии,
    — если помещение достаточно большое, наполненное всяческой электроникой, то есть не бюджетный вариант.
    — если мы аккуратно считаем расход энергии. Причем скорее не с точки зрения «круто сэкономить», а потому, что энергии этой мало, и больше взять не откуда.

    Только освещение в небольшой квартире — мне кажется, сенсоры движения — присутствия в одном блоке с обычными выключателями решат 95% задач, если мы не отигрываем специальные световые сценарии. С которыми в обычной квартире напряженка :-)
  • 0
    Больше года пропользовался этими устройствами и обнаружил серьёзный, как мне кажется, недостаток. При подключении нагрузки с мощностью, больше мощности силового блока, он горит открытым пламенем. Я как-то по умолчанию надеялся на более безопасный сценарий.
    Но заменить, к сожалению, не чем. Такого сочетания цена-функции нигде не нашёл больше.
    • 0
      Надо попробовать. Неужели действительно загорится?
      • 0
        Меня рядом не было, но по словам уборщицы, которая туда утюг воткнула, загорелся с дымом. Дырочку в линолеуме проплавил.
        • 0
          Ага. Значит по факту — только дырочка в линолиуме? :)
          • 0
            Нет =). По факту обуглившийся девайс, дырочка и уборщица в панике. Но да, надо бы заказать лишний и провести эксперимент самому.
    • 0
      Ноолайт ответили. Защиты внутри нет, но можно использовать внешний предохранитель. Сама плата и корпус не горючи и горение не поддерживают. Так что в принципе не так всё страшно.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное