Включение/отключение Windows ПК через Home Assistant (Wake-on-LAN + RPC Shutdown)

Создаём единый переключатель в Home Assistant для управления Windows-компьютером. Включение через стандартный Wake-on-LAN, выключение через аддон RPC Shutdown. Инструкция по правке реестра Windows для удалённого выключения.

Понадобилось добавить в Home Assistant возможность удалённого включения и выключения домашнего PC (Windows) для удалённого доступа или просто чтобы выключать компьютер ребёнка голосом через Алису.

Решение:

  • Включение: штатный wake_on_lan.
  • Выключение: аддон RPC Shutdown.

1. Настройка Switch в конфигурации

Создаём тумблер, который объединяет обе функции. Пропишите этот код в /config/configuration.yaml:

switch:
  - platform: wake_on_lan
    mac: "B4:2E:99:F4:23:86"       # MAC-адрес вашего ПК
    name: "Home_PC"
    host: "192.168.88.10"          # IP-адрес ПК
    broadcast_address: "192.168.88.127"  # Широковещательный адрес (см. ниже)
    turn_off:
      service: hassio.addon_stdin
      data:
        addon: core_rpc_shutdown
        input: Home_PC

Про broadcast_address

Если ваша сеть логически разделена (VLAN или нестандартная маска), укажите правильный широковещательный адрес.
Для обычной сети /24 (маска 255.255.255.0) это чаще всего 192.168.xx.255. В примере автора используется 192.168.88.127 (специфичная маска /25).


2. Настройка выключения (RPC Shutdown)

Для выключения Windows-машины используем официальный аддон RPC Shutdown.

Конфигурация аддона

В настройках самого аддона пропишите список компьютеров:

- address: 192.168.88.10
  alias: Home_PC
  credentials: user%password
  delay: 0
  message: >-
    Home Assistant is shutting down this PC. This cannot be canceled. Please
    save your work!

Важно:

  • credentials: формат пользователь%пароль.
  • Работает с Microsoft-аккаунтами (логин — email целиком).
  • Внимание: Пароль хранится в открытом виде! Рекомендуется создать отдельную локальную учётку Windows специально для выключения.

3. Настройка Windows (Устранение ошибок)

При попытке выключения часто возникают ошибки доступа.

Ошибка 1: Could not initialise pipe winreg... NT_STATUS_OBJECT_NAME_NOT_FOUND

Решение:
Убедитесь, что служба "Удалённый реестр" (Remote Registry) запущена и стоит в автозапуске.

Ошибка 2: Shutdown... failed result was: WERR_CALL_NOT_IMPLEMENTED

Решение:
Нужно разрешить удалённый доступ для локальных (или админских) учёток через реестр.

  1. Откройте реестр (Win+R -> regedit).
  2. Перейдите в ветку:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  3. Создайте параметр DWORD (32 бита) с именем:
    LocalAccountTokenFilterPolicy
  4. Установите значение: 1.
  5. Перезагрузите ПК.

Итог

Теперь этот выключатель можно прокинуть в Apple HomeKit или Яндекс Алису.
"Алиса, выключи компьютер" — отлично работает, когда нужно ограничить игровое время детей.

Read more

Подключение к удалённому серверу по SSH из Windows (CMD, PowerShell, WSL, PuTTY)

Гайд по SSH-клиентам в Windows: используем встроенную команду `ssh` в PowerShell/CMD (Windows 10/11), полноценный Linux-терминал через WSL или классический PuTTY. Примеры команд для подключения, отправки скриптов и использования sudo без tty.

By Evgeny Shmelev