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

Просто о сложном. Начало создания беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo

Время на прочтение3 мин
Количество просмотров28K
Всего голосов 30: ↑20 и ↓10+10
Комментарии55

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

НЛО прилетело и опубликовало эту надпись здесь
Вроде есть способ прошить камеру чтобы она отдавала обычный rtsp поток, гуглится fang-hack.
Пока планирую, видеонаблюдение отдельно, небольшая автоматизация отдельно.
В дальнейшем планирую избавиться от камеры саоми (отдать матери для ухода за престарелой бабушкой). Сам буду пробовать камеры других производителей.
Как раз сегодня статья вышла, про подключение камер. В каментах, как всегда, масса интересного. Например про Xiaomi XiaoFang.
Спасибо, посмотрю.
Пока планирую протестировать какую камера VStarcam. Пока сам не попользуешься, своего мнения не составишь.

Пробовал я этот Z-Wave. В целом, конечно, работает, но очень дорого. Простое включение света по датчику движения выходит в кругленькую сумму в районе 10 тысяч рублей. При этом всё довольно сырое, вылезают как глюки прошивок, так и аппаратные проблемы, так же из-за беспроводности системы и отсутствия датчиков с питанием от сети появляется куча ограничений, из-за чего невозможно реализовать некоторые алгоритмы. Контроллер на Raspberry Pi — это такой колхоз, если уж говорить о хоть какой-то серьёзной системе… За год использования она раз 10 зависала. Да, и если приходят гости, то они не могут нормально пользоваться даже простым беспроводным выключателем, ибо задержка стандартная около 0,5 сек, а иногда доходит и до десятков секунд.
В результате, на съёмной квартире поигрался, в своей ставить не буду, для света при ремонте развёл кучу выключателей через импульсные реле, для защиты от протечек взял готовую систему, ибо в цене капитального ремонта незаметно (да и, наверное, дешевле решений на Z-Wave), а хоть какая-то гарантия, что сработает и не зависнет. По крайней мере, за 9 месяцев работы не зависла ни разу.

НЛО прилетело и опубликовало эту надпись здесь

Т.е. вы считаете, что ежедневные перезагрузки по расписанию — это нормально?
ESP по WiFi не пробовал. Речь в статье и в моём комментарии о Z-Wave. Релюшка на один канал стоит 1500-2000 рублей, датчик движения больше 3000, Raspberry Pi — от 2000, плата расширения для работы с протоколом Z-Wave не помню сколько, но думаю не меньше 3000. Если брать готовый контроллер вместо Raspberry Pi, то не особо сэкономишь, т.к. он стоит тоже 4000-5000 рублей.

НЛО прилетело и опубликовало эту надпись здесь
Это работает. Это не зависает. Это не особенно влияет на доступность и работоспособность системы. Следовательно это нормально.

поверю, когда с таким подходом будете эксплуатировать свой кардио-стимулятор.


а до тех пор — это КОЛХОЗ.

НЛО прилетело и опубликовало эту надпись здесь

Странный аргумент.
Свет в сортире — одно. Кардиостимулятор — другое.
Зачем смешивать?


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

Странно. у меня Малина+RazBerry, но не основным контроллером а дополнительным, плюз шлюзом от Fibaro к Apple Home. Вроде зависаний нет. И пауз при отработке действий тоже.
Сама по себе Малина с Линуксом работает железобетонно. у меня Domoticz, ни разу не перегружал за год.
Z-wave не пробовал, у меня дугой протокол, но задержек нет. Все мгновенно

Речь в статье и моём комментарии о протоколе Z-Wave. У меня зависала малинка с этим Z-Wave'ом, не сказать что прям каждый день, но желание использовать такую связку отпало. Плюс довольно тормознутый интерфейс, плюс технические проблемы, типа того, что все настройки хранятся в одном файле в Json формате. В итоге пробовал максимально отвязаться от контроллера, но столкнулся с тем, что невозможно по расписанию изменять настройки у датчиков, т.к. они работают на батарейках и даже уменьшая время периодического опроса контроллера до 10 минут, они ни в какую не хотят брать эти настроки, надо физически на них нажать кнопку, причём кнопка эта внутри корпуса

А зачем вы связываете выключатель с лампочкой через raspberry?
Она же mesh, они отлично взаимодействуют напрямую!
Да, знаю, многие зачем-то пытаются делать софтовые ассоциации (чтоб с выключателя сигнал шёл в raspberry, а он уже давал команду реле), но это совершенно ненужное усложнение на ровном месте. Пойдёт только как сильно вынужденная мера в каких-то очень экзотических случаях (например, не хватает числа слотов ассоциаций. Или сценарий сильно мудрёный хочется сделать...). Если не мудрить, то всё вполне функционально и нормально работает!

Т.к. изначально эта штука позиционируется как решение для умного дома, то я хотел, чтобы по датчику движения у меня включался свет в коридоре. Соответственно, днём я хотел, чтобы свет включался в полную силу (все три лампочки) и на длительное время, например, на 5 минут. Ночью же хотелось, чтобы свет включался минимальный (одна лампочка из трёх) и светил минимальное время, например 30 секунд. Ассоциациями я это победить не смог. Реле позволяло настроить включать ли оба канала или только один из них на простую команду включиться. Соответственно, можно было бы по расписанию перенастраивать реле, что я и реализовал. У датчика движения тоже есть настройка, через сколько после последнего движения выключать свет, но эту настройку можно в него прописать только нажав кнопочку специальную под крышкой корпуса. Так же отдельная песня была подвязать к этому же реле беспроводной выключатель, и сделать так, чтобы свет можно было отвязать от датчика движения и например совсем выключить, или совсем включить на какое-то время. И чтобы в это время датчик движения не управлял светом.
Мне кажется, ситуация не особо экзотическая, но обойтись без постоянного участия контроллера я не смог. И все датчики, которые не имеют постоянного питания, не позволяют изменять настройки на лету, т.к. работая от батареек находятся в постоянном сне, по умолчанию самостоятельно просыпаются раз в сутки чтобы отправить свой статус, новые настройки они при этом не получают. А если учесть общую глючность решения. То у реле прошивка слетит, то в выключателе батарейка сядет, а он об этом даже не предупредит, то реле самопроизвольно включается и выключается, то зависнет контроллер, то ни с того ни с сего на несколько минут вообще вся сетка подвисает и даже напрямую связанные выключатель и реле не управляются, точнее управляются, но с задержкой секунд в 30, а то и в минуту. Так же реле у меня были с измерителями мощности, и я хотел реализовать напоминание того, что одна из лампочек в люстре перегорела. К сожалению, датчики при включении обновлялись как-то криво, и даже повторный опрос через некоторое время не всегда позволял получить реальные значения мощности. То один канал показывает, нулевую мощность, то другой…
В итоге, помучавшись, а затем переехав со съёмной квартиры в свою, я решил, что как минимум протокол Z-Wave это что-то очень сырое и больше подходит для каких-то игрушечных целей, нежели для серьёзного и стабильного использования. И всё это на фоне диких цен. Если посмотреть, сколько стоила только одна релюшка для управления светом в коридоре, то дешевле было купить три светодиодных лампочки и никогда их не выключать. Я уж молчу про добавку к этой релюшке выключателя, датчика движения и контроллера.

Ну там протокол то как раз сделан в расчёте на "кубики", которые тупые, как палка. Включил/выключил. Сработало/не сработало. А чего-то конфигурировать — только при распаковке и первом подключении (подозреваю, что сами устройства могут быть не очень готовы к постоянной переконфигурации из сценариев. Банально ресурс встроенной флэшки износится...)
Я бы тут попробовал сделать "ночной" сценарий напрямую (чтоб по датчику включалась лампочка), а параллельно хук на то же событие из контроллера, чтобы днём включалась ещё пара лампочек. Ну т.е. какой-то компромисс.

Т.е. вы согласны, что протокол, мягко сказать, неидеален :)
Были у меня и такие идеи, но напрямую завязать датчик движения всё равно не получается, т.к. он кроме события «включить» при начале движения, шлёт ещё и «выключить» при окончании таймаута после последнего зарегистрированного движения.
И если делать включение света, как вы говорите, в два этапа, то это от части противоречит самой идее протокола, т.к. изначально идёт речь о максимальном снижении количества передаваемой информации. В вашем же случае выключатель шлёт команду реле, чтобы то включило один канал, реле отсылает контроллеру оповещение, что оно включилось, контроллер шлёт в ответ, чтобы реле включило второй канал, реле в ответ снова шлёт сигнал, что оно включилось. Можно очень легко получить бесконечный цикл, на что я несколько раз напарывался. Значит, выключатель должен слать сигнал кроме релюшки ещё и контроллеру, что надо включить свет. Но с выключателем ещё сложнее, он не событие присылает, а изменяет статус. А если делать, чтобы он событие слал, то на это не умеет реагировать реле. В общем, там столько подводных камней вылезает, программирование с виду несложного алгоритма вываливается в простыню на пару экранов с дикой завязкой разных модулей и кучей виртуальных устройств. При этом по сети гоняется куча ненужной инфы (что увеличивает ещё и задержки), которая могла бы быть снижена в разы, если бы можно было переконфигурировать устройства на лету. И всё равно мы не можем в полной мере отказаться от постоянно включённого контроллера, т.к. в коридоре с одной лампочкой днём совсем некомфортно.

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


А готовые датчики движения разные, и настройки у них тоже. Обычно есть два таймаута — первый, когда выключить свет. Второй — сколько времени после срабатывания не воспринимать новые движения. И от протокола как такового это не зависит.
А вот само устройство "на той стороне" — уже да. Если брать готовый контроллер типа fibaro или прочих — работает классно, но дорог, + "чёрный ящик" сам по себе. Зато относительно стабилен. Отчасти как раз потому что закрыт и не пускает "очумелых ручек" придумать что-нибудь этакое. А разные решения-"модемы" (вроде razberry или usb-свистков, которые просто ловят/передают в uart то, что видят в эфире) уже целиком зависят от того, куда этот "свисток" вставлен. Можно же и cubie-truck завести, да ещё и батарейку к нему подцепить в качестве упса...


(к слову, до появления razberry и standalone-rasberry сервера у меня около года вполне успешно работал такой "свисток" воткнутый в роутер. Ну и плюс программка-коннектор, которая выпускала его в облако. И там сценарии были вполне отзывчивыми, несмотря на раунд-трип событий через интернет).


Кстати, реле далеко не всегда шлёт контроллеру своё состояние (включилось/не включилось). В США например, это отключено (запатентовал кто-то), поэтому придумывают разные периодические опросы или как-то по-другому выкручиваются. Т.е. это НЕ часть протокола, а просто хорошая плюшка. И так-то протоколу не противоречит — датчик шлёт сообщения своим подписчикам — свету и контроллеру. Контроллер в ответ шлёт ещё один пакет свету. Всё!
В родном софте razberry контроллер по умолчанию добавляется в ассоциации всех устройств (т.е. датчики, выключатели и т.д. шлют события по крайней мере ему).


А вот аппаратный протокол может и не идеален, но очень хорош. Хотя бы тем, что висит не в 2.4 и не в 430, где хватает помех, а в своём диапазоне. И требование скважности 1% тоже своего рода гарантия незагруженности канала.

Можно же и cubie-truck завести, да ещё и батарейку к нему подцепить в качестве упса…

Плюс наличие Sata
Получше тех. характеристики.
Для меня минус у cubietruck
1) Небольшая распостранённость и отсутствие готовых образов, форумов по решению проблем.
2) Вроде бы небольшой ряд ОС, устанавливаемых на это ПК. Почему то на работе так и не смог обновить Lubuntu 14 до 16.
3) Отсутствие утилиты настройки. Всё таки конфигурация тяжеловата для конечного пользователя (в моем случае, сын школьник).
4) Более высокая стоимость, Малинку можно и попроще купить (100 USD за кубик и от 40 за Raspberry Pi Model A+)
Вы пробовали плату для самостоятельной разработки? Я пробовал. :)
Если я вас правильно понял, то вы говорите о Z-Uno. Так вот там своих глюков столько, что я неделю мучался со счётчиком импульсов. В результате кое как запустил на ней, так она всё равно иногда пропускает импульсы, из-за чего так и не получилось сделать автоматическую отправку показаний счётчиков воды.

Как мне помогут эти два таймера? У меня задача днём первый таймер чтоб был на 300 секунд, а ночью на 30. Плюс, хочу иметь возможность ночью по желанию отменить действие ночи на, например, один час.
До самостоятельной разработки не дошёл, по работе (телекоммуникации и связь) немного работал с кубиком и с малиной. Малина мне более приглянулась. Пока пытаюсь на готовых девайсах, которые можно купить в Минске что-то реализовать. Заодно и своего сына немного привлечь, не всё ж ему в игрушки гуляться :-) на каникулах.
насколько я понимаю, в связке Малина + Мажордомо, можно ж использовать не только Z-Wave. Не получится перейду на другой протокол
У Z-Wave один большой минус- цена на модули, из за отчислений. В остальном, при использовании нормального контроллера проблем что-то реализовать нет. У меня построено на Fibaro HC2. Ночной свет (движение, освещенность, уровень подсветки), проходной свет, подсветка когда приходишь домой, управление климатом и теплыми полами, охрана, сигнализация, видеонаблюдение, мультимедия. Тормозов и зависаний нет.
Я готов был смириться с ценой. Но не готов за ТАКУЮ цену иметь СТОЛЬКО проблем и косяков. И понятно, что если рассматривать каждый глюк в отдельности, то кажется всё это фигнёй. Но я смотрю на систему в целом. Я купил модулей тысяч на 15-20, а в результате удобства от использования «умного дома» никакого не получил, потому что занимался вылавливанием глюков как модулей, так и самого контроллера с его ПО. Венцом всего этого стало то, что когда переехал в свою квартиру мне нужно было на время простое проводное импульсное реле. Т.е. никаких беспроводных технологий мне не нужно было. Те релюшки, что я покупал для умного дома, они умеют такое. Так вот эти релюшки будучи настроенными на работу в качестве импульсного (бистабильного) реле постоянно глючили. Самопроизвольно то включатся, то выключатся. Т.е. за ночь, пока спишь, свет самостоятельно включается и выключается со случайными промежутками времени. Все таймеры и возможность беспроводного управления были отключены. Попробованы были две релюшки одной модели. И можно сколько угодно говорить о глючности конкретной реализации, но по моему опыту хорошей качественной реализации, чтоб ещё и не сбоило мне не попалось ни одного элемента для протокола Z-Wave. Да, датчик движения не глючил, но было куча ограничений, которые не позволяли его использовать в прямой связке со светом. А контроллер, как я уже писал, глюк на глюке и глюком погоняет.

Вы говорите тормозов нет. Сколько проходит времени между нажатием на выключатель и включением света?
нажал-включилось. нажал-выключилось. диммируемый свет-от длительности нажатия. пока нажата кнопка — меняется уровень.
ну и таких проблем на моих модулях не наблюдалось. была как то ситуация похожая — свет ночью включался выключался сам, оказалось что в датчике движения батарейка садилась, а оповещение было выключено. после замены работает нормально. с релюшками был глюк «залипания» — часть перевел на трансформаторные нагрузки, часть на бесконтактные реле (все таки за такие деньги могли бы сразу ставить нормальные реле, а то приходится доделывать)
Есть разница в скорости реакции света в сравнении с обычным механическим выключателем?
Просто, у меня реально задержка была не менее 0,5 секунды. Когда гости пришли, они даже не сразу поняли в чём дело, ведь сам выключатель тоже отличается от обычного механического. Он представляет из себя просто кнопку, а тут ещё и реакции то ли нет, то ли есть. В общем, прежде чем зайти в ванную комнату раз пять мигали светом, т.к. не понимали, как включить свет. Хотя выключатель там работал просто как выключатель, без каких-либо наворотов.
Нет, задержки нет. Если выключатель на реле и лампы обычные-зажигается сразу. Если диммируемый выключатель или лампы светодиодные/энергосберегайки то идет мягкий розжиг, но это от ламп больше зависит. Такого чтоб «пять мигали светом» не было ни у меня ни у гостей :)
Может, это мне релюшки тормознутые попались… Потому что, когда я к этой релюшке подключил проводной выключатель, она всё равно включалась с задержкой.
Ну релюшки проверить то легко, да и слышно их
На сяоми камере через telnet можно включить rtsp
НЛО прилетело и опубликовало эту надпись здесь
очередной квадратный колесо

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

Да всё просто, тёща после третьего инсульта, восстанавливается, но медленно. Есть признаки деменции (слабоумия), хотя если брать месяц назад, то разум был на уровне годовалого ребенка, сейчас — 4-х летнего. Може включить кран, и забыть про него, пыталась типа «пользоваться плитой». Круглосуточное присутствие обеспечить не можем (есть и свои дети и работа). Вот и ищу выход.

Тяжко вам… Могу только пожелать чтобы улучшение продолжалось. Ну и чтоб сил хватило.

Есть актуаторы для вентилей (можно прикрепить к крану, и по команде механическая "рука" его перекроет). Есть датчики. Есть особые классы команд (alarm-ы), на которые можно настроить эти самые актуаторы (тупо — получил flood alarm — перекрыл вентиль воды).
И контроллер с малинкой (которая может внезапно зависнуть) нужен только для настройки связи датчиков и актуаторов. Для фактической работы он уже НЕ нужен (но если доступен, то может, например, sms-ку или письмо отправить — мол, сработало).
Если всё умрёт — ну, будет "обычный дом", где всё нужно делать руками. А в остальном всё только улучшается. (Хотя… можно насочинять: оказался запертым в доме, пролил кружку воды на датчик, он перекрыл воду, как открыть назад — не знаю, умер от обезвоживания)

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

Смотрел OpenHab2, Domoticz, MajorDoMo.
У всех очень плохо по нормальной документации/туториалам с добавлением своего протокола.
Поэтому решил потихоньку писать свою документацию, доступную каждому пользователю ПК. И выкладывать в открытый доступ.
НЛО прилетело и опубликовало эту надпись здесь
Лучше — это субъективно, нет?
Роутер для моего протоколо стоит 300 рублей(с корпусом и сборкой), он маленький. Протокол не требует дополнительных шилдов, работая по сути с любым голым МК.
Так что на мой субъективный взгляд мой протокол лучше.
НЛО прилетело и опубликовало эту надпись здесь
Не могу? Откуда такой вывод? Просто ищу простой вариант это сделать.
Реверс и метод тыка — крайний вариант. Есть надеждая, что я просто не увидел документации по добавлению протоколов. Поэтому и спрашиваю у более опытных товарищей.
Ну и протокол сам по себе простой. Сложности на уровне самого ПО и они к протоколу отношения не имеют.
Спасибо, его тоже рассматриваю, даже потом планирую сравнить. Но как с пунктом 6
По возможности русскоязычный интерфейс, документация, поддержка.
?
В MajorDoMa понравился форум. На котором я мог найти некоторые ответы, на свои нужды.
Я отвечал AllexIn, у него вроде не было этих требований.
У HASS из русского есть только интерфейс.
Меня лично в MajorDoMo дико напрягла крайне запутанная установка, плюс недоверие вызвал их сайт как будто укоз из середины прошлого десятилетия. И то, что всё это работает на PHP, это такое себе. Лично для меня всё же OpenHAB ван лав. Довольно популярный, кучи аддонов для всевозможной техники, в случае чего можно сваять свой костыль, ни разу ещё не было ситуации, что нет возможности зацепиться с OpenHAB. И родное приложение под разные платформы есть. Единственное, что меня напрягает — это некоторая глючность приложений и отсутствие нормальной инструкции как создать аддон.
мы развиваемся :)
сайт переделали, установку и еще многие вещи упростили. И продолжаем упрощать.
Растет количество сторонних разработчиков, которые модули пишут. В целом активно развиваемся (тьфу-тьфу-тьфу) — можете посмотреть динамику версий (лента справа): connect.smartliving.ru/tasks.html
по PHP — у Цукерберга например Умный дом тоже на PHP написан — он тоже плохой поэтому?)) каждый использует инструменты которые ему привычны и понятны
OpenHab молодцы, смотрим время от времени на то что они делают. Им немного проще в плане развития, потому что получают финансирование от Deutsche telekom. Мы же систему в свободное время развиваем
мы развиваемся :)
сайт переделали, установку и еще многие вещи упростили. И продолжаем упрощать.

Спасибо вам!
Лично мне сильно импонировал ваш форум и сообщество.
Но… на самый первый взгляд и есть много вопросов.
Есть разные идеи и предложения, но это попозже, потом выложу постараюсь нормально сформировать и опубликовать их.
Ну а сейчас, надеюсь к выходным подготовлю вторую часть статейки.
Сейчас дал сыну задание (закончил 8 классов, 14 лет) создать всё во второй раз, следую этой инструкции, посмотрим сколько времени займёт, уже один затык был, поменяю немного в статье.
Итак заняло 45 минут, затык был — не сразу распаковал образ в архиве формата 7.z
Пришлось давать цу.
Опубликовано продолжение, 3 часть по настройке УД: habr.com/post/418873
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории