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"}]
}