Проект «Главный сервер»

Главный сервер

Этот проект является частью более обширного проекта «Умная дача», который содержит множество подсистем, таких, как «Дом», «Баня», «Котельная», «Зимний сад», «SMS сервер» и т. д. Все контроллеры работают под управлением системы AMS Pro и являются полностью независимыми единицами управления со встроенным сервером и дружественным веб-интерфейсом.

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

Каковы же его функции, если присутствие его в системе необязательно?

Он обеспечивает дополнительные функции верхнего уровня типа голосового сопровождения, агрегации и хранения больших объёмов данных со всех контроллеров сети в SQL базе данных, мощной аналитики и визуализации данных и т. п. функций, реализация которых на микроконтроллерах затруднительна или вовсе невозможна.

Софт

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

Поэтому в качестве операционной системы для сервера была выбрана платформа Windows, тоже неплохо зарекомендовавшая себя в работе с MajorDoMo. Здесь нет проблем характерных для Linux систем, всё привычно и понятно и при этом сервер показывает достаточно стабильную работу и uptime (время непрерывной работы) измеряемое месяцами.

Железо

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

Если вы используете MajorDoMo для «управления кнопками» умного дома и вывода нескольких несложных графиков, то никаких проблем не возникает, но система MajorDoMo имеет поистине неограниченные возможности и когда вы пытаетесь использовать всю эту мощь — загрузка процессора мини-компьютера быстро переваливает за 50%, а затем, с добавлением каждой новой функции и нового графика, неизменно ползёт вверх к 100 процентам.

Сервер MajorDoMo

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

Интерфейс

За основу дизайна интерфейса «Главного сервера» был взят стандартный дизайн MajorDoMo. Этот дизайн был немного переработан и в него было добавлено несколько новых элементов, например, дополнительные вкладки на страницах, графика и т. п. Главным нововведением стала «приборная панель», выполненная в стиле AMS и придающая системе характерный вид AMS-подобного продукта.

Dash-панель

Dash-панель

Как и в Arduino Mega Server для различных микроконтроллеров, приборная («dash») панель предназначена для индикации важных параметров системы в реальном времени. Это продиктовано исключительно удобством наблюдения за всеми важными параметрами сразу — достаточно бросить один взгляд и сразу видно в каком состоянии в данный момент находится система в целом и каждый важный узел по отдельности.

Рассмотрим поподробнее устройство панели управления главного сервера «Умной дачи».

Вкладки панели управления

Вы наверняка уже знакомы с устройством панели управления Arduino Mega Server. Здесь всё устроено примерно так же, за некоторыми исключениями, главным из которых являются вкладки панели управления.

Система MajorDoMo очень разветвлённая и содержит в себе множество подсистем, за каждой из которых хочется наблюдать в реальном времени, но, если попытаться вывести сразу все нужные параметры в dash-панель, то получится что-то вроде новогодней ёлки со множеством разноцветных гирлянд и огней.

Вкладки dash-панели

Поэтому была введена возможность переключать панели управления при помощи вкладок. Одним щелчком мыши можно переключиться на панель соответствующей подсистемы: «Электро», «Охрана», «Здоровье», «Погода», «Датчики», «Тарифы», «События», «Свет», «Устройства» и т. п. и видеть в реальном времени параметры, сгруппированные по какому-либо признаку, например, на вкладке «Датчики» можно увидеть состояние всех датчиков в текущий момент.

Многофункциональны индикатор

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

Многофункциональный индикатор

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

Время, дата и индикатор восхода и захода солнца

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

Время, дата и индикатор восхода и захода солнца

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

Индикатор работы системы

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

Индикатор работы системы

Контролируется также прохождение минутного цикла — надпись «ОК» появляется только после полного и корректного его прохождения. В случае проблем появляется надпись «ER» (error).

Значки администратора системы

Значки администратора системы

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

Контроллеры AMS

Проект «Умная дача» содержит несколько контроллеров объектов «Дом», «Баня», «Котельная», «Зимний сад» и т. д. и несколько инфраструктурных контроллеров, таких, как «SMS сервер», «Контроллер умных светодиодных лент WS2812B» и т. п.

Контроллеры AMS

В dash-панели эти контроллеры представлены интерактивными значками. Когда контроллер находится в сети, его значок светится сине-зелёным цветом, когда с контроллером есть какие-то проблемы, то цвет значка становится серым. Также система голосом оповещает о появлении или пропадании контроллера в сети. Голосовое оповещение при желании можно отключить в настройках.

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

Здоровье системы

Здоровье системы

У каждой подсистемы и у самой системы в целом есть такой параметр как «здоровье». Это интегральный параметр, который отражает «самочувствие» какого-либо объекта. В данном случае здоровье системы 95% и это говорит о том, что есть какие-то небольшие проблемы. Более подробно узнать об этих проблемах и устранить их можно воспользовавшись соответствующими инструментами, здесь же важно то, что одним взглядом можно количественно оценить состояние системы из множества контроллеров, разбросанных по нескольким строениям на площади целого поместья.

Интернет

Множество функций системы завязано на интернет. Например, контроллеры AMS синхронизируют внутреннее время с серверами, находящимися в интернет и т. д. Поэтому отслеживание доступности интернет-соединения важно. В «Умной даче» этим занимается как сам сервер MajorDoMo, так и один из AMS контроллеров.

Интернет

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

Важные параметры

Система контролирует и выводит в dash-панель в реальном времени четыре важных параметра: температуру на улице, влажность воздуха, количество осадков и источник электропитания поместья.

Важные параметры

Метео-информация берётся с AMS контроллеров сети, а об источнике питания поместья нужно сказать несколько слов отдельно.

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

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

Подробное резюме в реальном времени

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

Для удобства эта информация собирается в таблицу, обновляемую в реальном времени и содержащую текущую актуальную информацию по всем контроллерам «Умной дачи».

Подробное резюме в реальном времени

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

Страницы (вкладки) интерфейса

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

Вкладки второго уровня

Это небольшое дополнение позволяет более удобно структурировать информацию и делает страницы более информационно ёмкими.

Ресурсы сети

Поскольку сеть «Умной дачи» очень разветвлённая, то удобно иметь страницу на которой собраны все ресурсы внутренней сети поместья. На странице «Ресурсы» собраны ссылки на все ресурсы системы, причём сделаны дополнительные подвкладки разбивающие эту информацию на три категории «Ресурсы по местоположению», «Ресурсы по подсистемам» и «Ресурсы по контроллерам».

Ресурсы сети

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

Контроллеры

Тот же интерфейс с подвкладками на странице. Создано пять дополнительных вкладок «Все контроллеры», «Дом», «Баня», «Котельная», «Зимний сад», «SMS сервер». В дальнейшем, при добавлении новых контроллеров в сеть, можно будет добавить новые вкладки для этих контроллеров.

Все контроллеры

На вкладке «Все контроллеры» в сводную таблицу собрана вся информация по всем контроллерам сети. В таблице виден статус контроллера «в сети» он или нет, его IP адрес, время непрерывной работы и процент свободной памяти, косвенно говорящий о наличии или отсутствии проблем с контроллером.

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

Контроллер котельной

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

Подсистемы

На этой странице собрана подробная информация о текущем состоянии каждой подсистемы «Умной дачи».

На подвкладке «Датчики» в единую таблицу собрана информация о состоянии всех датчиков на всех контроллерах сети. Это очень удобно — можно мгновенно получить информацию о состоянии любого удалённого датчика и информацию обо всех датчиках сразу.

Датчики

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

Отопление

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

Оборудование

Климат

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

Погода и климат

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

Голосовое сопровождение

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

Настройки голосового сопровождения

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

Заключение

Всё, о чём рассказано на этой странице это только пример одного конкретного проекта. Возможности системы MajorDoMo поистине безграничны и на её основе можно сделать практически любой «Умный дом». В данном проекте «Главный сервер» выполняет функции верхнего уровня и управляет контроллерами «Умной дачи».

Также можно отметить отличную масштабируемость этого решения — можно добавлять в сеть любое нужное количество контроллеров и при необходимости легко наращивать мощность и функционал самого «Главного сервера».

Функции, реализованные в проекте

  • Главный сервер «Умной дачи»
  • Управление всеми контроллерами сети
  • Сбор данных со всех контроллеров в сети
  • Сохранение информации в SQL базе данных
  • Визуализация данных в виде различной графики

Приборная панель

  • Приборная панель со вкладками
  • Отображение информации в реальном времени
  • Индикатор работы сервера
  • Индикатор текущего времени суток
  • Индикатор оставшегося времени до восхода/заката солнца
  • Индикатор доступности интернета
  • Многофункциональный 3D индикатор
  • Индикация здоровья системы (включая все контроллеры)
  • Индикация важных параметров
  • Сводная таблица по всем контроллерам

Ресурсы «Умной дачи»

  • Ресурсы сети по местоположению
  • Ресурсы сети по подсистемам
  • Ресурсы сети по контроллерам

Контроллеры сети

  • Сводная информация по всем контроллерам
  • Подробная информация по каждому контроллеру
  • Дистанционная перезагрузка контроллеров

Информация по подсистемам

  • Сводная информация по всем датчикам системы
  • Сводная информация по всем тёплым полам
  • Сводная информация по всему оборудованию «Умной дачи»
  • Сводная информация по всему освещению поместья
  • Сводная информация по режиму присутствия в строениях
  • Сводная информация по беспроводному оборудованию nRF24

Прочее

  • Голосовое сопровождение событий
  • Настройки в веб-интерфейсе
  • и прочие функции

Заказать проект

Для того, чтобы заказать проект, просто пришлите письмо с описанием задачи на адрес info@hi-lab.ru и возможно уже через несколько дней вы получите готовый проект вашей мечты