Умный дом на базе алисы своими руками пошаговая инструкция

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

Давно уже думал над тем, чтобы попробовать собрать нечто подобное, но чтобы не так сильно заморачиваться. Раньше это казалось чем-то недостижимым, футуристичным, дорогим и не очень полезным для квартиры. Но теперь все более, чем реально.

Пока собрал только небольшой фрагмент умного дома, но это только начало. И мне уже нравится результат. Особенно при работе с Алисой от Яндекса.

Зачем вообще брать технику со встроенной Алисой

Знаете вариант получше, говорящий на русском языке? Я — нет. Приятнее всего работать именно с нормально общающейся Алисой, умеющей базовые вещи для управления умным домом.

Она совместима с самыми популярными брендами:

▪️ Elari
▪️ Philips
▪️ Redmond
▪️ SmartThings
▪️ Xiaomi
▪️ Z.Wave
▪️ Rubetek

Думаю, 4 из них вы точно знаете. И все эти девайсы настраиваются прямо в приложении Яндекса, которое и является неким хабом для управления умным домом.

Да, Алиса не обладает огромным функционалом, но что-то всё-таки умеет, чего мне пока хватает. И со временем она все равно научится большему (я в это верю).

Google Assistant? В топку, полноценно не управляет техникой на русском языке. Siri? Для работы с приложением Дом нужно миллион переключателей и переходников, совместимых с HomeKit.

Что в итоге я выбрал

Говорю сразу, это не реклама, а чисто мне мнение. Почитав о Xiaomi у нас же на сайте, я решил, что с их техникой слишком много заморочек, которыми я вовсе не горю желанием заниматься.

Хочется простоты — вставил, подключил, работает. Без костылей и прописывания тонн строчек кода для грамотной работы устройств. Но это не значит, что я вовсе отказался от китайцев, у них, наверное, самый широкий выбор умных девайсов. Так что отложил их просто на потом.

Почему не Яндекс? Алиса же!

Во-первых, у него пока особо нет умной техники. У компании всего три умных устройства:

▪️ Смарт-лампочка: 1190 руб.
▪️ Смарт-розетка: 1190 руб.
▪️ Пульт для управления умным домом: 1390 руб.

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

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

В общем, у кого-то техника Яндекса работает, а у кого-то нет. Отзывы слишком смешанные, и рисковать я не стал.


Умный цоколь

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

Собственно, я и решил строить себе умный дом с малого. Купил для старта 2 цоколя, 2 розетки, кофеварку и чайник. Ими можно управлять через приложение Ready for Sky от Redmond, в нем возможна более тонкая настройка, нежели через Алису.

К примеру, можно установить температуру нагревания воды в чайнике, изменить его подсветку по RGB-палитре и так далее.

Но это мелочи, которые лично мне не очень-то и нужны.

Конкретно, что я взял себе:

▪️ Умный цоколь REDMOND SkySocket 202S: 599 руб.
▪️ Умная розетка REDMOND SkyPort 103S: 599 руб.
▪️ Умный чайник-светильник REDMOND SkyKettle G213S: 3495 руб.
▪️ Умная кофеварка REDMOND SkyCoffee M1509S: 4990 руб.

За всё вышло 10 881 руб. Плюс взял Яндекс.Станцию для голосового управления из любой комнаты, чтобы умными гаджетами могла пользоваться вся семья. Это ещё дополнительно 9990 руб.

Итого: 20 871 руб.

Можно взять вариант попроще со встроенной Алисой, это даже разумнее для больших квартир, где одной колонки не хватит.

Например, Irbis A за 3000 руб. — штуки три на квартиру будет достаточно. Хоть эта колонка звучит объективно плохо, зато ее громкости и мощных микрофонов достаточно для общения с голосовым помощником.

Как настраивал

Здесь все оказалось несложно. Для связи гаджетов между собой хватает приложения Ready for Sky, но для нормальной интеграции с головным управлением через Алису этого мало.

1. Качаем приложение Яндекса.

2. Переходим во вкладку Устройства в дополнительном меню, скрытом за иконкой с тремя палочками.

3. Открываем Умный дом —> Добавить устройство —> Ready for Sky.

4. Нажимаем Oбьединить аккаунты, вас перекинет в приложение Ready for Sky и предложит соединить учетные записи Яндекса и Redmond.

После этого, казалось бы, Алиса должна заработать с умной техникой. Но как бы не так.


Идеальная связка для дистанционного управления техникой Redmond

Для управления всеми гаджетами требуется создать мост. И здесь есть 2 варианта: либо докупить пульт управления от Redmond, либо взять в руки смартфон на Android.

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

Настройка несложная — включил Bluetooth, неспаренные гаджеты нашлись, нажал Подключить и зажал на каждом гаджете кнопку включения на 3-5 секунд. Через пару мгновений все сконнекченно.

Важно: нельзя использовать приложения Ready for Sky и R4S Gateway на одном Android-смартфоне. Это может привести к сбоям и ухудшению работы устройств. Но никто не запрещал устанавливать Ready for Sky на iPhone.

Либо если у вас нет Android-смартфона, можно поставить любой популярный эмулятор Android на Mac или PC и управлять с ноутбука техникой по Bluetooth.

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

Правда, тонко управлять им ассистент ещё не умеет. Пока доступно только включить-выключить. Так что свет/розетки/чайник/кофеварка работают только в одном предварительно настроенном режиме.

Если решитесь себе взять цоколи Redmond, вот их правильная настройка, чтобы можно было сказать «Алиса, включи свет в коридоре/спальне/туалете».


Интерфейс умного дома от Яндекса

1. В приложении Яндекса создаете группу Коридор (или какую вам требуется).

2. Переименовываете цоколь в Коридор (или где у вас находится устройство).

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

Что в планах по развитию умного дома

Сейчас думаю взять умный пылесос Xiaomi Mi Robot Vacuum Cleaner и добавить побольше розеток для управления имеющейся техникой в доме.

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

Плюс хотелось бы докупить смарт-замки Xiaomi Aquara Smart Door Lock, но для них потребуется создать отдельную защищённую сеть, чтобы никто не смог просто так войти домой. Ну и бонусом — умные жалюзи.

Об этом я расскажу позднее, когда реализую свои идеи.

Общие впечатления

Да, это не приложение Дом от Apple. Гаджеты не поддерживают HomeKit и не управляются с Apple Watch. Но при наличии колонок с Алисой мне вполне хватает и такого решения.

Тем более, что через приложение Яндекс можно создавать сценарии для голосового помощника. Скажем, команду «Алиса, я дома» — включается расслабляющая музыка, заваривается кофе и включается телевизор. Это ли не базовое удобство, о котором стоит мечтать?

Кому интересно больше про умный дом:

1. Что в умном доме будет работать без интернета
2. Как собрать хаб для умного дома очень дёшево
3. Выбираем умную настольную лампу. Пять хороших вариантов

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (76 голосов, общий рейтинг: 4.25 из 5)

🤓 Хочешь больше? Подпишись на наш Telegram.

undefined

iPhones.ru


Что из этого вышло?

  • умный дом,
  • Яндекс

Артём Баусов avatar

Артём Баусов

@Dralker

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

Telegram: @TemaBausov

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

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

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

Как работает такой умный дом?

Чтобы создать умный дом своими руками, потребуется навык Домовёнок Кузя. Через него можно не только контролировать умный дом, но и интегрировать виртуальные устройства напрямую в Яндекс.Алису. Это значит, что вам не придётся постоянно открывать навык, чтобы просто выключить лампочку. С микроконтроллером навык будет связываться через веб-хуки.

Для веб-хуков отлично подходит платформа Blynk — панель управления устройствами на Arduino и Raspberry Pi. Там вы сможете без труда создать графический интерфейс, через который можно будет управлять устройством по Wi-Fi (а ещё по Ethernet, USB, GSM и Bluetooth).

Какие устройства можно интегрировать в умный дом?

Через навык можно взаимодействовать с обширным количеством устройств: лампочки, розетки, шторы, замки, роботы-пылесосы, термостаты, очистители воздуха, кондиционеры и  чайники. Кроме этого, можно переключать каналы на телевизоре (через универсальный пульт) и менять цвета RGB-ламп.

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

Аппаратная и программная часть

Для того, чтобы собрать умный дом своими руками, мы будет использовать Wi-Fi модуль ESP8266. Процесс разработки на нём почти не отличается от традиционной разработки на Arduino.

Для начала нужно скачать приложение Blynk из GooglePlay или AppStore и зарегистрироваться в нём. После этого нужно создать новый проект и выбрать соответствующий микроконтроллер. Перед вами появится пустая панель, на которой можно размещать элементы управления. Это могут быть кнопки, иконки, слайдеры, индикаторы, выпадающие списки и многое другое.

После создания проекта на вашу почту придёт токен доступа. Его нужно будет указать в скетче и веб-хуках.

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

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

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

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "*****"; // Ваш токен Blynk

char ssid[] = "*****"; // Название вашей точки доступа
char pass[] = "*****"; // Пароль к точке доступа

int RelayPin = 13; // Пин, на который подключено реле

BLYNK_WRITE(V0) // Вызовется при обновлении виртуального порта V0 
{
  int pinValue = param.asInt(); // Считываем новое значение порта
  digitalWrite(RelayPin, pinValue); // Устанавливаем значение на пин
}

void setup()
{
  Serial.begin(9600);
  pinMode(RelayPin, OUTPUT); // Настройка порта RelayPin на выход
  
  Blynk.begin(auth, ssid, pass); // Инициализация и подключение к Blynk
}

void loop()
{
  Blynk.run(); // Вызов в цикле необходим для работы Blynk
}

Для этого скетча в панели управления Blynk нужно добавить элемент «Button». В его настройках OUTPUT выставить V0, а режим работы переключить в Switch.

Теперь к указанному порту можно подключать реле. Если всё правильно, то при нажатии на кнопку в панели управления реле будет открываться и закрываться.

Голосовое управление светом не мешает управлению им аппаратно. К микроконтроллеру можно подключить физическую кнопку или выключатель, которые тоже будут включать и выключать свет. Если это необходимо, то изменять состояние виртуального порта можно методом Blynk.virtualWrite(port, value). Тогда изменения будут отображаться и на панели управления.

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

Всё работает? Тогда можете переходить к следующему этапу.

Получение веб-хуков

От Blynk вам потребуется не панель управления, а контроль виртуальных портов через GET-запросы. Вот так выглядит веб-хук на изменение состояния порта:

https://blynk-cloud.com/<token>/update/V0?value=<value>

Чтобы включить виртуальный порт, <value> нужно указать как 1, чтобы выключить — как 0.

Помимо этого, значение с порта можно получить таким запросом:

https://blynk-cloud.com/<token>/get/V0

Настройка навыка «Домовёнок Кузя»

Перейдите на сайт навыка и авторизуйтесь там через Яндекс. Далее жмите на Добавить правило HTTP (GET). Перед вами откроется форма настройки правила.

Активационная фраза — название запроса, которое будет отображаться в списке (например «свет на кухне, включение»). Если вы не планируете контролировать умный дом конкретно изнутри навыка, то больше фраза нигде не понадобится. Поле Ответ Кузи тоже оставляйте пустым. В поле URL вставляете соответствующий веб-хук на включение света (виртуального порта). Остальные параметры можно не изменять. После этого нужно сделать идентичное правило на выключение света.

Дальше нужно перейти во вкладку виртуальных устройств и добавить устройство «Лампа». Тут нужно дать название устройству, по которому его будет идентифицировать Алиса. Например: свет, бра, подсветка, лампа или торшер. Место расположения — комната, в которой будет установлено устройство. Это нужно на тот случай, если в нескольких комнатах будут одинаковые по названию элементы. К тому же, одной голосовой командой можно включать и выключать все устройства в определённой комнате.

В Правило на включение/выключение из списка выбираете соответствующие запросы. В лампе имеется возможность управления яркостью. Для этого нужно создать ещё одно правило, но значение параметра value установить как {value}. Тогда в запрос будет подставляться число от 0 до 100, которое будет обозначать требуемую яркость. Вам лишь остаётся обработать это значение в скетче.

Примечание Если вы планируете изменять яркость, то параметр value в веб-хуке на включение нужно изменить с 1 на 100.

Настройка Алисы

В приложении Яндекс перейдите в раздел Устройства→Управление устройствами. Нажмите на кнопку «Добавить»→«Другое устройство». В открывшемся списке найдите навык «Домовёнок Кузя».

Авторизуйтесь в нём. Возможно, нужно будет ввести код объединения устройств, указанный в панели управления умным домом. Потом нажмите на Обновить список устройств.

На этом этом этапе вы уже создали умный дом своими руками. Теперь система полностью готова к голосовому контролю. К ней имеет доступ лишь ваш аккаунт. В настройках виртуальных устройств можно расширить доступ на другие аккаунты.

— Алиса, включи свет.

Время на прочтение
5 мин

Количество просмотров 10K

Привет! Я Роман Люкшин, системный эксперт-аналитик в компании «БАРС Груп». Мы с коллегами разрабатываем и внедряем ИТ-решения в сфере строительства, ЖКХ и соцзащиты. По образованию я инженер АСОИУ (Автоматизированные системы обработки информации и управления) и магистр радиофизики. И полученные в вузе знания толкнули меня на один интересный инженерный эксперимент.

Артём Баусов

@Dralker

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

Telegram: @TemaBausov

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

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

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

Как работает такой умный дом?

Чтобы создать умный дом своими руками, потребуется навык Домовёнок Кузя. Через него можно не только контролировать умный дом, но и интегрировать виртуальные устройства напрямую в Яндекс.Алису. Это значит, что вам не придётся постоянно открывать навык, чтобы просто выключить лампочку. С микроконтроллером навык будет связываться через веб-хуки.

Для веб-хуков отлично подходит платформа Blynk — панель управления устройствами на Arduino и Raspberry Pi. Там вы сможете без труда создать графический интерфейс, через который можно будет управлять устройством по Wi-Fi (а ещё по Ethernet, USB, GSM и Bluetooth).

Какие устройства можно интегрировать в умный дом?

Через навык можно взаимодействовать с обширным количеством устройств: лампочки, розетки, шторы, замки, роботы-пылесосы, термостаты, очистители воздуха, кондиционеры и  чайники. Кроме этого, можно переключать каналы на телевизоре (через универсальный пульт) и менять цвета RGB-ламп.

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

Аппаратная и программная часть

Для того, чтобы собрать умный дом своими руками, мы будет использовать Wi-Fi модуль ESP8266. Процесс разработки на нём почти не отличается от традиционной разработки на Arduino.

Для начала нужно скачать приложение Blynk из GooglePlay или AppStore и зарегистрироваться в нём. После этого нужно создать новый проект и выбрать соответствующий микроконтроллер. Перед вами появится пустая панель, на которой можно размещать элементы управления. Это могут быть кнопки, иконки, слайдеры, индикаторы, выпадающие списки и многое другое.

После создания проекта на вашу почту придёт токен доступа. Его нужно будет указать в скетче и веб-хуках.

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

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

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

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "*****"; // Ваш токен Blynk

char ssid[] = "*****"; // Название вашей точки доступа
char pass[] = "*****"; // Пароль к точке доступа

int RelayPin = 13; // Пин, на который подключено реле

BLYNK_WRITE(V0) // Вызовется при обновлении виртуального порта V0 
{
  int pinValue = param.asInt(); // Считываем новое значение порта
  digitalWrite(RelayPin, pinValue); // Устанавливаем значение на пин
}

void setup()
{
  Serial.begin(9600);
  pinMode(RelayPin, OUTPUT); // Настройка порта RelayPin на выход
  
  Blynk.begin(auth, ssid, pass); // Инициализация и подключение к Blynk
}

void loop()
{
  Blynk.run(); // Вызов в цикле необходим для работы Blynk
}

Для этого скетча в панели управления Blynk нужно добавить элемент «Button». В его настройках OUTPUT выставить V0, а режим работы переключить в Switch.

Теперь к указанному порту можно подключать реле. Если всё правильно, то при нажатии на кнопку в панели управления реле будет открываться и закрываться.

Голосовое управление светом не мешает управлению им аппаратно. К микроконтроллеру можно подключить физическую кнопку или выключатель, которые тоже будут включать и выключать свет. Если это необходимо, то изменять состояние виртуального порта можно методом Blynk.virtualWrite(port, value). Тогда изменения будут отображаться и на панели управления.

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

Всё работает? Тогда можете переходить к следующему этапу.

Получение веб-хуков

От Blynk вам потребуется не панель управления, а контроль виртуальных портов через GET-запросы. Вот так выглядит веб-хук на изменение состояния порта:

https://blynk-cloud.com/<token>/update/V0?value=<value>

Чтобы включить виртуальный порт, <value> нужно указать как 1, чтобы выключить — как 0.

Помимо этого, значение с порта можно получить таким запросом:

https://blynk-cloud.com/<token>/get/V0

Настройка навыка «Домовёнок Кузя»

Перейдите на сайт навыка и авторизуйтесь там через Яндекс. Далее жмите на Добавить правило HTTP (GET). Перед вами откроется форма настройки правила.

Активационная фраза — название запроса, которое будет отображаться в списке (например «свет на кухне, включение»). Если вы не планируете контролировать умный дом конкретно изнутри навыка, то больше фраза нигде не понадобится. Поле Ответ Кузи тоже оставляйте пустым. В поле URL вставляете соответствующий веб-хук на включение света (виртуального порта). Остальные параметры можно не изменять. После этого нужно сделать идентичное правило на выключение света.

Дальше нужно перейти во вкладку виртуальных устройств и добавить устройство «Лампа». Тут нужно дать название устройству, по которому его будет идентифицировать Алиса. Например: свет, бра, подсветка, лампа или торшер. Место расположения — комната, в которой будет установлено устройство. Это нужно на тот случай, если в нескольких комнатах будут одинаковые по названию элементы. К тому же, одной голосовой командой можно включать и выключать все устройства в определённой комнате.

В Правило на включение/выключение из списка выбираете соответствующие запросы. В лампе имеется возможность управления яркостью. Для этого нужно создать ещё одно правило, но значение параметра value установить как {value}. Тогда в запрос будет подставляться число от 0 до 100, которое будет обозначать требуемую яркость. Вам лишь остаётся обработать это значение в скетче.

Примечание Если вы планируете изменять яркость, то параметр value в веб-хуке на включение нужно изменить с 1 на 100.

Настройка Алисы

В приложении Яндекс перейдите в раздел Устройства→Управление устройствами. Нажмите на кнопку «Добавить»→«Другое устройство». В открывшемся списке найдите навык «Домовёнок Кузя».

Авторизуйтесь в нём. Возможно, нужно будет ввести код объединения устройств, указанный в панели управления умным домом. Потом нажмите на Обновить список устройств.

На этом этом этапе вы уже создали умный дом своими руками. Теперь система полностью готова к голосовому контролю. К ней имеет доступ лишь ваш аккаунт. В настройках виртуальных устройств можно расширить доступ на другие аккаунты.

— Алиса, включи свет.

Время на прочтение
5 мин

Количество просмотров 10K

Привет! Я Роман Люкшин, системный эксперт-аналитик в компании «БАРС Груп». Мы с коллегами разрабатываем и внедряем ИТ-решения в сфере строительства, ЖКХ и соцзащиты. По образованию я инженер АСОИУ (Автоматизированные системы обработки информации и управления) и магистр радиофизики. И полученные в вузе знания толкнули меня на один интересный инженерный эксперимент.

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

Решил поделиться с вами опытом и рекомендациями, как разработать и внедрить подобное SMART-решение в собственном жилье. Материала набралось на три большие статьи. Сегодня публикую первую часть, в которой расскажу про выбор оборудования и планирование домашней сети под умные устройства. По ходу описания привычные любому ИТ-специалисту термины могут употребляться в переносных смыслах. Например, фронтенд – как программная настройка, а бэкенд – физические работы по установке оборудования.

1. С чего все началось

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

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

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

2. Фазы реализации

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

2.1. Выбор оборудования

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

На сегодняшний день существует три протокола обмена:

  • wi-fi. Взаимодействие с роутером осуществляется напрямую без дополнительного оборудования и без ограничения по количеству устройств (исключением будут только сетевые настройки вашей сети, например, маска). Больше подходит для оборудования, у которого есть постоянное питание от электрической сети.

  • zigbee. Для данного протокола необходимо дополнительно докупить шлюз (gateway), который преобразует сигналы в «wi-fi» и соединяется с роутером. Также для протокола «zigbee» есть ограничение по количеству устройств в зависимости от модели и версии. Несмотря на то, что для обмена информацией по протоколу «zigbee» необходимо приобрести дополнительный шлюз, у него есть и основное преимущество – низкое энергопотребление, что очень важно для устройств.

    Больше подходит для оборудования, работающего от батареек (датчики влажности и температуры, датчики движения и т.д.). Радиус действия значительно больше (в среднем 10 м) по сравнению с «bluetooth», но по-прежнему уступает «wi-fi».

  • bluetooth. Тут также необходимо дополнительно приобрести шлюз (gateway). На данный момент используется в ограниченном наборе оборудования (первые датчики температуры/влажности и электрочайники). Фактически, сегодня активно вытесняется более современным протоколом «zigbee».

2.2. Планирование домашней сети

Вне зависимости от выбора протокола работы оборудования необходимо заранее позаботиться о стабильной сети («wi-fi» соединения). Стоит учесть, что определять уровень сигнала только через смартфон не совсем корректно, т.к. у конечных устройств умного дома wi-fi сигнал значительно слабее.

Необходимо в помещении (квартире, доме) исключить «мертвые» зоны. В моем случае для этого была выбрана система построения «бесшовного wi-fi» (mesh система) от производителя «Keenetic».

Для балансировки устройств по их месторасположению в квартире было куплено три сетевых устройства с поддержкой «Mesh системы» и гигабитными портами:

  • Роутер Giga (KN-1010) – основное устройство, на вход приходит Ethernet-подключение от провайдера.

  • Усилитель 1 Viva (KN-1910) и

  • Усилитель 2 Buddy 5S (KN-3410) – оба дополнительных устройства по проводу соединяются с основным роутером и используют его Ethernet-подключение.

Помимо расширения зоны покрытия wi-fi сигнала преимущество «mesh системы» в том, что при смене местоположения устройства (например, смартфона) не требуется ручное переключение между точками доступа при ухудшении wi-fi сигнала – все происходит в автоматическом режиме.

Благодаря «Keenetic» получаем стабильное соединение с возможностью администрирования, логирования, мониторинга и управления трафиком, создания бэкапов и расширения домашней сети. Данный функционал «Keenetic» использовался для определения стабильной работы оборудования и поиска проблем при выполнении сценариев «умного дома».

2.3. Управление с помощью смартфона

Предусловие: в ванной управление освещением осуществляется с помощью двухклавишного выключателя (одна клавиша включает ночную подсветку, другая – слоты с ярким дневным освещением). Управление вытяжкой осуществляется с помощью одноклавишного выключателя.

Требования:

  • управление через смартфон, 

  • работа вытяжки не более 30 минут, 

  • в 07:00 по будням включать ночную подсветку.

Реализация, бэкенд (физические работы):

  • Устанавливаем в разрыв электропроводки умное устройство с двумя каналами (пример оборудования на картинке ниже) на двухклавишный выключатель.

  • Устанавливаем в разрыв электропроводки умное устройство с одним каналом на одноклавишный выключатель.

Примечание

Установка устройств в разрыв электропроводки подразумевает наличие соответствующей квалификации у мастера и в большинстве случаев потребует доработки по части электропроводки. В моем случае пришлось резать натяжные потолки и наращивать провода от распределительной коробки до ближайшего съемного слота/светильника для дальнейшего обслуживания устройств.

Фронтенд (программную настройку) рассмотрим на примере приложения «Tuya».

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

По итогу в приложение добавлены две программы «Освещение» и «Вытяжка».

Пошаговая настройка алгоритма «Освещение» выглядит так.

Нажимаем кнопку «Освещение» и переходим в меню управления освещением. На экране отобразятся две сенсорные клавиши (т.к. устройство с двумя каналами управления).

Клавишами можно управлять как по отдельности, так и сразу двумя – с помощью кнопок «ВКЛ Все/ВЫКЛ Все».

В меню «Настройка» необходимо выбрать подходящие настройки: «Статус при включении электросети».

Режим работы переключателя.

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

Теперь настроим максимальное время работы вытяжки 30 минут. Переходим в меню устройства «Вытяжка» и нажимаем кнопку «Таймеры». Откроется окно «Расписание», в котором переходим во вкладку «Импульсный». Задаем время «30m 00s» и переводим переключатель в состояние «ON».

Примечание

Данная настройка времени срабатывает даже при отсутствии интернет соединения.

Требование «работа вытяжки не более 30 минут» выполнено.

Схожим образом настраивается включение ночной подсветки в 07:00 по будням (см. схему и подпись к ней).

  1. В приложении возвращаемся на основную страницу и переходим во вкладку «Сценарии».

  2. Нажимаем на кнопку добавления сценария.

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

  4. Сценарий успешно создан. Для отключения/включения сценария необходимо выбрать соответствующий статус кнопки «ON/OFF switch».

  5. Требование «в 07:00 по будням включать ночную подсветку» выполнено.

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

Создание умного дома с голосовым управлением от А до Я. Алиса и iobroker.

Черновая версия 
Cтраница не завершена

 

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

Внимание!!! 

 

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

Содержание

  • 1 Введение
  • 2 Сервер умного дома
    • 2.1 Железо для сервера
    • 2.2 Установка системы DEBIAN
      • 2.2.1 Создание загрузочной USB флешки
      • 2.2.2 Процесс установки
    • 2.3 Настройка сервера
      • 2.3.1 Определение локального IP адреса
      • 2.3.2 Терминал для настройки
      • 2.3.3 Подготовка к настройке
      • 2.3.4 Отключаем спящий режим
      • 2.3.5 Установка NODEJS и NPM
      • 2.3.6 Установка ioBroker
      • 2.3.7 Удаленный доступ через AnyDesk
      • 2.3.8 Настройка неконтролируемого доступа
  • 3 Запуск и настойка ioBroker
    • 3.1 Описание пунктов меню
    • 3.2 Установка драйверов
    • 3.3 Решение проблем с адаптерами
    • 3.4 Устройства XIAOMI и адаптер MIHOME
      • 3.4.1 Разблокируем управление MI Gateway
      • 3.4.2 Добавление устройств вручную
    • 3.5 Устройства и адаптер ZigBee
      • 3.5.1 Прошивка и подключение CC2531
      • 3.5.2 Подключение устройств к адаптеру
    • 3.6 Лампы и светильники Yeelight
  • 4 Подключение Яндекс станции и Алисы
    • 4.1 Настройка категорий
    • 4.2 Связь с Алисой и ioBroker.iot
    • 4.3 Умный дом с Алисой
      • 4.3.1 Добавление реальных устройств
      • 4.3.2 Добавление виртуальных устройств
      • 4.3.3 Сценарии с Алисой
      • 4.3.4 Реакция Алисы на события
      • 4.3.5 Заставить Алису говорить (NODE-RED)
      • 4.3.6 Пример реакции на событие ioBroker

Введение

После просмотра фильма Железный человек, где показан голосовой помощник мистера Старка по имени JARVIS, меня не покидала мысль о создании такого голосового помощника у себя дома, я реализовывал различные варианты на Text to Spech от Google, и даже заказал для этого колонку Google Home mini когда она появилась в 2016 году, но как же я был разочарован, что Google не собираются делать русский язык в своей колонке, и мои идеи о разговоре со своим «Умным домом», я временно отложил.

И вот, в 2018 году, появилась Яндекс Станция с необыкновенным и умным голосовым помощником Алисой, и моя мечта «поговорить» с моим домом стала осуществимой.

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

В данной статье, я научу вас как сделать свой умный дом, а именно:
Мы создадим свой сервер умного дома. Реализуем голосовое управление домом с помощью Яндекс станции и Алисы, создадим своего Telegram бота.
По плану, я хочу научить вас:

  • Подключить устройства умного дома — В моем случае это XIAOMI MIHOME и TUYA), но в вашем случае это может быть и устройства YEELIGHT и другие.
  • Сделаем с вами Telegram бота для управления умным домом — Из любой точки мира со смартфона, имея под рукой только мессенджер Telegram. К примеру (Включить отопление, выставить температуру теплого пола на 30 градусов, выключить насос) и т.п.
  • Научим вашу колонку с Алисой, управлять устройствами — С помощью голосовых команд, к примеру (Включи свет на улице, Какая температура в спальне, Выключи свет в детской через 10 минут) и т.п.
  • Научим Алису реагировать на события — События которые происходят в вашем доме, и без запроса, сразу, сообщать вам о происшествии. К примеру Алиса вдруг скажет (Обнаружена утечка воды, температура в бойлерной слишком низкая, вы забыли закрыть окно, насос отключился) и т.п.
  • Подключим ZigBee устройства разных производителей Xiaomi, Tuya, Yeelight и другие, к вашему серверу и научимся управлять ими.
  • Подключим к умному дому видео наблюдение — Реализуем получение фотографий с почти любых камер к примеру в вашего Telegram бота.
Я буду использовать последнее программное обеспечение, которое доступно на момент написания статьи (конец 2022 года).

Сервер умного дома

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

Железо для сервера

Список оборудования:

  • Ноутбук или ПК — для сервера
  • Два USB накопителя — не менее 2Gb
  • Яндекс Станция, Яндекс станция лайт, мини
  • Роутер с поддержкой 3G 4G модемов
  • Модем для роутера
  • Устройства умного дома, лампочки, реле, датчики.

Для создания своего сервера подойдет почти любой персональный компьютер или ноутбук, характеристики особо не важны, т.к. какой-либо нагрузки на компьютер во время работы не будет. Вы можете взять старый ПК, или купить не новый ноутбук. Конечно, потребуется не менее двух USB портов, хорошо если на компьютере будет установлен SSD диск, они работают на много быстрее обычных HDD, и ваш сервер будет работать намного лучше с новым диском, размер диска не важен.

Я буду использовать ноутбук Lenovo ideapad 100, 4Gb оперативной памяти, SSD диском на 120Gb. 

Не рекомендую использовать ПК с 32ух битной архитектурой (x86, i386), т.к. многие новые программы, написанные для умного дома, делаются уже исключительно под x64 архитектурные процессоры. Сразу скажу, 32 битный компьютер в наше время ещё нужно поискать…

Ещё понадобиться две USB флешки размером не менее 1Gb, одна для записи образа системы, вторая (возможно понадобиться) для записи на неё необходимых дополнительных драйверов сетевой карты, которые могут понадобиться во время установки.

Так же, вам понадобиться интернет. У меня сервер установлен на даче, поэтому, я использовал роутер с поддержкой 4G модемов и модем Huawei с SIM картой Beeline.
Роутер раздет интернет по Wi-Fi, а также имеется возможность подключиться к нему проводом.

  • Яндекс станция лайт1.jpeg

  • Яндекс станция лайт2.jpeg

  • Роутер с модемом.jpeg

  • IMG 0721.JPG

  • Роутер с модемом3.jpeg

Установка системы DEBIAN

Какую систему устанавливать, решать, конечно, вам, я рекомендую Debian или Ubuntu. Так же сервер можно развернуть и на базе Windows, но, в этой статье я покажу процесс установки и настройки сервера на базе DEBIAN 11.
Я буду описывать процесс на сколько это возможно подробно что бы сэкономить ваше время, потому что, чтобы понять, и разобраться в сделанном, мне потребовалось очень много времени.

Создание загрузочной USB флешки

Нам понадобиться образ DEBIAN 11 с официального сайта Debian.org
Страница выбора версий: https://www.debian.org/CD/http-ftp/index.ru.html
«Официальные образы CD/DVD «стабильного» выпуска», CD, amd64 (для x64 битных систем. Я рекомендую debian-11.5.0-amd64-netinst.iso по этой ссылке (именно netinst версию, ибо с другой у меня возникали проблемы при установки некоторых пакетов уже после полной установки).
А именно вот этот образ: https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.5.0-amd64-netinst.iso

Что бы сделать загрузочную флешку нам понадобиться программа Rufus https://rufus.ie/ru/ , я рекомендую именно эту программу, т.к. когда я записывал образ другими способами, система зависала у меня на начальном этапе установки.

Подключаем флешку, запускаем Rufus, выбираем вашу флешку в верхнем выпадающем списке, кнопкой ВЫБРАТЬ выбираем образ debian-11.5.0-amd64-netinst.iso и нажимаем СТАРТ. Программа задаст вам пару вопросов, на которые мы отвечаем утвердительно. А именно: записать в ISO-образ режиме; подгрузить дополнительные файлы syslinux; Файлы на накопителе будут уничтожены.
Начнется процесс создания загрузочной флешки с Debian 11, который не займет более 5 минут.

  • Rufus Debian1.png

  • Rufus Debian2.png

  • Rufus Debian3.png

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

Процесс установки

Варианты загрузки.jpeg

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

Для начала задача запустить загрузку с установочной флешки. Обычно на ноутбуках или ПК, во время включения надо нажать кнопку F8, F9 или F12, откроется Boot menu, после чего выбрать флешку в списке и нажать Enter.

Мой процесс установки выглядел следующим образом:

  • Graphical Installer (Графический установщик). Язык, по желанию.

После чего сразу столкнулся с проблемой отсутствия драйверов Reaktek для Wi-Fi сетевой карты. И эта проблема возникает у многих, кто использует ноутбук в качестве сервера.

А именно ошибка:

«Для работы некоторой имеющейся у вас аппаратуры требуются файлы с несвободной микропрограммой. Микропрограмма может быть загружена со сменного носителя, например с USB-накопителя или дискеты. Отсутствующие файлы микропрограммы: rtlwifi/rtl8188efw.bin Если у вас есть такой носитель, то вставьте его и продолжайте.»

Решается просто: берём подготовленную нами вторую USB флешку, и идем искать необходимые драйвера. Я просто набрал в Yandex “rtlwifi/rtl8188efw.bin” и без проблем нашел и скачал их на каком-то сайте. Положил файлы в корневой каталог, и подключил USB флешку, к серверу на который мы ставим Debian и нажал продолжить.

Далее:

  • выбрал и подключился к моей Wi-Fi сети, и установка продолжилась.
  • Ввел имя сервера, smarthome
  • Имя домена, пропускаем.
  • Придумываем, вводим и записываем на бумажку, пароль суперпользователя root.
  • Имя нового пользователя, имя учетной записи, я ввел smarthome
  • Пароль для учетной записи smarthome.

Во время установки, вам могут предложить «выполнить установку в UEFI», соглашайтесь.

  • В разметке дисков, я выбрал «Авто – использовать весь диск»
  • Выбрал свой 120Gb SSD
  • Все файлы в одном разделе (рекомендуется новичкам)
  • В конце выбираем «Закончить разметку и записать изменения на диск»
  • Соглашаемся что разделы будут удалены и отформатированы.

После, начнется установка базовой системы, которая займет около 3-5 минут.

  • В настройке менеджера пакетов, выбираем Российская Федерация, deb.debian.org
  • Прокси я не использую, пропускаю.
  • Участвовать ли в опросе популярности пакетов, решать вам.
  • Выбор программного обеспечения я выбрал, Окружение рабочего стола Debian, GNOME, SSH-сервер, Стандартные системные утилиты.

Далее, начнется установка основных пакетов системы, что займет от 10 до 40 минут, в зависимости от скорости вашего интернет-соединения.

  • Извлекаем USB носители и загружаемся в систему DEBIAN.
  • Установка Debian 11.jpeg

  • Ошибка определения сетевой карты.jpeg

  • Выбор Wi-Fi сети.jpeg

  • Ввод пароля.jpeg

  • Записать изменения на диск.jpeg

  • Файлы будут отформатированы.jpeg

  • Выбор программного обеспечения.jpeg

  • Процесс установки Debian.jpeg

  • Debian установлен.jpeg

  • Вход в систему.jpeg

Настройка сервера

Определение локального IP адреса

Устройства на роутере.png

Для начала вам необходимо определить IP адрес вашего сервера, это можно сделать в самой системе Debian, выбрав «Параметры, Wi-Fi», и нажав шестеренку рядом с названием вашей беспроводной сети» Смотрим Адрес iPv4, в моем случае это 192.168.1.63

Либо посмотреть в адмике вашего роутера.
Другой компьютер с которого мы будем настраивать ваш сервер, должен находиться в той же Wi-Fi сети, что и сервер Debian, мы будем подключаться к нему по локальному IP адресу… Как сделать это из другого места я расскажу позже.

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

DHCP фиксируем IP.png

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

В будущем вам придется фиксировать адреса умных Wi-Fi устройств (станций, розеток, лампочек), что бы их локальные IP адреса не менялись при перезагрузке вашего оборудования, это важно, иначе, сначала всё будет работать отлично, но потом… сервер не сможет найти лампочку или розетку, и в момент торжественной презентации Умного дома вашей жене, у вас что то не сработает. 

Терминал для настройки

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

Для доступа к серверу мы будем использовать SSH клиент, я использовал PuTTY, т.к. он мне кажется наиболее простым и удобным. Скачиваем PuTTY с официального сайта https://www.putty.org/ и запускаем.

Вводим IP адрес сервера, выбираем SSH соединение, и подключаемся к серверу.

  • PuTTY подключение.png

  • PuTTY вход.png

Подготовка к настройке

Авторизуемся сначала под пользователем smarthome

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

su

Для начала установим файловую оболочку midnight commander (mc) и библиотеку curl

apt install -y mc curl

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

apt update & apt upgrade

Отключаем спящий режим

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

Отключаем демоны приостановки / сна / гибернации командой.

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Так же отредактируем файл: /etc/systemd/logind.conf

Для этого запустим Midnight Commander выполнив команду.

mc

Управление с помощью стрелок, переключение между вкладок табуляцией. Находим файл /etc/systemd/logind.conf жмем F4 (редактировать), и выбираем редактор (я использую 2. /usr/bin/mcedit).

Меняем значения, которые отвечают за закрытие крышки и кнопки выключения и спящего режима. Убираем комментарий в нужных нам строках, и ставим значение ignore. Сервер ведь у нас должен работать 24 на 7, и что бы кто ни будь его случайно не выключил. Я вырубил всё что можно.

HandleLidSwitch=ignore 
HandleLidSwitchDocked=ignore

Жмем «ESCAPE» и выбираем «Да» что бы сохранить файл. После чего, перезапускаем сервис logind что бы изменения вступили в силу.

sudo service systemd-logind restart
  • Logind conf.png

  • Logind conf edit.png

Установка NODEJS и NPM

Ставим последний Nodejs и NPM

curl -fsSL https://deb.nodesource.com/setup_19.x | sudo -E bash -
sudo apt-get install -y nodejs

Проверяем, всё ли правильно установилось, версии node и npm. Если что то пошло не так, придется искать решения в интернете. Если вы установили ту версию Debian которую указал я, проблем возникнуть не должно.

node -v
npm -v

Установка ioBroker

IoBroker installed.png

Устанавливаем систему умного дома ioBroker !

Во время установки будут установлены все необходимые для работы библиотеки.

curl -sL https://iobroker.net/install.sh | bash -

Удаленный доступ через AnyDesk

ioBroker установлен, и можно открыть web админку для управления вашим умным домом, но, давайте сделаем удаленный доступ к серверу, что бы мы могли подключиться к вашему серверу из любой точки мира!

В принципе если у вас есть выделенный IP адрес, то вам, просто необходимо пробросить порты в настройках роутера для доступа по SSH и доступа к адмике ioBroker и другим сервисам. А именно: надо открыть порты 22, 8081 и далее в будущем, соответствующие для других сервисов. После чего будете подключаться по внешнему IP адресу и управлять вашим сервером.
В моем случае, я использую USB модем, SIM карту Beeline, в мобильной связи выделенных IP адресов вам никто не даст, и я решил подключаться к своей «умной даче» через программу AnyDesk. (Аналог TeamViewer и подобных программ).

Что бы установить AnyDesk на ваш Debain сервер, используем следующие команды:

 wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | sudo apt-key add –

По умолчанию AnyDesk недоступен в репозиториях Debian. Теперь мы добавляем репозиторий AnyDesk в вашу систему:

echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list

И запускаем установку AnyDesk

apt update & apt install -y anydesk

Перезагружаем сервер

sudo reboot

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

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

Настройка неконтролируемого доступа

Установка соединения AnyDesk.png

Теперь надо настроить «Неконтролируемый доступ» к серверу, т.к. при подключении через AnyDesk, потребуется подтверждение входа на сервере, а это нам не нужно… Мы же собираемся убрать его в шкаф, и больше никогда не доставать. 

Действия производим прямо на сервере.

  • Запускаем AnyDesk
  • Нажимаем на «бар» с правой стороны окна программы
  • Настройки
  • Безопасность
  • Разблокировать настройки безопасности (вводим пароль)
  • Профиль прав доступа – Неконтролируемый доступ
  • Ставим галочку «Разрешить неконтролируемый доступ»
  • Придумываем и вводим дважды пароль (лучше запишите).
  • Debian AnyDesk.jpeg

  • AnyDesk настройка1.jpeg

  • AnyDesk настройка2.jpeg

display_server_not_supported

Подключаемся по ID к серверу. И тут вы можете столкнуться с ошибкой, если нет, пропустите этот абзац. У меня же в AnyDesk появилась ошибка:

Соединение было завершено. '''display_server_not_supported'''

Используя PuTTY, Midnight Commander ищем на сервере файл /etc/gdm3/custom.conf или /etc/gdm3/daemon.conf. Нам надо включить автоматическую авторизацию убрав комментарий # и исправив строки:

WaylandEnable=false
AutomaticLoginEnable = true
AutomaticLogin = smarthome

После чего опять перезагружаем (sudo reboot) сервер, ждем после загрузки 1-2 минуты, пока загрузиться AnyDesk, и пробуем подключиться.

AnyDesk connected.png

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

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

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

Запуск и настойка ioBroker

Вот и пришло время заняться настройкой системы умного дома ioBroker, ради которой мы так долго настраивали наш сервер.

В браузере, вводим http://192.168.1.63:8081 (соответственно вы вводите IP адрес вашего сервера, как его получить я писал выше).

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

  • Iobroker welcome.png

  • Iobroker password.png

  • Iobroker admin.png

Этапы настройки нашего умного дома будут выглядеть следующим образом:

  • Установка необходимых адаптеров (драйверов).
  • Настройка адаптеров и подключение устройств к ioBroker
  • Соединение устройств с Яндекс Станцией и Алисой.
  • Управление устройствами через Telegram

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

Описание пунктов меню

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

Драйверы: в данном пункте мы будем устанавливать различные дополнения, к нашему умному дому, так называемые драйвера (к примеру, драйвер, редактора javascript или node-red, драйвер создания графиков, получение погоды, связь с умным домом Xiaomi и многое многое другое.) Так же, вы сможете ставить node скрипты прямо с GITHUB, но для этого надо будет ещё немного изучить систему.

Настройки: здесь вы увидите уже установленные драйвера, изначально admin.0 (админка ioBroker), backitup.0 (Модуль автоматического резервного копирования всей системы ioBroker, (я к примеру настроил автоматическое копирование на мой Google Drive), discovery.0 (Драйвер поиска новых устройств). Цифра в названии драйвера, это номер инстанции, т.е. вы можете установить одинаковых драйверов (к примеру, несколько админок). Так же здесь находятся настройки драйверов (Гаечный ключ рядом с каждым драйвером). К примеру, настройки резервного копирования, настройки админки и прочего.

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

Категории: тут мы настроим комнаты дома, а также, категории и функции устройств. Это понадобиться для того, чтобы вы, и ваши умные помощники (Яндекс станция и Алиса) разбирались чем мы управляем (свет, розетка, температура), и в какой комнате (Зал, спальня, бойлерная, улица) и т.п.

Журнал – не маловажный раздел, в нем можно видеть логи драйверов, адмики, ваших программ, которые вы в будущем напишите. Я постоянно заглядываю сюда для отладки своих javascript скриптов.

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

Серверы: тут информация о вашем Debian сервере. Загрузка процессора и памяти, а также обновление сервера. Я использую данное меню редко, в основном, когда выйдет глобальное обновление ioBroker что бы обновить сервер.

Файлы: Файловый менеджер, я его не использовал.

Резервное копирование: «Админка» драйвера backitup, где вы можете сделать или восстановить резервную копию.

Установка драйверов

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

Установка дополнений производиться на вкладке «Драйверы». Что бы установить необходимый драйвер, введите его название в строке поиска, нажмите «+» и дождитесь установки. Там же можно удалить драйвер, или ознакомится с его документацией. Если во время установки у вас возникли проблемы, вы можете ознакомиться с логами установки на вкладке «Журнал». Я расскажу какие драйвера, для каких целей, и каким образом использую в своём умном доме.

Дополнительные драйвера ioBroker, которые нам понадобятся:

  • telegram — Драйвер запускает Telegram бот, с которым можно общаться через приложение на смартфоне, или через браузер.
  • flot — Драйвер строит графики с помощью Flot, к примеру, график изменения температуры на даче, после включения обогревателя.
  • mihome — Добавит поддержку «Xiaomi MiHome gateway», устройств умного дома Xiaomi.
  • devices — Управление устройствами, а именно создание виртуальных устройств, для Алисы и драйвера iot
  • iot — Соединяет ваш сервер ioBroker с облаком ioBroker IoT, после чего вы сможете управлять вашими устройствами через приложение «Умный дом с Алисой».
  • JavaScript — В этом драйвере мы сможем писать свои Javascript / Blockly программы для нашего умного дома.
  • sql — Позволяет собирать в постоянном режиме, выбранные данные с объектов ioBroker, к примеру для построения графиков температуры или энергопотребления.

Следующие драйвера, для более продвинутых пользователей:

  • zigbee — Подключение почти любых ZigBee устройств к нашему серверу умного дома, через устройство Chip cc26xx/cc25xx
  • phantomjs — С помощью данного драйвера, я делаю скриншоты страниц, что бы к примеру отправить график в виде картинки в своего Telegram бота.
  • node-red — Драйвер создает node-red сервер и позволяет общаться с ним. Драйвер среды программирования, где вы можете создавать свои программы используя визуальный вариант программирования, я использую этот драйвер что бы отправлять на Яндекс станцию сообщения которые Алиса должна произнести.

Решение проблем с адаптерами

В случае успешной установки драйвера, в конце лога установки вы увидите строчку «Process exited with code 0«. В некоторых случаях вы можете столкнуться с ошибками во время установки драйверов, такое бывает, все проблемы с ioBroker можно исправить через консоль, описание консольных команд ioBroker вы можете найти по этой ссылке.
К примеру у меня возникли проблемы с установкой драйвера ZigBee, в конце установки я получал ошибку «ERROR: Process exited with code 25«, что бы решить проблему с установкой, я подключился к серверу через SSH PuTTY и выполнил следующие команды:

iob stop
iob update
chown -R iobroker /opt/iobroker
curl -sL https://iobroker.net/fix.sh | bash -
iob upgrade
iob start

После перезапуска и исправления ioBroker, адаптер ZigBee установился без ошибок.

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

iob add НазваниеАдаптера
iob delete НазваниеАдаптера

Если и это не помогает, то я иногда прибегаю к варианту удаления адаптера в ручную. Т.е. сначала пытаемся удалить адаптер через косоль, далее, в папке /opt/iobroker/node_modules/ находим папку необходимого адаптера и удаляем её. После чего уже через админку снова ставим адаптер.

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

Устройства XIAOMI и адаптер MIHOME

Адаптер MIHOME используется для управления устройствами Xiaomi, в моём доме используется большое количество таких устройств. Беспроводные реле, автоматические шторы, розетки, датчики температуры, движения, сенсоры открытия, розетки, выключатели и прочее…

Изначально, я использовал систему умного дома MIHOME, этим и обусловлено такое количество устройств этого бренда в моём умном доме.

С документацией по драйверу вы можете ознакомиться по этой ссылке.

16 символов, ключ lumi.gateway.v3

В настройке этого драйвера нет ничего сложного, но, есть сложности с открытием доступа к управлению устройствами Xiaomi, а именно включение режима разработчика set_developer_key (или Управление по LAN) на центральном хабе системы Xaiomi. Без включения этого доступа, вы увидите в «объектах» все ваши устройства, сможете считывать информацию с датчиков, но не сможете управлять устройствами (розетками, беспроводными реле и прочим). Сделать это необходимо один раз, после чего не рекомендуется обновлять прошивку lumi.gateway.v3, иначе доступ к управлению может «слететь».

Напомню что ваш Xiaomi хаб (lumi.gateway.v3) управляет всеми устройствами вашего умного дома Xiaomi, поэтому разблокировка developer mode, необходима, что бы через него управлять переключаемыми устройствами. Я столкнулся со сложностью разблокировки, т.к. прошивка моего lumi.gateway.v3 версия 1.4.1_176, и через ломаное приложение MiHome ключ не получить.

Разблокируем управление MI Gateway

Для начала нам необходимо получить все IP адреса, ID устройств, и их токен (token), для этого я использую Xiaomi-cloud-tokens-extractor который вы можете скачать по этой ссылке.

Получить токены устройств очень просто:

  • Скачиваем token_extractor.exe
  • Кладем его в корень диска C:
  • В строке пути, вводим cmd
  • Запускаем программу введя окне команд token_extractor.exe
  • Вводим логин вашего MI Account используемый в вашем приложении MiHome
  • Вводим пароль
  • Вводим регион (в моем случае cn)

После чего видим токены, IP адреса, ID и названия ваших устройств. Нас интересует токен и IP адрес нашего хаба, Xiaomi Mi HUB (lumi.gateway.v3).

  • Tokens extractor.png

  • Tokens extractor login.png

  • Tokens extractor data.png

Далее, опять нам понадобиться SSH доступ к нашему серверу, где мы будем устанавливать язык программирования Python 3.9 и к нему библиотеки python3-pip, python-miio без этого в моем случае токен получить не удалось.

Команды для установки:

apt update
apt install -y build-essential libncurses5-dev zlib1g-dev libnss3-dev libgdbm-dev libssl-dev libsqlite3-dev libffi-dev libreadline-dev curl libbz2-dev
wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz

Распаковываем, переходим в каталог Python-3.9.7 и запускаем скрипт настройки командами:

tar -xvf Python-3.9.7.tgz
cd Python-3.9.7
./configure --enable-optimizations

Затем приступаем к процессу сборки, который может занять некоторое время. Параметр -j указывает количество ядер процессора. Вы можете проверить количество ядер в вашей системе Debian, выполнив команду nproc.

make -j 2

После этого выполните следующую команду, чтобы установить бинарные файлы Python.

make altinstall

Посмотрите версию и проверьте правильность установки.

python3.9 --version

Мы установили язык программирования Python, только что бы поставить библиотеки необходимые для разблокировки нашего Xiaomi MI HUB.
Устанавливаем ещё две библиотеки.

  • python3-pip — Система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.
  • python-miio — Это самая продвинутая библиотека (и сопровождающий ее инструмент cli) используется для взаимодействия с устройствами, использующими протоколы Xiaomi miIO и MIoT. Подробнее по этой ссылке.
apt install -y python3-pip
python3.9 -m pip install python-miio

После чего, наконец то устанавливаем ключ разработчика в нашем lumi.gateway.v3 командой:

Где вам необходимо указать ваш IP адрес, token устройства, а так же ключ длинной 16 символов, который будет использоваться в адаптере ioBroker.mihome.

miiocli gateway --ip 192.168.1.57 --token 42f46d4d99dc682f893e7xxxxxxxxxxx set_developer_key YYYYYYYYYYYYYYYY

Устройства Xiaomi в объектах

Вводим полученный ключ в настройках адаптера MIHOME, как показано на скриншоте выше и жмем сохранить. MI HUB разблокирован, можем управлять устройствами! В меню ioBroker в Объектах, мы увидим mihome данные, устройства подключенные к вашему Хабу, сможем переключать их состояния, а так же читать все данные. Так же, вы можете воспользоваться продвинутой Python библиотекой miiocli что бы управлять вашими устройствами через консоль, используя ID, IP и token устройств.

Добавление устройств вручную

Некоторые устройства могут определятся в адаптере, но управление ими не работает, либо вообще не определяются адаптером. Что бы добавить не поддерживаемые устройства, можно попробовать добавить устройство с помощью SID. В настоящее время он применим для 2-канального реле Aqara (Aqara Wireless Relay Controller(2 Channels), lumi.relay.c2acn01), название модели которого не указано из-за некоторых проблем в прошивке шлюза.

Для этого вам необходимо знать SID и модель устройства, посмотреть эти данные можно используя tokens extractor, по инструкции которую я написал выше.

К примеру по моим реле, у меня такие данные выдал tokens extractor:

Mihome aquara relay.png

  NAME:     Вентилятор
  ID:       lumi.158d00058dc0a7
  MODEL:    lumi.relay.c2acn01
  ---------
   NAME:     Aqara Wireless Relay Controller(2 Channels)
  ID:       lumi.158d00058670fb
  MODEL:    lumi.relay.c2acn01
  ---------
  NAME:     Реле насос вода 1 канал
  ID:       lumi.158d0005cfe0c5
  MODEL:    lumi.relay.c2acn01

Выяснив данные наших реле, добавляем их в ручную в настройках адаптера MIHOME на вкладке SID устройства. Необходимо убрать lumi. из названия и SID устройства при добавлении, смотрите скриншот.

Так же, добавим IP и developer_key нашего MI HUB на вкладку «Ключи шлюза». IP адрес можно найти просто кнопкой «Поиск», или взять из данных tokens_extracor. Сам ключ разработчика, тот который вы установили командой через miiocli (инструкция находиться немного выше).

  NAME:      Mi Hub дача
  ID:            133013794
  MAC:        AB:AB:8C:A1:10:50
  IP:            192.168.1.57
  TOKEN:    42f46d4d99dc682f893e7xxxxxxxxxxx
  MODEL:    lumi.gateway.v3

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

Устройства и адаптер ZigBee

Zigbee coordinator cc2531.jpeg

Zigbee адаптер для Xiaomi, TUYA (и других) устройств через Chip cc26xx/cc25xx. При помощи координатора Zigbee-сети на базе Texas Instruments SoC cc253x (и другими) создается собственная сеть, в которую подключаются zigbee-устройства. Взаимодействуя напрямую с координатором сети, драйвер позволяет управлять устройствами без дополнительных шлюзов/мостов от производителей устройств (TUYA, Xiaomi, TRADFRI, Hue). Описание и процесс настройки по этой ссылке (на английском языке).

Количество устройств в поддержкой протокола ZigBee просто поражает, термостаты, выключатели, лампочки, розетки, реле и многое многое другое.

Плюсы данной технологии очевидны:

  • Высокая скорость срабатывания и реагирования устройств. Потому что, устройства общаются напрямую с вашим сервером умного дома ioBroker через ZigBee координатор который мы подключим в USB порт.
  • Экономия в деньгах на устройствах не мало важный плюс, теперь вы можете покупать более дешевые устройства, практически любые поддерживающие протокол ZigBee. К примеру для экосистемы TUYA, и использовать их без хабов и координаторов соответствующего бренда.

Для небольшого количества устройств подойдет ZigBee координатор СС2531 с подключением через USB порт. Я сейчас использую такой, и мне его хватает, примерно 20 устройств у меня подключено дома, работает нормально. Заказать можно в интернете, стоят они не дорого.

Координаторы сети ZigBee существуют и более дорогие и качественные, построенные на новых чипах и т.п. но мне хватает того что я изначально приобрел. К примеру я рассматриваю HamGeek CC2652P Pro Zigbee Gateway стоимость примерно в 2-3 раза дороже, посмотреть можно по этой ссылке.

Прошивка и подключение CC2531

Cc2531.jpeg

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

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

Вообще про прошивки, ZigBee координаторы, и всё что связано с ZigBee и умным домом вы можете почитать на сайте https://zigbee.wiki/ Илья Киров молодец, подробно и с примерами расписал всё по этому вопросу. Поэтому останавливаться на этом в данном разделе не будем.

Подключение устройств к адаптеру

Iobroker zigbee settings.png

Для запуска драйвера необходимо указать имя порта, к которому подключен Zigbee-модуль (USB). Обычно это порт /dev/ttyACM0 или /dev/ttyUSB0 для UART-соединения.

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

ls -l /dev/serial/by-id

Подключение zigbee устройств.png

Подключение устройств, производиться в админке Zigbee адаптера, пункт меню появляется в основном меню после его установки. Нажимаем привязать устройство, делаем сброс на устройстве Zigbee, после чего оно будет подключено к вашему координатору.

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

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

Лампы и светильники Yeelight

Iobroker yeelight.png

У меня дома используется две большие лампы (люстры) Yeelight, ими так же можно управлять через iobroker и Алису. На момент конца 2022 года, лампы Yeelight добавленные через связывание аккаунта Yeelight и Алиса умный дом, не управляются, поэтому я использую управление через iobroker. Так же это позволило мне сделать удобное управление лампами с планшета, на котором я сделал интерфейс для управления освещением, режимы, яркость, цветовая подсветка и прочее.

Добавить очень просто. Устанавливаем адаптер iobroker Yeelihgt, заходим в настройки адаптера, нажимаем поиск устройств, после чего, лампы будут добавлены. В объектах вы найдете новый раздел Yeelight, с объектами с помощью которых вы можете читать данные с ламп, а так же управлять ими.

Что бы работало управление лампами, необходимо в настройках приложения Yeelight включить «Управление по LAN» (см. скриншоты).

  • Yeelight0.jpeg

  • Yeelight2.jpeg

  • Yeelight1.jpeg

  • Iobroker yeelight objects.png

Подключение Яндекс станции и Алисы

Приложение «Дом с Алисой»

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

Если устройств много, это так же, поможет вам проще ориентироваться в них. Подробнее про настройку категорий, я расскажу ниже.

Алиса, понимает и распознает устройства по их роли и функции, и распределяет по комнатам, в зависимости от данных настроек устройств.

Для добавления и управления устройствами Алисы, используется приложение «Умный дом с Алисой«, скачать это приложение вы можете, для Android устройств, по этой ссылке, или для iOS Apple устройств по этой ссылке.

Настройка категорий

Категории устройств.png

Настройка категорий устройств производиться в меню «Категории» админки ioBroker.

Добавьте комнаты которые есть в вашем доме. Вы можете выбрать из списка названий, или придумать свои.

Настройте функции устройств, у меня к примеру используются такие как «Свет, Сигнализация, Водоснабжение, Электроприборы, Температура» и т.п.

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

  • Функции устройств.png

  • Объекты категории.png

Связь с Алисой и ioBroker.iot

Iobroker iot.png

Для связи приложения Дом с Алисой и вашего сервера ioBroker, вам понадобиться аккаунт на сайте https://iobroker.pro.

Регистрация стандартная. Использование данного сайта для связи с умными голосовыми помощниками полностью бесплатно, но есть ограничение на максимальное количество запросов к голосовым помощникам, в день до 200 обращений, в месяц до 2000 обращений. (Могу ошибаться в количестве), мне этого количества запросов вполне хватает.

После регистрации нам надо подключить наш iot адаптер к iobroker.pro, для этого в настройках адаптера iot необходимо ввести логин и пароль вашей учетной записи iobroker.pro. После сохранения, ваш адаптер перезапуститься.

Проверить соединение IOT и iobroker.pro можно на сайте iobroker.pro в разделе «Диагностика». Вы можете посмотреть пример, как выглядит успешное подключение, в скриншотах ниже.

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

  • Iobroker pro iot connection.png

  • Iot adapter.png

  • Iot settings.png

Умный дом с Алисой

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

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

  • Алиса — включи / выключи телевизор
  • Алиса — какая температура / влажность (на даче, в спальне, в детской и т.п.)
  • Алиса — выключи свет / освещение / подсветку (либо в комнате где установлена Алиса, либо явно (на даче, в спальне, в детской и т.п.))
  • Алиса — открой / закрой шторы. (Или открой шторы на 50% и т.п.)
  • Алиса — выключи / включи свет на даче (При этом выключается всё освещение подключенное к умному дому на локации Дача).

Мой брат использует более сложные сценарии, которые прописаны на JavaScipt в iobroker. К примеру он создал виртуальные выключатели, при включении которых на сервере умного дома запускается какой либо сценарий (об этом далее). Вот пример.

  • Алиса — я приехал / уехал (Я дома и т.п.). При этом Алиса, включает виртуальный переключатель в iobroker, а он в свою очередь, запускает программу, которая: включает свет на стоянке, открывает ворота, включает подсветку дома, а так же освещение в доме, и насос (водоснабжение). После того как человек заходит домой, автоматически выключает свет на стоянке. Так же, учитывается освещение на улице (время после заката солнца), если светло, уличное освещение не включается.

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

Примеры:

  • Внимание! Утечка воды в ванной! К примеру с большой громкостью, или мужским голосом, что бы сразу было понятно что ситуация экстренная, оповещения при срабатывании датчика протечки
  • Риск повреждения водопровода. Температура в бойлерной 5 градусов Цельсия! При сильном понижении температуры, риск замерзания воды в трубах.
  • Проникновение на даче. Датчик открытия окна, спальня! При включенной сигнализации. Но, тут уже понадобиться использовать «Сценарии Алисы» что бы сообщать не на локальные колонки которые установлены на даче, а к примеру на домашнюю. У меня сделано уведомление в Telegram.
  • Внимание! Движение у калитки / на парковке. К примеру, парковка находиться за забором, и кто то там ходит, определяем по датчику движения.

Вы можете придумывать свои сценарии, и варианты уведомлений и реализовывать их самостоятельно с использование связки iobroker и Алисы.

Добавление реальных устройств

Дом с Алисой производители устройств.jpeg

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

После выбора нужного производителя, вам необходимо будет ввести учетные записи, в моем случае это Xiaomi Account. И «Дом с Алисой» подгрузит весь список ваших устройств, и предложит добавить их. При добавлении «Дом с Алисой» так же учитывает названия устройств, и их местоположения (комнаты). Что дает возможность быстрее и удобнее настроить их.

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

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

Так же не стоит давать сложные названия вашим устройствам. Названия должны быть простыми, к примеру: Свет, Лампа, Телевизор, Насос, Температура, Пылесос, Дверь, Окно, Занавески и т.п. Главное правильно расположить по комнатам, и выбрать тип (если предоставляется такая возможность).

Ниже вы можете видеть скриншоты, как добавляются устройства Xiaomi в «Дом с Алисой».

  • Дом с Алисой Xiaomi 1.png

  • Дом с Алисой Xiaomi 2.png

Добавление виртуальных устройств

Iobroker devices.png

Виртуальные устройства iobroker, добавят функционала при работе с голосовым помощником Алисой. С помощью таких «устройств» можно запускать скрипты, или управлять не поддерживаемыми Алисой устройствами. Я называю эти устройства виртуальными или Alias.

Для того что бы добавлять виртуальные устройства, необходимо установить драйвер iobroker.devices (Устройства). После установки адаптера, слева в меню админки появится новый пункт «Устройства», где мы будем настраивать новые, или скрывать «не нужные» устройства для голосового помощника Алиса, и драйвера iobroker.iot.

К примеру, давайте создадим виртуальный переключатель «Я уехал», при включении которого будет выполняться программа, а именно: Выключаем не нужное освещение, Выключаем водоснабжение (насос). Включим свет на парковке на 10 минут, если на улице темно.

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

  • Add enum scripts.png

  • Enum scripts 1.png

  • Enum scripts 2.png

В «Скриптах» пишем не сложную программу (я делаю это на javascript, вы можете использовать другие варианты). В программе с помощью createState, мы создаем виртуальную переменную javascript.0.Я уехал, прописываем что будет происходить при включении этого переключателя.

Текст программы:

После запуска программы, в объектах в разделе javascript будет создана наша переменная.

  • Iobroker javascript create.png

  • Iobroker javascript.png

  • Iobroker javascript object.png

Теперь перемещаемся в «Устройства», где создаем виртуальное устройство «Я уехал» которое будет управляться Алисой.

Ставим тип устройства «Розетка», функцию «свет», комнату «скрипты». Обратите внимание что можно выбрать несколько функций и комнат по желанию. Что бы не путаться я ставлю только один вариант.

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

Для нашего переключателя, достаточно одного состояния SET. Нажимаем редактировать и выбираем нашу переменную javascript.0.Я уехал, после чего можно сохранить устройство.

  • Alias device iobroker 1.png

  • Alias device iobroker 2.png

  • New alias device.png

  • Alias device iobroker object.png

Iobroker devices disable device.png

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

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

После этого, мы переходим в адаптер iobroker.iot и проверяем появилось ли там наше виртуальное устройство.

  • Iobroker iot settings.png

  • Iobroker iot new device alisa.png

Если всё в порядке, переходим в приложение «Дом с Алисой» и обновляем список устройств iobroker. Должно появиться новое устройство. Настраиваем его, указав ему название, комнату и т.п. Так же вы можете добавить альтернативные названия, в настройках устройства, что бы обращаться к нему по разному.
Я просто говорю Алисе «Я уехал», после чего устройство «включается» запуская скрипт в iobroker. А именно, начинает выключать свет, и прочее, что вы настроили в вашей программе.

  • Alisa home add device 1.png

  • Alisa home add device 2.png

Таким образом, и схожими действиями, вы можете добавлять свои виртуальные устройства, и управлять тем, что не поддерживает «Дом с Алисой».
Программы и javascript использовать не обязательно, можно создать простое виртуальное устройство, привязанное к примеру к какой либо лампе (объекту этой лампы), и Алиса будет прекрасно управлять им.

Сценарии с Алисой

Вы можете использовать сценарии с Алисой, и писать «программы» её взаимодействия с вашим умным домом, прямо из приложения «Мой дом». Отдавая Алисе заданные вами команды либо настроив реакцию на изменение состояний устройств, вы можете запустить сценарий, который она выполнит. Сценарии удобно использовать для не сложных программ, не прибегая к созданию устройств и скриптов в iobroker.

Вот примеры простых сценариев для Алисы, некоторые из них я использую:

Доброе утро — 1. Алиса отвечает «Доброе утро», и 2. открывает шторы (устройство AQARA SMART CURTAIN CONTROLLER), 3. после включает «Музыку для пробуждения».

Спокойной ночи — 1. Алиса отвечает «Доброго сна», 2. закрывает шторы, 3. Выключает телевизор. 4. Выключает свет.

Новогодний — Активируется по фразе «Раз, два, три, елочка гори!», «Елочка гори» или «Включи новогоднее настроение». Соответственно включает Ёлочку, гирлянды и т.п.

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

Кто то пришел — Активируется изменением состояние датчика открытия. Сценарий заставляет сказать Алису «Тук — тук — тук, кто то пришел!», если к примеру открылась калитка на даче. Уведомление можно отправить на любую колонку, и те что на даче, и те что дома, такой «легкий» вариант «сигнализации».

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

Время кино — Активируется по фразе. Закрывает шторы, включает освещение для просмотра телевизора, включает телевизор.

Вот немного скриншотов:

  • Alisa home scenario1.jpeg

  • Alisa home scenario2.jpeg

  • Alisa home scenario3.jpeg

  • Alisa home scenario4.jpeg

  • Alisa home scenario5.jpeg

Реакция Алисы на события

К сожалению, на данный момент драйвер iobroker.iot не умеет передавать Алисе данные о изменении состояния устройств, поэтому большая часть возможности сценариев которые активируются при изменении состоянии того или иного устройства iobroker, не доступна. В другую сторону (от Алисы в iobroker всё работает хорошо, т.е. Алиса без проблем управляет любым устройством на сервере iobroker).

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

Вывод: Алиса может реагировать: 1. На голосовую фразу. 2. На изменение состояния устройства. Для этого используются сценарии, но из за ограниченного функционала, использование сценариев, часто не дает возможности реализовать задуманное. Я решил эту проблему с помощью Node-Red.

Node-RED — это инструмент потокового программирования, который позволяет в простой визуальной форме реализовать программы управления умным домом, управлять устройствами и автоматизировать дом. В нашем случае, он позволяет полноценно управлять любыми колонками и станциями Яндекс, может управлять музыкой, регулировать громкость, проговаривать через колонку необходимые вам сообщения (причем не только голосом Алисы). Использование Node-red позволяет раскрыть потенциал вашей Яндекс станции практически на 100%.

Заставить Алису говорить (NODE-RED)

IoBroker node-red.png

Итак, как я говорил выше, для вашего умного дома на базе iobroker вам понадобиться драйвер Node-Red. Вернемся в ваш ioBroker. Переходим на вкладку «Драйверы» и устанавливаем драйвер Node-Red. Драйвер установит отдельный веб интерфейс для среды программирования, где мы будем писать «программы» для управления нашими Яндекс колонками.

После установки в админ меню ioBroker появится новый раздел Node-Red. По поводу среды программирования Node-Red вы можете прочитать в интернете, на эту тему написано огромное количество статей и инструкций. Я же в свою очередь, постараюсь разъяснить как именно работать я Яндекс станцией, как связать ваш ioBroker с вашей голосовой помощницей.

Для управления, нам понадобиться добавить модуль node-red-contrib-yandex-station-management GITHUB по ссылке вы можете почитать инструкции и документацию по модулю на Русском языке.
Что бы установить модуль управления Яндекс станцией, вам необходимо зайти в настройки драйвера ioBorker Node-red, и вписать название модуля «node-red-contrib-yandex-station-management» в поле Дополнительные NPM модули. После чего адаптер подгрузит необходимый модуль и будет перезапущен. Отследить правильность установки модуля, и возможные ошибки вы можете на вкладке iobroker «Журнал». (см. скриншоты).

После успешной установки можно переходить в Node-Red и проверить наличие нужных для работы модулей, ioBroker и Yandex Station.

  • Iobroker node-red add module.png

  • Node-red add module log.png

  • Iobroker node-red.png

Управлять получиться только локальными станциями, т.е. теми которые подключены к той же локальной сети (сети Wi-Fi) что и ваш умный дом ioBroker и Node-Red.
Для управления Яндекс станцией вам понадобиться токен Яндекса, который можно получить несколькими способами. См. инструкцию: GITHUB. У меня на аккаунте яндекс используется двухфакторная авторизация, поэтому получилось получить токен только этим способом.

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

Далее добавим ноду Inject которая будет запускать нашу программу и передавать дальше сообщение, которое должна проговорить колонка. Укажем название «Запуск», и сделаем что бы в переменную msg.topic передавалась текстовая строка «Вам привет из Node-Red !». Жмем «Готово» что бы сохранить изменения.

Теперь добавим ноду Yandex OUT — где опять настроим название, в разделе «Станция» выберем нужную колонку которая будет проговаривать сообщение, команда «Синтез речи из текста», текст «msg.topic». Эта нода проговорит на нужной нам колонке, нужным нам голосом и громкостью, наше сообщение, вы можете добавить эффекты, сменить голос, настроить другие варианты голосового оповещения.

Не забудьте соединить точки ноды Inject и Yandex OUT что бы всё работало. После чего нажмите «Развернуть» в правом верхнем углу веб интерфейса Node-Red, что бы запустить программу. Вы увидите процесс соединения с колонкой, и при нажатии кнопки Inject, она должна будет произнести нашу фразу

  • Node red alice0.png

  • Node red alice1.png

  • Node red alice2.png

  • Node red alice3.png

  • Node red alice4.png

  • Node red alice5.png

  • Node red alice6.png

Вот и готова первая простая программа, которая будет нам проговаривать фразу на колонке Яндекс. Далее попробую рассказать, как взаимодействовать с вашими устройствами умного дома, и реагировать на события происходящие в Умном доме ioBroker.

Пример реакции на событие ioBroker

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

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

У меня на даче, используется 3 таких датчика, которые я положил на возможные места протечки, и если будет обнаружено замыкание контактов такого датчика, в объектах iobroker у датчика измениться значение wleak, после чего, в зависимости от программы, производятся некоторые действия, уведомление на колонку (можно добавить уведомление в Telegram бот) и т.п.

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

Ознакомьтесь с скриншотами, что бы вам было более понятно, что и как делать.

  • Nodered iobroker prog1.png

  • Nodered iobroker prog2.png

  • Nodered iobroker prog3.png

  • Nodered iobroker import.png

Содержание

  1. Как сделать умный дом своими руками на Arduino и Яндекс.Алиса — пошаговая инструкция
  2. Как работает такой умный дом?
  3. Какие устройства можно интегрировать в умный дом?
  4. Аппаратная и программная часть
  5. Получение веб-хуков
  6. Настройка навыка «Домовёнок Кузя»
  7. Настройка Алисы
  8. Я его слепила из того, что было. Как я собрала умный дом из подручных средств и сколько это стоит
  9. Этап первый. Начинаем с самого легкого
  10. Этап второй. Избавляюсь от пультов
  11. Этап третий. Слишком умные люстры. Или нет
  12. Этап четвертый. Сценарии
  13. Этап пятый. Кто хозяин в доме?
  14. Сколько стоит?
  15. Как не быть мной?

Как сделать умный дом своими руками на Arduino и Яндекс.Алиса — пошаговая инструкция

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

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

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

Как работает такой умный дом?

Чтобы создать умный дом своими руками, потребуется навык Домовёнок Кузя. Через него можно не только контролировать умный дом, но и интегрировать виртуальные устройства напрямую в Яндекс.Алису. Это значит, что вам не придётся постоянно открывать навык, чтобы просто выключить лампочку. С микроконтроллером навык будет связываться через веб-хуки.

Для веб-хуков отлично подходит платформа Blynk — панель управления устройствами на Arduino и Raspberry Pi. Там вы сможете без труда создать графический интерфейс, через который можно будет управлять устройством по Wi-Fi (а ещё по Ethernet, USB, GSM и Bluetooth).

Какие устройства можно интегрировать в умный дом?

Через навык можно взаимодействовать с обширным количеством устройств: лампочки, розетки, шторы, замки, роботы-пылесосы, термостаты, очистители воздуха, кондиционеры и чайники. Кроме этого, можно переключать каналы на телевизоре (через универсальный пульт) и менять цвета RGB-ламп.

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

Аппаратная и программная часть

Для того, чтобы собрать умный дом своими руками, мы будет использовать Wi-Fi модуль ESP8266. Процесс разработки на нём почти не отличается от традиционной разработки на Arduino.

Для начала нужно скачать приложение Blynk из GooglePlay или AppStore и зарегистрироваться в нём. После этого нужно создать новый проект и выбрать соответствующий микроконтроллер. Перед вами появится пустая панель, на которой можно размещать элементы управления. Это могут быть кнопки, иконки, слайдеры, индикаторы, выпадающие списки и многое другое.

После создания проекта на вашу почту придёт токен доступа. Его нужно будет указать в скетче и веб-хуках.

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

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

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

Для этого скетча в панели управления Blynk нужно добавить элемент «Button». В его настройках OUTPUT выставить V0, а режим работы переключить в Switch.

Теперь к указанному порту можно подключать реле. Если всё правильно, то при нажатии на кнопку в панели управления реле будет открываться и закрываться.

Голосовое управление светом не мешает управлению им аппаратно. К микроконтроллеру можно подключить физическую кнопку или выключатель, которые тоже будут включать и выключать свет. Если это необходимо, то изменять состояние виртуального порта можно методом Blynk.virtualWrite(port, value) . Тогда изменения будут отображаться и на панели управления.

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

Всё работает? Тогда можете переходить к следующему этапу.

Получение веб-хуков

От Blynk вам потребуется не панель управления, а контроль виртуальных портов через GET-запросы. Вот так выглядит веб-хук на изменение состояния порта:

Чтобы включить виртуальный порт, нужно указать как 1, чтобы выключить — как 0.

Помимо этого, значение с порта можно получить таким запросом:

Настройка навыка «Домовёнок Кузя»

Перейдите на сайт навыка и авторизуйтесь там через Яндекс. Далее жмите на Добавить правило HTTP (GET). Перед вами откроется форма настройки правила.

Активационная фраза — название запроса, которое будет отображаться в списке (например «свет на кухне, включение»). Если вы не планируете контролировать умный дом конкретно изнутри навыка, то больше фраза нигде не понадобится. Поле Ответ Кузи тоже оставляйте пустым. В поле URL вставляете соответствующий веб-хук на включение света (виртуального порта). Остальные параметры можно не изменять. После этого нужно сделать идентичное правило на выключение света.

Пример настройки правила на включение света

Дальше нужно перейти во вкладку виртуальных устройств и добавить устройство «Лампа». Тут нужно дать название устройству, по которому его будет идентифицировать Алиса. Например: свет, бра, подсветка, лампа или торшер. Место расположения — комната, в которой будет установлено устройство. Это нужно на тот случай, если в нескольких комнатах будут одинаковые по названию элементы. К тому же, одной голосовой командой можно включать и выключать все устройства в определённой комнате.

В Правило на включение/выключение из списка выбираете соответствующие запросы. В лампе имеется возможность управления яркостью. Для этого нужно создать ещё одно правило, но значение параметра value установить как . Тогда в запрос будет подставляться число от 0 до 100, которое будет обозначать требуемую яркость. Вам лишь остаётся обработать это значение в скетче.

Пример настройки виртуального устройства

Примечание Если вы планируете изменять яркость, то параметр value в веб-хуке на включение нужно изменить с 1 на 100.

Настройка Алисы

В приложении Яндекс перейдите в раздел Устройства→Управление устройствами. Нажмите на кнопку «Добавить»→«Другое устройство». В открывшемся списке найдите навык «Домовёнок Кузя».

Авторизуйтесь в нём. Возможно, нужно будет ввести код объединения устройств, указанный в панели управления умным домом. Потом нажмите на Обновить список устройств.

На этом этом этапе вы уже создали умный дом своими руками. Теперь система полностью готова к голосовому контролю. К ней имеет доступ лишь ваш аккаунт. В настройках виртуальных устройств можно расширить доступ на другие аккаунты.

Источник

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

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

Когда я только переехала в новую съемную квартиру, то первый месяц была занята изучением ее возможностей. Владелец квартиры подошел с умом к ремонту: развел разные комнаты и группы потребителей на отдельные автоматы и вывел везде дополнительные группы розеток — например, только около кровати их 15 (. ). Для верхнего же освещения владелец квартиры установил два типа люстр:

  1. В кухне и гостиной встали бюджетные светодиодные люстры с круглым плафоном и ИК-пультом управления: в магазинах их можно найти от 3 000 рублей. Такие светильники умеют менять яркость, цветовую температуру и включать «режим ночника».
  2. В коридоре и спальне обнаружились светодиодные RGB люстры со встроенными Bluetooth-колонками и управлением через приложение со смартфона, примерно такие:

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

  • Кондиционер
  • Светодиодный занавес с ИК-пультом
  • RGB-лента с ИК-пультом
  • Увлажнитель воздуха с ИК-пультом
  • Умная лампочка Xiaomi Multicolor
  • Робот-пылесос Xiaomi
  • Телевизор

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

Этап первый. Начинаем с самого легкого

Первым делом я попыталась подключить к Алисе умную лампочку и пылесос – оба из экосистемы MiHome, оба заточены под умный дом, что тут сложного? Тут же я наткнулась на первый подводный камень.

Так получилось, что пылесос (Roborock S6) прошит для российского региона, а лампочка — для европейского, хоть и приобреталась в России – оставим за кадром все возникшие к продавцу неудобные вопросы. Алиса же тянет информацию об устройствах из привязанного аккаунта MiHome, причем воспринимает только регионы Россия или Китай. Жонглирование регионами показало, что:

  • MiHome европейского региона видит и пылесос, и лампочку, зато не дружит с умным домом Яндекса
  • MiHome российского региона видит только пылесос, лампочка ему недоступна
  • MiHome Китая видит только лампочку, пылесос в приложении не отображается — зато умный дом Яндекса его подцепил и успешно управляет. Но карту дома и прогресс уборки теперь не посмотреть.

С горем пополам подключила этих двоих, наигралась, задумалась о расширении возможностей. И тут кроется второй подводный камень: «из коробки» умный дом Яндекса может управлять устройствами только через Wi-Fi. Если гаджеты умеют самостоятельно подключаться к домашней сети без шлюза — то вы на коне. Нет — ставьте промежуточные узлы.

Первоначально мне в голову пришла идея собрать в шкафу одноплатный контроллер, обвешать его свистками и протянуть по дому ИК-передатчики, но оказалось, что все уже придумано до нас. Тот же Яндекс выпустил умный пульт — всенаправленный ИК-передатчик в виде черной шайбочки, который цепляется к домашней сети и эмулирует команды с пульта.

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

Этап второй. Избавляюсь от пультов

Вопреки опасениям, загнать в Яндекс устройства с ИК-пультами оказалось быстро и просто — в приложении дана пошаговая инструкция, как записать в память устройства команды. Но и тут нашлось несколько подводных камней:

  1. Поскольку устройств много, а команд мало, последние часто дублируются. И одна и та же команда используется в нескольких местах. Так, у меня обнаружились одинаковые коды для люстр в гостиной и на кухне. А еще — у увлажнителя и люстры в спальне. Пока в деле были слабенькие штатные пульты, проблем это не создавало. Но:
  2. Пульт Яндекса СЛИШКОМ мощный (из центра квартиры он дотягивается до всех – правда, и дом у меня в обтяжку). А еще он всенаправленный, то есть, «стреляет» сразу во все стороны. В результате — свет в кухне и гостиной включается одновременно (не знаю, как, но сигнал проходит через стену!), а запуск увлажнителя в спальне включает и верхний свет там же. И если первую проблему можно решить, ослабив сигнал передатчика (например, спрятав его за полупрозрачную преграду) в одной комнате и поставив второй передатчик в другой, то решить задачку «Как включить ночью увлажнитель, не перебудив домочадцев» мне пока не удалось.
  3. Некоторые устройства используют одну и ту же команду и на включение, и на выключение. Сначала на это не обращаешь внимания, но на этапе постройки сценариев становится очень неудобно.
  4. Нужно больше розеток! Чем больше в доме RGBT-подсветки, тем меньше свободных розеток. А еще Станция. А еще Пульт. А еще… В общем, разветвители точно не помешают.

Зато кондиционер и телевизор подтянулись из базы устройств, и пульт теперь умеет эмулировать все функциональные кнопки.

На этом этапе я вспомнила, что телевизор тоже вроде бы «умный», и попыталась подключить его к умному дому напрямую, но потерпела сокрушительное поражение. Оказалось, что нищебродам здесь не место телевизоры LG дружат с Алисой только в версии WebOS 5.0 и выше. У меня же в ТВ 2019 года выпуска стоит версия WebOS 4.9.3. И нет, обновления ОС LG не делают. Покупайте новый. Привет, LG!

Этап третий. Слишком умные люстры. Или нет

После успешного подключения всего мелкого китайского зоопарка я перешла к люстрам с BT-колонками. И тут случилось то самое разочарование: китайские noname-люстры подключить к Яндексу невозможно. По Bluetooth он ими управлять не умеет, в Wi-Fi не умеют уже они, а ИК-пульт оказался только у одной (и то эмулируется калечно: диммирование и плавное изменение цвета вам будет недоступно). Теперь я выбираю между двумя стульями путями: снять их к чертовой матери и купить Xiaomi или же поднять на домашнем сервере Android, в котором эмулировать нажатия пользователя, а уже его пытаться подружить с Яндексом. Оба варианта не очень, если честно.

Этап четвертый. Сценарии

После подключения зоопарка настройка сценариев оказалась проще пареной репы: с точки зрения UI умный дом Яндекса, конечно, крайне прост в освоении. Без нюансов не обошлось и тут — как я уже говорила, по одной команде может срабатывать сразу несколько устройств, а у некоторых одна команда на вкл/выкл.

Поэтому от сценария «Выключить вообще все устройства в доме по фразу «Я ухожу» я отказалась: пришлось бы каждый раз проверять, что все устройства выключились или выключать после отработки сценария вручную.

Этап пятый. Кто хозяин в доме?

Последней задачей стало расшарить всю эту автоматизацию домочадцам. Так вот: это невозможно. Совсем. Если ваш умный дом заведен на ваш аккаунт, домашние смогут только командовать Алисой голосом, управление со смартфона им недоступно.

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

Сколько стоит?

Если считать все устройства (кроме кондиционера, пылесоса и ТВ), то на август 2021 года:

  • Яндекс.Станция с Алисой — от 3 000 рублей
  • Яндекс.Пульт — 1 500 рублей
  • Люстры — около 3 000 рублей за каждую, всего 12 000
  • Светодиодный занавес — 600 рублей
  • RGB-лента — 600 рублей
  • Увлажнитель воздуха — от 3 000 рублей
  • Умная лампочка Xiaomi Multicolor — около 1 000 рублей

Суммарно получилось около 22 000, из которых больше половины — это потолочные светильники. Сама же автоматизация обошлась мне в 4 500 рублей за Станцию и Пульт. Без них, в общем-то, тоже можно обойтись, сама по себе платформа умного дома в Яндексе бесплатная и общедоступная. Но с ними задорнее.

Как не быть мной?

Можно было бы посоветовать «сначала думать, потом только делать», но это не про меня. Поэтому:

  1. Не берите Станцию по подписке, если вы живете не одни. Вам потом наверняка захочется ее перепривязать к семейному аккаунту – а вот нет! Придется ждать 2-3 года.
  2. Не покупайте люстры с Bluetooth-колонками, даже если очень хочется. Даже если вам мамой поклялись, что эти люстры вчера получили Нобелевскую премию, настолько они умные. Во-первых, звук у них — «очень не очень». А во-вторых, задолбаетесь с управлением.
  3. Проверяйте регионы! Иначе будете жонглировать регионами в MiHome и костылить мосты, как я.
  4. Если вам кажется, что розеток хватит, делайте больше розеток. Раза в два. Или даже в три. И еще можно разветвители купить.
  5. Если вы планируете сначала сделать ремонт, а потом протянуть управление – не надо так. Спланируйте все заранее и заведите внутрь стен. Да и наверняка же захотите потом и датчики завести.

Ну, а если вы задались вопросами «Зачем это все?» и «Почему Яндекс?», то ответ прост: потому что могу. Было скучно, а компоненты оказались под рукой. В конце концов, кто-то же должен был написать этот пост.

Источник

Создание умного дома с голосовым управлением от А до Я. Алиса и iobroker.

Черновая версия 
Cтраница не завершена

 

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

Внимание!!! 

 

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

Содержание

  • 1 Введение
  • 2 Сервер умного дома
    • 2.1 Железо для сервера
    • 2.2 Установка системы DEBIAN
      • 2.2.1 Создание загрузочной USB флешки
      • 2.2.2 Процесс установки
    • 2.3 Настройка сервера
      • 2.3.1 Определение локального IP адреса
      • 2.3.2 Терминал для настройки
      • 2.3.3 Подготовка к настройке
      • 2.3.4 Отключаем спящий режим
      • 2.3.5 Установка NODEJS и NPM
      • 2.3.6 Установка ioBroker
      • 2.3.7 Удаленный доступ через AnyDesk
      • 2.3.8 Настройка неконтролируемого доступа
  • 3 Запуск и настойка ioBroker
    • 3.1 Описание пунктов меню
    • 3.2 Установка драйверов
    • 3.3 Решение проблем с адаптерами
    • 3.4 Устройства XIAOMI и адаптер MIHOME
      • 3.4.1 Разблокируем управление MI Gateway
      • 3.4.2 Добавление устройств вручную
    • 3.5 Устройства и адаптер ZigBee
      • 3.5.1 Прошивка и подключение CC2531
      • 3.5.2 Подключение устройств к адаптеру
    • 3.6 Лампы и светильники Yeelight
  • 4 Подключение Яндекс станции и Алисы
    • 4.1 Настройка категорий
    • 4.2 Связь с Алисой и ioBroker.iot
    • 4.3 Умный дом с Алисой
      • 4.3.1 Добавление реальных устройств
      • 4.3.2 Добавление виртуальных устройств
      • 4.3.3 Сценарии с Алисой
      • 4.3.4 Реакция Алисы на события
      • 4.3.5 Заставить Алису говорить (NODE-RED)
      • 4.3.6 Пример реакции на событие ioBroker

Введение

После просмотра фильма Железный человек, где показан голосовой помощник мистера Старка по имени JARVIS, меня не покидала мысль о создании такого голосового помощника у себя дома, я реализовывал различные варианты на Text to Spech от Google, и даже заказал для этого колонку Google Home mini когда она появилась в 2016 году, но как же я был разочарован, что Google не собираются делать русский язык в своей колонке, и мои идеи о разговоре со своим «Умным домом», я временно отложил.

И вот, в 2018 году, появилась Яндекс Станция с необыкновенным и умным голосовым помощником Алисой, и моя мечта «поговорить» с моим домом стала осуществимой.

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

В данной статье, я научу вас как сделать свой умный дом, а именно:
Мы создадим свой сервер умного дома. Реализуем голосовое управление домом с помощью Яндекс станции и Алисы, создадим своего Telegram бота.
По плану, я хочу научить вас:

  • Подключить устройства умного дома — В моем случае это XIAOMI MIHOME и TUYA), но в вашем случае это может быть и устройства YEELIGHT и другие.
  • Сделаем с вами Telegram бота для управления умным домом — Из любой точки мира со смартфона, имея под рукой только мессенджер Telegram. К примеру (Включить отопление, выставить температуру теплого пола на 30 градусов, выключить насос) и т.п.
  • Научим вашу колонку с Алисой, управлять устройствами — С помощью голосовых команд, к примеру (Включи свет на улице, Какая температура в спальне, Выключи свет в детской через 10 минут) и т.п.
  • Научим Алису реагировать на события — События которые происходят в вашем доме, и без запроса, сразу, сообщать вам о происшествии. К примеру Алиса вдруг скажет (Обнаружена утечка воды, температура в бойлерной слишком низкая, вы забыли закрыть окно, насос отключился) и т.п.
  • Подключим ZigBee устройства разных производителей Xiaomi, Tuya, Yeelight и другие, к вашему серверу и научимся управлять ими.
  • Подключим к умному дому видео наблюдение — Реализуем получение фотографий с почти любых камер к примеру в вашего Telegram бота.
Я буду использовать последнее программное обеспечение, которое доступно на момент написания статьи (конец 2022 года).

Сервер умного дома

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

Железо для сервера

Список оборудования:

  • Ноутбук или ПК — для сервера
  • Два USB накопителя — не менее 2Gb
  • Яндекс Станция, Яндекс станция лайт, мини
  • Роутер с поддержкой 3G 4G модемов
  • Модем для роутера
  • Устройства умного дома, лампочки, реле, датчики.

Для создания своего сервера подойдет почти любой персональный компьютер или ноутбук, характеристики особо не важны, т.к. какой-либо нагрузки на компьютер во время работы не будет. Вы можете взять старый ПК, или купить не новый ноутбук. Конечно, потребуется не менее двух USB портов, хорошо если на компьютере будет установлен SSD диск, они работают на много быстрее обычных HDD, и ваш сервер будет работать намного лучше с новым диском, размер диска не важен.

Я буду использовать ноутбук Lenovo ideapad 100, 4Gb оперативной памяти, SSD диском на 120Gb. 

Не рекомендую использовать ПК с 32ух битной архитектурой (x86, i386), т.к. многие новые программы, написанные для умного дома, делаются уже исключительно под x64 архитектурные процессоры. Сразу скажу, 32 битный компьютер в наше время ещё нужно поискать…

Ещё понадобиться две USB флешки размером не менее 1Gb, одна для записи образа системы, вторая (возможно понадобиться) для записи на неё необходимых дополнительных драйверов сетевой карты, которые могут понадобиться во время установки.

Так же, вам понадобиться интернет. У меня сервер установлен на даче, поэтому, я использовал роутер с поддержкой 4G модемов и модем Huawei с SIM картой Beeline.
Роутер раздет интернет по Wi-Fi, а также имеется возможность подключиться к нему проводом.

  • Яндекс станция лайт1.jpeg

  • Яндекс станция лайт2.jpeg

  • Роутер с модемом.jpeg

  • IMG 0721.JPG

  • Роутер с модемом3.jpeg

Установка системы DEBIAN

Какую систему устанавливать, решать, конечно, вам, я рекомендую Debian или Ubuntu. Так же сервер можно развернуть и на базе Windows, но, в этой статье я покажу процесс установки и настройки сервера на базе DEBIAN 11.
Я буду описывать процесс на сколько это возможно подробно что бы сэкономить ваше время, потому что, чтобы понять, и разобраться в сделанном, мне потребовалось очень много времени.

Создание загрузочной USB флешки

Нам понадобиться образ DEBIAN 11 с официального сайта Debian.org
Страница выбора версий: https://www.debian.org/CD/http-ftp/index.ru.html
«Официальные образы CD/DVD «стабильного» выпуска», CD, amd64 (для x64 битных систем. Я рекомендую debian-11.5.0-amd64-netinst.iso по этой ссылке (именно netinst версию, ибо с другой у меня возникали проблемы при установки некоторых пакетов уже после полной установки).
А именно вот этот образ: https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.5.0-amd64-netinst.iso

Что бы сделать загрузочную флешку нам понадобиться программа Rufus https://rufus.ie/ru/ , я рекомендую именно эту программу, т.к. когда я записывал образ другими способами, система зависала у меня на начальном этапе установки.

Подключаем флешку, запускаем Rufus, выбираем вашу флешку в верхнем выпадающем списке, кнопкой ВЫБРАТЬ выбираем образ debian-11.5.0-amd64-netinst.iso и нажимаем СТАРТ. Программа задаст вам пару вопросов, на которые мы отвечаем утвердительно. А именно: записать в ISO-образ режиме; подгрузить дополнительные файлы syslinux; Файлы на накопителе будут уничтожены.
Начнется процесс создания загрузочной флешки с Debian 11, который не займет более 5 минут.

  • Rufus Debian1.png

  • Rufus Debian2.png

  • Rufus Debian3.png

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

Процесс установки

Варианты загрузки.jpeg

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

Для начала задача запустить загрузку с установочной флешки. Обычно на ноутбуках или ПК, во время включения надо нажать кнопку F8, F9 или F12, откроется Boot menu, после чего выбрать флешку в списке и нажать Enter.

Мой процесс установки выглядел следующим образом:

  • Graphical Installer (Графический установщик). Язык, по желанию.

После чего сразу столкнулся с проблемой отсутствия драйверов Reaktek для Wi-Fi сетевой карты. И эта проблема возникает у многих, кто использует ноутбук в качестве сервера.

А именно ошибка:

«Для работы некоторой имеющейся у вас аппаратуры требуются файлы с несвободной микропрограммой. Микропрограмма может быть загружена со сменного носителя, например с USB-накопителя или дискеты. Отсутствующие файлы микропрограммы: rtlwifi/rtl8188efw.bin Если у вас есть такой носитель, то вставьте его и продолжайте.»

Решается просто: берём подготовленную нами вторую USB флешку, и идем искать необходимые драйвера. Я просто набрал в Yandex “rtlwifi/rtl8188efw.bin” и без проблем нашел и скачал их на каком-то сайте. Положил файлы в корневой каталог, и подключил USB флешку, к серверу на который мы ставим Debian и нажал продолжить.

Далее:

  • выбрал и подключился к моей Wi-Fi сети, и установка продолжилась.
  • Ввел имя сервера, smarthome
  • Имя домена, пропускаем.
  • Придумываем, вводим и записываем на бумажку, пароль суперпользователя root.
  • Имя нового пользователя, имя учетной записи, я ввел smarthome
  • Пароль для учетной записи smarthome.

Во время установки, вам могут предложить «выполнить установку в UEFI», соглашайтесь.

  • В разметке дисков, я выбрал «Авто – использовать весь диск»
  • Выбрал свой 120Gb SSD
  • Все файлы в одном разделе (рекомендуется новичкам)
  • В конце выбираем «Закончить разметку и записать изменения на диск»
  • Соглашаемся что разделы будут удалены и отформатированы.

После, начнется установка базовой системы, которая займет около 3-5 минут.

  • В настройке менеджера пакетов, выбираем Российская Федерация, deb.debian.org
  • Прокси я не использую, пропускаю.
  • Участвовать ли в опросе популярности пакетов, решать вам.
  • Выбор программного обеспечения я выбрал, Окружение рабочего стола Debian, GNOME, SSH-сервер, Стандартные системные утилиты.

Далее, начнется установка основных пакетов системы, что займет от 10 до 40 минут, в зависимости от скорости вашего интернет-соединения.

  • Извлекаем USB носители и загружаемся в систему DEBIAN.
  • Установка Debian 11.jpeg

  • Ошибка определения сетевой карты.jpeg

  • Выбор Wi-Fi сети.jpeg

  • Ввод пароля.jpeg

  • Записать изменения на диск.jpeg

  • Файлы будут отформатированы.jpeg

  • Выбор программного обеспечения.jpeg

  • Процесс установки Debian.jpeg

  • Debian установлен.jpeg

  • Вход в систему.jpeg

Настройка сервера

Определение локального IP адреса

Устройства на роутере.png

Для начала вам необходимо определить IP адрес вашего сервера, это можно сделать в самой системе Debian, выбрав «Параметры, Wi-Fi», и нажав шестеренку рядом с названием вашей беспроводной сети» Смотрим Адрес iPv4, в моем случае это 192.168.1.63

Либо посмотреть в адмике вашего роутера.
Другой компьютер с которого мы будем настраивать ваш сервер, должен находиться в той же Wi-Fi сети, что и сервер Debian, мы будем подключаться к нему по локальному IP адресу… Как сделать это из другого места я расскажу позже.

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

DHCP фиксируем IP.png

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

В будущем вам придется фиксировать адреса умных Wi-Fi устройств (станций, розеток, лампочек), что бы их локальные IP адреса не менялись при перезагрузке вашего оборудования, это важно, иначе, сначала всё будет работать отлично, но потом… сервер не сможет найти лампочку или розетку, и в момент торжественной презентации Умного дома вашей жене, у вас что то не сработает.  :)

Терминал для настройки

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

Для доступа к серверу мы будем использовать SSH клиент, я использовал PuTTY, т.к. он мне кажется наиболее простым и удобным. Скачиваем PuTTY с официального сайта https://www.putty.org/ и запускаем.

Вводим IP адрес сервера, выбираем SSH соединение, и подключаемся к серверу.

  • PuTTY подключение.png

  • PuTTY вход.png

Подготовка к настройке

Авторизуемся сначала под пользователем smarthome

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

su

Для начала установим файловую оболочку midnight commander (mc) и библиотеку curl

apt install -y mc curl

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

apt update & apt upgrade

Отключаем спящий режим

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

Отключаем демоны приостановки / сна / гибернации командой.

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Так же отредактируем файл: /etc/systemd/logind.conf

Для этого запустим Midnight Commander выполнив команду.

mc

Управление с помощью стрелок, переключение между вкладок табуляцией. Находим файл /etc/systemd/logind.conf жмем F4 (редактировать), и выбираем редактор (я использую 2. /usr/bin/mcedit).

Меняем значения, которые отвечают за закрытие крышки и кнопки выключения и спящего режима. Убираем комментарий в нужных нам строках, и ставим значение ignore. Сервер ведь у нас должен работать 24 на 7, и что бы кто ни будь его случайно не выключил. Я вырубил всё что можно.

HandleLidSwitch=ignore 
HandleLidSwitchDocked=ignore

Жмем «ESCAPE» и выбираем «Да» что бы сохранить файл. После чего, перезапускаем сервис logind что бы изменения вступили в силу.

sudo service systemd-logind restart
  • Logind conf.png

  • Logind conf edit.png

Установка NODEJS и NPM

Ставим последний Nodejs и NPM

curl -fsSL https://deb.nodesource.com/setup_19.x | sudo -E bash -
sudo apt-get install -y nodejs

Проверяем, всё ли правильно установилось, версии node и npm. Если что то пошло не так, придется искать решения в интернете. Если вы установили ту версию Debian которую указал я, проблем возникнуть не должно.

node -v
npm -v

Установка ioBroker

IoBroker installed.png

Устанавливаем систему умного дома ioBroker !

Во время установки будут установлены все необходимые для работы библиотеки.

curl -sL https://iobroker.net/install.sh | bash -

Удаленный доступ через AnyDesk

ioBroker установлен, и можно открыть web админку для управления вашим умным домом, но, давайте сделаем удаленный доступ к серверу, что бы мы могли подключиться к вашему серверу из любой точки мира!

В принципе если у вас есть выделенный IP адрес, то вам, просто необходимо пробросить порты в настройках роутера для доступа по SSH и доступа к адмике ioBroker и другим сервисам. А именно: надо открыть порты 22, 8081 и далее в будущем, соответствующие для других сервисов. После чего будете подключаться по внешнему IP адресу и управлять вашим сервером.
В моем случае, я использую USB модем, SIM карту Beeline, в мобильной связи выделенных IP адресов вам никто не даст, и я решил подключаться к своей «умной даче» через программу AnyDesk. (Аналог TeamViewer и подобных программ).

Что бы установить AnyDesk на ваш Debain сервер, используем следующие команды:

 wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | sudo apt-key add –

По умолчанию AnyDesk недоступен в репозиториях Debian. Теперь мы добавляем репозиторий AnyDesk в вашу систему:

echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list

И запускаем установку AnyDesk

apt update & apt install -y anydesk

Перезагружаем сервер

sudo reboot

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

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

Настройка неконтролируемого доступа

Установка соединения AnyDesk.png

Теперь надо настроить «Неконтролируемый доступ» к серверу, т.к. при подключении через AnyDesk, потребуется подтверждение входа на сервере, а это нам не нужно… Мы же собираемся убрать его в шкаф, и больше никогда не доставать.  :)

Действия производим прямо на сервере.

  • Запускаем AnyDesk
  • Нажимаем на «бар» с правой стороны окна программы
  • Настройки
  • Безопасность
  • Разблокировать настройки безопасности (вводим пароль)
  • Профиль прав доступа – Неконтролируемый доступ
  • Ставим галочку «Разрешить неконтролируемый доступ»
  • Придумываем и вводим дважды пароль (лучше запишите).
  • Debian AnyDesk.jpeg

  • AnyDesk настройка1.jpeg

  • AnyDesk настройка2.jpeg

display_server_not_supported

Подключаемся по ID к серверу. И тут вы можете столкнуться с ошибкой, если нет, пропустите этот абзац. У меня же в AnyDesk появилась ошибка:

Соединение было завершено. '''display_server_not_supported'''

Используя PuTTY, Midnight Commander ищем на сервере файл /etc/gdm3/custom.conf или /etc/gdm3/daemon.conf. Нам надо включить автоматическую авторизацию убрав комментарий # и исправив строки:

WaylandEnable=false
AutomaticLoginEnable = true
AutomaticLogin = smarthome

После чего опять перезагружаем (sudo reboot) сервер, ждем после загрузки 1-2 минуты, пока загрузиться AnyDesk, и пробуем подключиться.

AnyDesk connected.png

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

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

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

Запуск и настойка ioBroker

Вот и пришло время заняться настройкой системы умного дома ioBroker, ради которой мы так долго настраивали наш сервер.

В браузере, вводим http://192.168.1.63:8081 (соответственно вы вводите IP адрес вашего сервера, как его получить я писал выше).

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

  • Iobroker welcome.png

  • Iobroker password.png

  • Iobroker admin.png

Этапы настройки нашего умного дома будут выглядеть следующим образом:

  • Установка необходимых адаптеров (драйверов).
  • Настройка адаптеров и подключение устройств к ioBroker
  • Соединение устройств с Яндекс Станцией и Алисой.
  • Управление устройствами через Telegram

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

Описание пунктов меню

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

Драйверы: в данном пункте мы будем устанавливать различные дополнения, к нашему умному дому, так называемые драйвера (к примеру, драйвер, редактора javascript или node-red, драйвер создания графиков, получение погоды, связь с умным домом Xiaomi и многое многое другое.) Так же, вы сможете ставить node скрипты прямо с GITHUB, но для этого надо будет ещё немного изучить систему.

Настройки: здесь вы увидите уже установленные драйвера, изначально admin.0 (админка ioBroker), backitup.0 (Модуль автоматического резервного копирования всей системы ioBroker, (я к примеру настроил автоматическое копирование на мой Google Drive), discovery.0 (Драйвер поиска новых устройств). Цифра в названии драйвера, это номер инстанции, т.е. вы можете установить одинаковых драйверов (к примеру, несколько админок). Так же здесь находятся настройки драйверов (Гаечный ключ рядом с каждым драйвером). К примеру, настройки резервного копирования, настройки админки и прочего.

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

Категории: тут мы настроим комнаты дома, а также, категории и функции устройств. Это понадобиться для того, чтобы вы, и ваши умные помощники (Яндекс станция и Алиса) разбирались чем мы управляем (свет, розетка, температура), и в какой комнате (Зал, спальня, бойлерная, улица) и т.п.

Журнал – не маловажный раздел, в нем можно видеть логи драйверов, адмики, ваших программ, которые вы в будущем напишите. Я постоянно заглядываю сюда для отладки своих javascript скриптов.

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

Серверы: тут информация о вашем Debian сервере. Загрузка процессора и памяти, а также обновление сервера. Я использую данное меню редко, в основном, когда выйдет глобальное обновление ioBroker что бы обновить сервер.

Файлы: Файловый менеджер, я его не использовал.

Резервное копирование: «Админка» драйвера backitup, где вы можете сделать или восстановить резервную копию.

Установка драйверов

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

Установка дополнений производиться на вкладке «Драйверы». Что бы установить необходимый драйвер, введите его название в строке поиска, нажмите «+» и дождитесь установки. Там же можно удалить драйвер, или ознакомится с его документацией. Если во время установки у вас возникли проблемы, вы можете ознакомиться с логами установки на вкладке «Журнал». Я расскажу какие драйвера, для каких целей, и каким образом использую в своём умном доме.

Дополнительные драйвера ioBroker, которые нам понадобятся:

  • telegram — Драйвер запускает Telegram бот, с которым можно общаться через приложение на смартфоне, или через браузер.
  • flot — Драйвер строит графики с помощью Flot, к примеру, график изменения температуры на даче, после включения обогревателя.
  • mihome — Добавит поддержку «Xiaomi MiHome gateway», устройств умного дома Xiaomi.
  • devices — Управление устройствами, а именно создание виртуальных устройств, для Алисы и драйвера iot
  • iot — Соединяет ваш сервер ioBroker с облаком ioBroker IoT, после чего вы сможете управлять вашими устройствами через приложение «Умный дом с Алисой».
  • JavaScript — В этом драйвере мы сможем писать свои Javascript / Blockly программы для нашего умного дома.
  • sql — Позволяет собирать в постоянном режиме, выбранные данные с объектов ioBroker, к примеру для построения графиков температуры или энергопотребления.

Следующие драйвера, для более продвинутых пользователей:

  • zigbee — Подключение почти любых ZigBee устройств к нашему серверу умного дома, через устройство Chip cc26xx/cc25xx
  • phantomjs — С помощью данного драйвера, я делаю скриншоты страниц, что бы к примеру отправить график в виде картинки в своего Telegram бота.
  • node-red — Драйвер создает node-red сервер и позволяет общаться с ним. Драйвер среды программирования, где вы можете создавать свои программы используя визуальный вариант программирования, я использую этот драйвер что бы отправлять на Яндекс станцию сообщения которые Алиса должна произнести.

Решение проблем с адаптерами

В случае успешной установки драйвера, в конце лога установки вы увидите строчку «Process exited with code 0«. В некоторых случаях вы можете столкнуться с ошибками во время установки драйверов, такое бывает, все проблемы с ioBroker можно исправить через консоль, описание консольных команд ioBroker вы можете найти по этой ссылке.
К примеру у меня возникли проблемы с установкой драйвера ZigBee, в конце установки я получал ошибку «ERROR: Process exited with code 25«, что бы решить проблему с установкой, я подключился к серверу через SSH PuTTY и выполнил следующие команды:

iob stop
iob update
chown -R iobroker /opt/iobroker
curl -sL https://iobroker.net/fix.sh | bash -
iob upgrade
iob start

После перезапуска и исправления ioBroker, адаптер ZigBee установился без ошибок.

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

iob add НазваниеАдаптера
iob delete НазваниеАдаптера

Если и это не помогает, то я иногда прибегаю к варианту удаления адаптера в ручную. Т.е. сначала пытаемся удалить адаптер через косоль, далее, в папке /opt/iobroker/node_modules/ находим папку необходимого адаптера и удаляем её. После чего уже через админку снова ставим адаптер.

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

Устройства XIAOMI и адаптер MIHOME

Адаптер MIHOME используется для управления устройствами Xiaomi, в моём доме используется большое количество таких устройств. Беспроводные реле, автоматические шторы, розетки, датчики температуры, движения, сенсоры открытия, розетки, выключатели и прочее…

Изначально, я использовал систему умного дома MIHOME, этим и обусловлено такое количество устройств этого бренда в моём умном доме.

С документацией по драйверу вы можете ознакомиться по этой ссылке.

16 символов, ключ lumi.gateway.v3

В настройке этого драйвера нет ничего сложного, но, есть сложности с открытием доступа к управлению устройствами Xiaomi, а именно включение режима разработчика set_developer_key (или Управление по LAN) на центральном хабе системы Xaiomi. Без включения этого доступа, вы увидите в «объектах» все ваши устройства, сможете считывать информацию с датчиков, но не сможете управлять устройствами (розетками, беспроводными реле и прочим). Сделать это необходимо один раз, после чего не рекомендуется обновлять прошивку lumi.gateway.v3, иначе доступ к управлению может «слететь».

Напомню что ваш Xiaomi хаб (lumi.gateway.v3) управляет всеми устройствами вашего умного дома Xiaomi, поэтому разблокировка developer mode, необходима, что бы через него управлять переключаемыми устройствами. Я столкнулся со сложностью разблокировки, т.к. прошивка моего lumi.gateway.v3 версия 1.4.1_176, и через ломаное приложение MiHome ключ не получить.

Разблокируем управление MI Gateway

Для начала нам необходимо получить все IP адреса, ID устройств, и их токен (token), для этого я использую Xiaomi-cloud-tokens-extractor который вы можете скачать по этой ссылке.

Получить токены устройств очень просто:

  • Скачиваем token_extractor.exe
  • Кладем его в корень диска C:
  • В строке пути, вводим cmd
  • Запускаем программу введя окне команд token_extractor.exe
  • Вводим логин вашего MI Account используемый в вашем приложении MiHome
  • Вводим пароль
  • Вводим регион (в моем случае cn)

После чего видим токены, IP адреса, ID и названия ваших устройств. Нас интересует токен и IP адрес нашего хаба, Xiaomi Mi HUB (lumi.gateway.v3).

  • Tokens extractor.png

  • Tokens extractor login.png

  • Tokens extractor data.png

Далее, опять нам понадобиться SSH доступ к нашему серверу, где мы будем устанавливать язык программирования Python 3.9 и к нему библиотеки python3-pip, python-miio без этого в моем случае токен получить не удалось.

Команды для установки:

apt update
apt install -y build-essential libncurses5-dev zlib1g-dev libnss3-dev libgdbm-dev libssl-dev libsqlite3-dev libffi-dev libreadline-dev curl libbz2-dev
wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz

Распаковываем, переходим в каталог Python-3.9.7 и запускаем скрипт настройки командами:

tar -xvf Python-3.9.7.tgz
cd Python-3.9.7
./configure --enable-optimizations

Затем приступаем к процессу сборки, который может занять некоторое время. Параметр -j указывает количество ядер процессора. Вы можете проверить количество ядер в вашей системе Debian, выполнив команду nproc.

make -j 2

После этого выполните следующую команду, чтобы установить бинарные файлы Python.

make altinstall

Посмотрите версию и проверьте правильность установки.

python3.9 --version

Мы установили язык программирования Python, только что бы поставить библиотеки необходимые для разблокировки нашего Xiaomi MI HUB.
Устанавливаем ещё две библиотеки.

  • python3-pip — Система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.
  • python-miio — Это самая продвинутая библиотека (и сопровождающий ее инструмент cli) используется для взаимодействия с устройствами, использующими протоколы Xiaomi miIO и MIoT. Подробнее по этой ссылке.
apt install -y python3-pip
python3.9 -m pip install python-miio

После чего, наконец то устанавливаем ключ разработчика в нашем lumi.gateway.v3 командой:

Где вам необходимо указать ваш IP адрес, token устройства, а так же ключ длинной 16 символов, который будет использоваться в адаптере ioBroker.mihome.

miiocli gateway --ip 192.168.1.57 --token 42f46d4d99dc682f893e7xxxxxxxxxxx set_developer_key YYYYYYYYYYYYYYYY

Устройства Xiaomi в объектах

Вводим полученный ключ в настройках адаптера MIHOME, как показано на скриншоте выше и жмем сохранить. MI HUB разблокирован, можем управлять устройствами! В меню ioBroker в Объектах, мы увидим mihome данные, устройства подключенные к вашему Хабу, сможем переключать их состояния, а так же читать все данные. Так же, вы можете воспользоваться продвинутой Python библиотекой miiocli что бы управлять вашими устройствами через консоль, используя ID, IP и token устройств.

Добавление устройств вручную

Некоторые устройства могут определятся в адаптере, но управление ими не работает, либо вообще не определяются адаптером. Что бы добавить не поддерживаемые устройства, можно попробовать добавить устройство с помощью SID. В настоящее время он применим для 2-канального реле Aqara (Aqara Wireless Relay Controller(2 Channels), lumi.relay.c2acn01), название модели которого не указано из-за некоторых проблем в прошивке шлюза.

Для этого вам необходимо знать SID и модель устройства, посмотреть эти данные можно используя tokens extractor, по инструкции которую я написал выше.

К примеру по моим реле, у меня такие данные выдал tokens extractor:

Mihome aquara relay.png

  NAME:     Вентилятор
  ID:       lumi.158d00058dc0a7
  MODEL:    lumi.relay.c2acn01
  ---------
   NAME:     Aqara Wireless Relay Controller(2 Channels)
  ID:       lumi.158d00058670fb
  MODEL:    lumi.relay.c2acn01
  ---------
  NAME:     Реле насос вода 1 канал
  ID:       lumi.158d0005cfe0c5
  MODEL:    lumi.relay.c2acn01

Выяснив данные наших реле, добавляем их в ручную в настройках адаптера MIHOME на вкладке SID устройства. Необходимо убрать lumi. из названия и SID устройства при добавлении, смотрите скриншот.

Так же, добавим IP и developer_key нашего MI HUB на вкладку «Ключи шлюза». IP адрес можно найти просто кнопкой «Поиск», или взять из данных tokens_extracor. Сам ключ разработчика, тот который вы установили командой через miiocli (инструкция находиться немного выше).

  NAME:      Mi Hub дача
  ID:            133013794
  MAC:        AB:AB:8C:A1:10:50
  IP:            192.168.1.57
  TOKEN:    42f46d4d99dc682f893e7xxxxxxxxxxx
  MODEL:    lumi.gateway.v3

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

Устройства и адаптер ZigBee

Zigbee coordinator cc2531.jpeg

Zigbee адаптер для Xiaomi, TUYA (и других) устройств через Chip cc26xx/cc25xx. При помощи координатора Zigbee-сети на базе Texas Instruments SoC cc253x (и другими) создается собственная сеть, в которую подключаются zigbee-устройства. Взаимодействуя напрямую с координатором сети, драйвер позволяет управлять устройствами без дополнительных шлюзов/мостов от производителей устройств (TUYA, Xiaomi, TRADFRI, Hue). Описание и процесс настройки по этой ссылке (на английском языке).

Количество устройств в поддержкой протокола ZigBee просто поражает, термостаты, выключатели, лампочки, розетки, реле и многое многое другое.

Плюсы данной технологии очевидны:

  • Высокая скорость срабатывания и реагирования устройств. Потому что, устройства общаются напрямую с вашим сервером умного дома ioBroker через ZigBee координатор который мы подключим в USB порт.
  • Экономия в деньгах на устройствах не мало важный плюс, теперь вы можете покупать более дешевые устройства, практически любые поддерживающие протокол ZigBee. К примеру для экосистемы TUYA, и использовать их без хабов и координаторов соответствующего бренда.

Для небольшого количества устройств подойдет ZigBee координатор СС2531 с подключением через USB порт. Я сейчас использую такой, и мне его хватает, примерно 20 устройств у меня подключено дома, работает нормально. Заказать можно в интернете, стоят они не дорого.

Координаторы сети ZigBee существуют и более дорогие и качественные, построенные на новых чипах и т.п. но мне хватает того что я изначально приобрел. К примеру я рассматриваю HamGeek CC2652P Pro Zigbee Gateway стоимость примерно в 2-3 раза дороже, посмотреть можно по этой ссылке.

Прошивка и подключение CC2531

Cc2531.jpeg

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

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

Вообще про прошивки, ZigBee координаторы, и всё что связано с ZigBee и умным домом вы можете почитать на сайте https://zigbee.wiki/ Илья Киров молодец, подробно и с примерами расписал всё по этому вопросу. Поэтому останавливаться на этом в данном разделе не будем.

Подключение устройств к адаптеру

Iobroker zigbee settings.png

Для запуска драйвера необходимо указать имя порта, к которому подключен Zigbee-модуль (USB). Обычно это порт /dev/ttyACM0 или /dev/ttyUSB0 для UART-соединения.

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

ls -l /dev/serial/by-id

Подключение zigbee устройств.png

Подключение устройств, производиться в админке Zigbee адаптера, пункт меню появляется в основном меню после его установки. Нажимаем привязать устройство, делаем сброс на устройстве Zigbee, после чего оно будет подключено к вашему координатору.

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

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

Лампы и светильники Yeelight

Iobroker yeelight.png

У меня дома используется две большие лампы (люстры) Yeelight, ими так же можно управлять через iobroker и Алису. На момент конца 2022 года, лампы Yeelight добавленные через связывание аккаунта Yeelight и Алиса умный дом, не управляются, поэтому я использую управление через iobroker. Так же это позволило мне сделать удобное управление лампами с планшета, на котором я сделал интерфейс для управления освещением, режимы, яркость, цветовая подсветка и прочее.

Добавить очень просто. Устанавливаем адаптер iobroker Yeelihgt, заходим в настройки адаптера, нажимаем поиск устройств, после чего, лампы будут добавлены. В объектах вы найдете новый раздел Yeelight, с объектами с помощью которых вы можете читать данные с ламп, а так же управлять ими.

Что бы работало управление лампами, необходимо в настройках приложения Yeelight включить «Управление по LAN» (см. скриншоты).

  • Yeelight0.jpeg

  • Yeelight2.jpeg

  • Yeelight1.jpeg

  • Iobroker yeelight objects.png

Подключение Яндекс станции и Алисы

Приложение «Дом с Алисой»

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

Если устройств много, это так же, поможет вам проще ориентироваться в них. Подробнее про настройку категорий, я расскажу ниже.

Алиса, понимает и распознает устройства по их роли и функции, и распределяет по комнатам, в зависимости от данных настроек устройств.

Для добавления и управления устройствами Алисы, используется приложение «Умный дом с Алисой«, скачать это приложение вы можете, для Android устройств, по этой ссылке, или для iOS Apple устройств по этой ссылке.

Настройка категорий

Категории устройств.png

Настройка категорий устройств производиться в меню «Категории» админки ioBroker.

Добавьте комнаты которые есть в вашем доме. Вы можете выбрать из списка названий, или придумать свои.

Настройте функции устройств, у меня к примеру используются такие как «Свет, Сигнализация, Водоснабжение, Электроприборы, Температура» и т.п.

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

  • Функции устройств.png

  • Объекты категории.png

Связь с Алисой и ioBroker.iot

Iobroker iot.png

Для связи приложения Дом с Алисой и вашего сервера ioBroker, вам понадобиться аккаунт на сайте https://iobroker.pro.

Регистрация стандартная. Использование данного сайта для связи с умными голосовыми помощниками полностью бесплатно, но есть ограничение на максимальное количество запросов к голосовым помощникам, в день до 200 обращений, в месяц до 2000 обращений. (Могу ошибаться в количестве), мне этого количества запросов вполне хватает.

После регистрации нам надо подключить наш iot адаптер к iobroker.pro, для этого в настройках адаптера iot необходимо ввести логин и пароль вашей учетной записи iobroker.pro. После сохранения, ваш адаптер перезапуститься.

Проверить соединение IOT и iobroker.pro можно на сайте iobroker.pro в разделе «Диагностика». Вы можете посмотреть пример, как выглядит успешное подключение, в скриншотах ниже.

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

  • Iobroker pro iot connection.png

  • Iot adapter.png

  • Iot settings.png

Умный дом с Алисой

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

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

  • Алиса — включи / выключи телевизор
  • Алиса — какая температура / влажность (на даче, в спальне, в детской и т.п.)
  • Алиса — выключи свет / освещение / подсветку (либо в комнате где установлена Алиса, либо явно (на даче, в спальне, в детской и т.п.))
  • Алиса — открой / закрой шторы. (Или открой шторы на 50% и т.п.)
  • Алиса — выключи / включи свет на даче (При этом выключается всё освещение подключенное к умному дому на локации Дача).

Мой брат использует более сложные сценарии, которые прописаны на JavaScipt в iobroker. К примеру он создал виртуальные выключатели, при включении которых на сервере умного дома запускается какой либо сценарий (об этом далее). Вот пример.

  • Алиса — я приехал / уехал (Я дома и т.п.). При этом Алиса, включает виртуальный переключатель в iobroker, а он в свою очередь, запускает программу, которая: включает свет на стоянке, открывает ворота, включает подсветку дома, а так же освещение в доме, и насос (водоснабжение). После того как человек заходит домой, автоматически выключает свет на стоянке. Так же, учитывается освещение на улице (время после заката солнца), если светло, уличное освещение не включается.

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

Примеры:

  • Внимание! Утечка воды в ванной! К примеру с большой громкостью, или мужским голосом, что бы сразу было понятно что ситуация экстренная, оповещения при срабатывании датчика протечки
  • Риск повреждения водопровода. Температура в бойлерной 5 градусов Цельсия! При сильном понижении температуры, риск замерзания воды в трубах.
  • Проникновение на даче. Датчик открытия окна, спальня! При включенной сигнализации. Но, тут уже понадобиться использовать «Сценарии Алисы» что бы сообщать не на локальные колонки которые установлены на даче, а к примеру на домашнюю. У меня сделано уведомление в Telegram.
  • Внимание! Движение у калитки / на парковке. К примеру, парковка находиться за забором, и кто то там ходит, определяем по датчику движения.

Вы можете придумывать свои сценарии, и варианты уведомлений и реализовывать их самостоятельно с использование связки iobroker и Алисы.

Добавление реальных устройств

Дом с Алисой производители устройств.jpeg

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

После выбора нужного производителя, вам необходимо будет ввести учетные записи, в моем случае это Xiaomi Account. И «Дом с Алисой» подгрузит весь список ваших устройств, и предложит добавить их. При добавлении «Дом с Алисой» так же учитывает названия устройств, и их местоположения (комнаты). Что дает возможность быстрее и удобнее настроить их.

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

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

Так же не стоит давать сложные названия вашим устройствам. Названия должны быть простыми, к примеру: Свет, Лампа, Телевизор, Насос, Температура, Пылесос, Дверь, Окно, Занавески и т.п. Главное правильно расположить по комнатам, и выбрать тип (если предоставляется такая возможность).

Ниже вы можете видеть скриншоты, как добавляются устройства Xiaomi в «Дом с Алисой».

  • Дом с Алисой Xiaomi 1.png

  • Дом с Алисой Xiaomi 2.png

Добавление виртуальных устройств

Iobroker devices.png

Виртуальные устройства iobroker, добавят функционала при работе с голосовым помощником Алисой. С помощью таких «устройств» можно запускать скрипты, или управлять не поддерживаемыми Алисой устройствами. Я называю эти устройства виртуальными или Alias.

Для того что бы добавлять виртуальные устройства, необходимо установить драйвер iobroker.devices (Устройства). После установки адаптера, слева в меню админки появится новый пункт «Устройства», где мы будем настраивать новые, или скрывать «не нужные» устройства для голосового помощника Алиса, и драйвера iobroker.iot.

К примеру, давайте создадим виртуальный переключатель «Я уехал», при включении которого будет выполняться программа, а именно: Выключаем не нужное освещение, Выключаем водоснабжение (насос). Включим свет на парковке на 10 минут, если на улице темно.

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

  • Add enum scripts.png

  • Enum scripts 1.png

  • Enum scripts 2.png

В «Скриптах» пишем не сложную программу (я делаю это на javascript, вы можете использовать другие варианты). В программе с помощью createState, мы создаем виртуальную переменную javascript.0.Я уехал, прописываем что будет происходить при включении этого переключателя.

Текст программы:

После запуска программы, в объектах в разделе javascript будет создана наша переменная.

  • Iobroker javascript create.png

  • Iobroker javascript.png

  • Iobroker javascript object.png

Теперь перемещаемся в «Устройства», где создаем виртуальное устройство «Я уехал» которое будет управляться Алисой.

Ставим тип устройства «Розетка», функцию «свет», комнату «скрипты». Обратите внимание что можно выбрать несколько функций и комнат по желанию. Что бы не путаться я ставлю только один вариант.

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

Для нашего переключателя, достаточно одного состояния SET. Нажимаем редактировать и выбираем нашу переменную javascript.0.Я уехал, после чего можно сохранить устройство.

  • Alias device iobroker 1.png

  • Alias device iobroker 2.png

  • New alias device.png

  • Alias device iobroker object.png

Iobroker devices disable device.png

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

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

После этого, мы переходим в адаптер iobroker.iot и проверяем появилось ли там наше виртуальное устройство.

  • Iobroker iot settings.png

  • Iobroker iot new device alisa.png

Если всё в порядке, переходим в приложение «Дом с Алисой» и обновляем список устройств iobroker. Должно появиться новое устройство. Настраиваем его, указав ему название, комнату и т.п. Так же вы можете добавить альтернативные названия, в настройках устройства, что бы обращаться к нему по разному.
Я просто говорю Алисе «Я уехал», после чего устройство «включается» запуская скрипт в iobroker. А именно, начинает выключать свет, и прочее, что вы настроили в вашей программе.

  • Alisa home add device 1.png

  • Alisa home add device 2.png

Таким образом, и схожими действиями, вы можете добавлять свои виртуальные устройства, и управлять тем, что не поддерживает «Дом с Алисой».
Программы и javascript использовать не обязательно, можно создать простое виртуальное устройство, привязанное к примеру к какой либо лампе (объекту этой лампы), и Алиса будет прекрасно управлять им.

Сценарии с Алисой

Вы можете использовать сценарии с Алисой, и писать «программы» её взаимодействия с вашим умным домом, прямо из приложения «Мой дом». Отдавая Алисе заданные вами команды либо настроив реакцию на изменение состояний устройств, вы можете запустить сценарий, который она выполнит. Сценарии удобно использовать для не сложных программ, не прибегая к созданию устройств и скриптов в iobroker.

Вот примеры простых сценариев для Алисы, некоторые из них я использую:

Доброе утро — 1. Алиса отвечает «Доброе утро», и 2. открывает шторы (устройство AQARA SMART CURTAIN CONTROLLER), 3. после включает «Музыку для пробуждения».

Спокойной ночи — 1. Алиса отвечает «Доброго сна», 2. закрывает шторы, 3. Выключает телевизор. 4. Выключает свет.

Новогодний — Активируется по фразе «Раз, два, три, елочка гори!», «Елочка гори» или «Включи новогоднее настроение». Соответственно включает Ёлочку, гирлянды и т.п.

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

Кто то пришел — Активируется изменением состояние датчика открытия. Сценарий заставляет сказать Алису «Тук — тук — тук, кто то пришел!», если к примеру открылась калитка на даче. Уведомление можно отправить на любую колонку, и те что на даче, и те что дома, такой «легкий» вариант «сигнализации».

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

Время кино — Активируется по фразе. Закрывает шторы, включает освещение для просмотра телевизора, включает телевизор.

Вот немного скриншотов:

  • Alisa home scenario1.jpeg

  • Alisa home scenario2.jpeg

  • Alisa home scenario3.jpeg

  • Alisa home scenario4.jpeg

  • Alisa home scenario5.jpeg

Реакция Алисы на события

К сожалению, на данный момент драйвер iobroker.iot не умеет передавать Алисе данные о изменении состояния устройств, поэтому большая часть возможности сценариев которые активируются при изменении состоянии того или иного устройства iobroker, не доступна. В другую сторону (от Алисы в iobroker всё работает хорошо, т.е. Алиса без проблем управляет любым устройством на сервере iobroker).

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

Вывод: Алиса может реагировать: 1. На голосовую фразу. 2. На изменение состояния устройства. Для этого используются сценарии, но из за ограниченного функционала, использование сценариев, часто не дает возможности реализовать задуманное. Я решил эту проблему с помощью Node-Red.

Node-RED — это инструмент потокового программирования, который позволяет в простой визуальной форме реализовать программы управления умным домом, управлять устройствами и автоматизировать дом. В нашем случае, он позволяет полноценно управлять любыми колонками и станциями Яндекс, может управлять музыкой, регулировать громкость, проговаривать через колонку необходимые вам сообщения (причем не только голосом Алисы). Использование Node-red позволяет раскрыть потенциал вашей Яндекс станции практически на 100%.

Заставить Алису говорить (NODE-RED)

IoBroker node-red.png

Итак, как я говорил выше, для вашего умного дома на базе iobroker вам понадобиться драйвер Node-Red. Вернемся в ваш ioBroker. Переходим на вкладку «Драйверы» и устанавливаем драйвер Node-Red. Драйвер установит отдельный веб интерфейс для среды программирования, где мы будем писать «программы» для управления нашими Яндекс колонками.

После установки в админ меню ioBroker появится новый раздел Node-Red. По поводу среды программирования Node-Red вы можете прочитать в интернете, на эту тему написано огромное количество статей и инструкций. Я же в свою очередь, постараюсь разъяснить как именно работать я Яндекс станцией, как связать ваш ioBroker с вашей голосовой помощницей.

Для управления, нам понадобиться добавить модуль node-red-contrib-yandex-station-management GITHUB по ссылке вы можете почитать инструкции и документацию по модулю на Русском языке.
Что бы установить модуль управления Яндекс станцией, вам необходимо зайти в настройки драйвера ioBorker Node-red, и вписать название модуля «node-red-contrib-yandex-station-management» в поле Дополнительные NPM модули. После чего адаптер подгрузит необходимый модуль и будет перезапущен. Отследить правильность установки модуля, и возможные ошибки вы можете на вкладке iobroker «Журнал». (см. скриншоты).

После успешной установки можно переходить в Node-Red и проверить наличие нужных для работы модулей, ioBroker и Yandex Station.

  • Iobroker node-red add module.png

  • Node-red add module log.png

  • Iobroker node-red.png

Управлять получиться только локальными станциями, т.е. теми которые подключены к той же локальной сети (сети Wi-Fi) что и ваш умный дом ioBroker и Node-Red.
Для управления Яндекс станцией вам понадобиться токен Яндекса, который можно получить несколькими способами. См. инструкцию: GITHUB. У меня на аккаунте яндекс используется двухфакторная авторизация, поэтому получилось получить токен только этим способом.

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

Далее добавим ноду Inject которая будет запускать нашу программу и передавать дальше сообщение, которое должна проговорить колонка. Укажем название «Запуск», и сделаем что бы в переменную msg.topic передавалась текстовая строка «Вам привет из Node-Red !». Жмем «Готово» что бы сохранить изменения.

Теперь добавим ноду Yandex OUT — где опять настроим название, в разделе «Станция» выберем нужную колонку которая будет проговаривать сообщение, команда «Синтез речи из текста», текст «msg.topic». Эта нода проговорит на нужной нам колонке, нужным нам голосом и громкостью, наше сообщение, вы можете добавить эффекты, сменить голос, настроить другие варианты голосового оповещения.

Не забудьте соединить точки ноды Inject и Yandex OUT что бы всё работало. После чего нажмите «Развернуть» в правом верхнем углу веб интерфейса Node-Red, что бы запустить программу. Вы увидите процесс соединения с колонкой, и при нажатии кнопки Inject, она должна будет произнести нашу фразу

  • Node red alice0.png

  • Node red alice1.png

  • Node red alice2.png

  • Node red alice3.png

  • Node red alice4.png

  • Node red alice5.png

  • Node red alice6.png

Вот и готова первая простая программа, которая будет нам проговаривать фразу на колонке Яндекс. Далее попробую рассказать, как взаимодействовать с вашими устройствами умного дома, и реагировать на события происходящие в Умном доме ioBroker.

Пример реакции на событие ioBroker

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

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

У меня на даче, используется 3 таких датчика, которые я положил на возможные места протечки, и если будет обнаружено замыкание контактов такого датчика, в объектах iobroker у датчика измениться значение wleak, после чего, в зависимости от программы, производятся некоторые действия, уведомление на колонку (можно добавить уведомление в Telegram бот) и т.п.

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

Ознакомьтесь с скриншотами, что бы вам было более понятно, что и как делать.

  • Nodered iobroker prog1.png

  • Nodered iobroker prog2.png

  • Nodered iobroker prog3.png

  • Nodered iobroker import.png

Понравилась статья? Поделить с друзьями:
  • Умный динозавр игрушка kari инструкция
  • Умный выключатель tuya wifi инструкция
  • Умный браслет хонор band 6 инструкция по применению на русском
  • Умный браслет здоровья инструкция по эксплуатации
  • Умный браслет xiaomi инструкция на русском