1. 程式人生 > >閘道器區域網通訊協議V2.0

閘道器區域網通訊協議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。取值有:08,1013,20~29(上述為系統自帶鈴聲),10000(表示停止播放鈴聲),>10001(表示使用者自定義的鈴聲)。
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"}]
}