Как недорого провести свет homekit в свой дом. не без помощи xiaomi

«Умный дом» по версии Apple

HomeKit — это приложение, которое легко устанавливается на смартфоны, планшеты, смартчасы и телевизоры под управлением iOS. Оно способно управлять всеми умными гаджетами, которые установлены в вашем доме либо через собственный интерфейс, либо через помощника Siri (в том числе голосовыми командами). Идея в том, что пользователь не заходит в приложение каждого гаджета, а создаёт сценарии работы всей системы.


Любой сценарий включается одним касанием

Для начала Эпл предлагает такие сценарии:

  • «Утро». Включается освещение в спальне, коридоре и на кухне. В кухне начинают работать розетки и запускается кофеварка/чайник, тостер. Одновременно снимается блокировка с входной двери. Система отопления, как правило, «просыпается» на 15–20 минут раньше, чтобы вставшему с постели хозяину не было холодно.
  • «Я ушёл». Большинство приборов автоматически отключается, двери и окна блокируются, кондиционер переходит в экономный режим.
  • «Я дома». Открываются гаражные ворота для въезда, включается фасадное освещение со стороны гаража, снимается блокировка с входной двери, температура в комнатах поднимается/опускается до нужного уровня. В зависимости от привычек владельца одновременно включается освещение и розетки на кухне, или подсветка и телевизор в гостиной.
  • «Ночь». Блокируются двери, переходит в экономный режим отопление. Освещение либо переводится в режим ночника, либо включается на минимуме мощности после получения сигнала от датчика движения.
  • «Кино». Закрываются шторы/жалюзи, гаснет основное освещение, кондиционер переходит в тихий режим.

Аналогично разработаны сценарии «Вечеринка», «Романтика», «Ужин», к тому же каждый пользователь может не только модифицировать существующие, но и создавать собственные сценарии. Чтобы выполнить все подобные операции с помощью разных приложений пришлось бы потратить 1–2 минуты, а в HomeKit достаточно одного касания.

Особенности работы Home Kit

Краткий перечень устройств, управляемых через HomeKit

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

Важно отметить, что HomeKit устанавливается не на все устройства Apple, а только гаджеты последних поколений. Полный список поддерживаемых моделей указан на официальном сайте производителя

Работа приложения на примере освещения

Дополнительные функции HomeKit

Кроме удобного управления домом внутри помещения, это приложение помогает реализовать и другие возможности:

  • Управление из любой точки мира. Даже если вы находитесь на работе, в пробке или в командировке, вы можете полноценно управлять всеми системами, от просмотра видеонаблюдения до контроля температуры в спальне. При необходимости возможно создание сценария для имитации присутствия хозяев. Чтобы пользоваться такой функцией необходимо связать все исполняющие гаджеты с общим центром: домашним планшетом либо Apple TV. Тогда вы со смартфона будете посылать сигнал на Apple TV, а уже он — на осветительные приборы, кондиционер и т. д.
  • Автоматизация по геопозиции. Домашний центр управления будет отслеживать ваше местоположение и запустит сценарий «Я дома» или просто откроет дверь при вашем приближении.
  • Автоматизация по времени. «Расскажите» HomeKit, когда должно включаться и выключаться отопление, в какое время должен включится сценарий «Я ушёл», в котором часу самостоятельно активировать сценарий «Ночь». Пусть дом обеспечивает ваш комфорт, не дожидаясь сигнала с вашего смартфона.
  • Автоматизация по ситуации. Датчик движения можно настроить так, чтобы ночью он включал свет на 15%, а днём — на 95%.

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

Heap (memory)

The heap is critical for ESP8266 with full TCP/IP support. ESP8266 easily crashes when the memory is lower than ~5000.

I tried to make WolfSSL crypto work safely on ESP8266 with better performance and lower memory or a trade-off. See details in next section.

Here are the free heap values of running the example sketch:

  • Boot: ~26000
  • Preinit over: ~22000
  • Pairing: ~17000 (or even low when crypto computing)
  • Paired and connected with one iOS device: ~21700
  • Paired and no iOS device connected: ~23400

After memory optimization in v1.1.0:

  • Boot: ~46000
  • Preinit over: ~41000
  • Pairing: ~37000 (or even low when crypto computing)
  • Paired and connected with one iOS device: ~41700
  • Paired and no iOS device connected: ~43000

Светильники Xiaomi с поддержкой HomeKit

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

Xiaomi LED Ceiling Lamp 1S

Этот потолочный светильник изображен на плане под номером «1». Для работы ему достаточно сделать вывод как под обычную люстру, но этот еще умеет подключаться к Wi-Fi и становиться частью экосистемы HomeKit. Чтобы было комфортно, лучше выбирать его для освещения помещения площадью не более 15 квадратных метров — моя гостиная как раз имеет площадь 14,5 квадратных метра.

Смотрится вообще топ!

Чем он удобен, можно настраивать цветовую температуру от 2700 до 6500 К. Например, сделать освещение в комнате более романтичным или, наоборот, максимально ярким. Поддерживается несколько оттенков свечения — я вот очень люблю «теплый» свет. В обычных светильниках для этого обычно надо менять лампочки, а здесь все завязано на мобильном приложении. Ну и к тому же светильник Xiaomi LED Ceiling Lamp 1S очень экономичный — 240 диодов этой лампы суммарно потребляют до 28 Вт. Заявленный ресурс — 25 000 часов. За 5 тысяч рублей это крутое предложение.

Добавление в HomeKit осуществляется через приложение Yeelight

Xiaomi LED Table Lamp Pro

В гостиной я оборудовал себе небольшую рабочую зону около окна. Конечно, включать каждый раз потолочный светильник для работы — это глупо, гораздо удобнее пользоваться отдельно небольшой лампой на столе. Так и глазам полезнее будет, и домочадцам можно не мешать. У Yeelight (Xiaomi) есть настольная лампа LED Table Lamp Pro (под номером «2»): выглядит стильно, поддерживает HomeKit и… барабанная дробь… еще и с беспроводной зарядкой для айфона или другого устройства (например, AirPods).


Такую лампу можно и в качестве прикроватной использовать

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

Управлять лампами Xiaomi с поддержкой HomeKit можно прямо в приложении «Дом» на айфоне

Xiaomi Yeelight Lightstrip Plus

Самый удобный способ организовать освещение на кухне — пустить светодиодную ленту над рабочими поверхностями. На прошлой квартире у меня была такая от IKEA, основной свет в итоге включал очень редко, в основном когда гости собирались. Здесь же решил установить светодиодную ленту Yeelight Lightstrip Plus (под номером «3»), которая поддерживает смену яркости, цветов, а за счет материала с клейким основанием и большим запасом гибкости можно придать ей любую форму.

Эту ленту можно пристроить вообще где угодно

Xiaomi Yeelight LED Bedside Lamp D2

Выглядит супер, и как ночник можно использовать

Ну и куда же без прикроватной лампы! То, что нужно, если хочется почитать перед сном (даже на айфоне, ведь в полной темноте смотреть на экран устройств довольно вредно). Есть у Xiaomi крутое решение в виде футуристичной лампы LED Bedside Lamp D2 (под номером «4»). Можно регулировать яркость в мобильном приложении и даже менять цвета — например, если я захочу использовать ее в качестве ночника, что с маленьким ребенком очень актуально.

В пару кликов устройство добавляется в умный дом Apple

Тоже выбрал международную версию, работает с HomeKit, «Алисой», Mi Home, также управляется через фирменное приложение Yeelight.

Supported Components

The following integrations are currently supported:

Component Type Name Description
alarm_control_panel SecuritySystem All security systems.
automation / input_boolean / remote / scene / script / vacuum Switch All represented as switches.
binary_sensor Sensor Support for , , , , , , , , and device classes. Defaults to the device class for everything else.
camera Camera All camera devices. HomeKit Secure Video is not supported at this time.
climate Thermostat All climate devices.
cover GarageDoorOpener All covers that support and and have or as their .
cover WindowCovering All covers that support .
cover WindowCovering All covers that support and through value mapping. ( -> ; -> )
cover WindowCovering All covers that support , and through value mapping. ( -> ; -> ; -> every value in between)
device_tracker / person Sensor Support for device class.
fan Fan Support for , and .
fan Fan All fans that support and through value mapping: is assumed to contain values in ascending order. The numeric ranges of HomeKit map to a corresponding entry of . The first entry of should be equivalent to to match HomeKit’s concept of fan speeds. (Example: = ; -> ; -> between and ; -> )
humidifier HumidifierDehumidifier Humidifier and Dehumidifier devices.
light Light Support for , and .
lock DoorLock Support for .
media_player MediaPlayer Represented as a series of switches which control , , , or depending on of entity and the list specified in .
media_player TelevisionMediaPlayer All media players that have as their . Represented as Television and Remote accessories in HomeKit to control , , , or , depending on of entity. Requires iOS 12.2/macOS 10.14.4 or later.
sensor TemperatureSensor All sensors that have or as their or as their .
sensor HumiditySensor All sensors that have as their and as their .
sensor AirQualitySensor All sensors that have as part of their or as their
sensor CarbonMonoxideSensor All sensors that have as their
sensor CarbonDioxideSensor All sensors that have as part of their or as their
sensor LightSensor All sensors that have or as their or as their
switch Switch Represented as a switch by default but can be changed by using within .
water_heater WaterHeater All devices.

Plugin Development

There are many existing plugins you can study; you might start with the Homebridge Example Plugins. The Homebridge Plugin Template project also provides a base you can use to create your own platform plugin.

When writing your plugin, you’ll want Homebridge to load it from your development directory instead of publishing it to each time. Run this command inside your plugin project folder so your global install of Homebridge can discover it:

npm link

You can undo this using the command.

Then start Homebridge in debug mode:

homebridge -D

This will start up Homebridge and load your in-development plugin. Note that you can also direct Homebridge to load your configuration from somewhere besides the default , for example:

homebridge -D -U ~/.homebridge-dev

This is very useful when you are already using your development machine to host a «real» Homebridge instance (with all your accessories) that you don’t want to disturb.

Подробнее о возможностях элементов умного дома


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

Основные единицы Redmond:

  1. Центр управления — осуществляет управление техникой по беспроводной сети. Это не обязательная единица, но в случае ее отсутствия придется использовать блютуз и находиться в непосредственной близости от устройства. К Алисе такая техника не подключается.
  2. Чайник. Для Алисы доступно включение и отключение устройства. Другие опции (нагрев до конкретной температуры, информирование о необходимости смены воды) не доступны.
  3. Цоколь. Умный дом Яндекс может включать и отключать лампочки на большом расстоянии. Изменение яркости пока недоступно. Через приложение Редмонд пользователь может установить таймер на работу лампочки, но в Алисе этой опции нет. Для управления лампочкой ее нужно вкрутить в смарт-цоколь, а далее установить в светильник. Чтобы настроить смарт-цоколь, потребуется несколько нажатий на корпусе для совмещения с центром по Вай-Фай и телефоном по блютуз.
  4. Розетки. Здесь работа построена на включении и отключении питания. Допускается подключение устройств, работающих сразу после подсоединения к сети (вентиляторы, кофеварки и т. д.). Их можно подключить к удлинителю, чтобы одной командой снять напряжение со всех устройств.

Розетки от Яндекса и Редмонд внешне отличаются. Первая имеет большие размеры, а кнопка для настройки установлена с торцевой части.

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

Кроме розетки, компания Яндекс выпустила следующие устройства для умного дома:

  1. Универсальный пульт. С его помощью можно управлять только ТВ и кондиционерами. С другой аппаратурой пульт пока не взаимодействует. Для управления телевизором необходимо изучить список, выбрать производителя ТВ и определиться с подходящим пультом. Для некоторых моделей телевизоров может подходить сразу несколько пультов. По функционалу пульт ДУ ограничен. Он позволяет менять каналы, включать и отключать ТВ, корректировать громкость в большую или меньшую стороны. Приказы подаются с помощью Алисы. Для выполнения других приказов потребуется обычный пульт. Дать команду Алисе включить ТВ на Смарт или Apple не получится.
  2. Лампочка. На данный момент этот элемент умного дома наиболее полезен. Устройство можно включать и отключать, менять яркость, температуру свечения и цвет. Алиса распознает много команд, что упрощает управление лампочкой. Наиболее ярким является белое свечение. Но можно задать и другие цвета — красный, желтые и т. д. Все изменения задаются через настройки приложения или с помощью голосовых команд Алисы.
  3. Яндекс.Станция. Отдельного внимания заслуживает Яндекс.Станция, продажи которой начались лишь год назад. Не секрет, что Алиса появилась давно и уже встроена во многие устройства (браузер, навигатор и т. д.). Но там он выполняет вспомогательные функции. В случае с умным домом Алиса — главный элемент, обеспечивающий управление техникой. Первичная настройка происходит через смартфон, но впоследствии управление колонкой происходит только голосом.

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

Отметим, что пока умный дом Яндекс находится на этапе развития. Со временем появится больше устройств и функций, с которыми будет справляться Алиса.

Interacting with your Devices

Once your device has been added to HomeKit, you should be able to tell Siri to control your devices. However, realize that Siri is a cloud service, and iOS may need some time to synchronize your device information with iCloud.

One final thing to remember is that Siri will almost always prefer its default phrase handling over HomeKit devices. For instance, if you name your Sonos device «Radio» and try saying «Siri, turn on the Radio» then Siri will probably start playing an iTunes Radio station on your phone. Even if you name it «Sonos» and say «Siri, turn on the Sonos», Siri will probably just launch the Sonos app instead. This is why, for instance, the suggested for the Sonos accessory is «Speakers».

Стоимость

Российский магазин re:Store предлагает свои услуги по созданию проекта «Умный дом HomeKit». На официальном сайте рассчитывается примерная стоимость работ.

При проектировании специалисты магазина re:Store учитывают вид помещения (дом, квартира, таунхаус), площадь. Существует три основных «пакета» автоматизации, которые можно объединять и дополнять:

  1. Управление светом и приборами;
  2. Управление системами безопасности;
  3. Управлением климатической техникой.

Эксперты составляют индивидуальный проект с использованием Apple HomeKit, создают сценарии. В результате владелец получает полную автоматизацию жилого помещения «под ключ».

Умный дом Apple

Но сначала эту систему нужно обучить, чем и занялись исследователи. Система, которую они назвали Listen Learner, опирается на распознавание акустической активности (звуков вокруг), что позволяет интеллектуальному устройству, такому как динамик с микрофоном (HomePod), распознавать события, происходящие в его окружении. Для этого они воспользовались MacBook Pro, который записывал окружающие его звуки в течение некоторого времени, а затем разработали алгоритм, с помощью которого звук ассоциировался с конкретным устройством или событием.

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

Другой продемонстрированный пример — распознавание стука в дверь. Даже если вы в другой комнате, система пришлет уведомление на телефон об этом событии, поскольку она, за счет своего «слуха», сможет его распознать. Я сразу задумался о других приложениях и кейсах использования технологии, можете поделиться своими в нашем Telegram-чате.

Одним из примеров является наполнение ванны. Я устал, хочу принять ванну, открываю кран, иду играть в PlayStation — процесс ведь не быстрый. Если HomePod сможет распознать звук воды, которая набирается в ванну, он может вычислить, как долго она наполняется и предупредить меня, если воды уже достаточно, а кран еще не выключен.

Мои бутерброды с сыром готовы!

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

Увлажнитель


И так, вне зависимости от того, будет ли это увлажнитель, воздухоочиститель, датчик температуры, вам в любом случае потребуется блок Home Assistant, который мы устанавливали при настройке Node-RED — поэтому очередной раз знакомимся со статьей.

И так, для того, чтобы начать добавление увлажнителя нам необходимо добавить блок events: all, кликнуть по нему дабл кликом и в настройках выбрать сервер Home Assistant, который мы настраивали ранее (если он уже не был выбран по-умолчанию). После чего все изменения из Home Assistant вне зависимости от устройств будут приходить в Node-RED.

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

После добавления блока events:all нам необходимо отделить наш увлажнитель от всех остальных устройств, для этого мы добавляем блок switch, в котором прописываем условие с названием entity_id нашего увлажнителя (в моем случае это был fan.xiaomi_miio_device)

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

Если же кому-то интересно посмотреть подробнее и покритиковать мои костыли, то ниже прикладываю сам JS

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


var characteristic = {};

if (msg.payload.event.new_state.state != msg.payload.event.old_state.state) {
if (msg.payload.event.new_state.state === "on") {
characteristic.Active = 1;
characteristic.CurrentHumidifierDehumidifierState = 2;
characteristic.TargetHumidifierDehumidifierState = 1;
}

else {
characteristic.Active = 0;
characteristic.CurrentHumidifierDehumidifierState = 0;
characteristic.TargetHumidifierDehumidifierState = 0;
characteristic.CurrentRelativeHumidity = 0;
}
}

if (msg.payload.event.new_state.attributes.speed === "Silent") {
characteristic.RotationSpeed = 25;
}
else if (msg.payload.event.new_state.attributes.speed === "Medium"){
characteristic.RotationSpeed = 50;
}
else if (msg.payload.event.new_state.attributes.speed === "High"){
characteristic.RotationSpeed = 75;
}
else if (msg.payload.event.new_state.attributes.speed === "Strong"){
characteristic.RotationSpeed = 100;
}

if (msg.payload.event.new_state.attributes.child_lock === true) {
characteristic.LockPhysicalControls = 1;
}
else {
characteristic.LockPhysicalControls = 0;
}

characteristic.CurrentRelativeHumidity = msg.payload.event.new_state.attributes.humidity;
characteristic.RelativeHumidityHumidifierThreshold = msg.payload.event.new_state.attributes.target_humidity;
msg.payload = characteristic;
return msg;

В данном случае мной были использованы практически все атрибуты HomeKit для увлажнителя, кроме, наверное того, который может пригодится для увлажнителя второй версии Xiaomi — WaterLevel, но я думаю, воспользовавшись примером и данной сверхполезной (за что её автору огромное спасибо) вы сможете добавить эти данные сами.

Если же вы пользуетесь первой версии увлажнителя от Xiaomi, то смело можете использовать данный код.

Соответственно, после данной функции вы уже вставляете блок HomeKit, настроив его на тип: Увлажнитель (а точнее HumidifierDehumidifier).

На этом половина работы завершена и теперь вы сможете изменив какие-то настройки в HomeAssistant лицезреть их в своем приложении Дом в «прокинутом» туда увлажнителе.

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

К сожалению, из-за того, что HomeKit (в отличие от Home Assistant) прокидывает каждый измененный атрибут отдельно, пришлось вместо создания единой функции (хотя возможно сейчас бы я и пересмотрел этот подход заморочившись с глобальными переменными) и составлять на каждый «чих» HomeKit устройства отдельный поток с выполнением отдельной команды.

Для этого я воспользовался в какой-то мере уже известным нам блоком switch, несколькими блоками функций, а также блоками call service (от Home Assistant) для исполнения команд в Home Assistant.

Для того, чтобы не описывать однотипные шаги и обратные куски функций, которые из HomeKit атрибутов превращают в параметры для функций Home Assistant, я просто приложу ниже итоговый Flow.

Итоги

По итогам, мой текущий HomeKit выглядит примерно так. Некоторыми устройствами я пока что доволен не очень и еще буду их дорабатывать (пока что мне не очень нравится как работает яркость и выбор цвета у лампочек), но в общем сейчас это выглядит так.

Но при этом, потратив на это несколько часов своего времени, я полностью уверен в том как это работает и уверен в полной стабильности его работы.

По итогам перенастройки всех устройств в HomeKit через Node-RED не забудьте снести (или закомментировать) ту самую строку выше в configuration.yaml в HA (она нам больше не понадобится).

# homekit:

Как и обещал ниже выкладываю экспорт Flow с увлажнителем/воздухоочистителем — clipboard-inhomekit.

Часть 0. Почему Home Assistant?Часть 1. Установка Home AssistantЧасть 2. Настройка Z-waveЧасть 3. Настройка ZigbeeЧасть 4. Установка Node-RED Часть 5. HomeKit в Home Assistant через Node-RED

Подписывайтесь на канал inHomeKit в Telegram и , чтобы у вас всегда было что почитать: новости мира умного дома, обзоры новых устройств, инструкции по подключению.

Приходите в наш чат в Telegram

Так же у нас отличные паблики VK, , Instagram и .


С этим читают