小爱同学控制电脑开机
这两天电脑开机键坏了,只能用WOL唤醒或手戳引脚。感觉好麻烦
倒是以前实现过 “网页控制开发板连继电器跳线开机” 的方法。。。要打开网页还是好麻烦。
于是就有了小爱同学控制了~~~
大致步骤:
1. 下载个点灯科技APP,注册账户
2. 添加设备-->独立设备-->WIFI接入-->阿里云-->复制key
3. 右上角编辑-->添加按钮-->修改键名为"btn-1"类型勾选开关按键,其他随意
4. 再往右拉添加个调试组件,右上角锁定退出就行了
5. 一个可运行Python3的东西(开发板,路由器,服务器,手机都行~)
6. 安装组件,看官网教程,requirements.txt可以去掉dbus-python、pygobject
(系统中记得安装etherwake哦~,我是通过curl控制路由器唤醒的)
7. 下载脚本,并修改key值可mac地址运行,我贴在下面
8. 米家的第三方设备中找到点灯科技登录并同步设备
9. 呼唤小爱 打开 “设备名”,关闭“设备名”,查询“设备名”状态
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os from Blinker import * from Blinker.BlinkerDebug import * #这里是设备的key auth = '请修改我,大人~~' #这里是调试模式 BLINKER_DEBUG.debugAll() #这里是WIFI模式 Blinker.mode("BLINKER_WIFI") #这里是添加米家插座 Blinker.miotType('BLINKER_MIOT_OUTLET') Blinker.begin(auth) #前面环境,这里是定义按钮和状态 button1 = BlinkerButton("btn-1") oState = 'on' def button1_callback(state): ''' 按钮行为,甚至你只用小爱都不需要''' str00 = os.popen('etherwake 00:11:22:33:44:55').readlines()[0] #设置日志和显示结果 BLINKER_LOG('获取按钮状态: ', state) button1.text('已开机') #设置客户端按钮状态 button1.print(state) def data_callback(data): ''' 数据调用操作 ''' str11 = os.popen(data).readlines()[0] #设置日志和显示结果 BLINKER_LOG(data,str11) def heartbeat_callback(): ''' 心跳操作 ''' BLINKER_LOG("心跳日志") def miotPowerState(state): ''' 米家开关控制 ''' global oState BLINKER_LOG('将设为: ', state) oState = state BlinkerMIOT.powerState(state) BlinkerMIOT.print() if str(state) == 'true': #如果触发打开就执行下面命令并读取第一行内容 #请修改下面的‘00:11:22:33:44:55’,大人~~ str00 = os.popen('etherwake 00:11:22:33:44:55').readlines()[0] BLINKER_LOG(str00) def miotQuery(queryCode): ''' 米家查询 没必要改''' global oState BLINKER_LOG('MIOT Query codes: ', queryCode) if queryCode == BLINKER_CMD_QUERY_ALL_NUMBER : BLINKER_LOG('MIOT Query All') BlinkerMIOT.powerState(oState) BlinkerMIOT.print() elif queryCode == BLINKER_CMD_QUERY_POWERSTATE_NUMBER : BLINKER_LOG('MIOT Query Power State') BlinkerMIOT.powerState(oState) BlinkerMIOT.print() else : BlinkerMIOT.powerState(oState) BlinkerMIOT.print() #按钮回调 button1.attach(button1_callback) #数据回调 Blinker.attachData(data_callback) #心跳回调 Blinker.attachHeartbeat(heartbeat_callback) #米家控制回调 BlinkerMIOT.attachPowerState(miotPowerState) #米家查询回调 BlinkerMIOT.attachQuery(miotQuery) if __name__ == '__main__': while True: Blinker.run()
CM部落 》原创,转载请保留文章出处。
本文链接:小爱同学控制电脑开机 https://www.itkz.cn/jingyan/134.html
版权声明:若无特殊注明,本文皆为《
正文到此结束
发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!