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

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

Очень круто, размах проекта впечатляет. Но в данном контексте, когда столько всего нужно сделать — тратить время на самописную виртуальную машину и свой язык, даже и похожий на С++ — это не самый лучший выход в наше время. Большому проект нужно большое комьюнити, и лучше привлекать адептов из смежных областей. Почему бы не использовать библиотеки и опыт mbed, а через него и ардуинщиков привлечь? Я бы с радостью писал программы в этой среде вместо изучения вашего фреймворка, ведь она и так упрощена до безобразия. Да, возможно это не так просто и придется помучиться над интегрированием в ваше ядро, с учетом многозадачности. Но игра стоит свечь, как мне кажется.
Большое спасибо за высокую оценку проекта. Идея на счет Ардуино-среды разработки просто отличная. Изначально в этом направлении не думал, но сейчас, когда объем работы осознается лучше, действительно, адаптировать существующую продуманную систему с готовыми библиотеками выглядит мудрым решением.
**вспомнил исходники the glitch, в которых нет отсылок на то, что все неприложенные хидеры надо искать в такой-то версии такой-то ардуино иде**
arduino ide настолько упрощена, что ей просто неудобно пользоваться.
Друзья, какие сенсоры еще нужны для дома?

Датчик шума.

Мое ИМХО конечно, но как насчет проводов — Ethernet'а в идеале с POE?

И я немного не понял из статьи, Вы это продаете готовое или делитесь с сообществом наработками?
Если продаете, то глянуть хоть одним глазком уже можно где-нибудь?
Мое ИМХО конечно, но как насчет проводов — Ethernet'а в идеале с POE?

Автор очень точно написал в начале про философию этого внедрения «разумного» дома — ты заранее предсказать не можешь, чего где захочется прикрутить и как поменяется логика. Соответственно заранее везде провода не заложить, рано или поздно придется уходит в радиоэфир. И что бы не городить гетерогенную картину (тут танцую, тут пляшу) — автор сразу все делает на радио и это верно на мой взгляд.
Я понимаю все сладости и горести проводов. К счастью (или к сожалению), я уже протянул провода во все (вроде-бы) уголки квартиры пока меняли проводку.
И я ни сколько не спорю с тем, что радио не нужно. Напротив, порой действительно без него не обойтись.
Уже имею экземпляр для тестов. Правда еще не дотянулись руки пощупать… :-( ремонт съедает все время после работы…
А piout не проблема кмк…
Привязка к «кабелю» многих в использовании умного дома и останавливает. Был недавно ремонт, а корода спрятанные в плинтусе уже надежно оккупированы кабельным ТВ и интернетом, не вопхнешься.
Согласен, но ведь кто-то уже использует провода в доме?
мало того Ethernet может быть как модулем для интеграции в свою систему чужих систем, которые увы, только Ethernet.

PS: ни в коем случае не хочу быть похожим на картинку «JPEG! JPEG! JPEG!!». Просто для себя я выбрал провод. И да, понимаю, что когда-то, возможно, придется добавить радио, опять же, например, для совместимости с каким-то готовым оборудованием…
Датчик шума — полностью согласен, хорошее дополнение к модулю безопасности.

как насчет проводов — Ethernet'а в идеале с POE?

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

Если продаете, то глянуть хоть одним глазком уже можно где-нибудь?

На данный момент все существует в виде прототипов, многое еще надо обкатать, но о производстве думаем. Хотим сразу устройства в хороших корпусах делать, а не в виде плат.
Спасибо. Понял.

Простите, а схемы плат планируете публиковать, или это будет полностью закрытый продукт? =)
Схемы, со временем, думаю, имеет смысл опубликовать. И интерфейсы детально описать.
Проект этот для творческих людей, возможно, кто-то захочет сделать свои собственные сенсорные или другие платы.
Да и повторить устройство самостоятельно будет не сложно и интересно — схема достаточно проста, плата двухслойная.
Роман, работа проделана колоссальная. Даже не верится, что в одиночку столько можно осилить, хотя наверно можно — но забив на работу и вложившись полностью.
Из готовых аналогов могу подсказать посмотреть на SPARK Core.
— так же очень маленький «головной модуль» 2*3,5 см, под него можно сделать дочерний модуль
— Они «никак» в плане децентрализации и MESH.
— Используют wifi модуль от Ti с STM32 контроллером.
— Веб среда разработки, wiring язык пользовательского скрипта, поддержка библиотек от комьюнити
— загрузка прошивки с облака и по usb
— возможность работать с локальным облаком (без web редактора кода пока, но upload скомпиленной прошивки через локальное облако возможен)
— сформировавшаяся тусовка на их форуме.
— все opensource лежит на github
Благодарю за теплые слова, действительно, труда вложено много, хотя и удовольствие от разработки весьма велико. Проект оказался настолько увлекательным, что не задумываясь трачу и выходные, и свободное время, да и деньги, конечно. Проще немного тем, что фрилансер, могу сам время распределять. А так да, семья моя уже с грустью смотрит: «Когда на море поедем-то?»

Из готовых аналогов могу подсказать посмотреть на SPARK Core.

SPARK Core — очень хорош, и имеет схожие концептуальные моменты. Но есть пара минусов, на мой взгляд:
— даже «гиковское» устройство должно иметь красивый корпус с продуманным дизайном, чтобы могло украсить любой интерьер.
— WIFI — загруженность частотного диапазона 2,4ГГц, на сегодняшний день, большая и будет расти, поэтому сразу ориентировался на 868МГц, за-то можно смело ставить в доме несколько сотен модулей.
Общая картина системы впечатляет. Всегда напрягала завязка «умного» дома на сервер, под который приходится отводить целую машину, по уму. А децентрализация, участие отдельных модулей системы в маршрутизации и взаимодействии с другими частями системы просто «на отлично». Руководствовались «Не клади все яйца в одну корзину»? Так же радует спартанский минимализм и простота, что, конечно, на порядки снижает энергопотребление модулями. Многих от использования систем «умного дома» сейчас останавливает необходимость развертывания достаточно большой инфраструктуры в плане проводки, точек доступа и прочих «приблуд».

Планируете выходить на «промышленные» масштабы? Думаете оставить разработку для среды гиков и программистов, или в планах есть user-friendly конфигуратор системы для домохозяек и гуманитариев людей не могущих в программирование?
Да, тоже всегда думал, почему Умные Дома тяготеют к централизации? Ведь распределенная система просто «сама просится».

Планируете выходить на «промышленные» масштабы?

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

Думаете оставить разработку для среды гиков и программистов или в планах есть user-friendly конфигуратор

Есть кое-что интересное в разработке для «программирования без программирования», в статье не писал, поскольку пока еще на очень ранней стадии.

Сначала будет вариант для гиков. По мере появления свободных рук и ресурсов, будем реализовывать он-лайновый визуальный редактор или скорее конструктор, для программирования системы в графическом виде. Максимально, как Вы правильно сказали, user-friendly. Не так, как в Скрэтч-редакторе, на более высоком уровне абстракций. Концепция взаимодействия между модулями на основе «сигналов» позволяет легко проектировать итоговую систему подобно тому, как это выглядит в он-лайновом конструкторе ВЕБ-страниц. Удобно манипулировать модулями, «электронными кубиками» и «отношениями» между ними. Более-менее типичные решения можно получать простыми манипуляциями мышки, а сгенерированный готовый код дополнять, при желании, вручную, или не касаться программы вообще. В можно реально облегчить рутинные операции и дать возможность не-программисту работать с системой.

Если заглядывать много дальше, в мечтах — довести систему до такого уровня простоты и удобства (и цены), чтобы на самом деле, домохозяйкам в супермаркетах продавать.
Роман, вы уже не первый раз пишете «мы», вы не один работаете над проектом?
Есть друзья, к которым иногда обращаюсь по электронике и веб-технологиям, обсуждаем концепции. Получается — «Мы», но друзья, в силу различных причин, к сожалению, всерьез к проекту подключиться не могут, так что постоянный участник и «двигатель» проекта пока в одном лице. Надеюсь, ситуация изменится в лучшую сторону.
Мода на ардуинки и малинки сделала больше, чем хотелось бы; горшочек, не вари!

имхо, очень хорошо, что система получается распределенной. Но, очень плохо то, что эта «распределенность» вместо абстракции имеет под собой конкретную основу — связная сеть ARM'овых контроллеров? Не хочу. Хочу пачку реле, привязанную на тупой 8битный девайс, который при наличии управляющего процесса на линуксовой x86 машине будет делать именно то, что говорит x86 машина. Как насчет копирования состояния виртуальной машины из x86-контроллера в реальный — пошагово?
Отличный проект.
А теперь — по конкретике:
Для Вас похоже это — бизнес. Так? Тогда вопрос: цена. Хоть предполагаемая, хоть какая… Когда можно ждать? Интересуют большие поставки, сколько можно ожидать устройств? Где и как будете делать?
Есть желание продавать много, соответственно, цены постараемся сделать привлекательные.
Стремлюсь, что бы розничная цена базового модуля была не более 20-25 долл., доп. блоки — разные, в среднем 10-15 долл. Но будут и дорогие, поскольку некоторые датчики, например CO2, десятки долларов стоят.

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

Платы китайцы сделают, быстро, дешево и качественно. Корпуса — у них же. Монтаж скорее всего своими силами сделаем.

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

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

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

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

Во первых, иногда случается, что наши ожидания не соответствуют реальности,
и реальный спрос может быть очень малым.
Ваш продукт может нравиться многим ( и даже ОЧЕНЬ многим),
и при этом, по какой то «необъяснимой» причине,
число покупателей может быть оч малым.

Вам необходима тщательно продуманная схема продаж и определиться с заказчиками.

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

Далее, партия в пару тысяч изделий — изделия ведь придется тестировать,
заливать софт, в конце концов упаковывать и клеить этикетки…
Когда нет хорошо отлаженного процесса — это УЙМА работы.

Также, ктото должен будет заниматься заказами, их отправкой, обработкой платежей…

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

Начав с сотни-другой изделий
( ок, пусть они и обойдутся процентов на 20-30% дороже )
Вы сможете оценить реальный спрос, отладить техпроцесс логистики ПРОДУКТА,
«малой кровью» исправить ошибки и прочее.

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

И стоимость «ошибки» будет на порядок ниже, чем при большой партии.

Тоесть даже если в самом худщем случае чтото не заладится
— Вам это обойдется в тыщу-две баксов.

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

Желаю Вам успехов!
Благодарю Вас за добрые советы.
Есть над чем подумать, все может оказаться не столь гладко, как хотелось бы. Потеря указанной суммы, конечно, будет весьма болезненной. Да и больше сумма выйдет, изготовление пресс-форм для корпусов изрядно стоит…
Автор молодец. Пост не назовешь из песочницы. Прям из карьера по добыче песка и гравия за одно.
Все таки об интерфейсе. Большая часть исполнительных устройств будет завязана на сетевое напряжение. Технология Home PNA точно не может быть подспорьем? Были лет 3-4 назад недорогие модули на эту тему. А насчет ардуино технологии в разработке софта — обоими руками поддерживаю — они уже все сделали, остается только скопировать ))
Почитал о Home PNA. По-своему хороша, но все-таки провода. Плюс дополнительный чип — тоже деньги. Поддерживать две сетевых технологии сложнее, от беспроводных-то сетей не откажешься — они дают большую свободу.
При разработке схожей системы столкнулся со следующими сложностями:
— при наличии большого количества модулей, хранить все переменные/сигналы в голове уже сложно. Необходимо место где это можно посмотреть, желательно с организацией в виде дерева.
— из-за лимитированных ресурсов ограниченны возможности отладки, разработку алгоритмов упрощает использование FBD подобного языка.
— для отладки желательна возможность послать произвольные сигналы и смотреть текущее состояние переменных.

Проект класный, буду следить за развитием.
Спасибо большое! Советы, полученные из практики особенно ценны.
Возможностям отладки, действительно, надо уделить больше внимания.

Задумался над организацией работы с большим количеством модулей. И такая мысль пришла.
К безадресному сигналу:
Signal("SENSOR", data);

Добавить еще один тип сигналов, где можно использовать метку (alias) модуля.
В одном модуле объявляем что-то вроде:
SetAlias("Kitchen");

А в другом отправляем ему и другим кухонным модулям:
Signal("SENSOR", "Kitchen", data);


И все модули, которые помечены SetAlias в скрипте как «Kitchen», обработают сигнал «SENSOR», если они его слушают.
А модули с меткой, например, «Bedroom», проигнорируют данный сигнал.

Кажется, это должно немного облегчить жизнь, назначил модулям метки: эти на кухне, эти в спальне, а эти еще где-то и все, пусть система сама разруливает, кому какие сигналы пришли.
Проще задавать произвольный путь. Возможные уровни:
здание/этаж/помещение/узел/(сенсор или актор)/параметр
у наc используется /dev/узел/(сенсор или актор) — и этого уже нехватает.
По себе знаю, за 1 час в день такое не провернуть. (Если, конечно, устройства на картинках действительно существуют :) Работа большая, но ещё больше нужно сделать.

Какие датчики ещё необходимы:
— влажности,
— датчик дождя,
— протечки,
— геркон следует сделать отдельно и маленьким, что бы можно было навесить на окно или дверь
— отдельно (очень) маленький 2xDI для встраивания за существующий выключатель

Вопросы:
— Как заряжается аккумулятор на Interface #3?
— Будет ли графический интерфейс?
— Будет ли код Open Source?

По себе знаю, за 1 час в день такое не провернуть.

Примерно 1,5 года пошло с момента, когда первые наброски были сделаны.

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

Как заряжается аккумулятор на Interface #3?

Внешнее питание — USB-разъем, сам аккумулятор можно подключить к стандартному игольчатому разъему 2,54 мм или к винтовому клемнику.
Схема контроля заряда — на самом Interface #3, дополнительные зарядники не нужны, нужен только блок питания 5 Вольт, от мобильника, например.

Будет ли графический интерфейс?

Поясните, пожалуйста, что имеется ввиду? Графический интерфейс для визуального программирования системы или модуль с экранчиком?

Будет ли код Open Source?

Исходники Веб-приложений интерфейсов, включая редактор кода, API модулей и «облачной» части должны быть доступны.
Часть внутреннего ПО модулей, думаю, тоже можно будет со временем открыть, закрытой точно останется система шифрования и сетевого обмена с целью безопасности.
закрытой точно останется система шифрования и сетевого обмена с целью безопасности

Будьте осторожны с security through obscurity.
Интересно Ваше мнение, скажите, пожалуйста, какие таятся в этом опасности?
Да собственно, сейчас ситуация не та, что была 2 года назад, сейчас уже есть системы на рынке за реальную цену, которые можно использовать, вместо того, чтобы делать свое с нуля. Вот только вопрос безопасности и защищенности был, остается, и скорее всего, будет оставаться открытым.

Возьмем к примеру вашу систему. Вы пишите, что «защита данных — AES128». Но как именно он защищает данные? AES128 — симметричный шифр, и единственный способ защитить данные пользователя — дать ему возможность ввести один и тот же ключ на всех устройствах сети. Передача ключа «по воздуху» в открытом виде или не дай боже использование статического ключа для всех нод — это не безопасность, это курам на смех. Так вот, надо вводить ключ. Либо физически на устройстве, либо подключая каждую ноду к компу («безопасный физический канал»). Эта тема освещена у вас? Нет. Доверие есть к вашей системе? Нет ;-).
Планировал: зашивать индивидуальный набор сеансовых ключей вместе с сетевыми идентификаторами в защищенную область флэша. Каждому модулю — свой набор, алгоритм использования ключей из набора — также часть защиты.

А что бы Вы посоветовали сделать, чтобы завоевать Ваше доверие к системе?

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

> А что бы Вы посоветовали сделать

Ну, для начала, хотя бы намек на то, что автор знаком с тем, как работает паринг/аутентификация в существующих протоколах — BT, BTLE, WiFi (WPS). Я понимаю, что статья обзорная, но фраза «на каждом устройстве присутствует кнопка, используемая в частности для начального паринга, и светодиод, для подтверждения пользователю миганием» — внушила бы доверие.
Понял, в чем вопрос. Этот момент я никак не описал в статье, исправляюсь.

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

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

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

Из минусов:
— некоторое усложнение процедуры подготовки модулей к отправке заказчику,
— привязка сети модулей пользователя к аккаунту и сетевому сервису.
Есть еще схемы обена ключами RSA например. После такого обмена у 2х сторон есть все ключи противоположной стороны.
Такой обмен можно использовать скажем при инициализации устройства. И уже потом использовать AES в любом исполнении, что не оч накладно для маленькой STMки или продолжать использовать RSA — по вкусу…
Спасибо большое.
Хорошее решение, стоит подумать о реализации.
Проблема безопасности достаточно серьезна, чтобы пытаться решить все самому. Что хорошо для прототипов, не всегда годится для серийных устройств.

На определенном этапе лучше привлечь хорошего специалиста, я это понимаю.
Согласен, что защита — Security through obscurity — тупиковый метод. Кнопки, наверно, был бы выход. Нажал на обном устройстве, нажал на Gateway или другом устройстве. Ключ передался по открытому каналу один раз и всё. Ну уж если взломщик в этот момент слушает траффик, то это конечно не спасёт. Но всё же лучше статического ключа.
Обычно это создает ложную иллюзию защищенности, отсекая лишь взломщиков без достаточного опыта или мотивации, при должной квалификации и настойчивости reverse engineering снимает эту дымовую завесу, оставляя ваше творение один на один со взломщиком, со всеми теми недоработками, на которые вам могли бы указать, будь алгоритмы защиты опубликованы. Более того, это понижает доверие к системе, так как в открытом случае можно самому проверить и убедиться или учесть мнение нескольких специалистов, а тут — только надежда на то, что создатель системы что-нибудь не упустил. А, как известно, в этих вопросах сложно что-нибудь не упустить :)
По этим причинам, насколько я знаю, сокрытие алгоритма защиты считается плохим тоном, псевдозащитой.
CO, O2, радон

Хотя основная идея мне кажется нерациональной. Интернет вещей кажется более правильной идеей.

Сейчас даже сенсорны корпоративной безопасности делают облачными.
Будьте добры, поясните, пожалуйста, на Ваш взгляд, в чем недостатки основной идеи?
наличие центрального сервера, да еще выполненного столь громозко. Узлы должны быть автономными, пошел в магазин — купил за 20-30 баксов, добавил на вебсайте в конфигурацию, и все работает.

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

Нет в системе никакого центрального сервера.

Основные характеристики системы:
— распределенная;
— модульная;
— способная работать автономно;

Именно уйти от централизации было решено изначально. Какие-то внешние устройства — ноутбук, комп или планшет — нужны лишь для программирования системы.
Интересно, а как были собраны макросы вроде @функция?
Или используется препроцессор какой-то?
Препроцессор в этом случае не задействован.
@ — при трансляции обрабатывается как токен, обозначающий функцию скрипта доступную из Си-кода, т. е. «публичную». Эти имена потом передаются в таблице вместе с байт-кодом. Соответственно по её имени можно получить её условный адрес в основной Си-программе и передать виртуальной машине обработку байт-кода с этого «адреса». Так, собственно, обработчики всех событий в скрипте пользователя и работают.
В электронных устройствах главное — питание. Тут есть 2 варианта — блок питания и провод или батарейки. Их плюсы и минусы писать не буду, они и так известны. Но, как говорится, из двух зол нужно выбирать меньшее. Поэтому я согласен с автором по поводу выбора батареек.
Но а если вдруг где-нибудь батарейка разрядится?
Будет неприятно, когда утром шторы не откроются, потому что разрядился элемент, их контроллирующий.
Контроллируется ли сейчас как-то заряд батарейки? Было бы хорошо получать уведомление о том, что где-то осталось 10% заряда. И в список покупок автоматически добавляются батарейки — ведь дом максимально автоматизирован!
Или даже батарейки сами заказываются на Amazon, а в гостинной открывается окно, через которое квадрокоптер доставит товар
О как меня понесло! :)
Замечательная идея, автоматически заказывать батарейки на Amazon с доставкой через открывающееся окно. В наш век, пожалуй, так и должно быть.
Контроллируется ли сейчас как-то заряд батарейки?

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

Для привода штор и других моторов лучше аккумулятор или ионистор использовать, сил у батарейки может не хватить.
Батарейки хорошо использовать для мало-потребляющих сенсоров, чтобы поставить и год-два не заглядывать.
И что, ваши модули работают год-два от батарей? Увы, год-два от батареи, mesh и real-time реакция — это фантастика. Именно поэтому индустриальные стандарты вроде BluetoothLE делают «по-тупому», никаких mesh'ей, централизованная звездочка, и все. Зато работает от CR2032, и если отказаться от realtime'овости, то даже обещают год-два (правда пока никто такого не видел, возможно брешут). Кстати, батарейку раз и поменял, а с Li-poly аккумуляторами как быть?
Вы правы, если все модули будут питаться от батареек, никакой mesh-сети не выстроится, они просыпаются раз в несколько секунд, чтобы отдать в эфир свое состояние и пакеты с данными, если есть. Их можно перевести в постоянный режим, но так они батарею за несколько дней съедят.

с Li-poly аккумуляторами как быть?

Li-poly аккумуляторы — заряжать, хотя понимаю, не всем эти лишние действия понравятся. Чем меня аккумуляторы привлекают, так это компактностью — модули «похудеют» с ними почти в два раза.
С другой стороны, упростить все можно:
— использовать CR2032 для компактных модулей, которые большую часть времени во сне проводят;
— для тех, что постоянно работают, аккумуляторы могут быть опцией, на случай отключения энергии, аккумулятор там и дозаряжаться будет, без участия пользователя.
> если все модули будут питаться от батареек, никакой mesh-сети не выстроится

Ну вот, начиналось все так красиво — гомогенная mesh-сеть с flood-раутингов event'ов (ведь именно это вы реализовали, если любой модуль самостоятельно может реагировать на любые event'ы, так?). А вернулось к нашим WSN'овским баранам о том, что гомогенная сеть нежизнеспособна, и узлы должны быть специализированы по алгоритмам поведения (а значит, по сетевым алгоритмам). И кроме просыпающихся раз в несколько секунд сенсоров, должны быть просыпающиеся по внешнему событию очень редко, но отрабатывающие очень быстро. Потому что вас будет безумно раздражать, если от момента нажатия на кнопку до зажигания света пройдет 1-2 секунды, а жена так вообще не будет пользоваться, про отзывы покупателей вообще молчу. И все это у вас реализовано в 10K кода? Реквест: не пишите про пайку QFN, баян. Пишите про это.

> Чем меня аккумуляторы привлекают, так это компактностью — модули «похудеют» с ними почти в два раза.

Да-да, ход мыслей именно такой. Но мы же хотим N узлов на квадратный метр, как мы можем подписывать пользователя на конвейер по зарядке сотен устройств? Поэтому ход мыслей логично ведет к energy harvesting. Не стесняйтесь, показывайте ваши прототипы из разломанных солнцезарядных фонариков ;-).

> С другой стороны, упростить все можно:

«Упростить»? Увы, это все весьма усложняет задачу построения реально пригодной для использования smarthome системы…
Спасибо, вопросы очень дельные. Есть над чем подумать и что обсудить. Вкратце:

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

— «не спящих» модулей, по идее, будет достаточно много, чтобы они поддерживали инфраструктуру сети. Почему?
А) Многие интересные сенсоры нуждаются в сетевом питании — иначе батарейку за день съедят. Это датчики некоторых газов, сенсоры перемещения людей и другие интересные устройства.
Б) Все управляющие нагрузкой модули: для светодиодов, моторов, насосов и светильников, все они постоянно в сети.
В) WIFI-интерфейс многие предпочтут, а ему тоже постоянное питание нужно.

— радиопередатчики CC1101 весьма дальнобойные, соответственно «роутерный» режим модуля на практике, в условиях квартиры/дома будет не часто включаться.

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

— программирование спящих модулей будет идти медленнее, на это время их лучше перевести в обычный режим.
> мысли об удобстве системы питания важны.

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

> «не спящих» модулей, по идее, будет достаточно много, чтобы они поддерживали инфраструктуру сети.

Верю. Я бы даже сказал, типичный случай — что такой powered будет. Один. Тогда стоит ли заморачиваться с mesh? ;-)

> радиопередатчики CC1101 весьма дальнобойные, соответственно «роутерный» режим модуля на практике, в условиях квартиры/дома будет не часто включаться.

В смысле, будет плохо реализован и отлажен? ;-) Я не подначиваю и не критикую, а делюсь своими сомнениями, появившимися в процессе следования по сходному пути.

> из режима глубокого сна микроконтроллеры выходят по аппаратному прерыванию, привязанному к 1-2 выводам, соответственно, очень быстро.

Так дело-то не в прерываниях, а в том, как передать это событие в realtime, чтобы его не забивали десятки датчиков освещенности, спамящие эфир 4 раза в секунду. Надо делать QOS, причем я бы сказал не простой, а многоуровневый, а то как бы event затопления не «потерялся». Ой, не вместить все это в 10K…
В смысле, будет плохо реализован и отлажен?

Шутку оценил :)

такой powered будет. Один.

Надеюсь, даже рассчитываю, что много больше, потому как сама концепция распределенной системы, реализуется не только для надежности, а для того, чтобы Умный Дом-таки стал на самом деле умным ;)

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

Идея в том, что чем больше модулей (powered, конечно), том больше «интеллектуальный потенциал» умного дома.

Надо делать QOS

Может, лучше спамить критическими сообщениями сильнее, чем все прочие? ;)
А если серьезно, надо подумать. Спасибо за идею с QOS. И, конечно, в 10 Килобайт можно не уложиться.
Что насчёт беспроводной передачи электроэнергии? Что-то наподобие зарядки Qi, только раздаёт она энергию на большое расстояние, например на комнату. Существуют ли такие системы, хотя бы прототипы? Это решило бы проблему и проводов, и вечно разряженных батареек.
Существуют. В двух вариантах:
1) Мощные, могут питать телевизор. Но человек в комнате для них нечто вроде помехи. Да и есть сомнения в полезности этого мероприятия.
2) enOcean. Как раз умный дом с питанием за счет сбора энергии. Там много вариантов, что и как собирать, включая энергию от нажатия кнопок выключателей.
Идеи в правильном направлении. Избавиться от необходимости менять батарейки или быть привязанным к розетке — мечта. В перспективе хотелось бы её воплотить, но пока сложно.
Замечательная идея, автоматически заказывать батарейки на Amazon с доставкой через открывающееся окно. В наш век, пожалуй, так и должно быть.

А когда батарейки доставлены, домашний робот-слуга распечатывает их и вставляет в нужный датчик. Или в самого себя :)
Я если не ошибаюсь, поправьте если не прав, но частота радио канала какая-то странная, обычно производители используют 433МГц, а у вас на изображении 8++ МГц вроде как…
У 868 МГц есть не мало плюсов. По сетевой части делаю небольшую статью, там распишу, почему выбор пал на этот диапазон.
А еще у него есть недостатки, как например неоткрытость диапазона в некоторых частях света. Вот почему индустриальные стандарты вроде BluetoothLE делаются на на глобальной частоте 2.4ГГц — плевать на проникновение сигнала, зато продавать можно где угодно ;-).
Да, Вы все верно сказали, нелицензируемые частоты: 868 МГц — это для России и Европы, в США — 915 МГц. Это учтено, в разработке — антенна и согласующая схема рассчитаны на оба диапазона, а переключение работы радио-чипа производится программно.

Более того, можно и на 433 МГц переключиться, и на многие другие полосы частот, правда, несколько потеряв в чувствительности приема. В тестах, был удивлен, пробивает через 2 перекрытия на 433 МГц с антенной на 868 МГц.

Постараюсь на следующей неделе статью о сетевой части доделать, там обстоятельно расскажу, чем руководствовался при выборе рабочего диапазона.
Вы лучше расскажите, что вы делаете, когда не пробивает. Есть ли у вас к примеру vector network analyzer, чтобы протестировать антенну и убедиться, что она настроена и работает оптимально и отделить проблемы антенны от проблем окружающей среды? А еще бесит, что с визуализацией в этом мире плохо. Хотелось бы надеть очки и видеть распространение электромагнитного поля. Так не только досе не сделали такое, не понятно, можно ли сделать такое вообще реалистично. Да что там говорить, если даже тепловизор — девайс на грани фантастики на пару килобаксов. Грустная физика в этом мире ;-).
В России и 433-434, и 868-869 являются безлицензионными диапазонами (при соблюдении максимальной мощности, что делают далеко не все). Но если первый довольно плотно занят, то во втором относительно свободно, но это зависит от местности, ибо там попадаются радио-микрофоны с довольно мощными передатчиками.
А несмотрели вот этот проект, pinocc.io/ на мой взгляд очень схоже
Ух, и правда, похож с виду.
Спасибо большое. Посмотрю подробнее.
Роман проект супер. НО то ли я статью не до конца понял то ли не увидел. Взаимосвязь модулей между собой полностью автономная. Эта реализация конечно супер. И если я правильно понял то можно каждый модуль настроить так чтобы при получении информации от другого модуля он выполнял определенный скрипт. Но как идет взаимосвязь «сеть модулей» < — > " компьютер ". Применяется какой то отдельный адаптер или что?
Просто концепция так называемого умного дома мне интересна самому. Очень интересно этим заниматься. Но мне больше интересно было бы использовать существующие модули и подключать их к своей системе нежели, делать свои. Я начал с простейшего подружил модули ноолайт с роутером на базе openwrt. Получилось и автономно и работа через интернет, да и мелкие плюшки. habrahabr.ru/sandbox/83923/
А можно ли как то начать с вами сотрудничать, может я смогу оказать какую то помощь, содействие? И использовать ваши наработки в своей сети? Проект полностью опенсурс, не умею я такие вещи монетизировать, да и с сообществом он получит большее развитие на начальном этапе. Мне очень хочется получить систему которая была бы автономной, и в тоже время обладала бы возможностью простого управления и очень легкого конфигурирования, дабы пользователь без навыка программирования мог настроить все так как нравится ему.
Понимаю что все это сложно и тяжело, из за этого сейчас я со своими коллегами очень сильно уперся в вопрос веб интерфейса, простого и примитивного но в тоже время функционального. Может быть общими усилиями мы сможем добиться чего то. Потому как даже банальная проработка модуля для управления кондиционером заняла у меня очень много времени. (Была задача построить автономный домашний лимат контроль, дабы выходя с работы, я мог включить удаленно кондиционер, и по приходу домой меня бы ожидала комфортная температура)
Подключить к AR9331 вч модуль на 868 большой проблемы не представляет, вопрос только в реализации протокола. А если он еще и влезет в память ATMEGA, к сожалению работаю только с ними, то все будет просто замечательно.
Применяется какой то отдельный адаптер или что?

Да, концепция такова, что каждый модуль состоит из двух/трех элементов: соединяем базовую часть и интерфейсную с WIFI или Bluetooth. Все, система может постоянно находиться on-line, перепрограммироваться, управляться и. т.

Интерактивность важна, но умный дом тогда Умный, когда он старается сам догадаться, что человеку сейчас нужно.

Все это, конечно, не так просто создать. Нужны исследования, разработка алгоритмов и одновременная проверка их в реальности. Концепция системы как раз такова, что располагает к техническому творчеству и обкатке распределенных алгоритмов. При этом будет не в виде «Ардуино и клубок проводов», а максимально эстетичном и удобном для повседневного использования виде.

А можно ли как то начать с вами сотрудничать

Если есть желание, всегда можно оказаться взаимно полезными.

ATMEGA

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

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

Встречный вопрос. Скажите, пожалуйста, какая цена такого устройства была бы для Вас приемлемой? И какое количество интересует?
В идеале, это должно быть устройство размерами примерно с набор автоматов на соответствующее число линий (4, 8, 12… у меня почти каждая розетка подведена к щитку отдельной линией), полностью сертифицированное и позволяющее мне реализовать не только подсчёт элетроэнергии, но и сценарий «в линии пропал потребитель — отключаем её полностью» (т.е. «ребёнок вытащил вилку электроприбора и суёт в освободившуюся розетку спицы») и диммирование; ну, с последним, наверное «на каждую линию» будет неоправданно дорого, проще запитать отдельный «многолинейный диммер» от одного автомата, но данный абзац про идеал.

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

Я сейчас делаю разводку, исходя из требования «1 комната — 1-2 группы розеток», и у меня уже получается до хочень много кабеля. А в вашем случае, если тянули каждую розетку в щит, это ж сколько провода вы заложили в стены? Или у вас в каждой комнате по промежуточному щитку?

сценарий «в линии пропал потребитель — отключаем её полностью»

Тоже интересно, но не представляю, как это реализовать без сигнального контакта в розетке и дополнительного провода. Если в случае с каким-либо блоком питания все ясно (всегда есть ток, пусть очень маленький, но есть), то, например, с утюгом все печально — после нагрева в нем физически разрывается цепь, что равнозначно его «выдергиванию» из розетки.
Или у вас в каждой комнате по промежуточному щитку?


Именно так. Один щиток входной + кухня + отдельные линии к кондиционерам и стиралке, второй на кабинет + балкон, третий на спальню + санузел.
Не успел отредактировать свой комментарий:

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

Но кое-что есть. Покупаете автоматы от ABB. У них сбоку и сверху есть разъемы для дополнительных контактов. Т.е. покупаете этот дополнительный контакт, выламываете заглушку, приделываете контакт. Эти самые контакты подключаются к СКУДе и сообщают ей, когда произошла авария.

Есть еще вот такие штуки:
meandr.ru/uzm51m
meandr.ru/om63

УЗМ 51М всем очень рекомендую. У меня оно периодически обесточивает квартиру, когда на вход более 250 приходит.

А если хочется чего-то более хитрого, то берете контакторы, подключаете управляющую линию к PLC, подключаете к нему датчики и творите что хотите. Но, во первых, это никоим образом не заменяет базовую защиту в виде автоматов и УЗО, а во-вторых, не очень бюджетно.
Если городить «управляемый размыкатель» отдельным корпусом на рейку, в щитке потребуется вдвое больше места. Это неудобно.

Насчёт дополнительных контактов у ABB погуглил, но какого-то бо-ме популярного текста на тему «с чем едят» не нашёл.

Если городить «управляемый размыкатель» отдельным корпусом на рейку, в щитке потребуется вдвое больше места. Это неудобно.

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

Про контакты есть тут: cs-cs.net/avtomaty-greb-sk в разделе «Извращенские приблуды: Сигнальные контакты для серии S200»
Задумка классная, но вот я, к примеру, тупой и паять не умею. Программировать — это ладно, это можно, а паять как-то не срослось. Соответственно вопрос: а есть что-то из систем умного дома, которые предполагают модульный монтаж и сравнительно несложное программирование? Может кто кинет линки на какие-нибудь обзоры?
Смотря что подразумевается под умным домом, если включение выключение света и электроприборов то Noolite, все примитивно и просто. Плюс выше кидал свое описание как все это подружить с роутером на OPENWRT, и тогда можно и простую логику прикрутить. ТАм только программирование, ничего паять не надо.
Если что то более серьезное и сложное то Z-WAVE и прочие более дорогие решения.
Вопрос в финансах и вашем видении умного дома.
Играюсь сейчас с весьма бюджетным контроллером Умного Дома для «домохозяек». Простора для программиста конечно не так много как здесь, но паять не надо и для решения простых задач типа антипротечки или охранной сигнализации вполне достаточно — сценарии, таймеры, календарь, условия, управление через интернет и со смартофна… 1-m.biz

а вообще вот товарищ постарался и выложил списочек систем по Умному Дому на разный вкус:
http://buildingsmarthome.ru/smarthome/technology/smarthome-technologies-review
Извиняюсь, если кто-то уже озвучил, комментарии читал по диагонали.
Давайте только представим, что монтировать систему должен электрик ЖЭКа (пусть и продвинутый), а эксплуатировать человек, умеющий лишь постить сэлфи и тарелки с едой в Инстаграмм. Как говорит мой любимый шеф — система разработана программистом для программистов. В данном виде у неё нет ни малейшего коммерческого будущего, хотя задумка весьма интересная и красивая. Т.е. для себя и избранных хабровчан.
Автор начал с разработки финишных модулей и сильно увлёкся этой темой. В итоге — определённая перегруженность, а следовательно, увеличенное время разработки, более, чем необходимо. Задачи, решённые в процессе разработки интересные, но скорее с академической точки зрения, чем с практической.
Я бы предложил начать с управляющего центра, который будет общаться с конечным пользователем и работать с финишными модулями. Кстати, на него же можно возложить и программирование управляющих блоков. И не обязательно заморачиваться с разработкой интерпретатора байт-кодов и их загрузкой, можно просто грузить готовые программы. Плюс некоторые доработки по конструктиву.
Если всё расписывать более развёрнуто, получится отдельная статья. Возможно имеет смысл изложить все свои претензии и предложения, ибо в основе своей система понравилась, а главное — подсказала ряд идей.
P.S. Автору огромное спасибо за проделанный труд, и главное, за публикацию идеи. На мой взгляд, при определённой доработке напильником, проект весьма работоспособен, а главное — конкурентоспособен. Ибо прост и не дорог. Прост, в том числе и в плане установки-настройки (при условии доведения до ума вопроса простоты общения и, возможно, конструктива).
Спасибо, друг, за интересный комментарий.
Мысли весьма разумные и правильные. Есть о чем поразмыслить и что обсудить. Буду рад общению.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории