最近入手乙個broadlink的智慧型插座sp2.圖就不上了,官網上有.拿到手第一印象覺得有些大,插在插排
上要佔好幾個位置.功能上wifi配置可以用smart config和ap模式,還是不錯的.而且有功率統計,估計
裡面有測量電流電壓的晶元.
卡住,然後從此再也搜尋不到裝置,要清除資料才可以,當時我以為壞了差點去退貨.
所以我準備自己寫
簡單研究了下sp2, 有興趣的可以再深入下.
配置wifi部分我覺得沒有必要hack了, 感興趣的可以參考[1],畢竟配置一次就可以了.
至於指令,無非就是開和關,這個用wireshark抓包就可以看出來.
指令是每次配置完都會變化,所以配置後就要重新抓包更改。
所以抓的包只能自己用。
下面我說一下如何抓包:
最好用pc通過網線來連線路由器,這樣抓的包不是加密的。
1:在路由器上檢視sp2的ip, 假設為192.168.0.102
2:如果你的電腦的網絡卡支援monitor模式,可直接看第4條。如果不支援moniter模式,現在自己電腦上的80埠執行個udp的echo server,就是把所有80埠收到的udp包都原封不動的傳送回原來的傳送端。我寫了程式(server.c)可以參考。
3:把自己電腦ip改為和sp2一樣,假設為192.168.0.102。
4:用wireshark抓包,可以看到開關指令其實就是2個udp包(開乙個,關乙個),其中data長度是72byte。大概類似於這個樣子(0x5a,0xa5,0xaa,0x55,0x5a,0xa5,0xaa,0x55,0x00,0x00,0x00,0x00,0x00,0x00......)
這個是傳送開指令時抓的包,其中192.168.0.101是nexus7 的ip, 192.168.0.102是開關的ip.
可以看到手機傳送乙個udp包,然後sp2收到後會把這個把傳送給手機.
5:要寫這個程式就很簡單了,把這個包(72byte)發出去,然後再收到包就成功了. 用python寫了個示例**,見sample.py。
因此要你自己抓包,然後用抓到資料,類似於這種(0x5a,0xa5,0xaa,0x55,0x5a,0xa5,0xaa,0x55,0x00,0x00,0x00,0x00,0x00,0x00......),替換掉程式裡的on 和 off兩個陣列。
關於功率,可以看到sp2一直在給手機發包,功率資訊應該在這裡.不過這個就不研究了.
不知道像定時休眠一類的功能是用手機發命令還是外部伺服器來發,但我沒有發現sp2會經常
的連線外部伺服器.(開始時會連一次的,應為需要nat,這個可以參考[2])
**在 去掉了積分要求。
server.c 是echo server
sample.py 示例**
我以前放的**別人不能用的,所以要用這個新的,並自己抓包。現在sdk不開放給個人,所以就用這個方法湊合著用了,只能控制開關,不能看功率。
一些問題的更新:
1:抓包後,不能重新配置sp2去連線路由器,也不要去改路由器的配置(改密碼啥的),這肯定是不行的。
另外抓包不要通過wifi去抓加密的資料,通過eth口去抓解密好的資料。
參考文獻:
1:smartconfig
2:nat
什麼是智慧型插座,智慧型插座有什麼用?
智慧型家居離我們的生活越來越近,而智慧型插座是目前最為普及的智慧型家居產品。智慧型插座經過了兩年銷售與開發,已經成為較為成熟的產品。智慧型插座不同與以前的插座,除了電源介面之外,內部還具有usb介面和wifi連線裝置,讓使用者通過多種智慧型方式控制家電,開啟遠端遙控家電智慧型生活新時代。智慧型插座有...
Zigbee 智慧型插座(Gateway)方案
wiznet w5200 w5100 能配合任何zibee方案成為zigbee插座 zigbee gateway crypton tech浩康可提供技術支援 w5200負責網路傳輸盒檢測控制 通過w5200,可進行彈性網路初始化和加入不同程式,如定時關電,睡眠模式,亦可隨時隨地監控每乙個器件的功耗 ...
低成本智慧型定時插座的設計
智慧型定時開關插座,應用有很多,家用電器定時開關 電動車充電保護等。一搜,類似的產品很多,而且 很低,今天就來介紹一下其實現原理。先看原理圖 電源 首先電源部分為非隔離的阻容降壓設計,直接將220v交流電源轉換為兩組29v和5v的電源。它的工作原理是利用電容在一定的交流訊號頻率下產生的容抗來限制最大...