網關局域網通信協議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"}]
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM