Перейти к содержанию

Алиса управляет компьютером-3 (Python): различия между версиями

Материал из Wiki yaboard
Нет описания правки
 
(не показаны 22 промежуточные версии 5 участников)
Строка 1: Строка 1:
{{metadesc|{{PAGENAME}} | 3: Продвинутое управление при помощи Python}}
__NOEDITSECTION__
__TOC__
{{Плашка | text = Корневая страница раздела: [[Алиса управляет компьютером]]}}
== Вступление ==
== Вступление ==
В данной статье попробуем создать виртуальный пульт, UI для управления действиями ПК. В данном примере рассмотрим такой функционал, как запуск приложений, открытие веб-страниц в браузере, выключение ПК и использование "горячих" клавиш. К слову - это не весь функционал, который можно применить, прочитав данную статью. Для тех, кто знаком с языком программирования Python не составит труда расширить предложенный скрипт по своему вкусу. Пользователям же с начальными знаниями будет несложно использовать перечисленные функции под свои нужды с минимальными трудозатратами.
 
== От слова к делу или устанавливаем Python ==
Данная инструкция больше не рабочая, т.к. Blynk не работает.  "работает на альтернативном сервере читаем пункт: Регистрируемся и собираем пульт в Blynk альтернативная версия"
Для начала нам потребуется скачать и установить среду разработки Python, т.к. это основной инструмент, который будет управлять компьютером.<br>
 
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь)<br>
 
# Скачать установщик Python по [https://www.python.org/downloads/ ссылке] <br>
В данной статье мы создадим виртуальный пульт для управления действиями ПК, которому будут доступны:
# Запустить установщик (предполагается установка Python в PATH, дабы не морочиться с запуском скрипта. Если все же вы решили отказаться от установки в PATH, то команда запуска скрипта будет такой: <Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py).
* запуск приложений,  
# Устанавливаем галочку на "Add Python <версия> to PATH".
* открытие веб-страниц в браузере,  
# Нажимаем "Install Python" и продолжаем установку соглашаясь со всем, что предложит нам установщик.
* выключение ПК,
* использование "горячих" клавиш.  
 
Тем, кто знаком с языком программирования Python, будет несложно расширить скрипт по своему вкусу. А пользователи с начальными знаниями легко  используют под свои нужды функции из примера.
 
 
Мы используем в примере такие инструменты:
* Python (устанавливается на компьютер, непосредственно способ управления ПК)
* NirCmd (устанавливается на компьютер, расширяет возможности управления ПК)
* Blynk (необходим для создания виртуального пульта в смартфоне)
* Навык "Домовёнок Кузя" (для связи Blynk с Алисой)
 
 
== Установка и настройка Python ==
 
 
Нам потребуется скачать и установить среду разработки Python.
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь ))
 
Итак:
* Скачиваем Python [https://www.python.org/downloads/ по ссылке].
* Запускаем установщик.
* Устанавливаем галочку на "Add Python <версия> to PATH".
Лучше сделать папку Python доступной для переменной %PATH%.
Если поставите Python в недоступное для переменной %PATH% место, команды запуска скриптов будут такими:
<Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py
 
* Нажимаем "Install Python" и продолжаем установку, соглашаясь со всем предлагаемым.
[[Файл:1py.png|мини|Устанавливаем Python в PATH]]
[[Файл:1py.png|мини|Устанавливаем Python в PATH]]
По окончании установки можем проверить работоспособность установив нужные нам в будущем библиотеки. Для этого:
 
# Открываем командную строку (Нажимаем Win+R, вводим cmd, нажимаем Enter)
 
# Водим поочередно следующие команды:<br>
По окончании установки проверяем работоспособность, заодно ставим нужные библиотеки:
'''''pip install blynklib''''' - библиотека Blynk для Python<br>
* Открываем командную строку (Нажимаем '''Win+R''', вводим в строку '''cmd''', нажимаем '''Enter''')
'''''pip install pyautogui''''' - библиотека для работы с горячими клавишами
* Вводим поочередно команды  
== Регистрируемся и собираем пульт в Blynk ==
** <span class="tocopy">'''python -m pip install --upgrade pip'''</span> - пакетный менеджер для Python.
Не буду заострять внимание на регистрации в Blynk, т.к. данный процесс уже описан в статье, конкретно [https://clck.ru/LsQCe здесь]. Единственное, что стоит заметить, что в данном случае вовсе неважно, какое устройство вы выберете при создании проекта, тажке как и неважно какой это будет способ подключения. Нам важен только токен и возможность работы с проектом.<br>
** <span class="tocopy">'''pip install blynklib'''</span> - библиотека Blynk для Python.
После регистрации добавим в наш проект нужное количество кнопок Button. Можно оформить и подписать их по вкусу.
** <span class="tocopy">'''pip install pyautogui'''</span> - библиотека для работы с горячими клавишами.
 
Вместо ручного ввода команд можно [https://yadi.sk/d/Tko9ICyWsExqeg скачать и запустить файл файл-сценарий установки библиотек], где эти команды уже указаны в нужном порядке (смотрите главу "Для ленивых").
 
<br style="clear:both">
== Регистрируемся и собираем пульт в Blynk (больше недоступен - Есть альтернатива) ==  
 
 
Регистрация в Blynk подробно описана [https://clck.ru/LsQCe здесь].  
Для нашего случая неважно, какие устройство и способ подключения вы выберете при создании проекта.  
Нам нужен только токен и любой добавленный проект.<br>
 
Добавляем в проект нужное количество кнопок (Button). Оформляем и подписываем по вкусу:
<gallery>
<gallery>
2py.png|Добавляем кнопки
2py.png|Добавляем кнопки
3py.png|Оформляем
3py.png|Оформляем
</gallery>
</gallery>
== Настраиваем скрипт Python под себя ==
 
Загружаем [https://yadi.sk/d/FYb9n_gp8V8IMA скрипт]<br>
 
Открываем его любым текстовым редактором (мне по вкусу Sublime Text, но вы можете использовать хоть блокнот)))) и видим следующее:
Готово!
 
== Регистрируемся и собираем пульт в Blynk альтернативная версия) ==
 
1.Последняя версия приложения Blynk, в котором работает регистрация это Blynk v2.27.30
Скачиваем её, и устанавливаем.
Если приложение не устанавливается, сначала пробуем дать разрешение на установку из неизвестных источников.
2. Начнем с того, что сервер может быть оригинальный (сервер компании Blynk, с 01.01.23 не работает), так и кастомный, например, наш.
Он расположен по адресу blynk.tk с портом 8080 для обычного соединения или 9443 для защищенного.
 
Чтобы зарегистрироваться на нашем сервере, необходимо:
 
1. Открыть приложение
2. Нажать кнопку "Create new account"
3. Ввести адрес своей почты и придумать пароль
4. Нажать кнопку ниже, и ввести адрес нашего сервера - blynk.tk c портом 9443 или 8080
 
После этого вы можете входить в приложение при помощи почты и пароля. Токены для новых устройств будут высылаться вам на почту, также вы сможете их увидеть и в самом приложении.
<gallery>
New1.jpg|пункт 1
New2.jpg|Пункт 2
New3.jpg|Пункт 3
</gallery>
 
3.Данный шаг необязателен, но при необходимости вы можете обновить приложение до любой другой версии, в новых версиях отсутствует возможность регистрации, именно для этого мы устанавливали старую версию.
 
Есть вопросы можете направить их на почту vdzhola@gmail.com или в ТГ https://t.me/Holatvoff
 
 
 
 
 
 
 
 
 
 
== Настраиваем скрипт (вариант для ленивых) ==
 
 
Загружаем [https://yadi.sk/d/PVxFUNz1boEPOw архив с файлами] и распаковываем его в папку ''C:\blynk_2_0''*. Если всё верно, в папке окажутся 7 файлов:
* '''blynk.py''' - основное тело скрипта.
* '''config.py''' - файл с конфигурацией.
* '''install_libs.bat''' - сценарий для установки библиотек python из главы "Устанавливаем Python".
* '''nircmd.exe''' - утилита расширения возможность командной строки. Подробнее по командам [https://www.nirsoft.net/utils/nircmd.html смотрите здесь].
* '''strt.bat''' - пакетный файл запуска скрипта в обычном режиме.
* '''strt_hide.bat''' - пакетный файл запуска скрипта в скрытом режиме.
* '''close_script.bat''' - пакетный файл для закрытия скрипта, который работает в скрытом режиме.
 
В текущей версии:
* Настроено 50 виртуальных пинов для работы в трех режимах:
** 0 - Путь к приложению/Команда для командной строки CMD;
** 1 - web-ссылка для открытия файлов;
** 2 - сочетание клавиш.
* Виртуальный пин V0 занят для ползунка управления общей громкостью системы (для этого в приложении Blynk нужно добавить виджет "Slider" и указать ему пин V0, а пределы значений поменять с 0-1023 на 0-100, т.е. 100% громкости).
* Настройка вынесена в отдельный файл config.py для более быстрого понимания.
'''ВНИМАНИЕ!''' Для работы необходимо в файле blynk.py исправить строку blynk=... на
blynk = blynklib.Blynk(BLYNK_AUTH, server='blynk.tk', port=8080, ssl_cert=None, heartbeat=10, rcv_buffer=1024, log=print)
 
=== Настраиваем виртуальные пины ===
 
 
# '''Открываем config.py''' с помощью любого текстового редактора.
# Для параметра '''blynk_token="токен_от_проекта_blynk"''' задаем свой токен от проекта blynk.
# Для параметра '''curpath = "С:\\blynk_2_0"''' задаем путь к папке со скриптом (если ставили в C:\blynk_2_0, то менять ничего не нужно). Важно:  в путях вместо привычного одного слэша \ ставим двойной \\.
# Для виртуальных пинов (которые будем использовать) указываем требуемые параметры (пример):
* V5=[0,"notepad.exe"] где V5 - имя виртуального пина; параметр 0 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет выполняться команда CMD/запуск программы, в данном случае запустится "Блокнот".
* V1=[1,"https://yandex.ru"] где V1 - имя виртуального пина; параметр 1 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет открыт сайт yandex.ru в стандартном браузере.
* V3=[2,"win","r"] где V3 - имя виртуального пина; параметр 2 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет отработано сочетание клавиш "Win + R".
<pre class="green">
Список клавиатурных обозначений:
'\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`','a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o','p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~','accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace','browserback', 'browserfavorites', 'browserforward', 'browserhome','browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear','convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete','divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10','f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20','f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9','final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja','kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail','launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack','nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6','num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn','pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn','prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator','shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab','up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen','command', 'option', 'optionleft', 'optionright'
</pre>
 
Таким образом Вы можете заполнить данные для всех 50 виртуальных пинов.
Помните, что заработают они, когда вы зададите соответствующие имена виртуальных пинов виджетам в приложении Blynk!
После всех изменений нужно сохранить файл config.py и запустить скрипт пакетным файлом запуска.
 
 
== Настраиваем скрипт (вариант для дотошных)==
 
 
Загружаем [//yadi.sk/d/FYb9n_gp8V8IMA скрипт blynk.py], открываем любым текстовым редактором (мне по вкусу Sublime Text, но подойдёт и встроенный Блокнот) и видим:
 
{{#spoiler:show=Показать скрипт | hide=Спрятать скрипт |
<pre>
<pre>
import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib)
import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib)
Строка 79: Строка 210:
     blynk.run()
     blynk.run()
</pre>
</pre>
Несмотря на страшный вид, все просто:
}}
<br>
Тут (вместо ВАШ_ТОКЕН_Blynk) вставляем свой токен, полученный в процессе создания проекта Blynk.
<pre>BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен</pre>


Чуть ниже комментариями выделен блок, где находятся функции, соответствующие каждому виртуальному пину Blynk.<br>
Несмотря на страшный вид, все просто. Вместо ВАШ_ТОКЕН_Blynk вставляем токен, полученный при создании проекта:
BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен


Например, чтобы добавить функцию открытия командной строки по нажатию на кнопку, привязанную к пину V4, нужно добавить блок функции
Теперь настроим пины.
 
=== Настраиваем виртуальные пины ===
 
 
Чуть ниже комментариями выделен блок с функциями виртуальных пинов Blynk. Например, чтобы добавить функцию открытия командной строки по нажатию на привязанную к пину V4 кнопку, добавим блок:
{{#spoiler:show=Показать блок | hide=Спрятать блок |
<pre>
<pre>
@blynk.handle_event('write V4')
@blynk.handle_event( 'write V4' )
def write_virtual_pin_handler(pin, value):
def write_virtual_pin_handler( pin, value ):
     if str(value) == "['1']":
     if str(value) == "['1']":
         app = "cmd" #путь к приложению
         app = "cmd" #путь к приложению
         startcmd(app)
         startcmd( app )
         print ('открываю '+app)</pre>
         print( 'открываю ' + app )
перед комментарием (или между уже имеющихся блоков функций)      
</pre>
<pre>#---------------------Конец блока функций для виртуальных пинов blynk-----------------</pre>
}}
Теперь подробно:<br>
в любое место '''выше этого комментария''':
'''@blynk.handle_event('write V4')''' - тут объявляем что функция будет выполнена только после чтения виртуального пина V4 (т.е., чтобы использовать пин V5 - меняем write V4 на write V5).<br>
#---------------------Конец блока функций для виртуальных пинов blynk-----------------
'''app = "cmd"''' - тут вписываем путь к запускаемому файлу (например "С:\Program Files\AIMP\AIMP.exe") или команду для командной строки (например "cd C:\windows\")<br>
 
Сохраняем получившийся скрипт.<br>
Разберём работу блока:
Теперь можем запустить его и проверить работоспособность, нажимая созданные нами кнопки в мобильном приложении Blynk. Самый простой способ запуска (в дальнейшем можно оперировать файлом, поэтому так) с помощью bat-файла. Для этого:
* '''@blynk.handle_event('write V4')''' - объявляем, что функция выполнится после чтения виртуального пина V4 (чтобы использовать пин V5 - меняем 'write V4' на 'write V5').
# Открываем блокнот (Win+R, вводим notepad, нажимаем Enter)
* '''app = "cmd"''' - вместо cmd вписываем  
# В блокноте вписываем следующее: '''''python <путь к файлу скрипта>\blynk.py'''''
** реальный путь к программе, например: <span class="tocopy">app = "С:\Program Files\AIMP\AIMP.exe"</span>
# Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "тип" выбираем "все файлы". В поле ввода имени файла пишем <имя_файла_запуска>.bat)
** или консольную команду, например: <span class="tocopy">app = "cd C:\windows\"</span>
# Запускаем <имя_файла_запуска>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk.
Сохраняем скрипт.
[[Файл:4py.png|мини|Вывод лога скрипта]]
 
== И снова Алиса, и снова Кузя... ==
 
Теперь настроим управление нашими виртуальными пинами с помощью Алисы. Как это делается, я уже описывал [https://clck.ru/LsXvV здесь.]
В скрипте используется библиотека PyAutoGui, которая умеет не только обрабатывать виртуальное нажатие клавиш, но и:
* делать скриншоты,
* управлять мышью,  
* выводить диалоговые окна на экран
* контролировать размещение окон (свернуть, развернуть, переместить), и так далее.
Подробнее можно узнать в [https://pyautogui.readthedocs.io/en/latest/index.html документации] к библиотеке.
 
 
== Проверяем работу скрипта и кнопок ==
 
 
Рекомендуемый способ запуска (тк в дальнейшем можно оперировать файлом) - с помощью bat/cmd-файла:
* Открываем блокнот ('''Win+R''', вводим '''notepad''', нажимаем '''Enter''')
* В блокноте пишем: '''python <путь к файлу скрипта>\blynk.py'''
* Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "Тип" выбираем "Все файлы". Пишем имя файла <удобное_имя>.bat)
* Запускаем <удобное_имя>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk:
[[Файл:4py.png | 600px]]
 
 
== И снова Алиса, и снова Кузя ==
 
 
Итак, у нас уже работает удалённое управление, осталось познакомить виртуальные пины Blynk с Алисой. Как это сделать, [https://clck.ru/LsXvV рассказано здесь].
 
 
== Для перфекционистов ==
== Для перфекционистов ==
Или для тех, кому мешает окно командной строки. Конечно для постоянного доступа к управлению стоит добавить наш файл запуска <имя_файла_запуска>.bat в автозагрузку windows. Есть несколько способов скрытия окна, но мне ближе вариант с использованием приложения NirCmd, тем более, что объем у нее неимоверно маленький, а функционал довольно большой.<br>
 
Теперь подробнее. Для того, чтобы скрыть окно командной строки, требуется:
 
# Загрузить файл приложения на [https://www.nirsoft.net/utils/nircmd.html официальном сайте] (внизу страницы).
И всех тех, кому мешает окно командной строки ;)
# Файл nircmd.exe из архива распаковать в удобное для вас место.
 
# Исправить файл запуска <имя_файла_запуска>.bat заменив '''python <путь к файлу скрипта>\blynk.py''' на '''<Путь к файлу>\nircmd.exe exec hide python <путь к файлу скрипта>\blynk.py'''
Конечно, для постоянного доступа к управлению нужно добавить наш файл запуска в автозагрузку windows. Но далеко не всем нужно (и понравится) иметь лишнее консольное окно, болтающееся среди остальных программ.
Теперь окно работы скрипта нас не потревожит, а наблюдать и завершить его работу можно будет только из "Диспетчера задач" по имени Python.
Есть несколько способов его скрытия, предлагаем вариант с использованием приложения NirCmd (тем более, что объем у нее неимоверно маленький, а функционал большой).
<pre>
 
Кроме того NirCmd можно использовать и для управления некоторыми функциями ПК прописывая команды в соответствующем блоке функций с командами. </pre>Подробнее о том, что умеет эта программулька [https://www.nirsoft.net/utils/nircmd.html в списке на официальном сайте. ]
Для этого:
* Загружаем NirCmd [https://www.nirsoft.net/utils/nircmd.html на официальном сайте] (внизу страницы).
* Распаковываем nircmd.exe из архива в любое удобное место.
* Меняем в нашем bat-файле строку
python <путь к файлу скрипта>\blynk.py
на  
'''<Путь к файлу>\nircmd.exe exec hide''' python <путь к файлу скрипта>\blynk.py
 
Теперь лишнее окно скрыто, но наблюдать и завершить его работу можно будет только из "Диспетчера задач" - по имени процесса "python".
 
NirCmd пригодится и для управления функциями ПК (если укажем нужные команды в соответствующем блоке функций для пинов).
 
Подробнее о том, что умеет эта программулька - [https://www.nirsoft.net/utils/nircmd.html в списке на официальном сайте].
 
 
== Послесловие ==
 
 
Скрипт является простейшим примером использования Умного дома Яндекса в управлении вашим компьютером. На его основе можно и нужно экспериментировать дальше)
В статье приведены лишь наиболее необходимые методы (например, горячие клавиши, которые можно использовать для AIMP или другого ПО, и NirCmd, которая может управлять звуком, или даже открывать cd-rom и пугать домашних, если таковой еще имеется =)
 
 
Удачи в экспериментах!
 
 
[[Category:Умный дом]]

Текущая версия от 09:58, 3 августа 2024

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

Вступление

Данная инструкция больше не рабочая, т.к. Blynk не работает. "работает на альтернативном сервере читаем пункт: Регистрируемся и собираем пульт в Blynk альтернативная версия"


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

  • запуск приложений,
  • открытие веб-страниц в браузере,
  • выключение ПК,
  • использование "горячих" клавиш.

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


Мы используем в примере такие инструменты:

  • Python (устанавливается на компьютер, непосредственно способ управления ПК)
  • NirCmd (устанавливается на компьютер, расширяет возможности управления ПК)
  • Blynk (необходим для создания виртуального пульта в смартфоне)
  • Навык "Домовёнок Кузя" (для связи Blynk с Алисой)

Установка и настройка Python

Нам потребуется скачать и установить среду разработки Python.

Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь ))

Итак:

  • Скачиваем Python по ссылке.
  • Запускаем установщик.
  • Устанавливаем галочку на "Add Python <версия> to PATH".
Лучше сделать папку Python доступной для переменной %PATH%.
Если поставите Python в недоступное для переменной %PATH% место, команды запуска скриптов будут такими:
<Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py
  • Нажимаем "Install Python" и продолжаем установку, соглашаясь со всем предлагаемым.
Устанавливаем Python в PATH


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

  • Открываем командную строку (Нажимаем Win+R, вводим в строку cmd, нажимаем Enter)
  • Вводим поочередно команды
    • python -m pip install --upgrade pip - пакетный менеджер для Python.
    • pip install blynklib - библиотека Blynk для Python.
    • pip install pyautogui - библиотека для работы с горячими клавишами.
Вместо ручного ввода команд можно скачать и запустить файл файл-сценарий установки библиотек, где эти команды уже указаны в нужном порядке (смотрите главу "Для ленивых").


Регистрируемся и собираем пульт в Blynk (больше недоступен - Есть альтернатива)

Регистрация в Blynk подробно описана здесь.

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

Добавляем в проект нужное количество кнопок (Button). Оформляем и подписываем по вкусу:


Готово!

Регистрируемся и собираем пульт в Blynk альтернативная версия)

1.Последняя версия приложения Blynk, в котором работает регистрация это Blynk v2.27.30 Скачиваем её, и устанавливаем. Если приложение не устанавливается, сначала пробуем дать разрешение на установку из неизвестных источников. 2. Начнем с того, что сервер может быть оригинальный (сервер компании Blynk, с 01.01.23 не работает), так и кастомный, например, наш. Он расположен по адресу blynk.tk с портом 8080 для обычного соединения или 9443 для защищенного.

Чтобы зарегистрироваться на нашем сервере, необходимо:

1. Открыть приложение 2. Нажать кнопку "Create new account" 3. Ввести адрес своей почты и придумать пароль 4. Нажать кнопку ниже, и ввести адрес нашего сервера - blynk.tk c портом 9443 или 8080

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

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

Есть вопросы можете направить их на почту vdzhola@gmail.com или в ТГ https://t.me/Holatvoff

Настраиваем скрипт (вариант для ленивых)

Загружаем архив с файлами и распаковываем его в папку C:\blynk_2_0*. Если всё верно, в папке окажутся 7 файлов:

  • blynk.py - основное тело скрипта.
  • config.py - файл с конфигурацией.
  • install_libs.bat - сценарий для установки библиотек python из главы "Устанавливаем Python".
  • 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% громкости).
  • Настройка вынесена в отдельный файл config.py для более быстрого понимания.

ВНИМАНИЕ! Для работы необходимо в файле blynk.py исправить строку blynk=... на

blynk = blynklib.Blynk(BLYNK_AUTH, server='blynk.tk', port=8080, ssl_cert=None, heartbeat=10, rcv_buffer=1024, log=print) 

Настраиваем виртуальные пины

  1. Открываем config.py с помощью любого текстового редактора.
  2. Для параметра blynk_token="токен_от_проекта_blynk" задаем свой токен от проекта blynk.
  3. Для параметра curpath = "С:\\blynk_2_0" задаем путь к папке со скриптом (если ставили в C:\blynk_2_0, то менять ничего не нужно). Важно: в путях вместо привычного одного слэша \ ставим двойной \\.
  4. Для виртуальных пинов (которые будем использовать) указываем требуемые параметры (пример):
  • V5=[0,"notepad.exe"] где V5 - имя виртуального пина; параметр 0 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет выполняться команда CMD/запуск программы, в данном случае запустится "Блокнот".
  • V1=[1,"https://yandex.ru"] где V1 - имя виртуального пина; параметр 1 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет открыт сайт yandex.ru в стандартном браузере.
  • V3=[2,"win","r"] где V3 - имя виртуального пина; параметр 2 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет отработано сочетание клавиш "Win + R".
Список клавиатурных обозначений:
'\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`','a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o','p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~','accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace','browserback', 'browserfavorites', 'browserforward', 'browserhome','browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear','convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete','divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10','f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20','f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9','final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja','kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail','launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack','nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6','num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn','pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn','prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator','shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab','up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen','command', 'option', 'optionleft', 'optionright'

Таким образом Вы можете заполнить данные для всех 50 виртуальных пинов.

Помните, что заработают они, когда вы зададите соответствующие имена виртуальных пинов виджетам в приложении Blynk!

После всех изменений нужно сохранить файл config.py и запустить скрипт пакетным файлом запуска.

Настраиваем скрипт (вариант для дотошных)

Загружаем скрипт blynk.py, открываем любым текстовым редактором (мне по вкусу Sublime Text, но подойдёт и встроенный Блокнот) и видим:

<button type="button" class="spoilers-button" aria-expanded="false">Показать скрипт</button>

Несмотря на страшный вид, все просто. Вместо ВАШ_ТОКЕН_Blynk вставляем токен, полученный при создании проекта:

BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен

Теперь настроим пины.

Настраиваем виртуальные пины

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

<button type="button" class="spoilers-button" aria-expanded="false">Показать блок</button>

в любое место выше этого комментария:

#---------------------Конец блока функций для виртуальных пинов blynk-----------------

Разберём работу блока:

  • @blynk.handle_event('write V4') - объявляем, что функция выполнится после чтения виртуального пина V4 (чтобы использовать пин V5 - меняем 'write V4' на 'write V5').
  • app = "cmd" - вместо cmd вписываем
    • реальный путь к программе, например: app = "С:\Program Files\AIMP\AIMP.exe"
    • или консольную команду, например: app = "cd C:\windows\"

Сохраняем скрипт.


В скрипте используется библиотека PyAutoGui, которая умеет не только обрабатывать виртуальное нажатие клавиш, но и:

  • делать скриншоты,
  • управлять мышью,
  • выводить диалоговые окна на экран
  • контролировать размещение окон (свернуть, развернуть, переместить), и так далее.

Подробнее можно узнать в документации к библиотеке.

Проверяем работу скрипта и кнопок

Рекомендуемый способ запуска (тк в дальнейшем можно оперировать файлом) - с помощью bat/cmd-файла:

  • Открываем блокнот (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 и пугать домашних, если таковой еще имеется =)


Удачи в экспериментах!