I finally figured out how to make Alice manage any smart devices, even those that are not yet supported by Yandex's smart home. This is done using the services Domovyonok Kuzya and IFTTT.
The chain of devices and services for controlling light turned out to be impressive:
Alice - Kuzya's Brownie - IFTTT - Broadlink Universal WI-Fi remote control - Noolite.
At the same time, everything works fine, the delay is no more than three seconds.
Let's start with IFTTT (If This Then That). This service knows the vast majority of smart home systems and device control and is designed for automation. He can, for example, write a pre-prepared message on Twitter when it rains outside, or turn on a smart light bulb when you are mentioned on Facebook. But we will use it to directly control devices from the Internet. IFTTT will give a command to the device when a call to a certain address on the Internet occurs.
Go to https://ifttt.com and register.
We create an applet for some action, such as turning on a light bulb. We click on our avatar and select Create or just go to the address
Click on "+" and get into the list of source services.
Search for "Webhooks" and click on the blue square of this service.
Click on the square of the only available trigger "Receive a web request".
Coming up and writing a simple name for the action, for example "lamp-on". Click "Create Trigger".
The condition is created, press the second plus.
We are on the action list.
We type in the search the name of the application that controls the desired device (for example, ihc for Broadlink or SmartLife for the cornice), and click on the icon of the desired service.
The service will ask for access to your account of the corresponding application. After entering the login and password from ihc, we get to the list of commands. If we want to turn on the light bulb, select "Turn device on or off".
Select the device and action and click "Create action".
Disable the notification engine and click "Finish".
In the same way, we create applets for all the necessary actions.
We go to My Services (avatar - My services or https://ifttt.com/my_services).
Click on "Webhooks"
Press "Documentation" at the top and see this picture.
Copy and save the line after "Make a POST or GET web request to:".
In my case, this is the line " https://maker.ifttt.com/trigger/{event}/with/key/Y7_exM2lhgyH". Instead of "{event}", insert the name of the required action and get the address, upon switching to which the action will be launched.
In my example, the action name was "lamp-on", so the address will be https://maker.ifttt.com/trigger/lamp-on/with/key/Y7_exM2lhgyH (don't click on it, my light won't turn on - I changed the API key :). You can check the operation of the action by copying the address into the browser line and pressing Enter.
Now we have a list of addresses, upon clicking on which the necessary actions are launched. The Brownie Kuzya will help Alice learn to navigate to these addresses.
We go to the address https://alexstar.ru/smarthome.
Log in through Yandex, click "Add IFTTT rule".
We write an activation phrase, for example "turn on the light" and copy our IFTTT address with the required command in it.
All data is saved automatically, Kuzi simply does not have a save button.
Add IFTTT rules for all actions previously created in the IFTTT service.
Click "Virtual smart home devices".
We create a new device. We select the type "Lamp" and name our device Chandelier (this word will later be used for Alice's commands). We select the rules created in the previous step for turning the chandelier on and off.
We launch the Yandex application on the smartphone, go there to Devices, Device Management, click "+", select "Add device", find Kuzyu in the list, add it and link accounts. A chandelier appeared in the list of Yandex smart home devices, which can be controlled.
Yandex shows many commands, but we are interested in "Alice turn on the light" or "Alice turn on the chandelier".
Now the chandelier can be controlled by voice (if of course there is an assistant speaker).
Several nuances and tricks.
Broadlink RM Pro or RM Pro + are used to control Noolite power units.
Now this device costs $ 37.9, I bought it from the same seller at a sale for $ 26.7 including a coupon.
Broadlink RM Pro can memorize IR remote control commands and 433 and 315 MHz radio commands. When recording a command, the iHC application asks to press and hold a button on the remote control. In the case of Noolite, this cannot be done (holding the switch gives another command). You need to click on the switch button often, often until the application recognizes this as a continuous repetition of the command. Because of this, it will not be possible to record a dimming command, but you can take a Noolite remote control, save a couple of scenarios (for example, minimum brightness and medium brightness) and write these commands.
With the help of Broadlink RM Pro and the services I wrote about above, you can "teach" Alice to control any devices with IR and radio controllers.
It turned out that IFTTT does not know that there are curtain rods in SmartLife and when I tried to add an action, the list of devices was empty. But I found a way out: IFTTT can execute SmartLife scripts. I created two scenarios with impossible conditions in the SmartLife application: open the curtains when the temperature in Moscow is exactly -40 degrees and open the curtains when it is exactly -39. IFTTT, and Alice through Kuzya, using the commands "Alice open the curtains" and "Alice close the curtains", execute exactly these scenarios.
If devices are added to Domovenka Kuzyu after the Domovenok is added to Yandex's smart home, new devices will not appear in Yandex by themselves. For them to appear, you need to select the Kuzi Brownie add-on in the Yandex application again and click the "Update device list" button.
It turned out that if Yandex has several lamps (in my case, two chandeliers in two rooms), the commands "Alice turn on lights "and" Alice turn off the lights "turn all lamps on and off, so it is important to give unique names to lamps in Brownie. I still call them "Chandelier" and "Light in the bedroom".
Someday, in a bright future, Yandex will add BroadLink and learn to control the curtains (or at least scenarios) SmartLife (now it only supports light bulbs and sockets), but for now you have to use such crutches, which are quite work.
At first glance, everything I wrote about today looks cumbersome and very complicated. In fact, you need to figure it out once, and then everything becomes simple, convenient and very fast.
P.S. The second day I control the lights and curtains with my voice and it turned out to be very convenient.
© 2020, Alexey Nadezhin
The main topic of my blog is technology in human life. I write reviews, share experiences, talk about all sorts of interesting things. My second project - lamptest.ru. I test LED bulbs and help figure out which ones are good and which are not so good.