请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 829|回复: 17

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

[复制链接]

2

主题

25

帖子

178

积分

注册会员

Rank: 2

积分
178
金钱
153
HASS币
0
发表于 2025-3-7 18:16:15 | 显示全部楼层 |阅读模式
本帖最后由 zooven 于 2025-3-10 09:05 编辑

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

1.HA中的MQTT配置就不说了,论坛里都是大佬
2.确保电脑上安装了.net8运行时
.net8运行时下载地址
3.下载并修改appsetting.json文件中的相关配置,代码开源,可以自行修改
github下载地址 GUANJI-Windows.zip (1.46 MB, 下载次数: 21)
如果需要控制多台电脑,每台电脑的配置文件中的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

帖子

74

积分

注册会员

Rank: 2

积分
74
金钱
65
HASS币
0
发表于 2025-3-7 18:19:36 | 显示全部楼层
感谢6666666666
回复

使用道具 举报

74

主题

618

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
金钱
2935
HASS币
0
发表于 2025-3-7 21:40:19 | 显示全部楼层
感谢分享。请问下,WINDOWS文件如何启用? 打开EXE文件没反应。还没设置参数。
回复

使用道具 举报

2

主题

25

帖子

178

积分

注册会员

Rank: 2

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

.net8运行时没安装把
回复

使用道具 举报

15

主题

92

帖子

338

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

0

主题

3

帖子

20

积分

新手上路

Rank: 1

积分
20
金钱
17
HASS币
0
发表于 2025-3-8 08:09:41 | 显示全部楼层
学习了学习了学习了
回复

使用道具 举报

0

主题

3

帖子

20

积分

新手上路

Rank: 1

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

使用道具 举报

2

主题

25

帖子

178

积分

注册会员

Rank: 2

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

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

使用道具 举报

2

主题

25

帖子

178

积分

注册会员

Rank: 2

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

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

使用道具 举报

74

主题

618

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
金钱
2935
HASS币
0
发表于 2025-3-9 17:57:10 | 显示全部楼层
zooven 发表于 2025-3-7 21:57
.net8运行时没安装把

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-3-17 22:19 , Processed in 0.106218 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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