Умный дом 2.0

Наконец-то закончен проект перевода моего умного дома на новое железо и софт.
Если раньше это были беспроводные выключатели, пульты-передатчики и USB адаптеры от Noolite и самописный веб-интерфейс для управления всем этим хабаром, то теперь это выключатели и реле Sonoff, MQTT брокер Mosquitto и Majordomo.

Устройства Noolite хорошо себя показали за 5 лет использования, однако я столкнулся с их «пределом» в виде отсутствия обратной связи. Беспроводной выключатель посылает команду на реле и все, подтверждения включился ли свет или нет он не получает. Плюс нельзя в какой-то момент подключиться удаленно и опросив все устройства понять какие источники в квартире включены, а какие — нет.

С Sonoff все иначе. Конечно, и в мыслях у меня не было использовать стоковую прошивку выключателей и реле (фу-фу-фу). После изучения альтернатив выбор пал на прошивки от Tasmota. Они позволяют «научить» железо Sonoff работать с MQTT сервером. А он, в свою очередь прекрасно дружит с софтом для умного дома Majordomo. Majordomo же открывает по истине безграничные возможности по кастомизации интерфейса умного дома, настройки взаимодействия компонентов и автоматизированных сценариев.

В отдельной статье я кратко опишу процесс прошивки Sonoff софтом от Tasmota, т.к. по-первости это оказалось не просто. Дальше же рассмотрю высокоуровневую архитектуру системы.

Архитектура новой системы

Sonoff устройства используют WiFi в качестве транспорта для коммуникации с брокером MQTT, таким образом их можно подключить напрямую к домашней WiFi сети. Я пошел немного дальше и для надежной изоляции сегмента умного дома выделил отдельный WiFi маршрутизатор и создал отдельную WiFi сеть к которой подключаются ТОЛЬКО устройства умного дома, организовал необходимый мониторинг подключающихся устройств дабы исключить попадание в сеть «левых» девайсов.

На стареньком ноуте был поднят QEMU KVM и в нем две виртуальные машины, на одной из которых как раз разместились Mosquitto и Majordomo. На второй виртуальной машинке уживаются DNS, DHCP серверы, сборщик (rsyslog) и обработчик (Simple Event Correlator) журналов событий и мониторинг ключевых хостов и сервисов.
Схематично показано на рисунке ниже.

Рисунок 1. Архитектура умного дома 2.0

Также в недалеких планах внедрить отдельный шлюз на границе сети на базе «заточенного» под Firewall/IPS дистрибутива Linux, а аппаратный маршрутизатор использовать в качестве точки доступа т.к. его функционала, производительности и надежности уже не хватает для реализации всех безумных идей, а именно:

  • IPS ситемы;
  • Proxy для обхода блокировок rutracker, linkedin и прочих, запрещенных ГовноРосКомНадзором;
  • прозрачности при решении проблем стабильности и нахождении узких мест работы системы (пожалуй, это главный момент).