捡垃圾 篇二:天猫精灵 实现 电脑开机 (使用 uhttp cgi webhook
0、前言
搬砖回家一天之后还要手动开电脑,这对打工人一点也不友好,有没有能够躺着就把事情办了的方法呢,看到显示器下面的吃灰很久的天猫精灵,想如果能用语音开机就好了
于是开始了百度的搜索的一天,陆续折腾三天才最终稿好了(最起码能用了... )
网上找的的大多数的方案是买个智能插座,设置主板上电自动开机,这看上去一点也不高端,反正我不太能接受这个方案,翻腾半天 最终参考这个帖子实现了语音 在此感谢H大!
帖子中提到的用caddy http 服务器,我折腾了两天也没有弄好,主要是当时博主用的是caddy v1 的版本,现在已经更新到v2 了,进行了大改版,导致我们要用的 cgi 插件不支持了,捣鼓好久最终放弃。
通过搜索发现openwrt 自带的 uhttpd 就是支持简单的 cgi 功能的,于是查找相关的资料就用这个来简单的实现一下吧。
参考的帖子主要有:
大概的实现原理应该是通过自定义的天猫精灵技能,识别之后调用自定义的webhook ,而这个webhook 触发在局域网中的路由器脚本,脚本中的wol 命令发送网络唤醒数据包,电脑网卡收到之后就能开机了。
要实现这个方案有三个前提:
1、需要有个可以登录 ssh 的路由器(最好是刷了openwrt 的,其他的系统是否可以没有验证过)
2、家里有公网地址(最好是有自己的域名并且做了ddns),或者能内网穿透应该也行(frp 等)
3、电脑的网卡要支持wol ,并且路由器和这个网卡最好是直连的
这三点我都满足(宽带是北京联通300M 公网地址),路由器还是之前捡垃圾来的那个小娱C5 (之前用来折腾hass了,结果也是玩两天就再也没有用过)
首先需要登录阿里的开发平台(成为开发者需要实名身份证认证,如果对此介意的话可以不用往下看了):
1、路由器配置
登录路由器,在路由器的这个目录下面创建一个cgi shell文件shell 脚本: tmall_wol.sh
root@OpenWrt:/www/cgi-bin# touch tmall_wol.sh
然后脚本内容大概为:
脚本解释:
#其中 wol 命令也可以换成 etherwake ,这个可以看自己的路由器上面是哪个命令,根据自己的具体情况去修改就行了
#!/bin/sh
# touch ok 此为测试 webhook是否正常的调用到我们本地路由器的这个脚本的命令,如果能正确调用后会再 www/ 目录下创建一个名字为 ok 的空文件
#下面的命令是路由器上执行唤醒主机的命令,注意把mac 地址换成自己电脑的
/usr/bin/wol -v "34:97:F6:11:22:33"
最后需要给这个文件执行权限:
root@OpenWrt:/www/cgi-bin# chmod +x tmall_wol.sh
脚本完成之后可以先手动测试这个脚本是否能正常开机,同时检查电脑的网卡配置是否正确:
2、创建语音技能
创建语音技能的开发文档可以参考 :www.aligenie.com
如果提示 报存失败,原因:未正确获取到认证文件,那说明是你的路由器那端没有搞正确,证书文一定要放到路由器的正确的位置才行!
如果提示 保存失败,原因:服务器遇到点状况,正在修复~
我一开始也是遇到这个问题,找了半天原因是因为我的URL中的端口填写错误了,因为我的这个路由器是在二级路由的位置,外网访问是做了端口映射的,所以要填写正确的端口(但是很奇怪的是上面的步骤填写错了端口不报错,不知道是为啥)
弄完上面的webhook 应该就可以上真机测试了,通过绑定账号的天猫精灵 直接喊“ 天猫精灵,打开电脑”不出意外的话就能唤醒开机了
理论上用天猫精灵关闭电脑也是可以实现的,需要再电脑端安装个python ,然后写个脚本,通过精灵的webhook 触发电脑上面的脚本,执行关机命令就行了,原理是类似的。
现在存在的问题是有安全隐患,因为现在是没有任何认证机制,直接执行这个cgi shell 就可以触发开机动作,其实应该加个认证保护机制的,暂时懒得搞了,先这样吧。。。
最终实现了躺着就可以唤醒电脑了
总结
最终算是能解放双手通过语音控制打开电脑,虽然不是很完美但是目前使用了十几天,没有啥大毛病,以后有时间了在折腾其他功能(其实大概率是不会搞的啦 )
鳄鱼吃罐头
校验提示文案
况天佑
校验提示文案
我吃猪肉我光荣
校验提示文案
太平洋里的水
校验提示文案
黑枪贼
我还是继续每天低头按开关吧
校验提示文案
值友7317978695
校验提示文案
钱包掉了
校验提示文案
值友9823667846
校验提示文案
田不辣
校验提示文案
太平洋里的水
校验提示文案
田不辣
校验提示文案
值友9823667846
校验提示文案
钱包掉了
校验提示文案
值友7317978695
校验提示文案
我吃猪肉我光荣
校验提示文案
况天佑
校验提示文案
鳄鱼吃罐头
校验提示文案
黑枪贼
我还是继续每天低头按开关吧
校验提示文案