命令行控制
插座电源控制:
root@OpenWrt:/sys/class/leds# echo 0 > /sys/class/leds/tp-link:blue:relay/brightness root@OpenWrt:/sys/class/leds# echo 1 > /sys/class/leds/tp-link:blue:relay/brightness
插座小夜灯控制:
echo 0 > /sys/class/leds/i-konke:yellow:light/brightness echo 1 > /sys/class/leds/i-konke:yellow:light/brightness
插座USB口控制:
echo 0 > /sys/class/leds/i-konke:green:usb/brightness echo 0 > /sys/class/leds/i-konke:green:usb/brightness
插座USB口定时设置:
/etc/dropbear/accessory/timer/online 格式: 1022 y 2017-07-03-19:00:00 y 2017-07-03-04:10:00 y 2,3,4,5,6 usb
网页控制-无控制面板
新增json.cgi
切换到www/cgi-bin目录,新增json.cgi
cd /www mkdir cgi-bin cd cgi-bin vi json.cgi
!/bin/sh
echo “Content-Type: application/javascript”
echo “Cache-Control: no-cache, must-revalidate”
echo “Expires: Sat, 26 Jul 1997 05:00:00 GMT”
echo
VERSION=0.0.1
RELAY_CTRL=/sys/class/leds/tp-link:blue:relay/brightness
TIMINGS=tail -n+3 /etc/online.txt | sed ':a;N;$!ba;s/n/","/g'
IP_ADDRESS=ifconfig wlan0 | sed ':a;N;$!ba;s/n/","/g' | grep -E -o '[0-9]+.[0-9]+.[0-9]+.[0-9]+' | head -n 1
get=$(echo "$QUERY_STRING” | sed -n ‘s/^.get=(1).*$/1/p’ | sed “s/%20/ /g”)
set=$(echo "$QUERY_STRING” | sed -n ‘s/^.set=(1).*$/1/p’ | sed “s/%20/ /g”)
callback=$(echo "$QUERY_STRING” | sed -n ‘s/^.callback=(1).*$/1/p’ | sed “s/%20/ /g”)
case “$get” in
state)
case "`cat $RELAY_CTRL`" in
0) echo "$callback({"state":"off"})"
;;
1) echo "$callback({"state":"on"})"
;;
esac
;;
timing)
echo "$callback({"timings":["$TIMINGS"]})"
;;
esac
case “$set” in
on)
echo 1 > $RELAY_CTRL
echo "$callback({"ok":true})"
;;
off)
echo 0 > $RELAY_CTRL
echo "$callback({"ok":true})"
;;
esac
if [ -z “$get" ] && [ -z "$set” ]; then
echo “$callback({"info":{"name":"kankun-json","version":"$VERSION","ipAddress":"$IP_ADDRESS"},"links":{"meta":{"state":"http://$IP_ADDRESS/cgi-bin/json.cgi?get=state","timing":"http://$IP_ADDRESS/cgi-bin/json.cgi?get=timing"},"actions":{"on":"http://$IP_ADDRESS/cgi-bin/json.cgi?set=on","off":"http://$IP_ADDRESS/cgi-bin/json.cgi?set=off"}}})”
fi
设置权限:
chmod -R 0755 /www/ chmod +x /www/cgi-bin/json.cgi
接着在浏览器中访问:
http://ip/cgi-bin/json.cgi
如果出现以下提示代表json.cgi安裝成功。
网页控制-控制面板1
下载dash面板到插座中
链接: https://pan.baidu.com/s/1xzW8mIDEItPotaNXcamPwg?pwd=qxh9 提取码: qxh9
把下载的文件通过scp上传到插座的/www/目录中,
chmod +x /www/cgi-bin/*
然后修改switches.json中的插座地址:
接下来,直接在浏览器中访问,即可出现dash页面,可以随意控制插座开关。
API控制
创建relay.cgi 用网页界面切换小K的 on / off
首先登陆小K智能插座:
cd /www mkdir cgi-bin cd cgi-bin vi relay.cgi
!/bin/sh echo “Content-Type: text/plain” echo “Cache-Control: no-cache, must-revalidate” echo “Expires: Sat, 26 Jul 1997 05:00:00 GMT” echo RELAY_CTRL=/sys/class/leds/tp-link:blue:relay/brightness case “$QUERY_STRING” in state) case “cat $RELAY_CTRL” in 0) echo “OFF” ;; 1) echo “ON” ;; esac ;; on) echo 1 > $RELAY_CTRL echo ON OK ;; off) echo 0 > $RELAY_CTRL echo OFF OK ;; esac
接下来修改一下目录权限。
chmod -R 0755 /www/
chmod +x /www/cgi-bin/relay.cgi
接下来你可以去用网页浏览器简单控制小K on & off 了。如需远程控制自行映射到外网即可。
打开 http://ip/cgi-bin/relay.cgi?on
关闭 http://ip/cgi-bin/relay.cgi?off
刷机实现乐联网接入
目的:把小K改造到公开的物联网平台乐联网(www.lewei50.com)。
注意:刷机有风险,变砖自负。
1.将你的小k一代,按开关键3、4秒,指示灯变蓝(恢复默认设置)。
2,搜索名为0K_SP3_??????的ssid,默认无密码,使用笔记本连接,会得到192.168.10.*段的ip,小K的地址是192.168.10.253
3,这里下载修改过的4M固件,并将名字改成firmware4M.bin。https://github.com/yangbo1979/SmartPlug
下载链接: https://pan.baidu.com/s/1e7-t5VwGsRDT6gOSZLrBNQ?pwd=ftir 提取码: ftir
4,登录小K的默认用户名是root,密码为admin。通过winscp这个软件使用scp协议将文件传到小K的/tmp目录下
5,执行mtd -r write /tmp/firmware4M.bin firmware,刷入bin。
6,设备会自动重启
7,重启后,会有OpenWrt-xu1(或OpenWrt-Lewei,记不清了)的无线网,密码12345678,联之
8,连上这个无线网,你会获得192.168.2.*的IP,打开网页192.168.2.1,
登录用户名root,密码admin
在wifi页面配置好无线网,并且在system页面的最后lewei sn标签下,输入网关号和userkey,switchId处填你在乐联网设置的控制器标识。
点“save and apply”后设备会自动重启
9.网站上配置对应设备的标识,要设置“API地址”为长连接地址。
注:设备上的开关单按是直接开关。按5s左右为恢复网络配置为单ap模式,断电重开后可以恢复无线网配置。按10s左右为手动重启。
完成!!你现在有了一个属于“自己控制”的智能插座了!
如果乐联网连不上怎么办?请看下面:
观察小k的日志发现刷完固件以后,要登录到小k上,去 xutest这个目录里,找到tcp_lewei.lua这个文件
然后去修改function tcp_lewei()这个函数的头两行,改成下面这两个
local tcp_host = “tcp.lewei50.com” local tcp_port = 9960
Enjoy it~
VIA:李子博客