wake_on_lan:

shell_command:
  shutdown_desktop: 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [ユーザー名を入力]@[IPアドレスを入力] "shutdown /s /f /t 0"'

switch:
  - platform: wake_on_lan
    name: "Desktop PC"
    mac: "[MACアドレスを入力]"
    host: [IPアドレスを入力]
    broadcast_address: [ブロードキャストアドレスを入力]
    broadcast_port: 9
    turn_off:
      - action: shell_command.shutdown_desktop

Home AssistantからWindowsにWoL(Wake on LAN)パケットを送信するための設定です。

Home AssistantはPCにPingを送信してPCの電源状態を確認します。
WindowsでPingの応答を有効にしていないと、Home Assistant側で電源状態の確認ができませんので、ご注意ください。

上記のサンプルでは、turn_offの際にshell_commandを使用してSSH接続を行い、PCの電源をオフにするように設定しています。
そのため、PCにはWoLとSSHの設定が必要となります。SSHはKey認証で接続が行われます。

Home AssistantをWAN(外部ネットワーク)に公開しない環境で利用できるように構築しました。
外部からはHomekitを使用して操作できるようにしています。(HomekitにHome Assistantの該当するスイッチを登録することで、外部公開のリスクを比較的抑えながら外部から操作することが可能になります)

なんとかなるものですね