幾年前買的歐瑞博S20插座,拿出來折騰一天黍匾,終于出成果了栏渺。在本地利用抓包wireshark和packet sender發(fā)包程序。借鑒了國外大神的思路和資料外國大神的軟件控制S20
還有一個分析協(xié)議的網站好像是被屏蔽了锐涯。但可以在百度搜索http://pastebin.com/LfUhsbcS 然后點擊百度快照查看內容。這里面把協(xié)議分析很仔細。我自己英文不太好霎终。簡單讀懂一些意思滞磺。
想要通過UDP協(xié)議控制S20莱褒,首先自己通過wiwo客戶端配置好S20广凸,且在同一個局域網內脸哀。
通過電腦用UDP協(xié)議控制S20扭吁,目前只需要兩個命令
第一步撞蜂、握手命令。下面是大神的分析我翻譯下
SUBSCRIBE DATA: All Commands apart from discovery require a subscription first!--
所有命令包都要先握手
(Note: Subscription expires after a few minutes握手很快會失效)
SEND: UDP x.x.x.x:10000 --發(fā)送命令包
ASCII:--ascii碼的內容
hd\00\1ecl\ac\cf#$\19\c0 \c0\19$#\cf\ac
HEX:---16進制數(shù)據(jù)內容
68 64 00 1e 63 6c ac cf 23 24 19 c0 20 20 20 20 20 20 c0 19 24 23 cf ac 20 20 20 20 20 20
-----最重要就是這個命令侥袜。包括數(shù)據(jù)包頭部標志+長度+S20的mac地址+反寫MAC地址
就可以了谅摄,其中20 20 20 20 20 20照著復制就可以了
RECEIVE: UDP x.x.x.x:10000
ASCII:
hd\00\18cl\ac\cf#$\19\c0 \00\00\00\00\00\00
HEX:
68 64 00 18 63 6C AC CF 23 24 19 C0 20 20 20 20 20 20 00 00 00 00 00 00
BREAKDOWN:
68 64 - Magic Key-命令頭
00 18 - Full Message Length = 24bytes-數(shù)據(jù)包長度
63 6C - Command ID ?--S20認識的命令
AC CF 23 24 19 C0 - Mac Address (Max Length = 12 = 24bytes)--S20自己的MAC地址
20 20 20 20 20 20 - Mac Address Padding (spaces)
00 00 00 00 00 - ??? Unknown ???未知
00 - Power state = off (00 = off, 01 = on)開關
============================================================================================
發(fā)送UDP包到SEND: UDP x.x.x.x:10000,XXXX就是S20的IP地址系馆,端口是10000.
我的內容是:(握手包)
68 64 00 1e 63 6c ac cf 23 34 cd 8c 20 20 20 20 20 20 8c cd 34 23 cf ac 20 20 20 20 20 20
里面第一條包就是要第一個發(fā)給S20的送漠。
第二步、就是發(fā)送給S20開關命令了由蘑,這兩個命令是固定的闽寡。
1、開命令
就是上圖的第五個包
68 64 00 17 64 63 ac cf 23 34 cd 8c 20 20 20 20 20 20 00 00 00 00 01
這里面只要替換你自己的S20mac地址就可以了AC CF 23 34 CD 8C就是這里尼酿。
2爷狈、關命令
就是上圖的第6條包
68 64 00 17 64 63 ac cf 23 34 cd 8c 20 20 20 20 20 20 00 00 00 00 00
這個開關命令區(qū)別就是最后一個字,一個是0一個是1.
好了就這么簡單裳擎。
使用packet sender試試涎永。找到S20的IP地址,端口填寫10000.然后按照上面的命令先發(fā)握手的包鹿响,然后發(fā)開關包羡微,看看S20是不是有動作。
其實做這些就是方便今后通過ESP8266來發(fā)送命令控制它惶我。
用手機通過外網控制ESP8266妈倔,然后8266給S20發(fā)送UDP包,控制開關绸贡。這樣就可以融入到一起了盯蝴。不用每個硬件都開一個專用的客戶端毅哗。