Итак, прямо сейчас мы наблюдаем (или в ближайшем времени) будем наблюдать стремительное развитие IoT и, самое главное, внедрение на потребительском уровне. Цены падают, количество решений увеличивается, а возможности просто прекрасные.

Сейчас даже в Леруа Мерлен есть стенд "умный дом", где по сказочным ценам продаются какие-то отдельные штуки. В основном всё сводится к управлению привычными приборами непривычным способом:

  • чайником через телефон
  • дверным замком через телефон
  • светом через телефон
  • уведомления о протечке/газе на телефон и перекрытие трубы с протечкой (от 19к рублей)

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

Но полуавтоматизация — не умный дом. Полностью умным домом пожалуй можно считать сценарий, когда дома автоматически поддерживается климат, поливаются растения, кормятся звери, включается/выключается свет. Всё это должно делаться совершенно само, без участия человека или же с минимальным. То, что есть сейчас, предусматривает его активное вмешательство и чаще всего — через телефон как пульт. Когда-нибудь это превратится в полную автоматизацию и сейчас технологии это вполне позволяют. Должно это выглядеть примерно так:

Возвращаясь к нашей теме — на загнивающем Западе по факту на рынке сейчас три основных системы:

  1. Apple HomeKit
  2. Google Home
  3. Alexa

Фактически это пульты для управления некоторыми видами устройств (лампочки/датчики/выключатели) и некоторая автоматизация. У каждого есть свои недостатки и основной — поддержка только очень ограниченного числа устройств и весьма куцая автоматизация.

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

По замыслу Apple мы покупаем в Apple Store за мильён денег умную розетку, открываем приложение Home, добавляем там аксессуар, сканируя QR-код с упаковки и всё работает. Да, Apple-way, но стоит это очень дорого (мне так кажется):

Я могу уже сам сделать любое из таких устройств, оно будет не столь красиво конечно, но более функционально и дешевле, навскидку: розетка ~600 руб, ~датчик 300, лампу не могу,  но за 5500 могу 3-5 метров цветной RGBW светодиодной ленты в алюминиевом корпусе с рассеивателем. К примеру, вот датчик температуры и влажности, который ничем не отличается от магазинных за 3-4 тыс. рублей, но мне обошёлся примерно в 350 руб и еще есть возможность его существенно расширить, прицепив управление освещением, датчик движения и ещё что-нибудь (3-4 устройства легко).

Красивое решение, да? Рабочие варианты все такие, не особо презентабельны

Как работают эти устройства? Например, пресловутая умная розетка за 7108 рублей втыкается в глупую розетку и после почти мгновенной загрузки заявляет о себе (либо Bluetooth либо Wi-Fi, конкретно эта модель хз). iOS устройство видит её и позволяет управлять (вкл/выкл), получать состояние и энергопотребление.

Помимо Wi-Fi и Bluetooth устройства могут быть подключены и другими способами, например существуют беспроводные протоколы ZigBee, Z-Wave и т.п. Так как у айфонов такой экзотики нет, для подключения всяких там умных лампочек используются хабы. Хаб соединяется с конечными устройствами по своему (часто закрытому) протоколу и по Wi-Fi/Bluetooth с iOS. Для пользователя в приложении Home в итоге все выглядит хорошо — добавляешь хаб, а через него уже все экзотические устройства.

Разумеется, каждый производитель хочет продать свой хаб:

Наша цель — иметь один хаб для всего зоопарка и это уже вполне реализуемо.

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

Кроме того, есть автоматизация, но она плохая. К примеру, можно сделать так, чтобы на закате зажигался свет, а на восходе гас, но нельзя сделать так, чтоб он зажигался за 3 минуты до и за 17 после, отчего-то Apple сделала эти интервалы лишь по 15 минут. Присутствие в доме для сценария "если кто-то дома, сделать то-то" определяется по геопозиции телефона, то есть гуляя во дворе ты фактически дома.

Самая жесть — температурные датчики не являются триггерами событий, например нельзя сделать чтоб при температуре в комнате ниже 19 градусов включался кондиционер. Для этого есть устройство "термостат", но HomeKit-девайсы с таким функционалом стоят весьма и весьма недешево.

Поэтому мы будем делать всё сами и работать оно будет хорошо. Собранный мною по осени термостат прекрасно отработал всю зиму, держал в разное время температуру от 15 до 24 градусов и не допустил ни одного сбоя несмотря на отключения электричества.

Итак, железная часть, — какие устройства используем для начала и примерно сколько оно стоит (с запасом).

Девайс Для чего Цена
Raspberry Pi Отличный и проверенный временем мини-компьютер, который потребляем мало энергии, бесшумен и справляется с нашей задачей быть хабом — объединять зоопарк устройств и рассказывать о них HomeKit. Стоит сейчас покупать Raspberry Pi B3+ — оно с вайфаем. У меня также есть Raspberry Pi zero w, стоит примерно в два раза дешевле, мощность в 3 раза меньше, но работает так же хорошо. Я еще не нашел ситуации, когда её мощи бы не хватало. 3500 руб.
Проводочки RPI идёт абсолютно голой, нужен блок питания 5v/1A, USB-хаб, mini-usb провода и еще масса всего. 1500 руб
Роутер Да-да, использование роутера как части умного дома это нормально. На современные можно поставить массу всего и разгрузить малинку. У меня был ASUS N56 (продал на авито за 4500), но я променял его на Xiaomi 3G (купил в РФ за 2500), поставил прошивку тов. Padavan и все прекрасно. 3500 руб.
ESP8266 Устройства на одноименном чипе, неимоверно дешевые и легко программируемые. Многие "взрослые" и дорогие устройства построены именно на них, мы можем это сделать самостоятельно. 250 руб.
CC2531/CC2530 и прочие Устройство, которое после перепрошивки может быть ZigBee координатором/рутером. Нужно если у нас будут устройства на этом протоколе. 450 руб.

Для самого начала достаточно одной малинки или даже ничего из вышеперечисленного, если есть ненужный компьютер с linux/mac os (на windows совсем изврат, правда).

Теперь о программной части. Apple не так давно открыла HAP (HomeKit Accessory Protocol Specification) и софт стал появляться с огромной скоростью. Нас интересует возможность добавлять в приложение Home (желтая иконочка с домиком) неподдерживаемые устройства.

Самое популярное решение сейчас — hap-nodejs и производные. Соответственно нужен сам nodejs (есть для многих платформ и архитектур, даже для Raspberry Pi и даже на свой рутер я умудрялся его поставить) и дальше всё ставится его пакетами через npm.

Человеческий способ использовать монументальный hap-nodejs это Homebridge, там уже всё более-менее понятно и есть огромная масса плагинов, в том числе для вещей, которые не предназначены к интеграции в умный дом. К примеру, можно управлять сигнализацией Starline =)

Но Homebridge лишь "прокидывает" устройства в HomeKit и не даёт возможности создания автоматизаций (за редкими исключениями). Для этого надо что-то посерьезнее, например Node-RED, благо для него недавно был приведён в божий вид плагин (нода) node-red-contrib-homekit-bridged, делающая то же самое что и Homebridge.

Для связи между устройствами самым популярным (и небезопасным =) является протокол mosquitto. Это как мессенджер для различных устройств с удобной и понятной структурой команд, является фактически стандартом в сфере IoT. Сперва демон mosquitto работал у меня на raspberry pi, а потом я перенес его на роутер, всё хорошо, он нересурсоёмкий.

Забавно, что MQTT и Node-RED — детища IBM, давно не слышал об этой конторе.

Весь вышеуказанный софт можно установить на Raspberry Pi и оно будет вполне сносно работать. Сегодня и так много текста, продолжу попозже.