国军电脑科技博客国军电脑科技博客

淮阳四通镇国军电脑科技,专业监控安装维修,十五年老店
首页 » 天下杂侃 » 老毛子Padavan固件添加天猫精灵控制路由器电脑使用CGI教程

老毛子Padavan固件添加天猫精灵控制路由器电脑使用CGI教程

原文链接https://www.right.com.cn/forum/thread-477145-1-1.html

固件地址   https://www.right.com.cn/forum/thread-161324-1-1.html

天猫精灵 自定义技能 控制 电脑 Linux Padava路由 使用CGI控制方案(全平台通用、免oauth流程)



 





2019-3-3新增tmall,进入 http://192.168.123.1/as2.asp 点击【更新默认脚本】+【使用默认脚本】就能使用



接入方式简介:

CGI控制方案



 





利用自定义技能访问Web Hook触发cgi激活自定义功能(全平台通用)

路由端使用caddy(http.cgi)

电脑端使用Python(http.server –cgi)







①进入自定义技能组件控制台:https://open.aligenie.com/console/skill/list

添加新技能:[自定义]-调用词:[路由器]



 





②在技能里面创建意图:




 





意图名称、普通语料、连续对话语料3个都填写[打开网络];回复配置Web Hook填写[http://123.123.123.123:9321/abc123],这里abc123为cgi触发地址建议自行修改,这里的IP地址可使用域名但必须保证外部能连上路由,若有外网需设置端口转发,若没外网请自行设置穿透(花生壳、frp等)。



 





③在意图详情最下面下载认证文件,以认证文件名456abc.txt,内容:E5uYpm091G为例填入路由的认证配置[456abc.txt E5uYpm091G]空格隔开文件名和内容。启动路由的 tmall 开关,准备完成提交保存意图。



 





④到技能组件控制台测试验证的在线测试填入[路由器打开网络]测试一下吧!(此网络为访客网络)成功后开启真机测试,使用语音测试:天猫精灵,路由器打开网络。



 





([调用词+意图名称]为激活语句,可到天猫精灵APP的组合指令功能添加自定义激活语句)



 





⑤查看下面的意图触发脚本,把所有意图添加到技能里面吧!参考②重复添加。



 







⑥电脑端配置教程

Python下载 安装:https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe



创建运行所需文件和文件夹

D:\天猫精灵\www

D:\天猫精灵\www\aligenie\456abc.txt

D:\天猫精灵\www\cgi-bin\run.py

D:\天猫精灵\kill.bat

D:\天猫精灵\run.bat

D:\天猫精灵\run2.bat





文件内容:

run这里是启动python的http.server程序

D:\天猫精灵\run.bat

  1. @echo off 

  2.   if “%1” == “h” goto begin 

  3.   mshta vbscript:createobject(“wscript.shell”).run(“%~nx0 h”,0)(window.close)&&exit 

  4.   :begin 

  5. cd /d D:\天猫精灵\www

  6. python -m http.server –cgi 9322

复制代码




D:\天猫精灵\kill.bat

  1. taskkill /f /t /im python.exe

  2. taskkill /f  /im cmd.exe

复制代码




run2这里是执行任务脚本

D:\天猫精灵\run2.bat

  1. @echo off 

  2.   if “%1” == “h” goto begin 

  3.   mshta vbscript:createobject(“wscript.shell”).run(“%~nx0 h”,0)(window.close)&&exit 

  4.   :begin 

  5. cd /d D:\天猫精灵\www

  6. del run_tmp.bat

  7. :start

  8. cd /d D:\天猫精灵\www

  9. choice /t 5 /d y /n >nul

  10. if exist run_tmp.bat (

  11. call run_tmp.bat

  12. choice /t 5 /d y /n >nul

  13. del run_tmp.bat

  14. ) else (

  15. choice /t 5 /d y /n >nul

  16. )


  17. goto start

复制代码




这里使用休眠代替关机

D:\天猫精灵\www\cgi-bin\run.py

  1. #coding=utf-8

  2. import cgi

  3. import os

  4. print(“Content-type: text/plain; charset=utf-8\n”)

  5. print(“””{

  6.     “returnCode”: “0”,

  7.     “returnErrorSolution”: “”,

  8.     “returnMessage”: “”,

  9.     “returnValue”: {

  10.         “reply”: “OK”,

  11.         “resultType”: “RESULT”,

  12.         “actions”: [

  13.             {

  14.                 “name”: “audioPlayGenieSource”,

  15.                 “properties”: {

  16.                     “audioGenieId”: “123”

  17.                 }

  18.             }

  19.         ],

  20.         “properties”: {},

  21.         “executeCode”: “SUCCESS”,

  22.         “msgInfo”: “”

  23.     }

  24. }”””)

  25. #os.system(‘start %systemroot%\system32\scrnsave.scr /s’)

  26. #os.system(‘start rundll32.exe user32.dll LockWorkStation’)

  27. #os.system(‘start rundll32.exe powrprof.dll,SetSuspendState’)

  28. str=”””

  29. start rundll32.exe powrprof.dll,SetSuspendState

  30. “””

  31. f = open(‘run_tmp.bat’, ‘w’)

  32. f.write(str)

  33. f.close()

  34. sys.exit()

复制代码




下载认证文件:到【D:\天猫精灵\www\aligenie\】目录

D:\天猫精灵\www\aligenie\456abc.txt

  1. E5uYpm091G

复制代码




双击【D:\天猫精灵\run.bat】+【D:\天猫精灵\run2.bat】启动服务

双击【D:\天猫精灵\kill.bat】停止服务



启动服务后,添加【关闭电脑】意图,这里使用【9322】端口,和【cgi-bin/run.py】激活

Web Hook填写:http://123.123.123.123:9322/cgi-bin/run.py



 





⑦其他Linux配置教程



创建运行所需文件和文件夹

/opt/tmall/caddy

/opt/tmall/Caddyfile

/opt/tmall/www/aligenie/456abc.txt

/opt/tmall/app_14.sh

/opt/tmall/run.sh



 



下载caddy的主程序,选用cgi插件:https://caddyserver.com/download



主程序放到:

/opt/tmall/caddy



caddy配置Caddyfile文件(可放到同一目录)

/opt/tmall/Caddyfile

  1. # 此脚本路径:/opt/tmall/Caddyfile

  2. # 默认端口9321

  3. :9321 {

  4. root /opt/tmall/www

  5. # 默认cgi触发/abc123

  6. cgi /abc123 /opt/tmall/app_14.sh

  7. log /opt/tmall/requests.log {

  8. rotate_size 1

  9. }

  10. }

复制代码






下载认证文件:到【/opt/tmall/www/aligenie/】目录

/opt/tmall/www/aligenie/456abc.txt

  1. E5uYpm091G

复制代码




此为Padava路由触发脚本,可自行参考修改

/opt/tmall/app_14.sh

  1. #!/bin/sh

  2. #copyright by hiboy 此脚本路径:/opt/tmall/app_14.sh

  3. [ “POST” = “$REQUEST_METHOD” -a -n “$CONTENT_LENGTH” ] && read -n “$CONTENT_LENGTH” POST_DATA

  4. POST_DATA2=$(echo “$POST_DATA” | sed “s/\///g” | sed “s/[[:space:]]//g” | grep -o “”intentName”:”.*”,” | awk -F : ‘{print $2}’| awk -F , ‘{print $1}’ | sed -e ‘s@”@@g’)

  5. REPLY_DATA=”好的”

  6. RUN_DATA=”/tmp/tmall/RUN”

  7. # 更多自定义命令请自行参考添加修改

  8. if [ “$POST_DATA2” = “打开网络” ]; then

  9.   radio2_guest_enable

  10.   radio5_guest_enable

  11.   REPLY_DATA=”打开网络”

  12. fi


  13. if [ “$POST_DATA2” = “停用网络” ]; then

  14.   radio2_guest_disable

  15.   radio5_guest_disable

  16.   REPLY_DATA=”停用网络”

  17. fi


  18. if [ “$POST_DATA2” = “打开电脑” ]; then

  19.   # 下面的00:00:00:00:00:00改为电脑网卡地址即可唤醒

  20.   ether-wake -b -i br0 00:00:00:00:00:00

  21.   REPLY_DATA=”打开电脑”

  22. fi


  23. if [ “$POST_DATA2” = “打开代理” ]; then

  24.   cat > “$RUN_DATA” <<-\RRR

  25.   nvram set ss_status=0

  26.   nvram set ss_enable=1

  27.   nvram commit

  28.   /tmp/script/_ss &

  29. RRR

  30.   REPLY_DATA=”打开代理”

  31. fi


  32. if [ “$POST_DATA2” = “关闭代理” ]; then

  33.   cat > “$RUN_DATA” <<-\RRR

  34.   nvram set ss_status=1

  35.   nvram set ss_enable=0

  36.   nvram commit

  37.   /tmp/script/_ss &

  38. RRR

  39.   REPLY_DATA=”关闭代理”

  40. fi



  41. printf “Content-type: text/plain\n\n”

  42. echo “{

  43.     “returnCode”: “0”,

  44.     “returnErrorSolution”: “”,

  45.     “returnMessage”: “”,

  46.     “returnValue”: {

  47.         “reply”: “$REPLY_DATA”,

  48.         “resultType”: “RESULT”,

  49.         “actions”: [

  50.             {

  51.                 “name”: “audioPlayGenieSource”,

  52.                 “properties”: {

  53.                     “audioGenieId”: “123”

  54.                 }

  55.             }

  56.         ],

  57.         “properties”: {},

  58.         “executeCode”: “SUCCESS”,

  59.         “msgInfo”: “”

  60.     }

  61. }”


  62. logger -t “【天猫精灵】” “$REPLY_DATA”

  63. exit 0

复制代码




run.sh这里是执行任务脚本

/opt/tmall/run.sh

  1. #!/bin/sh

  2. mkdir -p “/tmp/tmall”

  3. while true; do

  4.         if [ -f “/tmp/tmall/RUN” ] ; then

  5.                 logger -t “【天猫精灵】” “运行远程命令”

  6.                 source /tmp/tmall/RUN

  7.                 rm -f /tmp/tmall/RUN

  8.         fi

  9. sleep 10

  10. done

复制代码






配置完成后,

控制台输入【 /opt/tmall/run.sh & 】启动服务

控制台输入【 /opt/tmall/caddy -conf /opt/tmall/Caddyfile & 】启动服务

控制台输入【 killall caddy run.sh 】停用服务





备注:由于全程免验证,建议把所有关键入口自己修改其他名称。

例如:

Linux端的Caddyfile cgi 配置中【cgi /abc123 /opt/tmall/app_14.sh】的【abc123】

Linux端的Caddyfile cgi 配置中【:9321 {】默认端口【9321】

电脑端【D:\天猫精灵\run.bat】中【python -m http.server –cgi 9322】的默认端口【9322】

电脑端【D:\天猫精灵\www\cgi-bin\run.py】文件的文件名【run.py】

修改后到意图的Web Hook修改对应的地址

文章如无特别注明均为原创! 作者:孔国军, 转载或复制请以 超链接形式 并注明出处 国军电脑科技博客。
原文地址《老毛子Padavan固件添加天猫精灵控制路由器电脑使用CGI教程》发布于2019-3-7

分享到:

评论 0

发表评论