В первой части я рассказал про железную часть. Теперь настал черед рассказать о софте.
Итак, в начале
было слово
был четырехканальный выключатель света, с подключенными к нему разными датчиками. Физический интерфейс — RS485. Поверх RS485 реализован упрощенный вариант MODBUS ASCII. Реализованы только функции 03 и 06, в отличие от стандарта адресация байтовых регистров начинается с нуля. Плюс к тому добавлена поддержка широковещательных посылок, ответ на которые не выдается. Ими устанавливается время, либо отключаются все выходы. Через переходник RS485 — RS232 контроллер был подключен к COM порту.
В те далекие времена смартфонов, планшетов и единообразия в браузерах не было, поэтому самый первый вариант управляющей программы был для обычного ПК. Вот такой:
Вариант 1: PC + Windows
Написано все было на Delphi, много кнопок, много циферок, все работает, но есть одно но – зачем мне, находясь дома, включать дома же свет через компьютер? Непонятно. Поэтому началась разработка сетевой версии. И получился:
Вариант 2: PC + Windows + интернет
Был написан небольшой сервис, который работал шлюзом между интернетом и внутренней приборной сетью. Программа была доработана для работы по сети. Все хорошо, все работает, но есть одно но – зачем постоянно с собой носить ноутбук или флешку с программой, чтобы включить дома свет? Непонятно. Поэтому дальнейшая разработка продолжилась. И получился:
Вариант 3: PC + Windows + интернет + мобильный телефон
В те давние времена смартфоны были большой редкостью, браузеры в мобильниках не умели практически ничего, максимум на что можно было расcчитывать – J2ME. В качестве эксперимента в серверную часть был добавлен клиент ICQ, в мобильнике тоже был установлен один из многочисленных асечных клиентов. Все работало, но каждый раз
говорить «ОК, Гугл»
писать на телефонной клавиатуре «Дом, включи мне свет в прихожей, и покажи состояние остальных ламп и датчиков» было не очень комфортно. Поэтому началась разработка J2ME приложения, на основных идеях которого сейчас основан один из интерфейсов. Суть состояла в том, что есть несколько закладок или экранов, каждый из которых соответствовал одному контроллеру. Все работало, все было хорошо, но появилось очередное но – прогресс не стоял на месте, браузеры из программ для показа страничек с картинками научились много чему дополнительно. А содержать параллельно три ветки – Win32, J2ME и Web – стало лень. Да и смартфоны с планшетами бодро зашагали по планете. Поэтому разработка продолжилась и вылилась в окончательный на сегодня:
Вариант 4: LAMP + интернет + Web
В клиентской части было решено не распылятся на разные технологии, а оставить только одну – HTML+JS. Благо, мобильные и десктопные браузеры научились делать многое и главное – одинаково.
Была полностью пересмотрена идеология всей системы, если раньше серверная часть была просто шлюзом между железом и приложением, то сейчас появилось несколько дополнительных задач:
- Клиенты (либо скрипт в роутере, либо шлюз) периодически отправляют на сервер свой адрес, по которому в дальнейшем сервер с ними работает. Своего рода DynDNS
- Раз в час сервер синхронизирует время на всех контроллерах, так как часов реального времени в них нет, а есть только программные
- Раз в минуту сервер опрашивает все контроллеры и заносит ответы в базу
Также в настройках можно задать параметры, при изменении которых сервер отправлял письмо, и заносил событие в лог. Имея базу с накопленными значениями, можно строить разные графики – температура например, или напряжение, или потребляемая мощность.
Все это работало у меня дома сначала в роутере Asus WL-500gP V2, перешитом прошивкой «от Олега и энтузиастов» на котором были установлены Lighttpd + PHP5 + MySQL. К роутеру был подключен переходник USB-RS232 и настроен ser2net. В базе хранятся настройки и логи, админка и сервисы написаны на PHP. Потом был разработан шлюз Ethernet-RS485, и все это переехало на один из облачных хостингов.
Бонус
Так как в прошлой части было много картинок – то решил рассказать об одном из проектов в этой части. Заодно рассмотрим проблемы масштабируемости и разницу между проводным и беспроводным интерфейсами, по поводу которых в прошлой части было много споров. Проект важный, но, к сожалению, с туманными перспективами. Итак, начнем.
Предположим, есть участок. На нем есть несколько зон освещения, например вход, дорожка, стоянка для машины. Отдельно – калитка с электрозамком, и въездные ворота с электроприводом. Есть гараж, чтобы не размениваться по мелочам – два этажа, по две зоны освещения на каждом, и с раздельным отоплением. Есть видеонаблюдение и интернет.
На первом этаже установлены:
Сверху – контроллер освещения и отопления 1 этажа, УЗО и автомат с независимым расцепителем. Второй ряд – контроллер защиты электросети с реле на 100А, снизу – 12В блок питания и контроллер освещения на участке. В самом низу – двухканальный приемник, который через контроллер освещения позволяет находясь на улице включить свет на входе и открыть замок калитки.
На втором этаже:
Сверху – электроника от оконного кондиционера, она сама по себе. Второй ряд – шлюз Ethernet-RS485, снизу – контроллер освещения и отопления второго этажа и силовые реле для конвекторов.
Датчики температуры внутри помещения и температуры теплоносителя (воздуха из конвектора в данном случае):
На чердаке – кондиционер, видеорекордеры, роутеры, антенны, моде и прочее:
Все это благополучно проработало зиму, пришла весна, а за ней и лето. А летом что главное? Мангал, беседка и полив. Была выкопана яма, в ней разведена водопроводная арматура:
Слева – фильтр, датчик давления на входе, датчик расхода воды. В центре – датчик протечки, справа – два клапана полива, редуктор понижения давления и датчик давления после редуктора. Установлены два контроллера – освещения беседки и водоснабжения. В самой беседке две зоны – декоративная подсветка и основной свет:
В ящике сверху – контроллер освещения беседки, в центре – блок питания 24В для клапанов и контроллер водоснабжения.
Получилось как то так – второй этаж гаража и беседка:
Между ямой и остальными контроллерами – примерно 15 метров, стена из 30см газобетона и 10см перекрытия ямы из армированной стяжки. Беспроводные датчики и выключатели? Нет, спасибо. Протянут силовой кабель 3х4 и сигнальный 4х0,22, подключены в силовой щиток – и все, свет есть, полив есть, все управляется и показывает состояния датчиков. Как по мне – никаких проблем ни с масштабируемостью, ни с отсутствием беспроводных технологий.
С программно-серверной частью на этом все, в следующей части опишу самое интересное – пользовательский интерфейс.
Home Assistant is an open-source home automation platform. It is known for its user-friendly interface, high level of customization, add-ons, customization, privacy, and more. In this guide, we’ll show you how you can get Home Assistant working on your Windows Server.
Setting up Hyper-V
Home Assistant is not native to Windows Server, and you will not be able to download an EXE application to get it working. Instead, if you want to deploy Home Assistant on your Windows Server, you must download a VM image.
The developers on the Home Assistant website provide an image for KVM, Hyper-V, VirtualBox, and VMware. In this guide, we’ll focus on Hyper-V, as it tends to have the best performance for Windows Server.
To get started, ensure you have Hyper-V enabled and set up on your Windows Server. If you do not have it set up, do the following. First, open up the Server Manager application. Once it is open, click on the “Add roles and features” option.
When you select “Add roles and features,” skip to “Server Selection.” Select your Windows server. After making your selection, move down to “Hyper-V,” and check the box next to it. Upon checking this box, Windows Server will guide you through setting up Hyper-V on your system.
How to download Home Assistant to your Windows Server
Now that you’ve got Hyper-V working on Windows Server, it is time to download the latest release of Home Assistant for Hyper-V. To download, head to the “Windows” section of the Home Assistant website. Once on the website, scroll down, and select the “Hyper-V” link. When you select this link, the Hyper-V vhdx file will download to your Windows Server.
Alternatively, if you wish to download a different version of the VM for VirtualBox, KVM, or Vmware Workstation, select one of the links. However, understand we will not be covering those virtualization solutions in this guide.
Setting up the Home Assistant VM in Hyper-V
To start, open up Hyper-V in Windows Server. Once it is open, select your server below “Hyper-V Manager.” After selecting it, right-click on your server, and highlight “New.” Once “New” is highlighted, select “New,” followed by “Virtual Machine.”
When you start up a new VM, you’ll see the “New Virtual Machine Wizard” appear. Read the “Before You Begin” section, then, click the “Next” button to move to the next page.
On the next page, you’ll need to name your VM. Enter “Home Assistant,” and click the “Next” button to continue. Following the name, you must choose a virtualization type. Choose generation 2, as you need UEFI support, and modern features to run Home Assistant correctly. You cannot change it once it is created. When done making your selection, click the “Finish” button to move to the next page.
Following the generation choice, you must decide how much startup memory to allocate. Enter your desired amount. Then, if you wish, select “Use Dynamic Memory.” Click the “Next” button when done to move on.
After setting up your memory, you must configure your networking. Connect the new VM to your virtual switch, so that it can interact with networks. Then, click the “Next” button to continue to the next page.
With networking configured, you must add a hard disk. Find “Use an existing virtual hard disk.” Then, browse for the Home Assistant disk downloaded previously. When you’ve loaded up the disk, click the “Next” button to continue.
Once you’ve added the hard disk, you’ll see a brief summary of what the VM will be. You can read it. Then, click the “Finish” button to deploy Home Assistant into Hyper-V.
Secure boot
The Hyper-V Home Assistant VM must be set to “Secure Boot,” or it will not work. To set your Hyper-V VM to secure boot, do the following. First, find your VM in Hyper-V. Then, right-click on it and select “Settings.”
Inside the “Security” area of “Settings,” ensure that “Enable Secure Boot” is checked. If it is not, click on it to select it. When it’s enabled, everything should be ready to go.
Configuring Home Assistant in Windows Server
To configure your new Home Assistant installation, do the following. First, find the “Home Assistant” VM in Hyper-V. When you’ve located it, right-click on it with the mouse. You can then power it on.
When Home Assistant is Powered On, open up a browser on the Windows Server desktop. Then, visit the following URL.
http://homeassistant.local:8123
After loading up the URL, you can onboard yourself into Home Assistant. For information on how to onboard yourself, check out the official documentation.
In this guide, I’m going to show you how to install Home Assistant in Hyper-V on a Windows Server 2019 host. The Home Assistant team has already provided a pre-configured image for us to use, so creating this is really simple to get up and running. You can probably have this created from start to finish in less than 15 minutes.
There are a lot of popular ways to run Home Assistant. My preferred method is using the VMWare Workstation install because it supports USB passthrough, meaning I can use a Nortek GoControl zwave/zigbee dongle to control zwave and zigbee devices. However, you can’t have both Hyper-V and VMWare Workstation running on the same computer, so I have VMWare on my desktop and Hyper-V on my server.
Let’s get started!
Limitations of Home Assistant in Hyper-V
Like I mentioned earlier, the biggest disadvantage of installing Home Assistant on a Hyper-V VM is that USB passthrough isn’t supported. These means you can’t use an Aeotec zwave stick (or any other USB hub) to manage your zwave or zigbee devices.
There are some workarounds available, but for the most part – if you install Home Assistant in Hyper-V, plan on using wifi-only devices.
Or, if you are like me, I am setting up a 2nd Home Assistant instance. I ran into some issues with Frigate killing zwave/zigbee on my main Home Assistant install, so I’m installing in Hyper-V solely for the purpose of installing the Frigate addon.
Prerequisites
This guide assumes that you already have a computer or server that has the Hyper-V role installed. If not, there are a ton of guides available on Google. Once Hyper-V is running, you can continue below.
Step 1: Download Home Assistant .VHDX image
To get started installing Home Assistant in Hyper-V, you first need to download the virtual hard disk (.vhdx) image that already has Home Assistant preinstalled.
Download that from here: https://www.home-assistant.io/installation/windows/
After clicking the Hyper-V link, a box will popup. Save this file to your Downloads folder.
Step 2: Create a VirtualMachines folder
Next, create a new folder in Windows. This is where you’re Hyper-V configuration files and the VHDX hard drive will be stored.
For this guide, I created a folder called homeassistant3 on my C:\ drive (C:\VirtualMachines\homeassistant3) You can name your folder whatever you want (mine is just called homeassistant3 because I had other folders already created during testing/creating this guide)
Right click the .zip file in your Downloads folder > Extract all. Then Browse to your C:\VirtualMachines\homeassistant3\ folder.
Step 3: Create Home Assistant Hyper-V VM
Open Hyper-V Manager. Right-click on your local server name (Danny-Server in the screenshot).
Then click New > Virtual Machine.
On the Before You Begin page, click Next.
On the Specify Name and Location page, give your VM a name (i.e. – homeassistant). Check the box for “store the virtual machine in a different location” and then enter the path you created in Step 2 (i.e. – C:\VirtualMachines\homeassistant3\). Then click Next.
On the Specify Generation page, choose Generation 2.
On the Assign Memory page, you can leave this as default 1024 for now (this can easily be changed later). Leave Use Dynamic Memory unchecked.
Under Configure Networking, select the dropdown and choose your network adapter. Note: If this is the very first VM you’ve ever created and nothing shows up here, you will first need to go into the Virtual Switch Manager settings of Hyper-V Manager and create a new External Switch.
On the Connect Virtual Hard Disk screen, choose Use an existing virtual hard disk. Then, browse to C:\VirtualMachines\homeassistant3 and select the .vhdx.
Then click Next and Finish. Congratulations! You’re VM is now setup and ready to start using.
There is one more thing you need to do before you power it on.
Step 4: Disable Secure Boot
Before you can boot your new VM, you first need to disable secure boot.
On your Hyper-V dashboard, you’ll see your new VM. Right-click it and go to Settings.
Under the Security section, uncheck Enable Secure Boot. Then click OK. The VM will not boot properly if you forget to do this.
Step 5: Start Home Assistant VM from Hyper-V Manager
To start your virtual machine, just right-click it and click Start.
Next, double-click the VM so you can what’s going on in a new window. You should see it running through a bunch of startup tasks.
If all goes well, then after a minute or so, it should land on a System Information page showing you the IP address of your Home Assistant instance:
Step 6: Launch Home Assistant in a Web Browser
If you made it to this screen, then all you need to do is enter the IP address and port into your web browser (i.e. – 192.168.68.133:8123). It will display a screen that says “Initializing, this may take up to 20 minutes” but in my experience, it took less than 1.
Once this screen goes away, you’ll be met with a user creation screen:
After creating a user, you’ll have a few additional first time parameters to setup, such as setting your timezone, currency, and whether or not you want to share analytics and statistic with the HA developers, etc.
Home Assistant can automatically attempt to start setting up devices on your network. Since this is just my 2nd instance and I’m only installing Frigate on it, I’m just going to click Finish.
And as you can see, Home Assistant has successfully been installed on a Hyper-V virtual machine in 2021!
Troubleshooting Home Assistant on Hyper-V Install
VM not booting: Disable secure boot (see step 4)
Not loading IP address/hostname in browser: Open Command Prompt and type ipconfig /flushdns or use a Google Incognito browser.
hostname conflicts: If you are setting this up as a secondary Home Assistant instance, then it’s possible you have two devices on your network with the default name “homeassistant”. You can change the hostname of your main instance under Supervisor>System>Host.
VM still not working: If all else fails, create a brand new VM and try it again.
The first time I set this up in Hyper-V, I didn’t disable secure boot. After turning the VM off and disabling it, I still couldn’t load the instance in a web browser, so I resorted to creating another brand new VM and ensuring to turn off secure boot BEFORE starting it. After that, it launched exactly as expected.
Wrapping Up
Now that you’ve got everything configured correctly, I urge you to look through some of my 50+ other Home Assistant tutorials. I’m sure you’ll find something fun and useful to include in your own Home Assistant setup.
If you run into any issues while following my guide, please let me know in the comments below! I’d be happy to help you out.
Локальный сервер Настройка и регистрация
Понятие автоматизации тесно связано с понятием автономности. Поэтому, естественное и справедливое желание владельца умного дома стремиться предусмотреть тот случай, когда облачный сервер окажется вне доступа. Хотя, на практике все мы понимаем, что без Интернета никуда, но нас так или иначе разъедает мысль изнутри : А вот что, если отключат? Не будем глубоко разбираться и доказывать вероятности, просто примем это как наш эволюционный ментальный инстинкт, который спасал нас ранее и требует сатисфакции.
Компьютер для сервера
Если Вы решили организовать свой собственный сервер умного дома, то прежде всего Вам потребуется личный компьютер-сервер. Он должен будет находиться с контроллерами в одной общей локальной сети. Какой компьютер выбрать? Это вопрос не имеет однозначного ответа. Да, самый простой вариант, это использовать в качестве сервера старый системный блок. Однако, он может быть достаточно шумным, и ненадежным. Есть вариант использования одноплатных компьютеров, типа Raspberry Pi. Мощности их будет достаточно, но необходимо обратить внимание на особенности их работы с Flash-картами, которые могут иметь ограниченный срок службы. Из нашей практики, наиболее стабильным решением будет являться сервер на базе форм-фактора Mini ITX. Такие компьютеры, более стабильные, менее шумные и малогабаритные.
Установка ОС и ПО
После выбора компьютера для сервера, Вам понадобится установить на него операционную систему (ОС). Возможно, и даже скорее всего, домашний сервер будет выполнять ряд задач. Например, он может выполнять функции общего сетевого хранилища (NAS), поддерживать систему видеонаблюдения, реализовывать задачи мини-АТС для IP-телефонии, быть игровым сервером ну и конечно уже сдержать какое-либо программное обеспечение (ПО) для организации умного дома. Поэтому, трудно рекомендовать какую-либо ОС для Вашего сервера, потому что она должна учитывать все Ваши задачи. Мы же, в свою очередь, реализовали сервер SmartESP таким образом, чтобы он мог быть установлен на максимальное число разнообразных компьютерных платформ.
Это технология называется контейнеризацией и позволяет в рамках одной системы запускать разные сервисы со своими специфическими требованиями. Мы используем технологию Docker, которая позволяет установить сервер SmartESP в отдельном контейнере. Процесс установки сервера достаточно прост для начинающего администратора и описан ниже.
Предположим, что у Вас уже есть домашний сервер на котором установлена ОС семейства Linux, например можно использовать Ubuntu 20.04 LTS.
- Подготовка директорий:
- Создайте новую директорию, которая станет основной для проекта:
$ mkdir /var/smartesp - Создайте директорию для базы данных:
$ mkdir /var/smartesp/db - Настройка конфигурационных файлов:
- Перейдите в рабочую директорию проекта:
$ cd /var/smartesp - Создайте и отредактируйте файл
config.iniсо следующим содержимым (Вы можете использовать команду:nano config.ini):
; Code page
CHARSET = "UTF-8"
; Database
DB_HOST_NAME = "db"
DB_NAME = "smartesp_db"
DB_USER_NAME = "smartesp_user"
DB_USER_PASS = "smartesp_pass"
; Secret key to restrict calling of the special cron-scripts
MASTER_KEY = "master_key"
; User registration secret key (allow all if empty)
REGISTER_KEY = ""
; Log retention period with full report, days
SAVE_LOG_PERIOD = 2
; Retention period for the summarized report archive, days
SAVE_ARCHIVE_PERIOD = 1000 - Создайте и отредактируйте файл
docker-compose.ymlсо следующим содержимым (Вы можете использовать команду:nano docker-compose.yml):version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql_passkey
MYSQL_DATABASE: smartesp_db
MYSQL_USER: smartesp_user
MYSQL_PASSWORD: smartesp_pass
volumes:
- /var/smartesp/db:/var/lib/mysql
restart: always
web:
depends_on:
- db
image: smartesp/smartesp-vega:stable
volumes:
- /var/smartesp/config.ini:/var/www/html/config.ini
ports: - 80:80
restart: always - Установка и запуск контейнера:
- Убедитесь, что у Вас установлены Docker Engine и Docker Compose
- Скачайте образ сервера: docker:/smartesp/smartesp-vega:
$ docker pull smartesp/smartesp-vega:stable - Запустите ваш докер-контейнер и связанные с ним сервисы в фоновом режиме:
$ docker-compose up -d - Настройка планировщика задач. Откройте крон-таблицу текущего пользователя командой:
$ crontab -e
и добавьте следующие задания:3 0 * * * /usr/bin/wget -O /dev/null -T 10 -t 1 http://192.168.XXX.XXX/cron/service/master_key/
* * * * * /usr/bin/wget -O /dev/null -T 59 -t 1 http://192.168.XXX.XXX/cron/auto/master_key/192.168.XXX.XXX — это IP-адрес Вашего сервера в локальной сети.
В случае, если необходимо остановить и обновить или перезапустить контейнер, то это можно сделать следующим образом:$ docker-compose down
$ docker pull smartesp/smartesp-vega:stable
$ docker-compose up -d
Внимание!
После запуска контейнера, потребуется некоторое время пока будет создана база данных. Поэтому при открытии сайта, может появляться сообщение Connection refused. Просто подождите несколько минут и обновите страницу.
После установки сервера, откройте его в браузере и выполните первоначальную установку (создание базы данных), нажав кнопку Запуск.
После этого выполните стандартную регистрацию нового пользователя.
Вот и всё! Ваш собственный сервер готов к работе.
Регистрация локального сервера
Есть еще несколько интересных и важных момент которые стоит упомянуть.
Прежде всего, это возможность получать уведомления. Не смотря на то, что Ваш собственный сервер локальный, тем не менее это не означает, что Вы тоже будете находится всё время рядом с ним. Север может иметь выход в Интернет, благодаря чему появляется очень полезная возможность отправлять уведомления о критических состояниях умного дома. Система уведомлений реализована в каждом проекте и может быть крайне важна. Вот пример автоматических уведомлений созданных для проекта климат-контроля:
Для получения уведомлений, необходимо зарегистрироваться на сайте SmartESP в своем Персональном разделе.
После регистрации, перейдите в раздел Сервера и нажмите кнопку Новый сервер.
В появившемся окне, укажите условное Имя Вашего сервера, а также выберете вариант Local. Кроме этого поля, Вам понадобиться указать Код лицензии. Для этого зайдите на свой собственный сервер как пользователь и перейдите в раздел Учетная запись, где будет доступен Ваш уникальный код лицензии. Скопируйте его сюда.
Нажмите Сохранить и в списке Ваших серверов появится новая запись.
Чтобы подтвердить её, нажмите кнопку Отправить и Вам тут же будет выдан соответствующий лицензионный ключ.
Скопируйте его и перейдите обратно на собственный сервер в панель управления. Отредактируйте поле Лицензионный ключ, вставив ранее скопированный номер.
Готово! теперь Ваш собственный локальный сервер получил возможность отправлять уведомления через наш облачный сервер на Ваш Telegram-мессенджер.
Создание умного дома с голосовым управлением от А до Я. Алиса и 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, а также имеется возможность подключиться к нему проводом.
Установка системы 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 минут.
Извлекаем флешку, и перебираемся к нашему новому домашнему серверному ПК, который ещё, конечно, не сервер, но очень хочет им стать.
Процесс установки
Надеюсь, тот кто читает эту статью уже сталкивался с установкой 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.
Настройка сервера
Определение локального IP адреса
Для начала вам необходимо определить IP адрес вашего сервера, это можно сделать в самой системе Debian, выбрав «Параметры, Wi-Fi», и нажав шестеренку рядом с названием вашей беспроводной сети» Смотрим Адрес iPv4, в моем случае это 192.168.1.63
Либо посмотреть в адмике вашего роутера.
Другой компьютер с которого мы будем настраивать ваш сервер, должен находиться в той же Wi-Fi сети, что и сервер Debian, мы будем подключаться к нему по локальному IP адресу… Как сделать это из другого места я расскажу позже.
Дальнейшая работа с вашим сервером в основном будет производиться удаленно с другого компьютера, ещё будет пару нажатий, для настройки удаленного доступа (об этом чуть дальше).
Так же вам необходимо зафиксировать локальный IP адрес (сделать IP адрес вашего сервера постоянным), для этого надо настроить резервирование IP адреса на DHCP сервере в настройках роутера. Как зайти на роутер, и как сделать это… Для каждого роутера процесс может немного отличаться, так что воспользуйтесь инструкциями из интернета.
В будущем вам придется фиксировать адреса умных Wi-Fi устройств (станций, розеток, лампочек), что бы их локальные IP адреса не менялись при перезагрузке вашего оборудования, это важно, иначе, сначала всё будет работать отлично, но потом… сервер не сможет найти лампочку или розетку, и в момент торжественной презентации Умного дома вашей жене, у вас что то не сработает. 
Терминал для настройки
Настройка сервера производиться через терминал, можно использовать программу терминал на сервере DEBIAN, но я рекомендую настраивать сервер удаленно, т.е. с другого компьютера, это удобнее, быстрее, и ещё пригодиться в будущем, когда вы уберете ваш сервер по дальше, т.к. нужды лазать в него у вас не будет.
Для доступа к серверу мы будем использовать SSH клиент, я использовал PuTTY, т.к. он мне кажется наиболее простым и удобным. Скачиваем PuTTY с официального сайта https://www.putty.org/ и запускаем.
Вводим IP адрес сервера, выбираем SSH соединение, и подключаемся к серверу.
Подготовка к настройке
Авторизуемся сначала под пользователем 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
Установка 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 !
Во время установки будут установлены все необходимые для работы библиотеки.
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, потребуется подтверждение входа на сервере, а это нам не нужно… Мы же собираемся убрать его в шкаф, и больше никогда не доставать. 
Действия производим прямо на сервере.
- Запускаем AnyDesk
- Нажимаем на «бар» с правой стороны окна программы
- Настройки
- Безопасность
- Разблокировать настройки безопасности (вводим пароль)
- Профиль прав доступа – Неконтролируемый доступ
- Ставим галочку «Разрешить неконтролируемый доступ»
- Придумываем и вводим дважды пароль (лучше запишите).
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, и пробуем подключиться.
После успешного подключения, если вы видите окно с просьбой подтвердить вход на сервере. Значит неконтролируемый доступ настроен неправильно. Иначе вам будет предложено ввести пароль неконтролируемого доступа, который вы настроили выше.
Если всё удачно, мы увидим рабочий стол нашего Debian сервера. Такой доступ может понадобиться в некоторых случаях, либо для удаленного доступа в случае, если у вас нет выделенного IP.
Всё. Сервер можно убирать в шкаф, бойлерную, на чердак, или куда вам будет удобно, всё дальнейшее управление вы сможете производить удаленно с другого компьютера. На то он и сервер, чтобы работать постоянно, стабильно, и что бы на нем не играли соседские дети пришедшие к вашему ребенку в гости. :)
Запуск и настойка ioBroker
Вот и пришло время заняться настройкой системы умного дома ioBroker, ради которой мы так долго настраивали наш сервер.
В браузере, вводим http://192.168.1.63:8081 (соответственно вы вводите IP адрес вашего сервера, как его получить я писал выше).
Проходим первоначальную настройку ioBroker, даем или не даем согласие на сбор статистики, придумываем пароль для входа в систему, и проходим другие первоначальные настройки, после чего попадаем в админку.
Этапы настройки нашего умного дома будут выглядеть следующим образом:
- Установка необходимых адаптеров (драйверов).
- Настройка адаптеров и подключение устройств к 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).
Далее, опять нам понадобиться 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:
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 адаптер для 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
Есть небольшая сложность с купленными в интернете координаторами. Мне пришлось заказывать ещё провод для прошивки CCDebugger и прошивать его, для того что бы он работал именно так, как мне необходимо, а именно как ZigBee координатор, через который к серверу умного дома подключаются устройства.
Устройство должно быть прошито соответствующей прошивкой координатора. Список поддерживаемых координаторов, необходимое оборудование для прошивки и процесс подготовки устройства под разные устройства координатора описаны здесь (на английском языке) или здесь (на русском языке)
Вообще про прошивки, ZigBee координаторы, и всё что связано с ZigBee и умным домом вы можете почитать на сайте https://zigbee.wiki/ Илья Киров молодец, подробно и с примерами расписал всё по этому вопросу. Поэтому останавливаться на этом в данном разделе не будем.
Подключение устройств к адаптеру
Для запуска драйвера необходимо указать имя порта, к которому подключен Zigbee-модуль (USB). Обычно это порт /dev/ttyACM0 или /dev/ttyUSB0 для UART-соединения.
Вы можете выбрать из выпадающего списка или получить данные куда подключился Zigbee модуль выполнив команду через терминал SSH.
ls -l /dev/serial/by-id
Подключение устройств, производиться в админке Zigbee адаптера, пункт меню появляется в основном меню после его установки. Нажимаем привязать устройство, делаем сброс на устройстве Zigbee, после чего оно будет подключено к вашему координатору.
Там же, можно управлять устройствами, переключать их состояния, посмотреть качество связи с ними и т.п.
Все подключенные устройства, так же появятся в объектах, изменять состояния и читать данные устройств, можно так же и от туда, я это делаю через javascript, но об этом далее.
Лампы и светильники Yeelight
У меня дома используется две большие лампы (люстры) Yeelight, ими так же можно управлять через iobroker и Алису. На момент конца 2022 года, лампы Yeelight добавленные через связывание аккаунта Yeelight и Алиса умный дом, не управляются, поэтому я использую управление через iobroker. Так же это позволило мне сделать удобное управление лампами с планшета, на котором я сделал интерфейс для управления освещением, режимы, яркость, цветовая подсветка и прочее.
Добавить очень просто. Устанавливаем адаптер iobroker Yeelihgt, заходим в настройки адаптера, нажимаем поиск устройств, после чего, лампы будут добавлены. В объектах вы найдете новый раздел Yeelight, с объектами с помощью которых вы можете читать данные с ламп, а так же управлять ими.
Что бы работало управление лампами, необходимо в настройках приложения Yeelight включить «Управление по LAN» (см. скриншоты).
Подключение Яндекс станции и Алисы
Приложение «Дом с Алисой»
Для того что бы ваш умный дом работал с Алисой, вам потребуется разложить ваши добавленные устройства, указав для этих устройств «Роль», «Комнату» и «Функцию», а именно где находиться ваше устройство, и какую функцию выполняет. К примеру «ванная — вентиляция», «спальня — телевизор», «кухня — розетка», «зал — освещение», «улица — водоснабжение» и т.п.
Если устройств много, это так же, поможет вам проще ориентироваться в них. Подробнее про настройку категорий, я расскажу ниже.
Алиса, понимает и распознает устройства по их роли и функции, и распределяет по комнатам, в зависимости от данных настроек устройств.
Для добавления и управления устройствами Алисы, используется приложение «Умный дом с Алисой«, скачать это приложение вы можете, для Android устройств, по этой ссылке, или для iOS Apple устройств по этой ссылке.
Настройка категорий
Настройка категорий устройств производиться в меню «Категории» админки ioBroker.
Добавьте комнаты которые есть в вашем доме. Вы можете выбрать из списка названий, или придумать свои.
Настройте функции устройств, у меня к примеру используются такие как «Свет, Сигнализация, Водоснабжение, Электроприборы, Температура» и т.п.
Вы можете перетаскивать устройства в нужные категории с правой части окна настройки, присваивая этим устройствам их комнату и функцию.
Так же, можно выбирать роль, комнату и функцию устройств в «Объектах», там же вы сможете фильтровать вывод объектов по комнатам и функциям.
Связь с Алисой и ioBroker.iot
Для связи приложения Дом с Алисой и вашего сервера ioBroker, вам понадобиться аккаунт на сайте https://iobroker.pro.
Регистрация стандартная. Использование данного сайта для связи с умными голосовыми помощниками полностью бесплатно, но есть ограничение на максимальное количество запросов к голосовым помощникам, в день до 200 обращений, в месяц до 2000 обращений. (Могу ошибаться в количестве), мне этого количества запросов вполне хватает.
После регистрации нам надо подключить наш iot адаптер к iobroker.pro, для этого в настройках адаптера iot необходимо ввести логин и пароль вашей учетной записи iobroker.pro. После сохранения, ваш адаптер перезапуститься.
Проверить соединение IOT и iobroker.pro можно на сайте iobroker.pro в разделе «Диагностика». Вы можете посмотреть пример, как выглядит успешное подключение, в скриншотах ниже.
Подробную документацию по iot адаптеру, вы можете прочитать по этой ссылке. Так же есть немного устаревшие описания на Русском языке по этой ссылке.
Умный дом с Алисой
Приложение «Дом с Алисой» и ваш сервер iobroker дают вам почти безграничные возможности по управлению вашим домом с помощью голоса, всё зависит от вашей фантазии и подключенных в вашем доме устройств.
Вот несколько примеров управления домом, при наличии голосового помощника Алисы, от самых банальных до более сложных.
- Алиса — включи / выключи телевизор
- Алиса — какая температура / влажность (на даче, в спальне, в детской и т.п.)
- Алиса — выключи свет / освещение / подсветку (либо в комнате где установлена Алиса, либо явно (на даче, в спальне, в детской и т.п.))
- Алиса — открой / закрой шторы. (Или открой шторы на 50% и т.п.)
- Алиса — выключи / включи свет на даче (При этом выключается всё освещение подключенное к умному дому на локации Дача).
Мой брат использует более сложные сценарии, которые прописаны на JavaScipt в iobroker. К примеру он создал виртуальные выключатели, при включении которых на сервере умного дома запускается какой либо сценарий (об этом далее). Вот пример.
- Алиса — я приехал / уехал (Я дома и т.п.). При этом Алиса, включает виртуальный переключатель в iobroker, а он в свою очередь, запускает программу, которая: включает свет на стоянке, открывает ворота, включает подсветку дома, а так же освещение в доме, и насос (водоснабжение). После того как человек заходит домой, автоматически выключает свет на стоянке. Так же, учитывается освещение на улице (время после заката солнца), если светло, уличное освещение не включается.
Так же можно заставить Алису сообщать о событиях в доме, да и вообще рассказывать что вам необходимо через колонку Алисы или Яндекс станцию, в любой момент времени, без запросов к голосовому помощнику. Т.е. Алиса, сама начинает говорить, в случае чрезвычайной ситуации, или по другим причинам. Можно регулировать громкость оповещений Алисы, голоса (около 20 голосов), заставить говорить шепотом, или с эффектами. Можно приостановить музыку играющую сейчас на колонке и т.д.
Примеры:
- Внимание! Утечка воды в ванной! К примеру с большой громкостью, или мужским голосом, что бы сразу было понятно что ситуация экстренная, оповещения при срабатывании датчика протечки
- Риск повреждения водопровода. Температура в бойлерной 5 градусов Цельсия! При сильном понижении температуры, риск замерзания воды в трубах.
- Проникновение на даче. Датчик открытия окна, спальня! При включенной сигнализации. Но, тут уже понадобиться использовать «Сценарии Алисы» что бы сообщать не на локальные колонки которые установлены на даче, а к примеру на домашнюю. У меня сделано уведомление в Telegram.
- Внимание! Движение у калитки / на парковке. К примеру, парковка находиться за забором, и кто то там ходит, определяем по датчику движения.
Вы можете придумывать свои сценарии, и варианты уведомлений и реализовывать их самостоятельно с использование связки iobroker и Алисы.
Добавление реальных устройств
Вы можете добавить в «Дом с Алисой» множество устройств, различных производителей. Для этого жмем «плюс» — выбираем «Устройство умного дома», и выбираем в огромном списке производителей, нужного вам производителя, к примеру Xiaomi.
После выбора нужного производителя, вам необходимо будет ввести учетные записи, в моем случае это Xiaomi Account. И «Дом с Алисой» подгрузит весь список ваших устройств, и предложит добавить их. При добавлении «Дом с Алисой» так же учитывает названия устройств, и их местоположения (комнаты). Что дает возможность быстрее и удобнее настроить их.
При добавлении, вам необходимо будет поправить некоторые названия устройств, выбрать их местоположение и комнату. Это обязательное условие, что бы потом, Алиса, могла нормально управлять ими, зная тип устройства (свет, выключатель, датчик), местоположение (дача, квартира) и комнату (спальня, детская..).
Если не правильно указать комнату, или местоположение, Алиса будет путать устройства, переключать то что не должна переключить, или просто не будет находить устройства по вашему запросу.
К примеру, ваша Яндекс станция, стоит в спальне, и вы добавите свет, но укажете не правильно комнату. В этом случае, приказав Алисе, выключить свет, она попытается выключить свет в спальне (т.к. сама находиться в спальне), но не найдет приборов освещения в этой комнате, и команда выполнена не будет.
Так же не стоит давать сложные названия вашим устройствам. Названия должны быть простыми, к примеру: Свет, Лампа, Телевизор, Насос, Температура, Пылесос, Дверь, Окно, Занавески и т.п. Главное правильно расположить по комнатам, и выбрать тип (если предоставляется такая возможность).
Ниже вы можете видеть скриншоты, как добавляются устройства Xiaomi в «Дом с Алисой».
Добавление виртуальных устройств
Виртуальные устройства iobroker, добавят функционала при работе с голосовым помощником Алисой. С помощью таких «устройств» можно запускать скрипты, или управлять не поддерживаемыми Алисой устройствами. Я называю эти устройства виртуальными или Alias.
Для того что бы добавлять виртуальные устройства, необходимо установить драйвер iobroker.devices (Устройства). После установки адаптера, слева в меню админки появится новый пункт «Устройства», где мы будем настраивать новые, или скрывать «не нужные» устройства для голосового помощника Алиса, и драйвера iobroker.iot.
К примеру, давайте создадим виртуальный переключатель «Я уехал», при включении которого будет выполняться программа, а именно: Выключаем не нужное освещение, Выключаем водоснабжение (насос). Включим свет на парковке на 10 минут, если на улице темно.
Для начала нам надо добавить сам переключатель, обозначить ему функцию, и комнату. (Я создам виртуальную комнату «скрипты», что бы «складывать» туда такого рода переключатели).
В «Скриптах» пишем не сложную программу (я делаю это на javascript, вы можете использовать другие варианты). В программе с помощью createState, мы создаем виртуальную переменную javascript.0.Я уехал, прописываем что будет происходить при включении этого переключателя.
Текст программы:
После запуска программы, в объектах в разделе javascript будет создана наша переменная.
Теперь перемещаемся в «Устройства», где создаем виртуальное устройство «Я уехал» которое будет управляться Алисой.
Ставим тип устройства «Розетка», функцию «свет», комнату «скрипты». Обратите внимание что можно выбрать несколько функций и комнат по желанию. Что бы не путаться я ставлю только один вариант.
Далее жмем «Создать» и нам предлагают выбрать состояния для нашего виртуального устройства. С помощью различных состояний, можно создать почти любое виртуальное устройство, диммер, лампу, розетку и т.п.
Для нашего переключателя, достаточно одного состояния SET. Нажимаем редактировать и выбираем нашу переменную javascript.0.Я уехал, после чего можно сохранить устройство.
В «Устройствах» вы можете скрыть лишние устройства от адаптера IOT что бы они не мешались в «Дом с Алисой», в момент добавления устройств. Я часто пользуюсь этой функцией, потому что устройств у меня много, и мне не нужно что бы Алиса знала обо всех.
Есть баг, если вы скрыли устройство, этой кнопкой, потом его не восстановить, для этого, необходимо выключить переключатель, и изменить хотя бы название, что бы изменения вступили в силу.
После этого, мы переходим в адаптер iobroker.iot и проверяем появилось ли там наше виртуальное устройство.
Если всё в порядке, переходим в приложение «Дом с Алисой» и обновляем список устройств iobroker. Должно появиться новое устройство. Настраиваем его, указав ему название, комнату и т.п. Так же вы можете добавить альтернативные названия, в настройках устройства, что бы обращаться к нему по разному.
Я просто говорю Алисе «Я уехал», после чего устройство «включается» запуская скрипт в iobroker. А именно, начинает выключать свет, и прочее, что вы настроили в вашей программе.
Таким образом, и схожими действиями, вы можете добавлять свои виртуальные устройства, и управлять тем, что не поддерживает «Дом с Алисой».
Программы и javascript использовать не обязательно, можно создать простое виртуальное устройство, привязанное к примеру к какой либо лампе (объекту этой лампы), и Алиса будет прекрасно управлять им.
Сценарии с Алисой
Вы можете использовать сценарии с Алисой, и писать «программы» её взаимодействия с вашим умным домом, прямо из приложения «Мой дом». Отдавая Алисе заданные вами команды либо настроив реакцию на изменение состояний устройств, вы можете запустить сценарий, который она выполнит. Сценарии удобно использовать для не сложных программ, не прибегая к созданию устройств и скриптов в iobroker.
Вот примеры простых сценариев для Алисы, некоторые из них я использую:
Доброе утро — 1. Алиса отвечает «Доброе утро», и 2. открывает шторы (устройство AQARA SMART CURTAIN CONTROLLER), 3. после включает «Музыку для пробуждения».
Спокойной ночи — 1. Алиса отвечает «Доброго сна», 2. закрывает шторы, 3. Выключает телевизор. 4. Выключает свет.
Новогодний — Активируется по фразе «Раз, два, три, елочка гори!», «Елочка гори» или «Включи новогоднее настроение». Соответственно включает Ёлочку, гирлянды и т.п.
Ребенок спит — У меня, сценарий регулирует громкость всех колонок на низкий уровень, включает в коридоре и детской комнате свет в «ночной» режим, включает беззвучный режим для дверного звонка.
Кто то пришел — Активируется изменением состояние датчика открытия. Сценарий заставляет сказать Алису «Тук — тук — тук, кто то пришел!», если к примеру открылась калитка на даче. Уведомление можно отправить на любую колонку, и те что на даче, и те что дома, такой «легкий» вариант «сигнализации».
Напугай Маму — Сделал для ребенка, он в своей комнате говорит фразу для активации сценария, а колонка в родительской комнате вдруг начинает рычать и кричать голосами зомби, причем делает это без предупреждения на той громкости которую вы укажете в сценарии, в общем сценарий для приколов и развлечений. Можно заставить Алису типа «отвечать» на странный вопрос, ещё более странным ответом, т.е. тем который вы напишите в вашем сценарии.
Время кино — Активируется по фразе. Закрывает шторы, включает освещение для просмотра телевизора, включает телевизор.
Вот немного скриншотов:
Реакция Алисы на события
К сожалению, на данный момент драйвер iobroker.iot не умеет передавать Алисе данные о изменении состояния устройств, поэтому большая часть возможности сценариев которые активируются при изменении состоянии того или иного устройства iobroker, не доступна. В другую сторону (от Алисы в iobroker всё работает хорошо, т.е. Алиса без проблем управляет любым устройством на сервере iobroker).
Активация сценария по событию, на умных устройствах, работают только с фирменными устройствами к примеру от Xiaomi Mi Home, я использую датчики открытия, датчики движения. Алиса сразу видит если в Mi Home было добавлено новое устройство, нормально понимает когда произошло событие срабатывание таких датчиков.
Вывод: Алиса может реагировать: 1. На голосовую фразу. 2. На изменение состояния устройства. Для этого используются сценарии, но из за ограниченного функционала, использование сценариев, часто не дает возможности реализовать задуманное. Я решил эту проблему с помощью Node-Red.
Node-RED — это инструмент потокового программирования, который позволяет в простой визуальной форме реализовать программы управления умным домом, управлять устройствами и автоматизировать дом. В нашем случае, он позволяет полноценно управлять любыми колонками и станциями Яндекс, может управлять музыкой, регулировать громкость, проговаривать через колонку необходимые вам сообщения (причем не только голосом Алисы). Использование Node-red позволяет раскрыть потенциал вашей Яндекс станции практически на 100%.
Заставить Алису говорить (NODE-RED)
Итак, как я говорил выше, для вашего умного дома на базе 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.
Управлять получиться только локальными станциями, т.е. теми которые подключены к той же локальной сети (сети Wi-Fi) что и ваш умный дом ioBroker и Node-Red.
Для управления Яндекс станцией вам понадобиться токен Яндекса, который можно получить несколькими способами. См. инструкцию: GITHUB. У меня на аккаунте яндекс используется двухфакторная авторизация, поэтому получилось получить токен только этим способом.
Добавляем ноду Station (перетаскиваем с левой панели свободное место справа), в ней создаем новый вариант подключения яндекс (нажать карандашик рядом с полем Login), где придумываем название и вводим полученный ранее oAuthToken.
Далее добавим ноду Inject которая будет запускать нашу программу и передавать дальше сообщение, которое должна проговорить колонка. Укажем название «Запуск», и сделаем что бы в переменную msg.topic передавалась текстовая строка «Вам привет из Node-Red !». Жмем «Готово» что бы сохранить изменения.
Теперь добавим ноду Yandex OUT — где опять настроим название, в разделе «Станция» выберем нужную колонку которая будет проговаривать сообщение, команда «Синтез речи из текста», текст «msg.topic». Эта нода проговорит на нужной нам колонке, нужным нам голосом и громкостью, наше сообщение, вы можете добавить эффекты, сменить голос, настроить другие варианты голосового оповещения.
Не забудьте соединить точки ноды Inject и Yandex OUT что бы всё работало. После чего нажмите «Развернуть» в правом верхнем углу веб интерфейса Node-Red, что бы запустить программу. Вы увидите процесс соединения с колонкой, и при нажатии кнопки Inject, она должна будет произнести нашу фразу
Вот и готова первая простая программа, которая будет нам проговаривать фразу на колонке Яндекс. Далее попробую рассказать, как взаимодействовать с вашими устройствами умного дома, и реагировать на события происходящие в Умном доме ioBroker.
Пример реакции на событие ioBroker
К примеру, давайте сделаем программу, которая будет срабатывать при критической ситуации, а именно: Сработал датчик протечки, и нам надо сообщить через все колонки установленные в доме, о том что произошла протечка, после чего, отключим насос, что бы остановить потоп. 
Вариантов использования этого сценария может быть много, к примеру уведомлении о срабатывании датчика дыма, открытие двери или окна, утечка, отключение фазы, насоса, слишком низкая или высокая температура в каком либо из помещений и т.п.
У меня на даче, используется 3 таких датчика, которые я положил на возможные места протечки, и если будет обнаружено замыкание контактов такого датчика, в объектах iobroker у датчика измениться значение wleak, после чего, в зависимости от программы, производятся некоторые действия, уведомление на колонку (можно добавить уведомление в Telegram бот) и т.п.
Вы можете импортировать мою программу, и посмотреть как в ней всё устроено. Код я разместил ниже:
Ознакомьтесь с скриншотами, что бы вам было более понятно, что и как делать.
