小爱同学控制电脑开机
这两天电脑开机键坏了,只能用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
正文到此结束





发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!