《计算机光盘软件与应用》
搬砖回家一天之后还要手动开电脑,这对打工人一点也不友好,有没有能够躺着就把事情办了的方法呢,看到显示器下面的吃灰很久的天猫精灵,想如果能用语音开机就好了?
于是开始了百度的搜索的一天,陆续折腾三天才最终稿好了(最起码能用了...?)
网上找的的大多数的方案是买个智能插座,设置主板上电自动开机,这看上去一点也不高端,反正我不太能接受这个方案,翻腾半天?最终参考这个帖子实现了语音?? 在此感谢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、创建语音技能创建语音技能的开发文档可以参考 :
? ? 如果提示? 报存失败,原因:未正确获取到认证文件,那说明是你的路由器那端没有搞正确,证书文一定要放到路由器的正确的位置才行!
请参考官方文档进行定位
如果提示?保存失败,原因:服务器遇到点状况,正在修复~
我一开始也是遇到这个问题,找了半天原因是因为我的URL中的端口填写错误了,因为我的这个路由器是在二级路由的位置,外网访问是做了端口映射的,所以要填写正确的端口(但是很奇怪的是上面的步骤填写错了端口不报错,不知道是为啥)