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

 找回密码
 立即注册
查看: 5804|回复: 14

[基础教程] Homeassistant 中控制电脑开机和关机的一种方法

[复制链接]

4

主题

88

帖子

1944

积分

论坛技术达人

积分
1944
金钱
1851
HASS币
20
发表于 2022-4-3 17:50:27 | 显示全部楼层 |阅读模式
本帖最后由 zxl_hass 于 2022-4-3 17:50 编辑

不需要增加任何硬件成本,但是电脑必须支持WOL(远程唤醒)
1、安装 python3,并安装  jsonrpclib-pelix 库
pip3 install jsonrpclib-pelix
2、按win+R键输入: shell:startup 会打开一个文件夹,在此文件夹新建一个后缀名为.pyw文件,然后右键打开方式 设置为 python 复制粘贴以下内容:
import subprocess
import socket
from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer
def poweroff(on_off):
    if on_off.lower() == "sleep":  #休眠
        print(f"on_off: {on_off.lower()}")
        res = subprocess.run('rundll32.exe powrprof.dll,SetSuspendState 0,1,0',shell=True,encoding='utf-8',stdout=subprocess.PIPE)
        return "ON"
    elif on_off.lower() == "off":  #关机
        print(f"on_off: {on_off.lower()}")
        res = subprocess.run('shutdown -s -f -t 03',shell=True,encoding='utf-8',stdout=subprocess.PIPE)     
        return "OFF"
    return "unknown"
# 单线程
print(f"Server Start")
server = SimpleJSONRPCServer(('192.168.1.123', 1234)) #本地IP地址和监听端口
server.register_function(poweroff, 'poweroff')
server.serve_forever()

#curl -X POST -d '{"id": "1234", "method": "poweroff", "params": ["off"], "jsonrpc": "2.0"}' "http://192.168.1.123:1234"
3、编辑Homeassistant 配置文件在 switch下添加:
- platform: command_line
  switches:
    poweroff_mycomputer:
      friendly_name: 台式机关机
      command_on: >
        curl -X POST -d '{"id": "123", "method": "poweroff", "params": ["sleep"], "jsonrpc": "2.0"}' "http://192.168.1.123:1234"
      command_off: >
        curl -X POST -d '{"id": "123", "method": "poweroff", "params": ["off"], "jsonrpc": "2.0"}' "http://192.168.1.123:1234"
      unique_id: poweroff_mycomputer
      value_template: '{{ value_json.result=="ON"}}'
改一下同样适用于Linux系统的主机.
以上完成后重启Homeassistant和电脑测试就行了。

其实有很多种玩法,根据需要改一下文件和调用就行。

评分

参与人数 2金钱 +8 收起 理由
coolxy + 2 专门注册账号来顶你!
sirakawa + 6 厉害了word楼主!

查看全部评分

回复

使用道具 举报

58

主题

359

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
金钱
2271
HASS币
0
发表于 2022-4-3 19:45:54 | 显示全部楼层
多谢分享,收藏备用
回复

使用道具 举报

58

主题

359

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
金钱
2271
HASS币
0
发表于 2022-4-3 19:49:21 | 显示全部楼层
不知道在macOS有没有效
回复

使用道具 举报

41

主题

1314

帖子

5389

积分

论坛元老

Rank: 8Rank: 8

积分
5389
金钱
4070
HASS币
20
发表于 2022-4-3 19:51:34 | 显示全部楼层
论坛有你更精彩
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

1

主题

15

帖子

70

积分

注册会员

Rank: 2

积分
70
金钱
55
HASS币
0
发表于 2022-4-3 22:16:07 来自手机 | 显示全部楼层
学习一下!
回复

使用道具 举报

1

主题

158

帖子

856

积分

高级会员

Rank: 4

积分
856
金钱
698
HASS币
0
发表于 2022-4-4 12:25:56 | 显示全部楼层
提示我的unique_id错误,怎么解决
回复

使用道具 举报

4

主题

88

帖子

1944

积分

论坛技术达人

积分
1944
金钱
1851
HASS币
20
 楼主| 发表于 2022-4-4 16:47:11 | 显示全部楼层
wy_112206 发表于 2022-4-4 12:25
提示我的unique_id错误,怎么解决

换一个名字不就行了,,自己随便定义
回复

使用道具 举报

32

主题

2010

帖子

5130

积分

论坛元老

Rank: 8Rank: 8

积分
5130
金钱
3120
HASS币
50
QQ
发表于 2022-4-5 00:44:08 | 显示全部楼层
谢谢分享。
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

1

主题

6

帖子

190

积分

注册会员

Rank: 2

积分
190
金钱
184
HASS币
0
发表于 2022-5-6 08:36:50 来自手机 | 显示全部楼层
Masterchen 发表于 2022-4-3 19:49
不知道在macOS有没有效

你好 请问你有在mac系统尝试吗?
回复

使用道具 举报

58

主题

359

帖子

2630

积分

金牌会员

Rank: 6Rank: 6

积分
2630
金钱
2271
HASS币
0
发表于 2022-5-6 09:06:58 | 显示全部楼层
handsomexlll 发表于 2022-5-6 08:36
你好 请问你有在mac系统尝试吗?

还没有,不知道如何操作
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 19:25 , Processed in 0.057903 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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