Гибернация компьютера в Home Assistant
Поскольку я часто использую гибернацией, я решил сделать гибернацию своего ПК через Home Assistant.
Если с выключением компьютера через RPC Shutdown всё понятно, то с переходом в режим гибернации возник вопрос, так как RPC Shutdown не может отправить ПК в этот режим.
Я начал искать варианты и наткнулся на программу под названием Airytec Switch Off. Эта программа позволяет автоматически или удаленно выключать компьютер с любого компьютера или мобильного телефона. Что для меня важно, так это то, что она имеет веб-интерфейс с ссылками на команды, из которых я и получил URL которые я использовал в Home Assistant.
Теперь я расскажу, как я реализовал это у себя. Для начала, нужно скачать и установить саму программу. После установки и запуска, в трее появится иконка. Чтобы получить доступ к настройкам программы, нужно кликнуть правой клавишей мыши по иконке и выбрать пункт Options.
Далее переходим во вкладку Remote и ставим галочку Enable web interface. После кликаем по View web interface.
Мы попадаем в веб-интерфейс программы, откуда и будем извлекать адрес ссылки для удаленного выключения/перезагрузки/сна/гибернации.
Чтобы получить адрес ссылки для выключения/перезагрузки/сна/гибернации, щелкните правой кнопкой мыши по ссылке и выберите Копировать адрес ссылки. В моем случае, если я хочу перейти в режим гибернации, ссылка будет выглядеть так:
http://localhost:700/?action=System.Hibernate
Чтобы использовать этот адрес, необходимо заменить localhost на локальный IP-адрес вашего компьютера. В моем случае это будет так:
http://192.168.30.68:700/?action=System.Hibernate
Обратите внимание, что эти адреса могут отличаться в зависимости от вашей конфигурации и настроек системы.
В Home Assistant необходимо создать команды Shell. Я сделал это сразу для всех вариантов.
shell_command:
shutdown_mypc: "curl -k http://192.168.30.68:700/?action=System.Shutdown"
restart_mypc: "curl -k http://192.168.30.68:700/?action=System.Restart"
sleep_mypc: "curl -k http://192.168.30.68:700/?action=System.Sleep"
hibernate_mypc: "curl -k http://192.168.30.68:700/?action=System.Hibernate"
Для включения или гибернации своего ПК я использую переключатель. Вот пример моего переключателя:
switch:
- platform: wake_on_lan
name: "Мой ПК"
mac: XX:XX:XX:XX:XX:XX
turn_off:
service: shell_command.hibernate_mypc
На этом все. Надеюсь, моя статья кому-то поможет.