閘道器區域網通訊協議V2.0
http://docs.opencloud.aqara.cn/development/gateway-LAN-communication/
https://github.com/aqara/opencloud-docs/
概述
綠米智慧閘道器支援區域網通訊功能,通過開放區域網通訊API,允許開發者通過區域網通訊對閘道器下各ZigBee子裝置(感測器、控制器等)進行管理。
相比HTTP通訊,區域網通訊的速度更快,控制延遲更低。但是,區域網對接方式的開發成本更高,需要一臺支援開發的第三方閘道器,並且開發者有嵌入式開發經驗。
目前主要開放的API功能有:
- 發現與查詢裝置
- 裝置狀態上報
- 對裝置進行讀寫操作
- 裝置心跳上報
注意:如需使用多功能閘道器,請參考閘道器區域網通訊協議V1.0。
修訂記錄
介紹閘道器區域網通訊協議各版本的主要變更內容。
更新時間 | 文件版本 | 更新日誌 |
---|---|---|
2018.07.16 | V2.0.2 | 新增:空調伴侶空調狀態上報和控制功能,空調伴侶繼電器控制功能;新增:RGB控制器和空調溫控器 |
2018.05.18 | V2.0.1 | 新增:魔方感測器 (sensor_cube.aqgl01)、牆壁插座(ctrl_86plug.aq1)、牆壁開關(ctrl_ln1.aq1) |
2017.10.09 | V2.0.1 | 修改:水浸感測器的屬性上報 |
2017.09.20 | V2.0.0 | 修改:基本的JSON格式變更;部分裝置的model值和屬性名稱變更;對於屬性的取值型別,模擬量統一取值為數值型。 |
加密機制
區域網通訊採用key加密方式,需在APP上獲取隨機生成的閘道器KEY,該KEY使用AES-CBC 128加密,為16個位元組長度的字串。開啟區域網通訊協議並擁有該閘道器的KEY後,才能與該閘道器進行區域網通訊。
注意:AES-CBC 128初始向量定義為:unsigned char const AES_KEY_IV[16] = {0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58, 0x56, 0x2e}。
獲取閘道器KEY的具體操作如下:
1、開啟Aqara APP,選擇需要進行區域網通訊的閘道器裝置;
注意:當前僅“升級版空調伴侶”支援區域網通訊協議功能。
2、預設情況下,此頁面不顯示“區域網協議”,需連續點選"裝置型別"10次才可顯示。
3、開啟“區域網協議”,獲取隨機KEY,單擊“確定”。
裝置發現與查詢
發現閘道器裝置
裝置發現採用不加密方式,使用組播(IP:224.0.0.50,Port:4321,Protocal:UDP),在區域網中發現閘道器裝置。
以組播方式傳送“whois”命令:
{
"cmd":"whois"
}
所有閘道器收到“whois”命令都要應答且回覆自己的IP資訊,以單播的形式回覆:
{
"cmd":"iam",
"ip":"192.168.0.42", //閘道器IP地址
"protocal":"UDP",
"port":"9898",
"model":"gateway.aq1", //閘道器裝置型別
......
}
查詢子裝置列表
命令以單播方式傳送給閘道器的UDP 9898埠,用來獲取閘道器中有哪些子裝置。
以單播方式向閘道器傳送“discovery”命令:
{
"cmd":"discovery"
}
閘道器以單播方式回覆,返回子裝置的裝置id和model值:
{
"cmd":"discovery_rsp",
"sid":"158d323123c9d9", //sid為閘道器did
"token":"TahkC7dalbIhXG22", //閘道器生成的隨機字串
"dev_list":[{"sid":"xxxxxxxx","model":"plug"},
{"sid":"xxxxxxxx","model":"sensor_switch.aq2"}] //sid為子裝置did
}
注意:“token”為閘道器生成的隨機字串,每10s重新整理一次,在未收到裝置心跳上報的token前,使用者可用此token來生成寫裝置時的“key”。
裝置狀態上報
當裝置狀態發生變化時,使用“report”命令以組播方式傳送給(IP:224.0.0.50,Port:9898)上報屬性狀態,如門窗感測器的開啟或關閉資訊。利用上報的屬性狀態,使用者可以實現智慧聯動操作,如關閉窗戶即開啟空調。
例如:
門窗感測器上報窗戶的開關狀態,格式如下:
{
"cmd":"report",
"model":"sensor_magnet.aq2",
"sid":"xxxxxxxx",
"params":[{"window_status":"open"}]
}
裝置心跳上報
閘道器心跳
閘道器心跳以組播方式傳送給(IP:224.0.0.50,Port:9898)。閘道器每10秒鐘傳送一次心跳報文,用來告訴PC閘道器正常工作。若間隔65s以上未收到心跳包即表示閘道器處於離線狀態。閘道器裝置心跳格式如下:
{
"cmd":"heartbeat",
"model":"gateway.v3",
"sid":"xxxxxxxx",
"token":"1234567890abcdef", //閘道器生成的隨機字串
"params":[{"ip":"172.22.4.130"}] //閘道器IP地址
}
注意:“token”為閘道器生成的隨機字串,每10s重新整理一次,可用此token來生成寫裝置時的“key”。
子裝置心跳
子裝置心跳以組播方式傳送給(IP:224.0.0.50,Port:9898)。子裝置通過心跳告訴PC:子裝置正常工作(心跳上報頻率:睡眠裝置是每60分鐘一次,插電裝置是每10分鐘一次)。子裝置心跳格式如下:
{
"cmd":"heartbeat",
"model":"sensor_magnet.aq2",
"sid":"xxxxxxxx",
"params":[{"window_status":"open"}]
}
子裝置心跳中可能包含子裝置的屬性狀態,如格式中的"window_status":"open"
。在設定心跳的時候,需看此屬性狀態的具體使用場景。
例如:開窗關空調場景,可以使用上面的心跳(有可能正常的report報文丟失,心跳報文可以補救)。但關窗開空調場景,就不能使用上面的心跳。因為有可能人離開的時候把空調關了,但心跳報文又讓空調開啟,很浪費電。
因此,針對心跳報文的使用,使用者可根據使用需要自行決定是否用心跳做觸發。
裝置的讀寫操作
讀裝置
使用“read”命令以單播方式傳送給閘道器的UDP 9898埠。使用者可以用主動讀取各裝置的屬性狀態,閘道器返回該裝置的全部屬性資訊。
例如:
讀取牆壁開關的狀態:
{
"cmd":"read",
"sid":"xxxxxxxx" //牆壁開關did
}
閘道器以單播方式回覆,格式如下:
{
"cmd":"read_rsp",
"model":"ctrl_neutral2",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"},{"channel_1":"off"}]
}
寫裝置
使用“write”命令以單播方式傳送給閘道器的UDP 9898埠。當用戶需要控制各裝置時,可使用“write”命令。
例如:
將牆壁開關(單火單鍵)的狀態改為關閉:
{
"cmd":"write",
"model":"ctrl_neutral1",
"sid":"xxxxxxxx",
"key":"3EB43E37C20AFF4C5872CC0D04D81314",
"params":[{"channel_0":"off"}]
}
閘道器以單播方式回覆格式:
{
"cmd":"write_rsp",
"model":"ctrl_neutral1",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}]
}
該“write_rsp”只代表閘道器收到了write命令,params裡的屬性狀態為當前的裝置最新狀態,不是write之後的最終裝置狀態。最終的裝置狀態靠report報文進行上報。
注意:“key”為32個位元組長度的字串。當閘道器啟用了加密模式時,會對該key進行解密並校驗,以驗證寫命令的合法性。該“key”的生成規則是:使用者收到心跳“heartbeat”裡的16個位元組的“token”字串之後,使用閘道器的KEY(在APP裡獲取的隨機KEY)對該字串進行AES-CBC 128加密,生成16個位元組的密文後,再轉換為32個位元組的ASCII碼字串。
例如:米家智慧家庭APP中16個字元長度的隨機KEY為“0987654321qwerty“,”token”為”1234567890abcdef”,加密後的密文是:0x3E,0xB4,0x3E,0x37,0xC2,0x0A,0xFF,0x4C,0x58,0x72,0xCC,0x0D,0x04,0xD8,0x13,0x14。那麼,”key”為:”3EB43E37C20AFF4C5872CC0D04D81314”。
裝置上報和控制報文格式
JSON報文的基本格式:
{
"cmd":"write", //命令型別,支援write/read/write_rsp/read_rsp/report/heartbeat
"model":"ctrl_neutral2", //裝置型別
"sid":"xxxxxxxx", //裝置的did
"params":[{"channel_0":"on"},{"channel_1":"off"}] //params裡可以包含同一個裝置的多個屬性
}
裝置屬性列表
介紹Aqara產品的裝置型別、屬性和使用示例。
空調伴侶
(裝置型別model:acpartner.v3)
屬性 | 說明 |
---|---|
illumination | 空調伴侶的光照度,取值範圍一般為0~1300;支援report/read。 |
proto_version | 採用的通訊協議版本號,如”2.0.1”。 |
mid | 表示music id,即音樂鈴聲的id。支援write。取值有:0 |
join_permission | 取值“yes”/”no”,表示是否允許新增子裝置。 |
remove_device | 取值為子裝置的did(did的16進位制形式的字串),用於刪除某個子裝置。 |
on_off_cfg | 空調開關狀態,取值為off、on、toggle、invalid |
mode_cfg | 空調模式,取值為heat、cool、auto、dry、wind、circle、invalid |
ws_cfg | 空調風速,取值為low、middle、high、auto、circle、invalid |
swing_cfg | 空調掃風,取值為unswing、swing、invalid |
temp_cfg | 空調溫度,值為整形,取值為當前溫度,17~30 |
relay_status | 空調繼電器控制,取值為off、on、toggle |
例如:
屬性上報:
{
"cmd":"report",
"model":"acpartner.v3",
"sid":"xxxxxxxx",
"params":["illumination:500,"proto_version":"2.0.0"}]
//光照度為500,通訊協議版本為2.0.0。
}
控制:
播放mid為10005的自定義鈴聲:
{
"cmd":"write",
"model":"acpartner.v3",
"sid":"xxxxxxxx",
"params":[{"mid":10005}]
}
停止播放鈴聲:
{
"cmd":"write",
"model":"acpartner.v3",
"sid":"xxxxxxxx",
"params":[{"mid":10000}]
}
允許新增子裝置:
{
"cmd":"write",
"model":"acpartner.v3",
"sid":"xxxxxxxx",
"params":[{"join_permission":"yes"}]
}
注意:新增子裝置須在30s內進行操作:長按子裝置重置鍵3~5秒直到藍色指示燈連續閃爍後鬆開,閘道器提示裝置新增成功,即入網成功。不同子裝置長按重置鍵,指示燈可能不一樣,請根據實際情況操作。
刪除空調伴侶下的某個子裝置:
{
"cmd":"write",
"model":"acpartner.v3",
"sid":"xxxxxxxx",
"params":[{"remove_device":"158d0000f12345"}]
}
空調配置:
{
"cmd":"write",
"model":"acpartner.v3",
"sid":"xxxxxxxx",
"params":[{"on_off_cfg":"on"}]
}
智慧插座
(裝置型別model:plug)
屬性 | 說明 |
---|---|
channel_0 | on/off(開/關) |
load_power | 負載功率,單位是瓦(W) |
energy_consumed | 從產品開始被使用以來累計的負載消耗電量,單位是瓦時(Wh) |
例如:
屬性上報:
{
"cmd":"report",
"model":"plug",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}] //智慧插座狀態為“開”
}
控制:
{
"cmd":"write",
"model":"plug",
"sid":"xxxxxxxx",
"params":[{"channel_0":"off"}] //將智慧插座狀態改為“關”
}
心跳上報(~10分鐘每次):
{
"cmd":"heartbeat",
"model":"plug",
"sid":"xxxxxxxx",
"params":[{"load_power":9.57},{”energy_consumed":57}]
//負載功率為9.57W,負載消耗電量為57Wh。
}
牆壁插座
(裝置型別model:ctrl_86plug 和 ctrl_86plug.aq1 )
屬性 | 說明 |
---|---|
channel_0 | on/off/unknown(開/關/未知) |
load_power | 負載功率,單位是瓦(W) |
energy_consumed | 從產品開始被使用以來累計的負載消耗電量,單位是瓦時(Wh) |
例如:(以model:ctrl_86plug為例)
屬性上報:
{
"cmd":"report",
"model":"ctrl_86plug",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}] //牆壁插座狀態為“開”
}
控制:
{
"cmd":"write",
"model":"ctrl_86plug",
"sid":"xxxxxxxx",
"params":[{“channel_0”:”off”}] //將牆壁插座狀態改為“關”
}
心跳上報(~10分鐘每次):
{
"cmd":"heartbeat",
"model":"ctrl_86plug",
"sid":"xxxxxxxx",
"params":[{"load_power":9.57},{"energy_consumed":57}]
//負載功率為9.57W,負載消耗電量為57Wh。
}
牆壁開關(零火單鍵)
(裝置型別model:ctrl_ln1 和 ctrl_ln1.aq1)
屬性 | 說明 |
---|---|
channel_0 | on/off/unknown(開/關/未知) |
例如:(以model:ctrl_ln1為例)
屬性上報:
{
"cmd":"report",
"model":"ctrl_ln1",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}] //牆壁開關狀態為“開”
}
控制:
{
"cmd":"write",
"model":"ctrl_ln1",
"sid":"xxxxxxxx",
"params":[{"channel_0":"off"}] //將牆壁開關狀態改為“關”
}
牆壁開關(零火雙鍵)
(裝置型別model:ctrl_ln2)
屬性 | 說明 |
---|---|
channel_0 | on/off/unknown(開/關/未知) |
channel_1 | on/off/unknown(開/關/未知) |
例如:
屬性上報:
{
"cmd":"report",
"model":"ctrl_ln2",
"sid":"xxxxxxxx",
"params":[{"channel_1":"on"}] //牆壁開關2狀態為“開”
}
控制:
{
"cmd":"write",
"model":"ctrl_ln2",
"sid":"xxxxxxxx",
"params":[{"channel_1":"off"}] //將牆壁開關2狀態改為“關”
}
牆壁開關(單火單鍵)
(裝置型別model:ctrl_neutral1)
屬性 | 說明 |
---|---|
channel_0 | on/off(開/關) |
例如:
屬性上報:
{
"cmd":"report",
"model":"ctrl_neutral1",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}] //牆壁開關狀態為“開”
}
控制:
{
"cmd":"write",
"model":"ctrl_neutral1",
"sid":"xxxxxxxx",
"params":[{" channel_0":"off"}] //將牆壁開關狀態改為“關”
}
牆壁開關(單火雙鍵)
(裝置型別model:ctrl_neutral2)
屬性 | 說明 |
---|---|
channel_0 | on/off(開/關) |
channel_1 | on/off(開/關) |
例如:
屬性上報:
{
"cmd":"report",
"model":"ctrl_neutral2",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}] //牆壁開關1狀態為“開”
}
{
"cmd":"report",
"model":"ctrl_neutral2",
"sid":"xxxxxxxx",
"params":[{"channel_1":"on"}] //牆壁開關2狀態為“開”
}
控制:
{
"cmd":"write",
"model":"ctrl_neutral2",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}] //將牆壁開關1改為“開”
}
{
"cmd":"write",
"model":"ctrl_neutral2",
"sid":"xxxxxxxx",
"params":[{"channel_1":"off"}] //將牆壁開關2改為“關”
}
窗簾電機
(裝置型別model:curtain)
屬性 | 說明 |
---|---|
curtain_status | open/close/stop/auto (開窗簾/關窗簾/停止工作/自動工作)。支援“write”(write之後裝置會上報curtain_level),不支援“report”。 |
curtain_level | 取值:0-100表示開啟窗簾的百分比;-1或255表示位置未知。支援“write”和“report”。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"curtain",
"sid":"xxxxxxxx",
"params":[{"curtain_level":50}] //窗簾開啟50%
}
控制:
{
"cmd":"write",
"model":"curtain",
"sid":"xxxxxxxx",
"params":[{"curtain_status":"open"}] //開窗簾
}
{
"cmd":"write",
"model":"curtain",
"sid":"xxxxxxxx",
"params":[{"curtain_level":25}] //窗簾開啟25%
}
上報窗簾開啟狀態:
{
"cmd":"report",
"model":"curtain",
"sid":"xxxxxxxx",
"params":[{"curtain_level":25}] //上報窗簾已開啟25%
}
雙路控制器
(裝置型別model:lumi.ctrl_dualchn)
屬性 | 說明 |
---|---|
channel_0 | on/off/toggle(開/關) |
channel_1 | on/off/toggle(開/關) |
例如:
屬性上報:
{
"cmd":"report",
"model":"lumi.ctrl_dualchn",
"sid":"xxxxxxxx",
"params":[{"channel_0":"on"}]
}
RGB調光控制器
(裝置型別model:dimmer.rgbegl01)
屬性 | 說明 |
---|---|
power_status | on/off/unknown (開/關/未知) |
light_rgb | 取值範圍為0-0x64FFFFFF,最高位元組表示亮度(0 ~ 0x64),其餘3個位元組表示顏色值RGB |
light_level | 取值範圍為0~100,表示亮度為1% ~ 100% |
例如:
屬性上報:
{
"cmd":"report",
"model":"dimmer.rgbegl01",
"sid":"xxxxxxxx",
"params":[{"power_status":"on"}]
}
控制:
{
"cmd":"write",
"model":"dimmer.rgbegl01",
"sid":"xxxxxxxx",
"params":[{"light_rgb":845905783}]
}
空調溫控器
(裝置型別model:ctrl_hvac.aq1/airrtc.tcpecn01)
屬性 | 說明 |
---|---|
on_off_cfg | “on”/”off”/“toggle”/”circle”/”invalid” (開/關/切換/迴圈/未定義值) |
mode_cfg | “heat”/”cool”/”auto”/”dry”/”wind”/”circle”/”invalid” (制熱/製冷/自動/乾燥/送風/迴圈/未定義) |
ws_cfg | “low”/”middle”/”high”/”auto”/”circle”/”invalid” (低速/中速/高速/自動/迴圈/未定義) |
temp_cfg | 值為整形,使用者設定的、想達到的環境溫度,單位℃ |
env_temp | 空調環境溫度,單位℃ |
on_off_status | on/off (開/關),只讀 |
例如:
屬性上報:
{
"cmd":"report",
"model":"airrtc.tcpecn01",
"sid":"xxxxxxxx",
"params":[{"on_off_status":"on"}]
}
控制:
{
"cmd":"write",
"model":"airrtc.tcpecn01",
"sid":"xxxxxxxx",
"params":[{"temp_cfg":20}]
}
門窗感測器
(裝置型別model:sensor_magnet.aq2)
門窗感測器感知窗戶或門的開啟/關閉狀態,每動作一次傳送一次report。
屬性 | 說明 |
---|---|
window_status | open/close/unknown(開/關/未知) |
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv。一般情況下,小於2800mv時表示低電量。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"sensor_magnet.aq2",
"sid":"xxxxxxxx",
"params":[{"window_status":"open"}] //窗戶被開啟
}
心跳上報(~60分鐘每次):
{
"cmd":"report",
"model":"sensor_magnet.aq2",
"sid":"xxxxxxxx",
"params":[{"battery_voltage":3000}]
}
人體感測器
(裝置型別model:sensor_motion.aq2)
人體感測器探測到有人移動時會立即report資訊,同時上報光照度值”lux”和“illumination”。在一直有人移動的情況下,為了省電,人體感測器最快一分鐘傳送一次report。人體感測器在每個心跳時,也會上報當前的光照度值”lux”。其他情況下,人體感測器不上報光照度值。
屬性 | 說明 |
---|---|
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv。一般情況下,小於2800mv時表示低電量。 |
motion_status | 取值:motion表示探測到有人;unknown表示未知 |
lux | 光照度值,取值範圍 0 ~ 1200。在檢測到有人移動時採集光照度並上報;或者在感測器心跳時上報。 |
illumination | 光照度值,取值範圍 0 ~ 1200,只在檢測到有人移動時採集光照度並上報。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"sensor_motion.aq2",
"sid":"xxxxxxxx",
"params":[{"motion_status":"motion"}] //檢測到有人移動
}
同時上報光照度值:
{
"cmd":"report",
"model":"sensor_motion.aq2",
"sid":"xxxxxxxx",
"params":[{"lux":100},{"illumination":100}]
}
心跳上報(~60分鐘每次):
{
"cmd":"report",
"model":"sensor_motion.aq2",
"sid":"xxxxxxxx",
"params":[{"battery_voltage":3000},{"lux":50}]
}
溫溼度感測器
(裝置型別model:weather)
溫溼度感測器檢測到溫度變化達到0.5度或者溼度變化達到6%時,傳送一次report上報,溫度或溼度上報時,同時會上報氣壓值。溫溼度感測器在每次心跳時,也會上報當前溫度、溼度和氣壓值。
屬性 | 說明 |
---|---|
temperature | 溫度,數值型,預設的invalid值為10000。 |
humidity | 溼度,數值型,預設的invalid值為0。 |
pressure | 大氣氣壓值,數值型,單位帕Pa,取值範圍30000~110000。預設的invalid值為0。 |
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv。一般情況下,小於2800mv時表示低電量。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"weather",
"sid":"xxxxxxxx",
"params":[{"temperature":2333}] //溫度是23.33度
}
心跳上報(~60分鐘每次):
{
"cmd":"heartbeat",
"model":"weather",
"sid":"xxxxxxxx",
"params":[{"battery_voltage":3000}, {"temperature":2333},{"humidity":6678},{"pressure":99900}]
//溫度為23.33度,溼度為66.78%,大氣氣壓為99.9KPa。
}
水浸感測器
(裝置型別model:sensor_wleak.aq1)
屬性 | 說明 |
---|---|
wleak_status | 取值:normal表示沒有報警或者已解除報警;leak表示發生浸水報警。 |
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv。一般情況下,小於2800mv時表示低電量。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"sensor_wleak.aq1",
"sid":"xxxxxxxx",
"params":[{"wleak_status":"leak"}] //檢測到發生浸水報警
}
心跳上報(~60分鐘每次):
{
"cmd":"heartbeat",
"model":"sensor_wleak.aq1",
"sid":"xxxxxxxx",
"params":[{"battery_voltage":3000}]
}
無線開關
(裝置型別model:sensor_switch.aq2)
無線開關每按一次按鍵上報一個報文,400ms內按兩次上報的報文是雙擊。
屬性 | 說明 |
---|---|
button_0 | click/double_click(單擊/雙擊) |
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv。一般情況下,小於2800mv時表示低電量。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"sensor_switch.aq2",
"sid":"xxxxxxxx",
"params":[{"button_0":"click"}]
}
心跳上報(~60分鐘每次):
{
"cmd":"heartbeat",
"model":"sensor_switch.aq2",
"sid":"xxxxxxxx",
"params":[{"battery_voltage":3000}]
}
無線開關(升級版)
(裝置型別model:sensor_switch.aq3)
無線開關每按一次按鍵上報一個報文,400ms內按兩次上報的報文是雙擊。
屬性 | 說明 |
---|---|
button_0 | click/double_click/shake(單擊/雙擊/搖一搖) |
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv。一般情況下,小於2800mv時表示低電量。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"sensor_switch.aq3",
"sid":"xxxxxxxx",
"params":[{"button_0":"click"}] //單擊無線開關
}
心跳上報(~60分鐘每次):
{
"cmd":"heartbeat",
"model":"sensor_switch.aq3",
"sid":"xxxxxxxx",
"params":[{"battery_voltage":3000}]
}
86無線開關單鍵
(裝置型別model:sensor_86sw1.aq1)
屬性 | 說明 |
---|---|
button_0 | click/double_click(單擊/雙擊) |
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv。一般情況下,小於2800mv時表示低電量。 |
例如:
屬性上報:
{
"cmd":"report",
"model":"sensor_86sw1.aq1",
"sid":"xxxxxxxx",
"params":[{"button_0":"double_click"}]
}
86無線開關雙鍵
(裝置型別model:sensor_86sw2.aq1)
屬性 | 說明 |
---|---|
button_0 | click(左鍵單擊);double_click(左鍵雙擊) |
button_1 | click(右鍵單擊);double_click(右鍵雙擊) |
dual_channel | both_click(左右鍵同時按) |
例如:
屬性上報:
{
"cmd":"report",
"model":"sensor_86sw2.aq1",
"sid":"xxxxxxxx",
"params":[{"button_1":"double_click"}]
}
魔方感測器
(裝置型別model:sensor_cube.aqgl01)
屬性 | 說明 |
---|---|
cube_status | flip90/flip180/move/tap_twice/shake_air/swing/alert/free_fall/rotate(翻轉90度/翻轉180度/平移/雙擊/搖一搖/用力甩/靜止一段時間後被觸動/自由下落) |
rotate_degree | 旋轉的角度,單位是度(°) ,取值為正數,表示是順時針轉,負數為逆時針轉。 |
detect_time | 旋轉取樣的時間長度,單位毫秒(ms) |
battery_voltage | 鈕釦式電池電壓值,單位mv,範圍0~3300mv,一般情況下,小於2800mv時表示低電量。 |
例如:
屬性上報:
旋轉上報:花了500毫秒逆時針旋轉了90度
{
"cmd":"report",
"model":"sensor_cube.aqgl01",
"sid":"xxxxxxxx",
"params":[{“cube_status”:”rotate”},{"rotate_degree":-90},{"detect_time ":500}]
}
其他動作上報:
{
"cmd":"report",
"model":"sensor_cube.aqgl01",
"sid":"xxxxxxxx",
"params":[{"cube_status":"flip90"}]
}