Алиса управляет компьютером-3 (Python)
Вступление
В данной статье мы создадим виртуальный пульт для управления действиями ПК, которому будут доступны:
- запуск приложений,
- открытие веб-страниц в браузере,
- выключение ПК,
- использование "горячих" клавиш.
Тем, кто знаком с языком программирования Python, будет несложно расширить скрипт по своему вкусу. А пользователи с начальными знаниями легко используют под свои нужды функции из примера.
Мы используем в примере такие инструменты:
- Python (устанавливается на компьютер, непосредственно способ управления ПК)
- NirCmd (устанавливается на компьютер, расширяет возможности управления ПК)
- Blynk (необходим для создания виртуального пульта в смартфоне)
- Навык "Домовёнок Кузя" (для связи Blynk с Алисой)
Начало. Устанавливаем Python
Нам потребуется скачать и установить среду разработки Python (будем управлять компьютером с его помощью).
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь ))
Итак:
- Скачиваем Python по ссылке.
- Запускаем установщик.
- Устанавливаем галочку на "Add Python <версия> to PATH".
Лучше сделать папку Python доступной для переменной %PATH%. Если поставите Python в недоступное для переменной %PATH% место, команды запуска скриптов будут такими: <Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py
- Нажимаем "Install Python" и продолжаем установку, соглашаясь со всем предлагаемым.

По окончании установки проверяем работоспособность, заодно ставим нужные библиотеки:
- Открываем командную строку (Нажимаем Win+R, вводим cmd, нажимаем Enter)
- Вводим поочередно две команды (или загружаем файл файл-сценарий установки библиотек и просто запускаем его):
pip install blynklib - библиотека Blynk для Python.
pip install pyautogui - библиотека для работы с горячими клавишами.
Регистрируемся и собираем пульт в Blynk
Регистрация в Blynk подробно описана здесь.
Для нашего случая неважно, какие устройство и способ подключения вы выберете при создании проекта. Нам нужен только токен и любой добавленный проект.
Добавляем в проект нужное количество кнопок (Button). Оформляем и подписываем по вкусу:
-
Добавляем кнопки
-
Оформляем
Настраиваем скрипт (вариант для ленивых)
Загружаем архив с необходимыми файлами. и распаковываем его в папку C:\blynk_2_0. В итоге на диске C:\ должна лежать папка с 7 файлами:
- blynk.py - основное тело скрипта.
- config.py - файл с конфигурацией.
- install_libs.bat - файл-сценарий для установки библиотек python из Главы 2 данной статьи.
- nircmd.exe - программулька, способная расширить возможность командной строки. Подробнее по командам ТУТ.
- strt.bat - пакетный файл запуска скрипта в обычном режиме.
- strt_hide.bat - пакетный файл запуска скрипта в скрытом режиме.
- close_script.bat - пакетный файл для закрытия скрипта который работает в скрытом режиме.
В данной версии скрипта:
- Настроено 50 виртуальных пинов для работы в трех режимах:
- 0 - Путь к приложению/Команда для командной строки CMD
- 1 - web-ссылка для открытия файлов
- 2 - сочетание клавиш
- Виртуальный пин V0 занят для ползунка управления общей громкостью системы (для этого в приложении Blynk нужно добавить виджет "Slider" и указать ему пин V0. Пределы значений поменять с 0-1023 на 0-100, т.е. 100% громкости.)
Настраиваем скрипт (вариант для дотошных)
Загружаем скрипт по ссылке, открываем любым текстовым редактором (мне по вкусу Sublime Text, но подойдёт и встроенный Блокнот) и видим:
Несмотря на страшный вид, все просто:
Вместо ВАШ_ТОКЕН_Blynk вставляем токен, полученный при создании проекта.
BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен
Чуть ниже комментариями выделен блок с функциями виртуальных пинов Blynk. Например, чтобы добавить функцию открытия командной строки по нажатию на привязанную к пину V4 кнопку, добавим блок
в любое место выше этого комментария:
#---------------------Конец блока функций для виртуальных пинов blynk-----------------
Разберём работу блока:
- @blynk.handle_event('write V4') - объявляем, что функция выполнится после чтения виртуального пина V4 (чтобы использовать пин V5 - меняем 'write V4' на 'write V5').
- app = "cmd" - вместо cmd вписываем реальный путь к программе (например "С:\Program Files\AIMP\AIMP.exe") или консольную команду (например "cd C:\windows\").
Сохраняем скрипт.
Проверяем работу скрипта и кнопок
Самый простой способ запуска (тк в дальнейшем можно оперировать файлом) - с помощью bat-файла:
- Открываем блокнот (Win+R, вводим notepad, нажимаем Enter)
- В блокноте пишем: python <путь к файлу скрипта>\blynk.py
- Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "Тип" выбираем "Все файлы". Пишем имя файла <удобное_имя>.bat)
- Запускаем <удобное_имя>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk:
И снова Алиса, и снова Кузя
Итак, у нас уже работает удалённое управление, осталось познакомить виртуальные пины Blynk с Алисой. Как это сделать, рассказано здесь.
Для перфекционистов
И всех тех, кому мешает окно командной строки ;)
Конечно, для постоянного доступа к управлению нужно добавить наш файл запуска в автозагрузку windows. Но далеко не всем нужно (и понравится) иметь лишнее консольное окно, болтающееся среди остальных программ. Есть несколько способов его скрытия, предлагаем вариант с использованием приложения NirCmd (тем более, что объем у нее неимоверно маленький, а функционал большой).
Для этого:
- Загружаем NirCmd на официальном сайте (внизу страницы).
- Распаковываем nircmd.exe из архива в любое удобное место.
- Меняем в нашем bat-файле строку
python <путь к файлу скрипта>\blynk.py
на
<Путь к файлу>\nircmd.exe exec hide python <путь к файлу скрипта>\blynk.py
Теперь лишнее окно скрыто, но наблюдать и завершить его работу можно будет только из "Диспетчера задач" - по имени процесса "python".
NirCmd пригодится и для управления функциями ПК (если укажем нужные команды в соответствующем блоке функций для пинов).
Подробнее о том, что умеет эта программулька - в списке на официальном сайте.
Послесловие
Скрипт является простейшим примером использования Умного дома Яндекса в управлении вашим компьютером. На его основе можно и нужно экспериментировать дальше) В статье приведены лишь наиболее необходимые методы (например, горячие клавиши, которые можно использовать для AIMP или другого ПО, и NirCmd, которая может управлять звуком, или даже открывать cd-rom и пугать домашних, если таковой еще имеется =)
Удачи в экспериментах!