Как стать автором
Обновить

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

Очень интересно.

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

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

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

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

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

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

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

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

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

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

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

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

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

спс

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

image

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Или:

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

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

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

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

Код команды:
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
Вот еще вариант как определить что кто-то идет домой и заранее включить свет в прихожей.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Публикации

Истории