Сервер для умного дома: 403 — Доступ запрещён – Сервер для умного дома. Выбор оборудования

Сервер для умного дома. Выбор оборудования

Видеонаблюдение, камеры и FFmpeg

Ох уж эти камеры. Боль и страдание еще год назад. Невероятные мучения и поиски камер и программ. Это все касается Home Assistant, как одной из самых популярных систем для умного дома.

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

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

И вот тут есть интересные нюансы. Для Raspberry Pi 3 model B+ есть готовые инструкции по сборке FFmpeg с аппаратным ускорением. Для Rock64 тоже есть готовые решения. И все. Для всех остальных вариантов готовых решений по сборке FFmpeg с аппаратным ускорением нет. Например, те же одноплатники на базе процессоров Amlogic, которые практически ничем не отличаются от телевизионных приставок, не имеют готового решения по сборке FFmpeg. Просто потому, что приставки работают на Android, а не на Linux, и все разработанные решения сделаны под Android.

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

Потому что для работы HomeBridge и получения видео с камер в HomeKit — это обязательное условие. Что касается остальных систем, то в том же Home Assistant решили проблему проще —  декодирование производится в HLS, который проигрывается уже с помощью ресурсов браузера, на котором изображение просматривается. То есть требований к аппаратному ускорению на сервере умного дома уже не так много. Как дела обстоят у других разработчиков — мне неизвестно, но врядли лучше.

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

Какой сервер выбрать для Умного дома

Сердцем Умного дома выступает сервер — который собирает информацию от всех устройств и отдает им различные команды

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

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

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

Что важно?

На выбор сервера для Умного дома обычно влияет несколько факторов:

  • цена
  • мощность
  • надежность
  • размер

Сразу уберем из наших вариантов промышленные сервера — это как минимум дорого.

В целом в качестве сервера для Умного дома можно использовать любой компьютер на Windows или Linux.

Многие пользователи MajorDoMo (и других систем Умного дома) используют для своего Умного дома обычные:

  • персональные компьютеры (PC)
  • нетбуки

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

Мы и сами используем старые PC и нетбук на нескольких наших тестовых системах 🙂

Но если покупать новый PC специально в качестве сервера — получается все же дороговато.

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

Оптимальное решение

И тут на помощь приходит такая замечательная вещь как одноплатный компьютер.

Рынок одноплатные компьютеров стал активно развиваться с 2011-2012 гг., когда был выпущен британский одноплатник Raspberry Pi. Первые же эксперименты показали что Raspberry отлично подходит в качестве сервера Умного дома, популярность которого начала также расти в 2011-2012 гг.

Основные плюсы использования одноплатных компьютеров в качестве сервера Умного дома:

  • очень небольшая цена — от 20 USD в Китае до 50-70 USD в магазинах СНГ
  • по техническим характеристикам отлично подходит для Умного дома
  • надежность
  • небольшой по размерам

Фото одноплатника

Самые популярные одноплатные компьютеры для создания Умного дома:

В качестве бонуса

По ссылке вы можете посмотреть что используют в качестве сервера текущие пользователи MajorDoMo.

Поделитесь в соц сетях

Умный дом (Самое начало) — ч.2 / Habr


Это продолжение статьи: Умный дом (Самое начало) — ч.1

В прошлой статье я писал о том что такое умный дом и с чего начать при его создании. Теперь я постараюсь описать техническую часть: железо и ПО. На всякий случай напомню дорогому читателю, что это не HOW to, а обзорный материал, потому конкретных решений и code-вставок для копипаста тут скорей всего не будет. Технологий и методов решения поставленной инженерной задачи очень много и описать все в моих статьях не получится.

Вся информация написана с упором на личный опыт, никаких «диванных» домыслов.

Теперь возвращаемся к теме.

Как говорилось ранее, ядро системы должно размещаться в каком-то изолированном от жильцов месте, а что, собственно, это ядро из себя представляет с аппаратной точки зрения? Конечно же сервер. Да-да, сервер, не Ардуино, не РазБери, не роутер с OpenWrt, а именно сервер. Почему? Потому что производительность, а ещё потому, что все Ардуины и пр. изделия созданы для того, чтобы обучать школьников/студентов программированию микроконтроллеров и работе с периферией. Эти устройства изначально не предназначены для развертывания полноценного готового и стабильно работающего решения. Точнее нет, развернуть-то можно, но на свой страх и риск. А вообще, если уж совсем грубо выразиться, то это конструктор для взрослых, типа как Lego Mindstorms, только чуть сложнее. Я ни в коем случае не имею ничего против этих устройств, просто у каждого свои задачи. Не знаю как кто, а лично я бы не доверил управления газовым котлом конструктору Lego.

Но под словом «сервер» я подразумеваю не стойку как в ДатаЦентре, набитую blade`ами, а какой-нибудь небольшой сервачок. Нам ведь нужно управлять домом, а не вычислять сворачиваемость белков, правда?

Сервером может быть небольшой mini-ITX компьютер с двухядерным процессором типа D525 и 2Гб оперативной памяти. Это решение обойдётся приблизительно в $200.

Это эдакое маленькое красивое решение. Если захотите развернуть на этом сервере media-хранилище, то можно воткнуть по USB внешний диск объёмом ~3Тб.

Если под сервер заложено денег по-больше, то можно взять HP microserver, типа вот такого:


www.citilink.ru/catalog/computers_and_notebooks/servers_and_net_equipments/servers/753329
у него есть потенциал для роста, но кого-то могут не устроить габариты.
Цена около $280 за стартовый комплект (двухядерный процессор, 2Гб оперативной памяти и один SATA диск на 250Гб)

Ставить что-то больше и мощнее особого смысла нет, т.к. этого железа хватит с головой.
По возможности ищите железо с USB 2.0 (ещё лучше: USB3).

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

Для настройки сервера временно понадобится клавиатура и монитор (чтобы развернуть ОС, остальная настройка будет производиться удаленно).

Нельзя забывать и про сеть.
По возможность до всех стационарных сетевых устройств (компьютеры, медиаплееры, сетевые принтеры и камеры) лучше заранее проложить витую пару. Для коммутации лучше использовать коммутаторы (свитчи) с портами Gigabit Ethernet.
Для подключения к сети провайдера можно использовать любой роутер с Wi-Fi, но к его внутренним портам ничего кроме вышеописанного коммутатора/-ов лучше не подключать.

Вообще на Wi-Fi старайтесь не рассчитывать, особенно когда дело коснется передачи потока медиаданных (видео/звук) — могут быть задержки и провалы.

В общем, схема подключения должна быть приблизительно такая:
Шнурок, полученный от провайдера, вы подключаете к WAN-порту своего роутера, а к LAN порту подключаете свой коммутатор.
В свою очередь, к коммутатору Вы подключаете все остальные сетевые устройства.

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

Если Ваш дом большой, то, возможно, для полного покрытия беспроводной сетью всего жилища понадобятся повторители сигнала. Не надейтесь, что Вы купите самый дорогой Wi-Fi роутер и он «пробьет все» ваши железобетонные перегородки. Лучше взять роутер «по-проще», и к нему пару/тройку повторителей.

Программное обеспечение

Я рекомендую на сервере разворачивать в качестве системной ОС Debian Linux без графической системы. Почему его, а не, скажем, Ubuntu? Ну, во-первых, Ubuntu в основном ставят те, кому нужна система X-window, а зачем нам на headless-сервере графика? Кто и что там будет разглядывать? А во-вторых, Ubuntu, по-сути, это и есть Debian, только со всякими свистелками/перделками, которые Вы доставить можете и сами (я на это надеюсь, т.к. без этих навыков самостоятельно разворачивать «Умный дом» не совсем правильно). Но если Вы привыкли к чему-то другому (например семейство RedHat, или Slackware), то делайте на том, что Вам ближе и понятнее. В конце-концов, Вам же всё это настраивать.

Из программного обеспечения я думаю правильно установить Samba (большинство бытовых плееров с сетью на борту с этим могут работать) и NFS (не игра Need For Speed, а Network File System). NFS Вам пригодится, если Вы дома используете MacOS или Linux на своих компьютерах/плеерах. Вроде даже говорят, что NFS меньше грузит процессор чем Samba, но лично мне кажется, что в масштабах дома едва ли получится создать большую нагрузку.

Если у Вас есть т.н. Smart-телевизоры, то возможно придётся разворачивать UPnP- и DNLA-серверы, т.к. большинство «умных телевизоров» не понимают ни Samba, ни NFS.

Для развёртывания связки DNLA/UPnP я рекомендую обратить свой взор на проект PMS (PlayStation3 Media Server), который когда-то вырос из медиасервера, развёрнутого на платформе взломанной игровой приставки PlayStation3. Проект разросся и мутировал в UMS (http://www.universalmediaserver.com/). Установка достаточно простая, лучше прочитать актуальную информацию по установке на сайте проекта.

Я проверял PMS и UMS с транскодингом — всё работало без нареканий. Даже при использовании в качестве медиаплеера приставки Xbox360 (у неё специфичный профиль работы с UPnP): всё работало.

Есть ещё один UPnP сервер: PlexMediaServer (https://plex.tv/), но, признаться честно, его работу с транскодингом на Xbox360 проверить не удалось, т.к. я к тому времени уже приставку продал. В целом Plex — очень мощный и функциональный, возможно даже некоторым он покажется избыточно функциональным, но на Smart-телевизорах работает и вроде никто не жалуется.

Сам я UPnP особо и не использую, т.к. телевизоры у меня старые, не Smart, и оснащены плеерами Dune, которые великолепно работают с хранилищем видео/музыки (по Samba), расположенным в ядре умного дома, но на всякий случай Plex всё же работает и всегда рад обслужить какого-нибудь android-клиента.

Если Вы любите качать видео с торрентов, то на ядро умного дома можно поставить Transmission — приложение для скачивания с torrent-трекеров. Transmission может работать без графической системы и управляться через web-интерфейс или с помощью Transmission-remote (приложение для удалённого управления закачками). Ставится с репозитариев linux-дистрибутивов

Кроме Media-компоненты кто-то наверняка захочет, чтобы умный дом что-то озвучивал голосом или принимал и обрабатывал голосовые команды. Например, Вы говорите: «Избушка, какая температура на улице?», а система отвечает Вам голосом Милляра: «Ух-ху-ху! На улице 25 градусов ниже нуля. Полезай ко мне в печку, погрей свои косточки».

Так вот, учитывая концепцию «Изолированного и самодостаточного умного дома» (про которую говорилось в первой части), всякие поделки на базе сервисов Google Voice или Yandex Voice API нужно отметать. Делайте систему по-нормальному, не по-голодрански. Я, конечно, понимаю, что жителям крупных регионов, трудно себе представить отсутствие интернета в доме, равно как трудно представить, что Google может быть недоступен, но… до августа 1945-го японцы тоже не могли себе представить, что всего одна бомба может уничтожить целый город.

Парни из Lizard Squad показали всему миру, что идеальных сервисов не существует: PlayStationNetwork компании Sony и сеть Microsoft из-за массированной DDos-атаки лежали 4 дня, а в некоторых регионах и на 5-й день наблюдали недоступность этих сервисов. Не исключено, что появятся какие-нибудь Blizzard Division и задосят Google/Yandex, потому доверять online-сервисам не нужно. Ну или если Вы на эти сервисы всё же рассчитываете, то проектируйте Ваш умный дом так, чтобы, в случае разрушения Глобальной Сети функционал Вашей системы не нарушился.

Что бы не происходило в мире, Ваш умный дом должен «… работать, работать, и работать» (из рекламы батареек).

Это же относится ко всяким сервисам типа Openremote или Fibaro: типа, сконфигурируй свой сервер с любой точки мира, а он подхватит все настройки и тут же заработает так, как надо тебе. Но как Вы будете настраивать тот же недешёвый Fibaro если сервис будет «лежать» под DDos целый месяц? Как Вы добавите на свой контроллер новый димер? Полезете настраивать его локально. Значит все эти сервисы Вам просто не нужны. Делайте своё, сразу и наверняка. Чтоб ни что не омрачило Вашу жизнь в среде Вашего прекрасного дома.

Теперь ещё одна часть умного дома, которая, возможно, будет Вам нужна:

Видеонаблюдение

Если Вы будете делать видеонаблюдение, то я рекомендую использовать не аналоговые камеры, а сетевые (IP-камеры) с питаем через Ethernet (PoE). Эти камеры дают хорошую картинку (нередко HD/FullHD) и с ними легче строить систему архивирования.

Кроме камер Вам может понадобиться NVR (Network Video Recorder) — это такая «коробочка», отвечающая за получение и сохранение изображения с камер.

В вопросе организации NVR как раз ещё одним плюсом будет, если Вы ядро своего умного дома построите на Linux-сервере. Весь функционал NVR можно развернуть прямо на нём. А вот если ядром является Ардуино, Расбери или подобные контроллеры, то функционал NVR они не потянут, потому что просто не хватит производительности.

У кого фантазии не хватило на то, чтобы придумать как это реализовать, то могу подсказать проект «Moment Video Server» (http://momentvideo.org/). Это не реклама.

Эти люди делают очень толковый и производительный видео-сервер, в т.ч. и с функцией NVR. Система условно-бесплатная и можно поставить на свой сервер версию, поддерживающую ограниченное количество устройств.

Установка простая:
Дёргаете установочный архив:

wget http://momentvideo.org/dist/moment_14-04-29_linux32.tar.gz

или
wget http://momentvideo.org/dist/moment_14-04-29_linux64.tar.gz
(если у Вас 64-разрядная ОС)
Распаковываете:
tar -C /opt -xzf moment_14-04-29_linux32.tar.gz

В результате создастся директория: /opt/moment
Конфигурация производится правкой файла moment.conf
Подробнее о настройке читайте на сайте авторов: http://momentvideo.org/doc.ru.html

Запуск сервера осуществляется командой:

/opt/moment/bin/moment

По-умолчанию в браузере открываете h t t p: // ip-сервера: 8080/moment/
и увидите страничку сервера Moment.
Я с этой штукой поигрался и всё же построил что-то своё.

Если Вы хотите делать не NVR, а систему записи по движению, то камеры выбирайте такие, которые поддерживают MJPG (он же MotionJPEG), на них эта задача решается очень просто: установкой и правильной настройкой приложения «Motion» из репозитария linux-дистрибутивов.

Когда я строил свою систему видеонаблюдения, то ввел понятия «Оперативный архив» и «Долговременный архив».

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

В кабинете оперуполномоченного Вы просто зайдёте в своё облако и просмотрите все записи камер до момента их отключения.

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

UPS, конечно же, должен держать не только ядро умного дома, но и стему PoE ваших камер.

Вместо заключения

Всё описанное выше можно построить на двухядерном процессоре Atom с 4 Гигабайтами оперативной памяти, мало того, я это построил и использую в своём доме. Cделать ядро умного дома собственными руками, без использования решений с ограниченным функционалом. Самое важное: чёткий план, грамотно поставленная инженерная задача и прямые руки.

Вот теперь всё. На вой взгляд, для самого начала и для осознания приблизительных масштабов работы, этой информации должно хватить.

Возможно я вспомню что-то ещё, и если информации наберётся достаточно, то напишу следующую статью.

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

P.S. Очень-очень внимательно вычитывать текст времени не было, поэтому если будут вопиющие опечатки/описки — сообщайте и я поправлю.

1.4. Какой сервер выбрать для Умного дома — MajorDoMo

Сердцем Умного дома выступает сервер — который собирает информацию от всех устройств и отдает им различные команды

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

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

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

Что важно?

На выбор сервера для Умного дома обычно влияет несколько факторов:

  • цена
  • мощность
  • надежность
  • размер

Сразу уберем из наших вариантов промышленные сервера — это как минимум дорого.

В целом в качестве сервера для Умного дома можно использовать любой компьютер на Windows или Linux.

Многие пользователи MajorDoMo (и других систем Умного дома) используют для своего Умного дома обычные:

  • персональные компьютеры (PC)
  • нетбуки

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

Мы и сами используем старые PC и нетбук на нескольких наших тестовых системах 🙂

Но если покупать новый PC специально в качестве сервера — получается все же дороговато.

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

Оптимальное решение

И тут на помощь приходит такая замечательная вещь как одноплатный компьютер.

Рынок одноплатные компьютеров стал активно развиваться с 2011-2012 гг., когда был выпущен британский одноплатник Raspberry Pi. Первые же эксперименты показали что Raspberry отлично подходит в качестве сервера Умного дома, популярность которого начала также расти в 2011-2012 гг.

Основные плюсы использования одноплатных компьютеров в качестве сервера Умного дома:

  • очень небольшая цена — от 20 USD в Китае до 50-70 USD в магазинах СНГ
  • по техническим характеристикам отлично подходит для Умного дома
  • надежность
  • небольшой по размерам

Фото одноплатника

Самые популярные одноплатные компьютеры для создания Умного дома:

  • Raspberry Pi
  • Orange Pi
  • Banana Pi
  • CubieBoard
  • и другие.

В качестве бонуса

По ссылке вы можете посмотреть что используют в качестве сервера текущие пользователи MajorDoMo.

виды и для чего он нужен

Сервер умного дома – это «мозг» системы управления. Он реализует и поддерживает работу всей сети. Генерирует и посылает необходимые сигналы на контроллеры, которые отвечают за управление датчиками, сигнализацией, климат-контролем, прочими функциями и режимами, заложенными в программное обеспечение.

Виды сервера

Управление умного дома осуществляется с сервера. Он может быть централизованным (стационарным) и децентрализованным (может работать удаленно).

Серверная стойка умного дома класса De Luxe

Основные требования к серверу:

  • Стабильная работа.
  • Обязательное резервирования данных.
  • Контроль версий ПО.
  • Возможность обновления и доработки функционала.
  • Быстрая наладка в случае сбоя.

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

Сервер и web-сервер умного дома среднего объекта

С появлением планшетных ПК и смартфонов, стало возможным управление различными приборами дистанционно, что значительно упрощает жизнь. Если установить управление умным домом на базе сервера с удаленным доступом, то взаимодействие с системой станет на порядок более эффективным.

Платформа Raspberry Pi 2 для построения веб-сервера умного дома

Web сервер для умного дома — это микро, планшетный компьютер или смартфон. Платформой для него может быть любое устройство с большим объёмом оперативной памяти (Raspberry Pi 2 или Raspberry Pi 3, AC500-eco, Arduino), мощным процессором и возможностью выхода в сеть Интернет. Web сервер в составе системы умный дом обеспечивает визуализацию управления через браузер.

Веб сервер для умного дома работает по простому принципу. Мобильное устройство выступает в качестве основного ядра, дистанционно отправляющего командные сигналы. Программное обеспечение, которое можно купить или прописать самостоятельно, превращает Android, Linux или Windows устройства в диспетчерскую станцию, взаимодействующую с контроллерами по wifi. Преимущества блока web умный дом в том, что можно не только управлять системами в доме, но и производить любые операции извне. Также возможна настройка на расстоянии и хранение данных на облаке.

Интерфейс управления умным домом

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

Интерфейс умного дома создается для каждого пользователя индивидуально

В современной системе умный дом web интерфейс делают модульной архитектуры, построен на PHP, CSS и JavaScript. ПО прописано в плагинах UI как html или css, расположенных в ресурсах DLL. Их можно добавлять или менять по своему усмотрению. Примерная структура интерфейса выглядит так:

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

Самостоятельное создание веб интерфейса для управления умным домом осуществляется с помощью специальных онлайн конструкторов с готовым пакетом данных.

Как сделать сервер для умного дома

Самостоятельно сделать сервер достаточно просто. В корпус неиспользуемого компьютера (желательно брать модель от 2006 года выпуска) монтируется в порядке очередности:

  • блок электропитания;
  • кулер с пониженным производством шума;
  • материнская плата с современным процессором;
  • оперативная память, соответствующая требованиям процессора;
  • несколько жестких дисков (желательно NAS-систему) и контроллер sata;
  • сетевая карта с поддержкой host режима;
  • модуль wifi.

Комплектация может видоизменяться в зависимости от требований. Далее следует настройка сервера с использованием полнофункциональных сервисов (подойдет система Linux) и установка программного обеспечения.

Самостоятельная сборка сервера для умного дома под названием AVRobot

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

Умный дом без облачного сервера

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

Мне не нравится, когда любая техническая система работает через внешний сервер. Будь то видеонаблюдение, устройство IoT или контроллер домашней автоматики.

Любой контроллер сети Z-Wave при первом запуске попросит зарегистрироваться, введя адрес электронной почты, и дальше будет работать через облако, приложение будет подключаться к учётной записи на сервере. Разумеется, будет возможна работа и напрямую, можно не регистрироваться, но тот же Fibaro будет напоминать о необходимости регистрации достаточно часто.

Почему мне не нравится работа через облако:

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

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

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

Но, одно дело, когда мы даём доступ к охранной системе конкретной фирме (ЧОПу), с которым подписали договор, а другое — когда фирма находится в другой стране, и в России у неё даже представительства нет. У нас уже был прецедент блокировки на некоторое время серверов Xiaomi, разумеется, можно заблокировать таким образом хоть Amazon, хоть Apple.

Всё, что связано с голосовым управлением, откажется работать без интернета. И даже связь между устройствами в одной сети может происходить через интернет, например, Amazon Echo будет обращаться к системе Sonos не по прямому IP адресу, а через учётную запись Sonos (нужно указать логин и пароль для настройки), аналогично происходит обращение, например, к метеостанции Netatmo у контроллера Fibaro Home Center.

Поэтому завязывать управление системой на сторонние серверы мне кажется идеей достаточно неудачной. Но в системах управления от Apple, Google, Amazon, Xiaomi и прочих подобных всё работает только так.

Системы на центральном контроллере (он же ПЛК), как правило, ни к какому серверу не цепляется вообще. Это относится к системам на Beckhoff, Овен и EasyHomePLC, к системам KNX, к контроллеру WirenBoard. И, я считаю, свидетельствует о некоем «профессионализме» этих систем. Да, работать немного сложнее: нужно озаботится безопасностью удалённого доступа, настроить VPN или статический IP адрес, обновлять прошивку при необходимости вручную. Но зато связь пользовательской программы и контроллера будет прямой, без посредников. И безопасность удалённого доступа определяется настройками вводного роутера. Можно вообще запретить контроллеру запросы во внешнюю сеть, и всё будет отлично работать.