『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 574|回复: 15

[基础教程] HomeAssistant中控制电脑开关机简易版

[复制链接]

2

主题

24

帖子

170

积分

注册会员

Rank: 2

积分
170
金钱
146
HASS币
0
发表于 5 天前 | 显示全部楼层 |阅读模式
本帖最后由 zooven 于 2025-3-10 09:05 编辑

在网上找了一圈,发现现有的各种方法实现起来都好麻烦,干脆自己写了个MQTT控制电脑关机的服务,配合WOL实现开关机的效果,配置起来非常简单

1.HA中的MQTT配置就不说了,论坛里都是大佬
2.确保电脑上安装了.net8运行时
.net8运行时下载地址
3.下载并修改appsetting.json文件中的相关配置,代码开源,可以自行修改
github下载地址 GUANJI-Windows.zip (1.46 MB, 下载次数: 17)
如果需要控制多台电脑,每台电脑的配置文件中的topic配置不一样的即可,暂时不支持win7,等我下周改一下
4.执行目录下的install.bat安装服务
服务安装好以后如果需要修改配置,可以执行uninstall.bat卸载服务后重新再安装服务
5.configuration.yaml中添加以下配置
如果需要控制多台电脑,那么相应的实体就需要多配置两个,topic和对应的电脑上安装的服务的topic配置一致
mqtt:
  - button:
      unique_id: guanji_btn
      name: "电脑关机"
      command_topic: "homeassistant/computer_control"
      payload_press: "shutdown"
      qos: 0
      retain: false
      entity_category: "config"
      device_class: "restart"
    
switch:
  - platform: wake_on_lan
    name: "家里电脑"                 # 定义HA中实体的名称,可任意命名
    mac: "电脑的mac地址"        # 主机(电脑)的MAC地址
    broadcast_address: "192.168.1.255"      # 广播地址.不可省略.此处假设路由器地址为192.168.1.1,如为其他网段需要修改
    broadcast_port: 9               # 止定wol端口,可省略
    turn_off:
      service: button.dian_nao_guan_ji
6.仪表盘中添加custom:button-card卡片,贴入下面的代码
如果需要控制多台电脑,配置多个按钮即可,注意实体id和上一步添加的保持一致
type: custom:button-card
entity: switch.jia_li_dian_nao
name: 家里电脑
icon: mdi:desktop-classic
show_name: true
show_icon: true
tap_action:
  action: call-service
  service: |
    [[[ return entity.state === 'off' ? 'switch.turn_on' : 'button.press'; ]]]
  service_data:
    entity_id: >
      [[[ return entity.state === 'off' ? 'switch.jia_li_dian_nao' :
      'button.dian_nao_guan_ji'; ]]]
  confirmation:
    text: |
      [[[ return entity.state === 'off' ? '确定要打开电脑电源吗?' : '确定要关机吗?'; ]]]
7.最终效果
微信图片_20250307181531.jpg 微信图片_20250307181534.jpg














评分

参与人数 3金钱 +37 收起 理由
yjl + 5 必须支持一波,感谢免费分享
隔壁的王叔叔 + 12 感谢楼主分享!
dscao + 20 感谢楼主分享!

查看全部评分

回复

使用道具 举报

0

主题

9

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
63
HASS币
0
发表于 5 天前 | 显示全部楼层
感谢6666666666
回复

使用道具 举报

74

主题

615

帖子

3541

积分

论坛元老

Rank: 8Rank: 8

积分
3541
金钱
2926
HASS币
0
发表于 5 天前 | 显示全部楼层
感谢分享。请问下,WINDOWS文件如何启用? 打开EXE文件没反应。还没设置参数。
回复

使用道具 举报

2

主题

24

帖子

170

积分

注册会员

Rank: 2

积分
170
金钱
146
HASS币
0
 楼主| 发表于 5 天前 | 显示全部楼层
lrving163 发表于 2025-3-7 21:40
感谢分享。请问下,WINDOWS文件如何启用? 打开EXE文件没反应。还没设置参数。 ...

.net8运行时没安装把
回复

使用道具 举报

15

主题

89

帖子

322

积分

中级会员

Rank: 3Rank: 3

积分
322
金钱
233
HASS币
0
发表于 5 天前 | 显示全部楼层
谢谢分享,提个小改进:
电脑端,在提示“网络检测通过,本机IP地址:” 的时候,再提示下 mac 地址
回复

使用道具 举报

0

主题

3

帖子

20

积分

新手上路

Rank: 1

积分
20
金钱
17
HASS币
0
发表于 4 天前 | 显示全部楼层
学习了学习了学习了
回复

使用道具 举报

0

主题

3

帖子

20

积分

新手上路

Rank: 1

积分
20
金钱
17
HASS币
0
发表于 4 天前 | 显示全部楼层
请问一下 我在添加卡片的时候仪表盘选不到实体,并且最下面的代码放在哪里的
回复

使用道具 举报

2

主题

24

帖子

170

积分

注册会员

Rank: 2

积分
170
金钱
146
HASS币
0
 楼主| 发表于 4 天前 | 显示全部楼层
buzhinish 发表于 2025-3-8 08:23
请问一下 我在添加卡片的时候仪表盘选不到实体,并且最下面的代码放在哪里的 ...

最下面那个的代码粘贴到仪表板配置里面
回复

使用道具 举报

2

主题

24

帖子

170

积分

注册会员

Rank: 2

积分
170
金钱
146
HASS币
0
 楼主| 发表于 4 天前 | 显示全部楼层
ifreeswan 发表于 2025-3-7 23:16
谢谢分享,提个小改进:
电脑端,在提示“网络检测通过,本机IP地址:” 的时候,再提示下 mac 地址
...

可以的,下个版本加吧,后面我看看把电脑的相关信息显示也添加一下
回复

使用道具 举报

74

主题

615

帖子

3541

积分

论坛元老

Rank: 8Rank: 8

积分
3541
金钱
2926
HASS币
0
发表于 3 天前 | 显示全部楼层
zooven 发表于 2025-3-7 21:57
.net8运行时没安装把

有可能。我看下。感谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-3-12 17:49 , Processed in 0.221759 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表