Пользователь
12,2
рейтинг
29 января 2014 в 10:59

Мой удобный дом из песочницы

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

То есть, умный дом — это дом, который может все. А удобный дом — это дом, который все, что может, делает сам.

Давайте сначала я просто похвастаюсь тем, что умеет мой дом сейчас, а вы решите, имеет ли смысл читать про мой местами горький (а местами очень даже ничего) опыт дальше, ок?




Базовые функции:

1) Управление четырьмя радиорозетками (это фоновый свет и планшет с акустикой);

2) Управление 8 кнопками четырех радиовыключателей света;

3) Перезагрузка маршрутизатора при пропадании интернета;

4) Включение и выключение веб-камеры;

5) Контроль 8 беспроводных датчиков ОПС (три датчика задымления, три датчика протечки, пара датчиков открытия двери);

6) Получение данных с двух метеодатчиков — в комнате и за окном (радиоканал и два сервисных контроллера на Arduino Pro Mini) — и передача их в интернет;

7) Управление ТВ, медиа-плеером и кондиционером (радиоканал + сервисный контроллер на Arduino Pro Mini, он же — метеодатчик);

8) Управление кормушкой для котов;

9) Контроль проводного датчика движения (“охрана” и сервисные функции);

10) Управление музыкой в ванной (это как в модных торговых центрах — зашел в WC, а там такая расслабляющая музыка);

11) Уведомление о событиях по электронной почте.

Сервисные функции (сценарии):

1) Автоматическое управление светом в гардеробе (крошечный чуланчик, по сути, можете снова меня любить);

2) Автоматическое управление светом в прихожей;

3) Автоматическое управление ночным освещением на кухне;

4) Автоматическое управление светом и музыкой в ванной;

5) Выключение всего, что выключается дистанционно, включение камеры и переключение датчика движения в режим охраны при выходе из дома; и выключение камеры с включением фонового света, света в прихожей и переключением датчика движения в предыдущий, перед охраной, режим по возвращении.

Управлять почти всеми (кроме безусловно автоматизированных) функциями можно с любого компьютера, со смартфона и планшета с Android через апп или голосом через связку аппов. По локальной сети или через интернет. Методика простейшая — команда передается POST-запросом (суть набором адреса в браузере).

С начала начал и по сейчас ядром системы остается плата Arduino Uno. Ее помощники — три сервисных контроллера из Arduino Pro Mini плюс пара радиореле в местах, где особый интеллект не требуется (кормушка, например, и музыка в ванной). Сценарии — частично в коде Arduino, частично — в Android-свистке, подключенном к ТВ. Свисток просто выдает нужные запросы в соответствии с расписанием.

Ну а сделал я это все с помощью массы умных парней, которые написали отличные инструкции и библиотеки, и, как ни удивительно, своих кривых рук.

Начало начал

Когда именно все это началось — сказать сложно. То ли, когда купил пачку радиоуправляемых розеток, то ли когда жена сообщила, что в этой их Японии “каждая лампочка на пульте ДУ”.

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

. вот такие клевые выключатели
image

Радио — это очень важно, поскольку на этапе ремонта я добросовестно пробакланил все эти умные штучки. Из всего слаботочного придумал только локальную сеть, а на остальное тогда не хватило ни ума, ни времени. Не рабочие попались, а просто стахановцы какие-то: еле успел им объяснить, что сеть прокладывается методом точка-точка, а не как телефон.

То есть, у меня не было выбора — проводка или радио. Только радио.

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

А именно — управлять радиорозетками в количестве четырех штук и радиовыключателями в количестве тех же четырех штук (восемь кнопок). Причем управлять по-всякому — локально, через интернет, с компьютера и телефона, кнопками и голосом. Отсюда и базовый комплект:

— Arduino Uno
— Ethernet-шилд (легендарный W5100);
— два блока по 4 реле с ключами для прямого подключения к Arduino;
— несколько комплектов АМ-приемника и передатчика 433 МГц.

Если вы считаете, что это загадка в стиле “вычеркни лишнее”, то все совсем не так. Дело том, что я не был уверен в укрощении розеток и выключателей, поэтому решил, что в крайнем случае просто привяжу имеющиеся пульты к реле. Грубо, зато эффективно. И не совсем стыдно — многие так делали.

По счастью, крайние меры не понадобились, но реле все равно оказались полезны. А позже список оборудования дополнился еще приемниками/передатчиками, несколькими платами Arduino Pro Mini, датчиками движения и россыпью беспроводных датчиков от простых китайских сигнализаций.

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

Только радио, только хардкор

На руках была библиотека RC-Switch, розетки, пульт их и Arduino Uno с приемником-передатчиком. На мое счастье, все совпало, так что мигание лампочками (а в розетки были включены фоновые светильники) вышло на принципиально новый уровень. Особенно, если учесть, что в примерах RC-Switch оказался очень полезный код с веб-сервером, так что управление розетками через интернет запустилось сразу же.

. кстати, о розетках — все ведь такие видели, правда?
image

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

В общем, я поступил как настоящий герой — пошел в обход. Оставил только веб-сервер с обработчиком команд, а сами команды стал держать в голове. У такого решения, конечно, полно недостатков, но есть и плюсы: если злой хакер все-же достучится до Arduino, то ему еще придется попотеть, чтобы выяснить, какую такую команду я придумал на включение света. Короче, настоящим секретом остается секрет, о котором никто не знает.

А вот с выключателями света вышла какая-то ерунда. То есть, они, конечно, очень клевые, но RC-Switch опознавать их отказалась. Китаец-продавец в ответ на вопросы о протоколе, как попугай отвечал “433 Mhz switch”. А то я на коробке не прочитал, что это 433 МГц свитч. Вскрытие пульта тоже ничем хорошим не закончилось: внутри просто какой-то PIC, то есть налицо признаки кастомного решения с непонятными перспективами.

Сначала я загрустил, а потом нашел не менее классную, чем RC-Switch, штуку — Protocol Analyzer. И хотя эта утилита не помогла разгадать загадку выключателей, стало ясно, в каком направлении нужно двигаться дальше. Так что собранный по случаю комплект из приемника и делителя использовал вместе с Audacity. И тут я многое понял.

Или, если точнее, не столько понял, сколько рассмотрел пакеты команд и посчитал зубочисткой количество импульсов и их длительность. Да вот, прямо зубочисткой, прямо на экране ноутбука. Протокол я тогда не понимал, поэтому тупо понажимал кнопки и закодировал соответствующие последовательности.

Забегая вперед — это потом смутные догадки и неясный зуд в мозгах оформился в библиотеку управления выключателями Livolo, которую позже более грамотные товарищи дополнили декодером команд родного пульта и портом всего этого хозяйства на Raspberry. Но сначала команды были закодированы по-русски бессмысленно и жестоко, т.е. принятую последовательность импульсов каждой используемой кнопки я банально перенес в код в масштабе 1:1.

Меня еще беспокоили оказавшиеся без дела реле. Бесцельно потраченных денег было жаль, так что реле прикрутил на питание модема (Huawei от МГТС удивительно часто вис) и веб-камеры (ну а чего постоянно светиться перед злыми хакерами?). Да, да, понимаю, это всего лишь два из восьми, но хотя бы что-то.

Возможно, вам будет интересно узнать, почему я упорно бился с АМ-передатчиками без коррекции ошибок и нормальной двунаправленной связи вместо того, чтобы использовать модные nRF* или XBee. Наверное, потому, что сначала я про них ничего не знал, и купил то, что подешевле. А потом так исторически сложилось: ведь вся периферия, которой я планировал управлять, использовала именно этот вид модуляции. И мне показалось не очень рациональным навешивать на Uno второй приемо-передающий комплект.

Потом стало еще интереснее. В какой-то момент я встретился взглядом (ну или чем там кнопки звонков встречаются с домовладельцами) с кнопкой беспроводного звонка и ощутил непреодолимое желание узнать, что там внутри. Оказалось — резонатор на 433 МГц и кодирующий чип той же системы, что и в радиорозетках.

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

. типичные китайские датчики (протечка и дверь)
image

. и внутри
image

Вы поняли, да? Я получил доступ к большому количеству недорогих и универсальных датчиков и периферийных устройств, с которыми мой контроллер уже мог работать без допиливания напильником.

Так что в итоге получился черный ящик, который мог управлять светом во всем доме, включать и выключать веб-камеру, уведомлять по почте, если кто-то звонил в дверь, следить за датчиками дверей, протечки и задымления, а заодно — перезагружать модем, когда пропадал интернет. Клево? Безусловно. Удобно? Оказалось, что не так удобно, как это вообще представлялось.

. ящик, такой ящик
image

.
image

И дело даже не в том, что нужно было держать в голове команды и набирать бесконечные POST-запросы в браузере. Не нужно ничего этого, потому что для смартфона, которым я планировал управлять, есть невероятный апп Tasker, в котором крайне легко (хотя и немного муторно, но с гуями так всегда) сделать пульт ДУ. Готовый пульт, кстати, элементарно экспортируется в отдельное приложение и таким образом происходит развертывание (во какие я слова знаю) системы на все телефоны и планшеты.

. не дизайнер я интерфейсов, не дизайнер
image

.
image

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

Удобный дом.

Дом должен быть удобным

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

Если у вас нет умного дома, придется раздеться и привести освещение порядок (а то и в туалет на дорогу заглянуть — плюс, в общем, кто спорит). Если у вас есть умный дом, то вы берете разумно оставленный в прихожей пульт или открываете дохрюкалась-замуровали панель управления. Опять же, если все грамотно, то для выключения всего света у вас будет одна кнопка. Но может быть и несколько. И если умный дом не очень грамотный, то и весь свет выключится сразу же.

И вы останетесь наедине с темнотой прихожей.

А я вот темноты опасаюсь, да и в кнопках-шнурках путаться не хочу. Поэтому на первом этапе естественного умнодомоводства снова обратился к теме беспроводных звонков. Так как я помнил, что кнопка звонка похожа на однокомандный пульт розеток, а команды этих пультов Arduino с RC-Switch принимает на раз-два, то кнопка звонка превратилась в кнопку “Я дома”.

Эта кнопка-триггер висит рядом с входной дверью. Нажимаем при выходе — и все, до чего может дотянуться домашний контроллер будет выключено через минуту. И тогда же будет включена веб-камера. Так что вполне себе есть время даже бросить взгляд в зеркало и спокойно выйти, незамеченным всевидящим оком.

А если нажать на эту же кнопку при входе, то камера сразу выключится. Зато включится фоновый свет в комнате и на кухне, а также — свет в прихожей. И ни одному коту на хвост по недосмотру не наступишь, так что все довольны.

Параллельно я изучал потенциал популярного датчика движения HC-SR501. Почему именно он, а не беспроводной датчик движения, раз уж “только радио, только хардкор”? Все очень просто: беспроводной датчик движения будет постоянно засорять эфир своими криками, и заодно будет отвлекать контроллер на их обработку. А у контроллера и других дел полно. Поэтому — проводной датчик, причем без прерываний, чтобы, опять же, не путать контроллер.

Лирическое отступление. В приступе просветления помимо локальной сети я озадачил строителей небольшой нишей под всякий телеком в прихожей. Конструктивно ниша располагается почти под потолком (около 2 м), рядом с входной дверью.

. здесь можно видеть все сразу — и датчик задымления (рядом с лампой вверху), и кнопку «Я дома» на дверце щитка, и крышку телеком-ниши, расположенную выше. А на дверце — датчик движения и веб-камера с широкоугольным объективом-насадкой от смартфона
image

. камера и датчик крупнее. Неопрятный провод справа внизу — кнопка сброса контроллера, которую я еще не придумал, куда деть
image

В свою очередь, от входной двери легко просматриваются дверь в комнату и крошечный коридор в кухню. То есть, это как бы стратегическое место для контроля перемещений по квартире. Именно поэтому на упомянутый датчик движения получилось повесить сразу три функции: управление светом в прихожей, на кухне и, в некоторой степени, охрану.

Логика простая. Если включено автоматическое управление светом, то в зависимости от времени суток (контролируется Android-брелком в телевизоре и Tasker) включается свет или в прихожей, или на кухне. А если была нажата кнопка “Я дома” при выходе, то вместо управления светом датчик переходит в режим охраны, и о каждом обнаруженном движении докладывает по почте.

И хотя датчик HC-SR501 прост, как две копейки, без курьезов не обошлось. Сначала свет работал, как мигалка. Я подумал, что дело в потоках воздуха, поскольку датчик смотрит на довольно оживленное с этой точки зрения место. Поэтому бесконечно долго регулировал чувствительность и направление его “взгляда”.

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

Правило трех

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

Минутное включение — это, с одной стороны, чтобы лампы не мигали каждую секунду, а с другой — чтобы не пришлось крутиться под датчиком, чтобы свет вообще включился. Дело в том, что я не модифицировал датчик движения, а “из коробки” он держит сигнал активности 3 секунды после обнаружения, и потом еще 2.5 секунды у него заслуженный отдых.

То есть, один цикл работы датчика — 5.5 секунд. Конечно, логично включать свет в прихожей при неоднократном движении, я понимаю. Но при таком раскладе перед датчиком придется крутиться не менее 6 секунд, а это, как показала практика — слишком. И именно поэтому свет включается при каждом проходе.

Что касается правила “трех минут”, то это тоже выстраданное. Кажется, что можно было бы ограничиться той же минутой, правда? Неправда. Выяснилось, что даже довольно непоседливые гости могут с нами прощаться в прихожей, сохраняя неподвижность более минуты. Но вот замереть на три минуты сразу редко кому удается — отсюда такой интервал.

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

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

В общем если датчик движения фиксирует проход ночью, то контроллер включает фоновый свет на кухне на 10 минут. Этого достаточно, чтобы покормить кота и вернуться обратно. Конечно, можно было бы сделать выключение света при повторном проходе, но ведь за мной может пойти жена, или, наоборот, я за ней. Ну и зачем нам мигалка или лишний огород с контроллерами и датчиками на кухне?

Примерно аналогичным уровнем интеллекта обладает и свет в гардеробе-чуланчике. Там триггером выступает банальный беспроводной герконовый датчик двери. Одно открытие двери — свет включается, второе — выключается. И так по кругу. Разумеется, для срабатывания датчика дверь должна каждый раз закрываться полностью, но для гардероба это как раз обязательное условие, иначе проникнут коты, что нежелательно. Также предполагается, что внутри обычно только один человек, но это тоже обычное дело — там больше и не поместится.

Завершает парад автосвета ванная. К текущей схеме с датчиком движения я тоже пришел не сразу. Сначала проще всего оказалось использовать тот же датчик двери и тот же алгоритм: дверь открылась — елочка гори, дверь открылась еще раз — елочка не гори. И снова по кругу.

Только здесь гардеробный алгоритм, хотя и работал, оказался неидеален. Во-первых, в ванную могут зайти несколько человек (ну мало ли что), и придется лишний раз хлопать дверью, чтобы свет включился. Во-вторых, дверь не всегда удобно закрывать полностью, да и часто (во время уборки) возникает необходимость бегать туда-сюда.

Еще, как выяснилось, очень сложно объяснить всем гостям, что светомузыка будет работать корректно только если каждый раз открывать и закрывать дверь полностью. И не трогать при этом выключатель света.

Полна горница людей

Собственно, ванная — это один из классических примеров сложнорешаемых задач СКУД. Почему-то с помощью разумного набора технических средств и при не менее разумных затратах проблематично точно контролировать наличие и количество людей в помещении. Я вот почитал, что народ городит — и ужаснулся. ИК-барьеры, УЗ-дальномеры, RFID-метки (с радостью сообщают “а что, их же даже имплантировать можно!”) и проч, и проч.

Пришлось творчески переосмыслить, ввести жесткие ограничения и проверить теорию в действии.

. датчик висит так, чтобы не раздражать присутствием, в одном корпусе с ним и контроллер, и приемник с передатчиком
image

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

В общем, когда бритва Оккама завершила разделку моей мечты, от нее осталось жалкое зрелище — т.е. тот же самый датчик движения, правило “трех минут” и психология камикадзе.

ТЗ довольно простое:

1) Свет должен включаться при появлении в ванной людей;
2) Свет не должен выключаться, пока в ванной кто-то есть;
3) Музыка должна работать, если горит свет и разрешено по времени.

Решение, которое более-менее удовлетворяет всем условиям, включая душевую кабину — комбинация датчика движения, датчика света и датчика закрытия дверей душевой кабины. Последнее, кстати, важно, потому что мы помним, что датчик движения “не видит” сквозь стекло.

. датчик света из фонарика и герконы для контроля закрытия дверей душа. Синей изоленты не было, пришлось обойтись черной
image

.
image

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

А помешать акту самовыключения может или датчик движения, или датчик дверей душевой кабины. Так что пока кто-то шевелится или закрыты двери душа, свет будет работать. В свою очередь, музыка (если разрешено) играет синхронно со светом.

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

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

Никакой уличной магии

Если все сложить, то получается именно то, чего я хотел. Копаюсь в прихожей — свет включается сам. Иду на кухню ночью — включается фоновое освещение. Захожу в гардероб и тоже не пропадаю в темноте. И свет в ванной работает, пока совершаю вечерний или какой-нибудь другой туалет.

Дом просто следует естественному поведению обитателей.

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

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

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

Температуру за бортом можно всегда посмотреть или на страничке контроллера (вместе с последним значимым состоянием), или в интернете, или в аппе/виджете на смартфоне благодаря сервису «Народный мониторинг».

. погода в смартфоне
image

. а это наш погодный дилер в корпусе из-под звонка. Датчик DHT21 болтается за окном, подключенный белым кабелем со штекером
image

. внутри, как и у меня — беспорядок


Плюс некоторые вещи, которыми сделаны просто, чтобы было. То есть — управление ТВ, медиаплеером и кондиционером. Например, нажатие кнопки на пульте Android-брелка одновременно включает телевизор и запускает браузер файлов, чтобы можно было сразу смотреть фильмы. Так что не нужно искать пульт ТВ.

. «медиаконтроллер» почти спрятан в нише стеллажа, можно разглядеть провод ИК-диода для ТВ и плеера
image

И в целом нет никакой проблемы сделать автоматическое включение кондиционера в зависимости от температуры в помещении, но жена от этой идеи категорически отказалась. Как и от автоматического перекрытия воды по срабатыванию датчиков протечки.

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

P.S. Да, я знаю, что упоминать ОПС и СКУД в данном контексте довольно смешно.
@spc
карма
87,0
рейтинг 12,2
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

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

  • +5
    Очень интересно.

    Автор, скажите, стоял ли вопрос — Arduino или Raspberry-pi + Z-Wave? И если был, то почему выбрали Arduino?
  • +1
    Нет, вопроса даже не было. О контроллерах у меня тогда было очень туманное представление, поэтому я выбирал то, что часто упоминается, и что стоит дешевле.

    Для ориентира: центральный контроллер в сборе (Arduino, Ethernet, приемник и передатчик, реле, разъемы, провода, корпус) обошелся примерно в 60 долларов.
  • +1
    Дядь, а ты не из муськи? =)))
    • +1
      Ага, я наконец-то собрался с силами ) План покаяний включает рассказы про отдельные компоненты, с кодом разумеется. Чтобы все могли посмеяться.

      Но это немного позже.
      • +1
        Вот это ты молодец. Кстати выключатели чё-то подорожали.
        • 0
          У них, похоже, постоянно цена плавает. Да и я умудрился купить дороже, это потом и скидки, и просто снижение цены.
      • +1
        Тоже узнал статью с mysku =))
        Я пошел по вашей статье, купил все тоже самое, чтобы побаловаться, настроил, работает )) правда до какого готового решения пока еще руки не дошли=)
        • +1
          Прямо даже не знаю, нет слов — приятно и то, что захотелось на моем примере побаловаться, и что работает. В общем, я за готовые удобные решения — успехов! )
  • +1
    Вам бы как-нибудь поаккуратнее это все монтировать чтоли, без слез смотреть невозможно. И как жена еще все не срезала?
    • +7
      К моему сожалению, это, максимум аккуратности. Если я попытаюсь сделать что-то врезное в стену или в потолок — будет вообще катастрофа.

      Ну а жена… жена не дотягивается. Полагаю, это спасает.

      Все, что у меня сейчас есть — это некий компромисс между эстетикой и удобством. Например, датчик и камера в коридоре практически не привлекают внимание. Их и гости не всегда замечают. Метеодатчик на балконе всегда за шторой и не виден — так и планировалось. Комнатный контроллер видно, если лечь на пол, что я и сделал с камерой. А большая часть проводов рядом с ним относится к другим вещам — зарядка пылесоса, кабели десктопа, зарядка ноутбука.
  • 0
    Но есть нюансы. Оказалось, что на горшке можно просидеть довольно неподвижно и более трех минут, а тогда придется махать руками. Это, конечно, минус. Поэтому я думаю о том, что нужен еще датчик веса — сами понимаете, для чего. Хотя это лишние провода в ванной.

    Датчик на закрытие двери изнутри: например на блокиратор дверного замка или какой-то сенсор, который определяет, что дверь была закрыта изнутри. Плюс немого логики: если в ванной есть движение, то свет/музыка остаются включенными до тех пор, пока кто-то не закроет дверь снаружи / откроет изнутри и в ванной после этого не будет движения.
    • 0
      О контроле двери я думал — все равно ведь при новой схеме с датчиком движения там оставался беспроводной датчик двери от предыдущего варианта. Но по трезвому размышлению отказался. Все дело в модели поведения. Входящий в ванную не всегда закрывает дверь. И выходящий — не всегда. Это лучше всего видно по гостям.

      Другой приоритет — минимум вмешательства в интерьер и замки. Невозможно просто так взять и поставить датчик закрытия замка. И невозможно просто так поставить геркон, который бы постоянно извещал о состоянии двери — это нужно прокладывать провода, что не очень сочетается с чистовой отделкой.
      • 0
        Просто сделать задержку не три минуты, а, например, девять минут?
        • 0
          Кстати да, была такая мысль. Но я же хочу считать себя рациональным и экономным. Т.е. умом я понимаю, что мне до этого, как до Луны, но хочется же. Поэтому и три минуты — это по практике оказался довольно универсальный интервал.
          • +1
            Рациональнее и экономнее чисто механически увеличить этот интервал и понимать, что ежедневно свет в ванной/туалете горит лишние 30-60 минут. В год: 183-365 часов x 100 ватт (это если нет энергосберегающих ламп и т.п.) = 18-36 КВтч или 4-8 долларов.

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

            Это рациональнее и экономнее, чем городить еще одно устройство, потратить время на его монтаж и настройку, в совокупности потратив 30-50 и более долларов.
            • 0
              Спасибо за расчет и соображения! Звучит очень привлекательно, особенно если учесть, что не особенно мне хочется тянуть провод через всю ванную.
              • 0
                Закон Парето в действии — 20% усилий (подкрутить регулятор) дают 80% результата (исключая ситуации гаснущего света в решающий момент, пусть даже и ценой некоторого перерасхода электроэнергии). :)
  • 0
    На счет датчиков присутствия, недавно была статья, как из любой камеры, путём извлечения ИК-фильтра делается тепловизор. Правда не помню, видно ли в неё было человеческое тепло.
    • +2
      ИК излучатель на одной стене и приемник на другой, чтобы сидящая на унитазе тушка загораживала луч. :-)
    • +1
      Для было критически важно не то, что можно сделать в теории, а то что лично я могу сделать в пределах своих знаний (точнее, их отсутствия) и имеющихся ресурсов и ограничений. Конечно, тепловизор может определять наличие людей, но это должна быть или полностью автономная система или вещь, данные с которой обрабатываются снаружи.

      Я не уверен, что Arduino Pro Mini справится с обработкой ИК-картины камеры. А использовать что-то более серьезное для ванной в моем понимании — уже как-то слишком. Возможно, я неправ, конечно.
      • 0
        Да, согласен, это только теория. Ардуина врят ли с этим справится, из изображения нужно выделить фрагменты, характерные для человеческого теплового поля.
        То что вы брали готовые и работающие модули — абсолютно правильное решение, иначе бы работы растянулись до бесконечности.
  • +1
    Волшебно. Чутка вопросов:

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

    2) Датчики движения и животные в доме — задача, гораздо сложнее, чем датчики движения без животных в доме.
    Спецнастройки или спецсценарии не приходилось выдумывать?

    3) С точки зрения безопасности, кроме камеры и датчиков на двери планируется что-нибудь?

    спс

    • +1
      Я планировал постепенно рассказать о компонентах. Кормушка, думаю, разочарует — моя изначально предназначена для кормления мелких животных и представляет собой чуть модернизированную вращающуюся Feed-Ex. Она вот так выглядит:

      image

      Контроллер просто управляет ее вращением. Кормлений, при этом, правда, уже не четыре, а пока корм не закончится.

      2) Мне ужасно повезло. Хотя HC-SR501 не относится к классу pet immune, т.е. у него нет порога срабатывания по размеру объекта, оказалось, что при моих высоте подвеса и настройках чувствительности он не реагирует на котов. Только на максимальной чувствительности в ванной он среагировал на 9 килограммового кота, прыгнувшего на крышку унитаза. По сути, это уже сравнимо с реакцией на ребенка ) Тем не менее, чувствительность я немного прикрутил (вчера буквально), поэтому результаты скоро узнаю.

      Но, повторюсь, если говорить о животных, в целом выдумывать ничего не пришлось. В коридоре, например, датчик не реагирует на всякие кошачьи выкрутасы. Больше проблем было с электромагнитными помехами.

      3) С точки зрения безопасности (я, все же повторюсь, что речь скорее об информационно-сервисной системе — не те у меня показатели надежности) больше ничего не планирую. В активе камера, датчик движения, три датчика задымления и три датчика протечки.
      • +2
        Фото 9-килограммового кота — в пост!
        А то что за пост без котиков?
        • +9
          уговорили )

          image
  • +2
    Не нашёл фотографии автоматической кормушки для котов :)
    • 0
      После прочтения пункта о кормлении котов, сразу провел поиск по слову «корм». Даешь рассказ о кормлении домашних питомцев!
    • +2
      Немного позже все будет, я о ней отдельно расскажу ) Просто это обычная кормушка Feed-Ex, у которой внутри неонка радиореле для вращения, управляемое центральным домашним контроллером. По виду она почти ничем не отличается от заводской — только кусочек антенны снаружи и разъем внешнего питания.
    • 0
      Главное чтобы в результате какого нибудь программного или аппаратного сбоя животинки не померли с голоду :)))
      То есть на миску на которую высыпается хавка датчик давления еще поставить, по нему можно контролировать дозировку тоже.
      • 0
        Эта кормушка, скорее для нас, а не для котов ) Коты обычно всегда свое получают, и с горкой. А вот когда ночью на кухню идти сил нет от слова «совсем вообще», тогда в дело идет кормушка. Иногда они там питаются, иногда просто идут посмотреть чего там такое на кухне зажужжало. В общем, отвлекающий фактор.
    • +2
      Поддерживаю :) И фото кота тоже не хватает!
  • 0
    Расскажите, пожалуйста, откуда берется музыка в ванной? Я имею ввиду откуда колонка берет поток или файлы для воспроизведения? Есть ли задержка между «включилось» и «начало играть»? Как колонка реагирует на влажность в ванной комнате?

    Заранее спасибо.
    • +1
      Музыкой заведует простая китайская колонка MP3-плеер с карточкой памяти, куда и записана музыка. Контроллер просто включает питание колонки, а она сама (так сделана) автоматически начинает играть все подряд с карты памяти (или USB). Режим воспроизведения у нее — последовательно все файлы, повтор по кольцу. При выключении колонка запоминает последний трек, поэтому не приходится слушать все сначала. Но вот позицию в треке не помнит, поэтому иногда приходится целыми днями слушать Болеро.

      У колонки задержек нет — как включилась, сразу начинает играть (ну, может, секунда уходит на инициализацию колонки). Но есть трехсекундная задержка между включением света и музыки в автоматическом режиме. Это связано с моей не очень удачной защитой от наводок на датчик движения. Если же свет включать руками, то музыка включается сразу.

      По поводу влажности сказать что-то конкретное мне сложно. Колонку я не разбирал, но снаружи признаков коррозии и чего-то подобного нет (колонка находится в шкафу с водонагревателем, непосредственно на нее влага не попадает, разве что влажный воздух). Работает эта конструкция с августа прошлого года (если верить моим записям).
      • +1
        У китайцев есть на эту тему замечательная игрушка — вибро-динамик. Относительно герметичная железяка, в том числе и со слотом под uSD карточку, которая на присоске или двухсторонем скотче приклеивается на плоскую поверхность. С этого момента поверхность становится «излучателем» динамика.

        Один из таких вполне успешно «трудится» в офисе вместо колонок, просто приклеенный на стол ))
  • 0
    Отличный материал! Кое-что обязательно возьму на вооружение.
  • +1
    Классная реализация!

    Вот в примере с веб-сервером Вы столкнулись с нехваткой оперативной памяти в Arduino — он при переполнении просто ресетится, либо виснет.

    Мне интересно другое — если у Вас сейчас все влезает в память, то Вы используете Arduino только как управляющую прослойку, то есть как исполнительный модуль? Сама логика переключения и срабатывания сделана отдельно, или все там же?

    По опыту, если на ардуинку вешать и логику — рано или поздно появятся сбои, когда переполняется память. И там уже и свет будет мигать, и кот будет недоедать ))
    • 0
      Спасибо!

      У меня получилась гибридная схема. Часть сценариев живет в Arduino это, например, управление кормушкой (там есть небольшая хитрость, а не просто включение), переключение режимов света и охраны при входе/выходе, автосвет в прихожей и на кухне, и, до недавнего времени, автосвет в ванной (сейчас там свой контроллер).

      Другая часть — в Android-брелке. Это, в основном, сценарии переключения режимов по времени (автосвет днем/ночью) или групповые действия вроде одновременного включения ТВ и запуска файл-менеджера в брелке.

      Такое разделение отчасти обусловлено тем, что сложилось исторически — я изначально писал сценарии в Arduino, а отчасти тем, что переход полностью в Android для меня был бы сложен. В последнем случае Arduino, после получения радиокоманды (кнопка или датчик), пришлось бы отправлять информацию об этом в Android на обработку, а потом получать от Android команды на исполнение.

      Поэтому сейчас так и осталось: полностью автоматические сценарии, не нуждающиеся в модификации, остались в Arduino, а сценарии, где может понадобиться настройка (например, время срабатывания) — в Android.

      Особой путаницы не возникает, а так как набор функций ограничен и закончен, то и дополнительная настройка практически не требуется. Я, если честно, уже спустя неделю обычной работы, начинаю забывать, что, как и зачем делал.
  • 0
    Проблема с неподвижно сидящем на унитазе более 3 минут человеком без лишних проводов решается ультразвуковым дальномером на потолке или на стене, цена вопроса — три доллара.
    • +1
      Об этом я тоже думал. Но чтобы это было не более ужасно, чем сейчас, дальномер должен быть там же, где контроллер. А так как у меня уже был опыт общения с УЗ (это когда меня добили ложные срабатывания PIR, а причину я еще не знал, и поменял датчик движения на дальномер), то есть подозрение, что это будет работать не очень устойчиво — там не очень хорошо с отражающими поверхностями.

      Ну и стена или потолок — это все же лишние провода.

      Еще один минус — эта зараза начинает довольно противно пищать, когда натыкается на препятствие. Не сказать, что катастрофа, но раздражает как-то.

      Хотя, если честно, собирался заказать себе еще датчиков (свой случайно убил высоким напряжением) и попробовать. Другой вариант — ИК-дальномер по тому же ценнику. Правда, у него заявлено расстояние не более 80 см, но попробовать-то ничто не мешает.
      • 0
        у HC-SR05 рабочая частота — 40 килогерц, этот писк услышать нереально. Контроллером может быть отдельная Ардуина Pro Mini.

        «там не очень хорошо с отражающими поверхностями» — а вот это пофигу. Если прошло 3 минуты, даём десяток импульсов повыше унитаза — если отражаются от сидящего, накидываем таймеру ещё три минуты.
        • 0
          Я не утверждаю, что слышал именно 40 КГЦ. Но я действительно на слух понимал, что датчик меня «увидел». Не знаю, что это было — то ли резонанс корпусов излучателей, то ли еще что-то в этом роде.

          Не совсем пофигу в том смысле, что при размещении УЗ там, где бы мне хотелось, звуковой «луч» будет падать под углом, и там нет соответствующей поверхности, которая бы его вернула обратно. Моя практика показала, что в таких условиях уверенное срабатывание происходит на расстоянии около полутора метров. Может быть, чуть больше.

          То есть, повторюсь, поле для эксперимента есть, но вероятность успеха не очень велика.
        • +1
          К сожалению, теория о «40 кГц услышать нереально» разбивается о банальный факт — там не постоянные 40 кГц, а пачки импульсов. Вот их-то (фронты пачек) и слышно, причем отчетливо. Как легкое цокание языком. Что нервирует ;)
    • 0
      Ага, а потом потратиться на офтальмолога в связи с отслоением сетчатки глаза… Именно по этой причине ультразвуковые дистанционные пульты управления телевизором остались на обочине истории.

      P.S. И это еще хорошо, что коты не могут разговаривать… А то бы они высказали бы все что они думают на этот счет.
      • +2
        у де-факто стандарта для ардуино-поделок, датчика HC-SR05, потребление — 2mA, замер происходит путём отправки восьми импульсов длительностью 10 микросекунд. Боюсь, для того, чтобы с его помощью добиться отслоения сетчатки, надо им запустить жертве в глаз.

        Рабочая частота датчика — 40 килогерц. Слух некоторых кошек улавливает до 60 килогерц, но не всех. Мои — не реагируют, хоть они и молодые, даже ухом не ведут, если шарашить импульсами непрерывно. Видимо, услышать звук продолжительностью 10 микросекунд, на какой частоте бы он не звучал — малореально.
  • 0
    Задался целью реализовать практически тот же функционал. Для начала потренировался с ардуинкой и теперь она с лета управляет освещением растений на лоджии.

    В планах сделать:
    — выключение света когда все ушли из дома (RFID метка на ключах в ключнице — нет ни одной = все ушли)
    — ночная подсветка в кухне (по датчику света)
    — контроль вытяжки в ванной

    Основное отличие — «мозг» будет на NAS'е. А конечные Arduin'ки буду выполнять всего лишь сбор данных и управлением по командам из вне.

    Для мониторинга температуры за окном почитайте вот это: habrahabr.ru/post/165747/ :) Цепляем Oregon'овский датчик по 433 и все.

    P.S. Еще есть счетчики воды. Можно их использовать как датчик срабатывания.
    • 0
      Тоже далеко небезынтересно!) Может статью оформите? Про метки и мозг было бы интересно…
      • 0
        Статья в планах есть. Как начну реализовывать — выложу.

        Мозг — набор скриптов на веб сервере который в свою очередь крутится на NAS'е. Логика работы простая. Кратко опишу на примере контроля вытяжки в ванной.
        Ардуино в ванной с датчиком влажности регистрирует изменение на 1% или больше
        => Посылает запрос на сервер типа такого 192.x.x.x:8080/sensor.php?id=...&value=…
        => Скрипт знает последнее значение этого датчика, понимает что надо сделать (включи или выключить реле) и отправляет ответ
        => Адруино выполняет действие

        Ну и минимальная логика в сомой ардуинке: нет ответа от сервера — включаем и выключаем реле по граничным значениям которые прошиты в памяти.

        Сейчас выбираю модель NAS'а которая мне наиболее подойдет с учетом всех требований.
        • 0
          А не подскажите чтива по RFID меткам для вашей задумки, звучит интересно.
          • 0
            www.seeedstudio.com/wiki/Grove_-_125KHz_RFID_Reader
            Тут есть пример кода.

            Готовый модуль плюс вот такие брелки: devicter.ru/goods/RFID-tag-combo?from=ZWM2
            • 0
              в этом варианте, как я понял, требуется подносить мекту к считывателю при входе и выходе

              Может сталкивались с таким вариантом и его реализацией, когда метка просто с ключами висит. Без взаимодействий проходит опрос по всему дому с определённой периодичностью на наличие каких-нибудь меток на территории, при отсутствии таковых, выполняется сценарий «дома никого»?
              • 0
                У меня как раз получится факт подноса метки. Ключи висят в деревянной ключнице и можно в заднюю стенку встроить считыватель.

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

                Но это, опять же, мое мнение.
                • +2
                  Мне кажется, что хороший механизм определения присутствия человека дома — считывание MAC адреса телефона по Bluetooth.
                  Это в одном opensource проекте реализовано.
                  А отличный пример использования описан в статье хабраюзера Jey
                  • +1
                    Можно даже просто узнать у роутера если телефон сидит на домашнем WiFi.
                    Ошибка может быть если вдруг забыл телефон дома.
                    • 0
                      Да, но с учетом дальности работы wi-fi сигнала, событие может происходить слишком рано. Тогда, лучше привязать сценарий еще и к датчику открытия двери. А вообще, тоже хорошая идея.
                      • 0
                        Как вариант в профиле человека добавить мак адреса и/или ip-ки всех его устройств: ноутбук, телефон, планшет.

                        Дальше минимальная логика.

                        1. Раз в 5/10/15/… минут проверяем список доступных устройств и запоминаем его
                        2. Сработал датчик открытия входной двери
                        3. Через 2-3 минуты проверяем список устройств и сравниваем с теми, что были до открытия двери
                        4. По списку пропавших устройств определяем кто ушел/пришел (сотовый в приоритете)
                        • +1
                          А если пропали все устройства сразу — то включать тревогу, так как возможно нас обокрали.
                        • 0
                          есть над чем подумать…

                          Идеи в целом хорошие, но телефон/планшет садится, вифи, а тем более блютуз не всегда включены, чтобы прожорливый андроид хоть чуть-чуть заряда оставил на звонок…

                          Ещё кое что в голову пришло до детекту человека… датчик нажатия/веса на место, где обувь ставиться… Определённое место.
                          Если оно пустует, то проверяются показание других датчиков: закрытие двери… Может и проверка по маку ещё.

                          При совпадении — включаем алгоритм по гашению систем.

                          Из минусов — надо организоваться на установку обуви в правильное место.
                          • 0
                            Тут надо использовать коплексный подход с вероятностными весами.
                            К примеру:
                            Пропала метка с ключами — вероятность ухода 70%
                            Пропал телефон — вероятность ухода 30%
                            Пропал ноутбук — вероятность ухода 10%
                            и т.п.

                            Так же использовать не один тип датчиков для детектирования, а копмлекс: датчики на дверях, RFID считываетли, датчикки двежения, сканирование сети и т.п.
                      • 0
                        Как только хозяйский телефон вечером появляется в домашней сети — включается чайник. Как раз вскипит пока разуешься-разденешься.
                • 0
                  ну я имел в виду не обязательно RFID метки… может уже что-то удобоваримое по радиусу действия придумали)
    • 0
      Спасибо за совет про датчик. Судя по цвету ссылки, я на это уже смотрел :) Но судите сами. Я сейчас посмотрел — цена датчика по первым ссылкам около 700 рублей ($22). Давление он не измеряет.

      Один мой метеодатчик (эквивалент Oregon) стоит $5 (Pro Mini) + $8 (DHT21) +$2 (передатчик) = $15. При этом в теории контроллер этого датчика я могу нагрузить еще чем-нибудь, что для него придумаю.

      Второй датчик стоит $5 (Pro Mini) + $4 (BMP085) + $2 (передатчик/приемник) = $11. И этот контроллер еще выполняет функции управления ТВ, плеером, кондиционером и ретранслирует сигналы датчиков.

      В итоге я получаю мониторинг температуры и влажности за окном плюс температуры дома и давления. Ну и плюс немного других ништяков. И, считаю, это стоит разницы в $4.

      К чему привязать счетчики воды я так и не понял, если честно. Судя по описанию сигнал с них идет раз в 10 литров, и непонятно, достаточная это точность для учета, или нет. Вторая моя проблема в том, что в сантехническом коробе электричества нет вообще, а без него мало что будет работать.

      То есть, одно время размышлял о том, чтобы привязать контроль сигналов счетчика к состоянию «все ушли из дома», чтобы быстрее определить возможную протечку, но в конце концов забросил эту идею.

      В общем, желаю вам успехов и всяких интересных домашних применений Arduino! ;)
      • 0
        Про высокую цену внешнего датчика согласен.
        Я довольно долго пользовался покупной метеостанцией с внешним датчиком. Он требовал замены батарейки раз в год. Висел за окном и показывал влажность и температуру. Поэтому для себя рассматриваю вариант с внешним датчиком — никаких проводов.

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

          Поэтому для меня идеальный выход — герконы в качестве датчика закрытия дверей. Тем более, что сам контроллер висит практически на душевой кабине, там и провод от датчиков почти не виден.
          • 0
            Так этот датчик не обязательно в короб ставить. Можно и сзади душевой кабины в разрыв подключения подводки воды. А тут уже и питание для ардуинки не проблема :)

            Я примерно про такие счетчики — dvrobot.ru/shop/i221.schetchik_rashoda_zhidkosti..htm
            • 0
              Ох нет, я и сантехника?! Вот сравните. Сейчас я:

              1) Приклеил магниты на концы дверей
              2) В соответствующих местах на крыше кабины поставил герконы.

              Или:

              1) Надо купить дополнительный водосчетчик, который стоит совсем не как пара герконов
              2) Разобрать душевую кабину
              3) Врезаться в проводку
              4) Собрать душевую кабину

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

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

                  Кстати, мысль. Надо будет добавить еще автовключение света, если двери душевой кабины закрыты. На случай, если кто-нибудь второй выйдет и по привычке выключит свет кнопкой выключателя.
                  • 0
                    А по звуку? Два датчика, внутри и снаружи ванной комнаты. Если внутри громче (а свет выключен), то значит кто-то остался в душе.
                    • 0
                      Если честно, меня вполне устроит и просто датчик двери.
  • +3
    Заслуженный + за статью про полезное применение нашего народного сервиса! Значит наша работа была не напрасной.
    Побольше бы таких практических решений, жаль редко кто доводит до боле-менее законченного решения, да еще и с описанием.
    PS Поделился ссылкой на Вашу статью с другими участниками проекта в нашем сообществе.
  • 0
    В целом надежное для быта решение — использование радиоканала, а не какой-нить недублированной шины типа EIB.
  • 0
    Кстати. Мне по работе пришлось столкнуться с байтовым протоколом. Поэтому для себя накидал такой документик. Может кому будет полезно.

    Код команды:
    A0 — запрос для получения названия клиента
    A1 — отправка названия клиента
    A2 — запрос для получения значения датчиков
    A3 — отправка значения датчиков
    A4 — установка значения для реле

    Код устройства получатея:
    От 20 до FF
    FF — бродкаст

    Контрольная сумма — что-то вроде CRC-CCITT (0xFFFF)
    www.lammertbies.nl/comm/info/crc-calculation.html

    Для одного клиента уникальная нумерация датчиков / реле(выходов).

    Запрос для получение названия клиента
    [STX = 02]
    Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
    Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
    Код устройства отправителя [20 — FF]
    Код устройства получателя [20 — FF]
    Код команды [A0]
    [EOT = 04]

    Отправка названия клиента
    [STX = 02]
    Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
    Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
    Код устройства отправителя [20 — FF]
    Код устройства получателя [20 — FF]
    Код команды [A1]
    Название клиена HEX кодами произвольной длины
    [EOT = 04]

    Запрос для получения значения датчиков
    [STX = 02]
    Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
    Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
    Код устройства отправителя [00 — FF]
    Код устройства получателя [00 — FF]
    Код команды [A2]
    [EOT = 04]

    Отправка значения датчиков
    [STX = 02]
    Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
    Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
    Код устройства отправителя [00 — FF]
    Код устройства получателя [00 — FF]
    Код команды [A3]
    Код датчика [20 — FF]
    Значение [0000 — FFFF]
    … повторяем для каждого датчика
    [EOT = 04]

    Установка значения для реле/выхода
    [STX = 02]
    Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
    Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
    Код устройства отправителя [20 — FF]
    Код устройства получателя [20 — FF]
    Код команды [A4]
    Код реле [20 — FF]
    Значение [0000 — FFFF]
    … повторяем для каждого реле/выхода, значение которого надо задать
    [EOT = 04]

    Примеры.

    Запрос для получение названия клиента
    02F92503002021A004

    Отправка названия клиента
    02663B07002120A15465737404

    Запрос для получения значения датчиков
    02D96703002021A204

    Отправка значения датчиков
    024A1C09002120A320990021AA3004

    Установка значения для реле/выхода
    02DD0806002021A422010004
    • 0
      Вот еще вариант как определить что кто-то идет домой и заранее включить свет в прихожей.

      Преамбула. У нас в подъезде стоит цифраловский домофон. Открыть его можно либо талеткой, либо кодом. Сам код вида [НОМЕР_КВАРТИРЫ]*[КОД_КВАРТИРЫ]. Если входить по коду, то домофон в квартире издает определенный писк.

      Можно подключить динамик на один из входов и ловить этот писк. Ну а дальше все просто.
      Получили сигнал открытия домофона => подождали время пока хозяин поднимается => включили освещение => если через заданный промежуток не открыта входная дверь (геркон), то выключаем свет.
      • 0
        Мой контроллер не знает, что со светом дома и не знает, остался ли кто. Так что если дома кто-то есть, и включается режим «здрасте я пришел», то начнется какая-то никому не нужная новогодняя елка )

        Это первое. А второе — наши доблестные домоправители решили, что код — слабое звено. И отключили пользовательские коды домофона. Говорят, что если пользоваться, то дети (и взрослые дети) раздадут их своим знакомым и корешам, а там весь район подтянется. Так что только таблетки, только хардкор.
  • +1
    Классный ремонт — очень много продуманных моментов. Фиг с ним, с умным домом, покажите пожалуйста еще фотографий квартиры :)
  • 0
    Статья классная, автор — большой молодец! Я, к своему стыду, уже год боюсь взяться за что-то похожее. Хотя хочется очень.
    Одно но — мне второй день не дает покоя колонка в ванной, которая играет с флэшки! Почему Вы не хотите воткнуть туда радио-колонку, которая при запуске сценария будет играть музыку из медиатеки? Это же удобней, да и вся музыка домочадцев будет в одном месте!
    Я не могу себе представить, что при покупке/скачивании нового музыкального альбома Вы будете делать столько лишних манипуляций для заливки его на флэшку, имея при этом довольно прямые руки!
    • 0
      Спасибо )

      Несмотря на полный дом всяких гаджетов, мы довольно далеки от идеи общедомашней медиатеки и «всей музыки домочадцев» в том числе. Из музыки слушаем, в основном, интернет-радио. И все. Никаких новых альбомов.

      Конечно, можно было бы помучиться и в ванной сделать то же радио, но, во-первых, разная цена вопроса (колонка — около 10 долларов, телефон с Android + колонки для радио — уже заметно больше полтинника, да и места нужно немного больше), а, во-вторых, мы остановились на успокаивающей классической музыке, которую вообще не надо менять.
  • 0
    Скажите пожалуйста, можно ли по радиоканалу получить текущий статус выключателя?
    • 0
      Если предусмотреть в прошивке, то можно.
      Дело за малым — реализовать набор команд.
      • 0
        забыл уточнить
        я про выключатели света
        я так понимаю, что изначально они управляются с пульта (судя по фото в интернете)
        по идее, текущий статус они не выдают — на пульте 2 кнопки
        если бы возвращали текущий статус, то можно было бы обойтись одной кнопкой для одноканального выключателя
        хотя, в выключателе, возможно, только приемник, а в пульте только передатчик — в этом случае с текущим статусом проблемка

        уточните, пожалуйста, этот вопрос

        • 0
          Я имел в виду статус выключателя которым управляет свое решение. Тогда у своего решения можно запросить в каком состоянии в текущий момент находится выключатель. Сторонние решения не сообщают свой статус. Если это не дорогое решение.
          • 0
            благодарю за пояснений и хорошую статью
            буду перебирать оборудование дальше — вдруг повезет и найду желаемое :)
            • 0
              Благодорите spc %)
        • 0
          На картинках пульт управления розетками, там действительно две кнопки — на включение и выключение. У выключателей света свой пульт, и там одна кнопка включает и выключает свет. В пульте только передатчик, в выключателях и розетках — только приемник.

          При этом ни у розеток, ни у выключателей света, которыми я пользуюсь, нет обратной связи, так что свое состояние они никому не сообщают.
  • 0
    Скажите, всегда ли срабатывают радиорозетки по сигналу? Сколько сигналов посылаете? С каким интервалом?
    • 0
      Срабатывают в подавляющем большинстве случаев. Исключения бывают редко, но, справедливости ради, и родные пульты тоже не всегда с первого раза включают/выключают (особенно, когда некоторое время поработают и батарейки немного разрядятся).

      Для розеток получается 8 кодовых посылок (это два повтора в терминах библиотеки RC-Switch) без дополнительных интервалов, только то, что положено по протоколу.

      Для выключателей тоже стандартный пакет, без дополнительных повторов (дело в том, что у выключателей и так очень длинный, около секунды, пакет в котором порядка 100 повторов кодовой посылки, чего вполне достаточно для устойчивого исполнения команды).
  • 0
    Три вопроса:
    1. Выключатели света, как я понимаю, с местным управлением? Их можно и с пульта и с самой панельки выключить. Так?
    2. А с тёплым полом не стыковали? Ищу сейчас замену для термостата с прицелом на подключение к чему-то подобному…
    3. А можно отдельным списком в статье перечислить модели-ссылки на подчинённые устройства (выключатели, розетки, метеостанция и т.п.)? Я давно ищу нормальные выключатель под розетки.
    • 0
      Да, выключатели можно по-любому переключать — и с панели, и с пульта.

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

      Ссылки на основные компоненты и периферию есть в следующем тексте "Контроллер центральный домашний, всемогущий КЦД-В-2-12".

      Ну и чтобы два раза не вставать, вот ссылка на продавца выключателей. Обратите внимание, у них не все выключатели беспроводные.
      • 0
        Спасибо, ушёл читать!

        Про тёплый пол мысль была в том, что гонять программу впустую и греть пол когда мы уехали и т.п. смысла нет, а денег на электричество уходит ровно в два раза больше. По-этому я хочу сделать вариант зависимый и от погоды за окном и от фактического присутствия людей в доме.
        • 0
          Просто купите программируемый контроллер для теплого пола. Что-то типа такого: www.klimat-pro.ru/catalog/floor/thermoreg/rtc/rtc89.aspx (не реклама, просто гуглил).
          • 0
            Да, такие я видел. Но в таких мне как раз не хватает «умности». Я хочу, что бы термостат учитывал не только свою программу, но и температуру и прогноз погоды, а так же наличие людей в доме.

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

            UPD: например такой
  • 0
    Удивительно, что никто не еще упомянул в комментариях Philips hue.
    Лампы с обычным цоколем, управляемые по Wi-Fi со смартфона или через веб-интерфейс. Умеют светиться сотнями оттенков всеми цветами радуги.

    В России, правда, официально пока не продаются, но хочется надеяться, что пока. Коллега заказал комплект в Штатах, сейчас не нарадуется. И даже пишет iOS-приложения для этих лампочек, потому что есть хороший API.

    Philips, где я могу получить деньги за рекламу?
    • +2
      Крутая вещь, но дорого до безобразия. Слишком много электроники внутри. Будет обидно, если помрет через полгода.
    • –1
      Классная вещь!
      Но в контексте хаба, за ~60 долларов без учета доставки намного интереснее помигать собственными лампами через Arduino-совместимый командный центр!
  • 0
    Автор, прошло уже какое-то время, что поменяли, усовершенствовали? Что думаете по поводу zigbee? Ваше решение, наверное напорядок дешевле.
    • 0
      Здравствуйте,

      Я не нарочно так задержался с ответом — почему-то не пришло уведомление о новом комментарии по почте, только сейчас случайно заглянул в профиль и заметил, что новый все же есть.

      В целом вся штука почти не изменилась. Немного поменял код центрального контроллера, самые значительные изменения от первой версии — управление выключателями Livolo через отдельную библиотеку, а не жестко закодированным сигналом и переход на более гибкое управление радиоустройствами через интернет.

      Последнее означает, что если раньше через интернет я мог выполнять только те команды, которые уже заданы в коде контроллера (например, включить розетку или выключатель «прописанные» в системе), то теперь через интернет могу выдавать произвольные команды (в пределах используемых библиотек RC-Switch и Livolo). Это очень удобно, если нужно быстро добавить новое радиоуправляемое оборудование (розетка, выключатель): ничего не нужно менять в коде контроллера, достаточно в Tasker, который я использую в качестве пульта, добавить еще кнопочку с соответствующим HTTP-запросом.

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

      Еще изменение касается управления светом в гардеробе. Выяснилось, что обычный китайский беспроводной датчик открытия двери как-то плохо подходит для этой цели в моей конфигурации. До причины я не добрался (то ли датчик не очень хорош, то ли приемник в контроллере — не знаю), но замучился бороться с нестабильным срабатыванием, поэтому целиком изменил концепцию.

      Теперь в гардеробе трудится симпатичная пирамидка (нужно промотать почти до конца текста), которая работает по принципу автомата света в ванной.

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