Pull to refresh

Comments 23

Отдельно устройство приемник за 50$, отдельно передатчик за 50$.
Научится бы ловить/отправлять такими штуками за 1,5$. Если у кого есть положительный опыт, поделитесь, пожалуйста.
Первый шаг — радиовыключатели.
Второй шаг — централизованное управление.
Третий шаг — автоматизированное управление.
Четвертый шаг — обратная связь.

А потом начинается самое интересное, я сейчас там топчусь.
Использовал не такие штуки, а nrf24l01 (1,5$) + Arduino (3,5$) + реле (1,5$) + трансформатор для питания (2$).
Еще не завершив автоматизацию дома, хочу переползать на Zigbee. Потому что писать свои протоколы маршрутизации для беспроводной сети с обратной связью оказалось непросто.

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

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

А вот от ZigBee как раз отказался (лежит не то 3, не то 4 модуля) ибо слишком не прогнозируемая лотерея — при закрытом протоколе, порой, разные партии друг с другом не живут, не то, что разные (особенно — китайские) производители… Ну и цена какая-то совершенно негуманная для домашних поделок. За такие деньги уже лучше начать думать про wifi.
Спасибо.
Zigbee же открытый, нет? Есть проблемы, если готовые устройства брать, детали реализации верхнего уровня у разных производителей разные, но на уровне базового протокола я не видел отзывов о несовместимости.
Более распространенный Z-Wave потому и не стал рассматривать. Разные частоты (многие запрещены в России), только готовые устройства, ограниченная доступность документации, высокая цена.
У китайцев модуль ZigBee в розницу меньше 10$. Имхо, гуманно. И, в принципе, можно отказаться от Ардуино, чипа на модуле достаточно для логики.
Если интересует именно mesh, а не почти аналог NRF по функционалу, то надо очень внимательно выбирать. Ибо не в каждый модуль можно зашить мозги под mesh — ревизия железа «не позволяет», насколько я помню доки и софтину для настройки модуля. А что за ревизию предлагают китайцы — надо смотреть.

Где-то наталкивался на рассказы о несовместимости — возможно на Казусе — больше года назад, не помню уже :(
Если бы узнал об этой выставке заранее, обязательно посетил бы =( Может кто посоветует как мониторить подобные мероприятия… =)
Фиг знает. Я вот в жж нашел, а где искать централизовано — незнаю. На сайте экспоцентра есть список выставок, но это только их.
По поводу датчика температуры и влажности:
Он периодически отправляет свое состояние всем привязанным устройствам. Отправляемая команда — отдельного типа, содержащая в поле «данные» (4 байта) информацию о текущей температуре и влажности. Также, возможно, это устройство будет содержать еще датчики давления и освещенности (будет передаваться та же самая команда, но с дополнительной информацией в поле «данные). Т.к. датчик температуры/влажности отправляет отдельный тип команды, силовые блоки не смогут с ним взаимодействовать. Т.е. информацию с этого датчика можно будет обработать только при помощи приемника (кстати, Ethernet-шлюз тоже имеет приемник и может показывать температуру/влажность в комнатах). На счет сроков начала производства — насколько я знаю, декабрь-январь.

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

Не ручками! :)

Например, я участвую в разработке системы усравления домом по сценариям. Она позволяет навешивать на произвольные события в доме произвольную логику управления домашними устройствами. Сценарии пишутся на Java Script, набор событий и API домашних устройств легко расширяется с помощью плагинов. Как раз с помощью этой системы работал сценарий с камерой на стенде «Ноотехники».

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

P.S. Ну или можно использовать, например, MajorDoMo.
Не ручками! :)

Например, я участвую в разработке системы усравления домом по сценариям. Она позволяет навешивать на произвольные события в доме произвольную логику управления домашними устройствами. Сценарии пишутся на Java Script, набор событий и API домашних устройств легко расширяется с помощью плагинов. Как раз с помощью этой системы работал сценарий с камерой на стенде «Ноотехники».

Система — это которая на .net написана? Как-то не очень хочется, я уж лучше себе сам напишу.
Да и ручками — я имел ввиду, что проверку вида if (hum_bath > 60 && bath_light != 1) power(on, 50, bath_air) придется писать, а не выбрать в веб-конфигураторе шлюза.
Вы так написали, будто .net — полный отстой. Зря Вы так к нему относитесь :(

На счет проверки в коде — удобство очень зависит от того, какая нужна логика проверки. На мой взгляд, это похоже на использование консоли git вместо ui — многим кажется удобнее.

Кстати, как Вы представляете UI для строчки кода, которую привели в качестве примера?
Вы так написали, будто .net — полный отстой. Зря Вы так к нему относитесь :(

Я плохо отношусь к Windows в качестве сервера любой степени надежности. А сервер умного дома — это довольно критично.

Кстати, как Вы представляете UI для строчки кода, которую привели в качестве примера?

В мажордомо вроде было-что такое. Обычно — выбором полей из выпадающего списка. Если [влажность/температура/освещение/давление] [больше/меньше/равно] [60] [И/ИЛИ/ТО] [освещение/вентиляция] [ванной/кухни/коридора/зала] [выключено/включено] [И/ИЛИ/ТО] [включить/выключить/установить уровень] [освещение/вентиляция] [ванной/кухни/коридора/зала] [50].
Выбирается начиная с первого параметра, следующие подставляются в зависимости от выбранного. Т.е. если выбираем в списке И — то подставляется список параметров, которые можно читать, а если ТО — значит выбор условий завершен, и надо выбирать действие по этому условию.
Такой интерфейс легко подключить, но не уверен, что это удобнее одной строчки кода. Особенно с учетом того, что с таким ПО обычно работают технические специалисты (которые настраивают сценарии), а не обычные пользователи в повседневном режиме.

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

Мне не нравится идея, что для конфигурации умного дома нужен будет специалист. Такая точка зрения тоже имеет право на существование, но она накладывает ограничения — нельзя просто продать систему человеку, нужна установка и первоначальная конфигурация, что сразу ограничивает удобство и повышает цену. Купив начальный комплект за 2к, человек еще за 2к будет вынужден вызвать настройщика.

На счет windows-сервера — мне показалось, что Вы плохо относитесь к нему из-за наличия соответствующего стереотипа, а не из-за объективных недостатков. Можете привести более конкретные аргументы?

У меня руки недостаточно прямые для него. Если я где-то накосячу, то в винде оно заработает, но будет радовать меня периодическими глюками. В линуксе просто на заработает, и вынудит меня исправить глюк.
На самом деле я тоже против необходимости в техническом специалисте (просто неудачно подобрал фразу).

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

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

Если честно, я хотел бы запустить наш сервис на linux (потому, что linux можно свободно распространять, в отличие от винды). Вроде сервис не использует никакого специфического для винды функционала и, теоретически, он должен более-менее без проблем запуститься под Mono. Пока я откладываю эту задачу, т.к. у меня полностью отсутствует опыт работы с linux и немного страшно браться за нее. Если у Вас есть возможность объяснить мне базовые вещи, необходимые для этой задачи, я был бы очень благодарен.
Простите, а у вас под виндами контроллер умного дома сделан? Т.е. это коробочка на интеловском процессоре с OEM виндами внутри?

Или пользователь просто ваш софт сам устанавливает на свой комп и в результате получает контроллер? А связь с датчиками и исполнителями как реализована?

А наружу он как «торчит» — как локальный веб-сервер, для которого статический IP надо выделять?

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

Связь с датчиками и управляемыми устройствами может быть произвольной (для устройств нового типа нужно написать класс-обертку на .NET и подключить как плагин). С блоками nooLite общается через адаптеры PC118, RX1164, с IP-камерой — по http (компьютер и камера в одной сети).
А наружу он как «торчит» — как локальный веб-сервер, для которого статический IP надо выделять?
По сути, да, как локальный веб-сервер. Там есть плагин, который слушает http-запросы (запускает ASP.NET WebAPI SelfHost) и перенаправляет их другим плагинам которые расшарили свои команды наружу (пометили методы класса атрибутом).
Мне кажется, что над вами довлеет изначальный выбор инструмента (.NET).

Ну не требуется для контроллера умного дома (в 95% случаев точно) такая вычислительная мощь, энергопотребление и уж точно стоимость. Одна лицензия на винды стоит больше, чем вполне полноценный контроллер на ARM…

С другой стороны, существуют контроллеры и по 3000 евро (как раз на этой выставке видел). Т.е., возможно, мы просто на разные сегменты рынка работаем. :-)
Когда обдумывали варианты написания сценариев, рассматривали, в т.ч. и редактирование через UI, но потом решили, что проще написать немного кода (посчитайте, в Вашем примере 11 выпадающих списков и 2 поля ввода — это довольно сложный для восприятия UI).

11+2 — это для сложного условия. Если включать только по влажности — будет меньше, 6+1:
Если [влажность/температура/освещение/давление] [больше/меньше/равно] [60] [И/ИЛИ/ТО] [включить/выключить/установить уровень] [освещение/вентиляция] [ванной/кухни/коридора/зала]

С одной стороны, сложнее. А с другой стороны, я через год, когда мне что-то надо будет поменять — я забуду как называются переменные уже, когда полезу в код. bath_air или bath_vent? Или vent_bath?
Мне кажется, написание логики в коде просто переносит эти выпадающие списки в голову пользователя. Иногда это удобно — сложные системы, где количество вариантов огромно, программировать иначе не получится. Если в системе 100 датчиков, 100 точек отдачи данных, и 200 исполняющих устройств, которые делают разные вещи, графический конфигуратор — зло.
А вот для квартиры, где количество состояний конечно, а точек немного, мне больше нравится конфигуратор. Когда займемся проектом «свет», будем делать конфигуратор.

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

Это я на основе своего опыта сужу. Ну вот не получается у меня.

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

Про mono — я не знаю абсолютно ничего, кроме того, что оно существует и как-то связано с .net. А если вопросы по линуксу — то можно в скайп.
Sign up to leave a comment.