倪海鷗
(福建星網(wǎng)銳捷通訊股份有限公司,福州 350000)
隨著科技飛速發(fā)展,計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、移動(dòng)通信、物聯(lián)網(wǎng)和機(jī)器人等各種高科技迅速改變?nèi)祟惿?,以住宅為核心的智能家居技術(shù)快速發(fā)展[1]。近年來,我國(guó)的智能家居產(chǎn)業(yè)蓬勃發(fā)展,智能家居設(shè)備廠商和集成商紛紛推出基于各種協(xié)議的智能面板、智能家電、智能燈光、窗簾、傳感器、智能門鎖、對(duì)講、監(jiān)控、機(jī)器人等等。這些協(xié)議中有線的如 X10、KNX、ISDN、DSL、Traditional Telphone、Ethernet[1]、Lonworks、485,無線的有zigbee、Wi-Fi[1],Blue-Tooth、IR,以及SIP等。在智能家居技術(shù)快速推廣的同時(shí),一些問題也逐漸暴露出來:在部署家庭智能時(shí)采用“云+端”的模式[2],使用不同廠家的單品或套裝,操控時(shí)在多個(gè)APP之間切換,大大降低了用戶體驗(yàn)[3];功能不同的智能設(shè)備往往采用不同的協(xié)議,這些智能單品之間不能互聯(lián)互通,無法實(shí)現(xiàn)輸入傳感器到執(zhí)行智能設(shè)備的智能聯(lián)動(dòng),達(dá)不到住宅智能的目的[4]。后續(xù)家庭智能網(wǎng)關(guān)的典型解決方案是“云+主機(jī)+端”的模式[5],該模式以主機(jī)為核心,在控制主機(jī)出廠時(shí)預(yù)置某種協(xié)議或某些協(xié)議間的轉(zhuǎn)換機(jī)制、支持該協(xié)議的某些智能設(shè)備的驅(qū)動(dòng)和算法[2]。家庭的智能設(shè)備局限于協(xié)議要求,對(duì)于靈活搭配其他協(xié)議的智能設(shè)備,智能主機(jī)需要面對(duì)全面升級(jí)的風(fēng)險(xiǎn),否則無法實(shí)現(xiàn)操控和設(shè)備間的互聯(lián)。市場(chǎng)期待適時(shí)適度地滿足個(gè)性化需求的第四代智能家居產(chǎn)品[6-7]。
圖1 “云+輕量主機(jī)+端”的智能家居模式
為了解決上述問題,本文介紹了一種以用戶配置為核心、可訂制、跨協(xié)議的智能家居系統(tǒng)的架構(gòu)實(shí)現(xiàn)全協(xié)議的住宅智能。本系統(tǒng)根據(jù)智能家居組網(wǎng)模型[5]的“云+輕量主機(jī)+端”的智能家居模式。
該模式以服務(wù)云提供的用戶配置作為協(xié)調(diào)者,智能主機(jī)充當(dāng)各種配置容器和執(zhí)行者,完成配置的要求。“輕量主機(jī)”出廠沒有預(yù)置智能家居的協(xié)議轉(zhuǎn)換、計(jì)算處理等業(yè)務(wù)功能,只提供基本服務(wù),對(duì)于具體的家庭業(yè)務(wù)動(dòng)態(tài)加載。
基于“云+輕量主機(jī)+端”的智能家居模式,本系統(tǒng)通過對(duì)智能住宅施工階段和維護(hù)階段的用戶需求和智能設(shè)備產(chǎn)品所表現(xiàn)的共同特性建模,定義了一系列的協(xié)議規(guī)范,形成一套個(gè)性化、可擴(kuò)展的配置內(nèi)容。如圖2所示,以一個(gè)家庭使用一臺(tái)智能主機(jī)為例,縱向展示了以用戶配置為核心的可定制化的系統(tǒng)解決方案。本系統(tǒng)中各部分主要功能為:1)服務(wù)云存儲(chǔ)用戶配置、提供協(xié)議動(dòng)態(tài)庫、智能設(shè)備的指令集和驅(qū)動(dòng)庫、UI資源等。2)智能主機(jī)下載用戶配置中的設(shè)備配置,根據(jù)配置的設(shè)備和協(xié)議內(nèi)容,從服務(wù)云加載相應(yīng)的動(dòng)態(tài)庫、管理設(shè)備、模塊間協(xié)同工作。3)APP下載用戶配置中的UI配置,忽略智能終端的差異,兼容不同手機(jī)類型和分辨率[8],動(dòng)態(tài)布局和呈現(xiàn)界面控件與用戶交互。
圖2 一種基于云的智能家居系統(tǒng)結(jié)構(gòu)
本系統(tǒng)實(shí)現(xiàn)通過用戶云配置、智能主機(jī)動(dòng)態(tài)加載定制的協(xié)議庫,支持跨協(xié)議的智能設(shè)備之間互相聯(lián)動(dòng)。該系統(tǒng)支持局域網(wǎng)Wifi[8]操作和遠(yuǎn)距離操作、監(jiān)控視頻;能夠通過各種環(huán)境傳感、偵測(cè)、語音裝置驅(qū)使智能設(shè)備、機(jī)器人等執(zhí)行相應(yīng)動(dòng)作;在部署前期、期間或后期,都可以通過修改云配置和同步功能實(shí)現(xiàn)輕松維護(hù)。
本系統(tǒng)的服務(wù)云符合基本的云架構(gòu)[9]。主要模塊有云數(shù)據(jù)管理、通信交互、消息訂閱、媒體播放和系統(tǒng)安全管控。云數(shù)據(jù)管理主要包括帳號(hào)系統(tǒng)、智能設(shè)備管理、用戶配置數(shù)據(jù)、版本管理、業(yè)務(wù)大數(shù)據(jù)等。其中可定制化內(nèi)容的設(shè)計(jì)如下:
2.1.1智能設(shè)備管理
本系統(tǒng)定義了智能家居協(xié)議接口規(guī)范、智能設(shè)備類接口規(guī)范。協(xié)議接口規(guī)范定義了主機(jī)動(dòng)態(tài)加載協(xié)議的必要內(nèi)容和有用信息,這部分將在智能主機(jī)部分詳細(xì)描述。系統(tǒng)目前支持的智能家居系統(tǒng)的主流協(xié)議有Zigbee、KNX、Lonworks、485以及SIP等。協(xié)議模型的關(guān)鍵項(xiàng)有:協(xié)議類型唯一標(biāo)示,動(dòng)態(tài)庫下載地址,動(dòng)態(tài)庫版本。服務(wù)云管理員在Web頁面導(dǎo)入研發(fā)輸出的協(xié)議庫,生成庫文件的MD5值作為版本控制,譬如:(knx,http∶//smarthome.sc.cn/knx-driver-39456.so,1c661c4dff1b5847de6d0042574 3eac)。上傳文件保存到文件服務(wù)器,以供智能主機(jī)適時(shí)下載。智能設(shè)備類模型的關(guān)鍵項(xiàng)有:設(shè)備類型唯一標(biāo)示,指令數(shù)據(jù)集,驅(qū)動(dòng)庫下載地址,驅(qū)動(dòng)庫版本。譬如:(zigbee-sensor,{"cid"∶"010001","lab"∶""},http∶//smarthomesc.cn/knx-driver-39456.so,21c661c4 dff1b5847de6d00425743e ac)。
2.1.2指令數(shù)據(jù)規(guī)范
指令數(shù)據(jù)規(guī)范是系統(tǒng)家庭業(yè)務(wù)具有擴(kuò)展性的基礎(chǔ)。本系統(tǒng)認(rèn)為智能家居的用戶操控行為、人體感受和物聯(lián)行為都有共同的屬性,可以用統(tǒng)一的領(lǐng)域模型描述這些動(dòng)作的不同內(nèi)容,因此建立了指令數(shù)據(jù)規(guī)范,定義了指令模型、數(shù)據(jù)類型、指令動(dòng)作和指令值的運(yùn)算規(guī)則。指令模型的關(guān)鍵項(xiàng)有:指令I(lǐng)D,指令值,值類型。譬如Zigbee開關(guān)面板的一個(gè)鍵開動(dòng)作或開著狀態(tài):(010001,1,1)。數(shù)據(jù)類型主要有數(shù)字、字符串、RGB、Json對(duì)象。指令動(dòng)作主要有:讀、寫、等待。指令模型的作用范圍包括:1)智能設(shè)備類型的指令數(shù)據(jù)集:根據(jù)智能設(shè)備的輸入輸出特性,定義指令集合,描述和值范圍。2)用于UI配置。隨著用戶布局感興趣的智能設(shè)備和輸入輸出,把布局配置同步到APP,指令也已經(jīng)預(yù)先設(shè)定。當(dāng)用戶需要操控設(shè)備,就在APP上點(diǎn)擊或雙擊或長(zhǎng)按控件,發(fā)送寫指令;對(duì)于配置中的狀態(tài)控件,APP主動(dòng)發(fā)送讀指令,呈現(xiàn)設(shè)備的實(shí)時(shí)狀態(tài)。3)用于設(shè)備的智能業(yè)務(wù):在用戶配置場(chǎng)景、定時(shí)、聯(lián)動(dòng)中的觸發(fā)條件和執(zhí)行動(dòng)作、訂閱關(guān)注的狀態(tài)等家庭業(yè)務(wù)時(shí),指令數(shù)據(jù)承載了家庭業(yè)務(wù)的具體需求。4)用于大數(shù)據(jù)采集:在智能主機(jī)上報(bào)狀態(tài)時(shí)云平臺(tái)執(zhí)行大數(shù)據(jù)采集。在統(tǒng)一的指令數(shù)據(jù)規(guī)范約束下,智能主機(jī)、服務(wù)云和APP具備了按照用戶需求定制家庭業(yè)務(wù)的基礎(chǔ)。
2.1.3透?jìng)鞯耐ㄐ欧绞?/p>
通過服務(wù)云的通信交互模型為智能主機(jī)-云-APP,采用透?jìng)鞯耐ㄐ欧绞绞乖破脚_(tái)具備高度擴(kuò)展的特性。智能家居系統(tǒng)中的APP與智能主機(jī)的通信交互可以歸納為三個(gè)方面:APP向主機(jī)下發(fā)操控指令、主機(jī)向APP報(bào)告狀態(tài)變化和主機(jī)向APP報(bào)告聯(lián)動(dòng)告警。服務(wù)云建立了通信報(bào)文模型,模型的關(guān)鍵項(xiàng)有:報(bào)文ID,發(fā)送方唯一標(biāo)示(from),接收方唯一ID(to),請(qǐng)求參數(shù)(request),返回(response)。request和response攜帶了符合指令模型的指令數(shù)據(jù)。譬如:用戶在APP上遠(yuǎn)距離開燈(如圖3所示)。
APP把UI配置中的指令填入request發(fā)送給平臺(tái),平臺(tái)收到指令后根據(jù)報(bào)文的to字傳送給主機(jī),該主機(jī)的指令模塊接收后,向燈的驅(qū)動(dòng)模塊發(fā)送開燈指令,request的指令值為新狀態(tài)塞入response,發(fā)送給平臺(tái)。云平臺(tái)根據(jù)主機(jī)的返回報(bào)文中的to透?jìng)鹘o該主機(jī)多個(gè)用戶的APP,從而實(shí)現(xiàn)APP遠(yuǎn)程操控智能設(shè)備的功能。無論智能家居業(yè)務(wù)如何擴(kuò)展,只要把動(dòng)作、人體感受和智能聯(lián)動(dòng)的觸發(fā)抽象成指令集,輸入到系統(tǒng),同步用戶配置和訂閱云服務(wù)后,就能實(shí)現(xiàn)遠(yuǎn)距離操控和被通知的效果。
圖3 開燈的交互過程
2.1.4定制安全驗(yàn)證
智能家居系統(tǒng)的安全驗(yàn)證一般集中在設(shè)備硬件節(jié)點(diǎn)、軟件單方面[12],本系統(tǒng)通過云平臺(tái)、設(shè)備硬件、軟件、用戶配置等多方面,提供了包括訪問驗(yàn)證、通信加密、權(quán)限管控和PIN碼等多種驗(yàn)證方式。其中訪問驗(yàn)證包括了客戶端與智能主機(jī)的入網(wǎng)驗(yàn)證、用戶帳號(hào)使用云數(shù)據(jù)需要經(jīng)過票據(jù)驗(yàn)證和權(quán)限驗(yàn)證、訪問家庭的隱私設(shè)備(譬如監(jiān)控、門鎖)需要PIN碼驗(yàn)證等。這些隱私設(shè)備的操控都可以在設(shè)備驅(qū)動(dòng)的屬性中控制,要求UI操控時(shí)使用PIN碼驗(yàn)證。這些安全驗(yàn)證憑據(jù)具有臨時(shí)申請(qǐng)、動(dòng)態(tài)變更,更新周期短的特點(diǎn)。智能主機(jī)啟動(dòng)后隨機(jī)生成密鑰Key,上報(bào)云平臺(tái)的服務(wù)器,隱私設(shè)備上線時(shí)根據(jù)Key生成設(shè)備訪問密鑰。譬如APP建立遠(yuǎn)程加密連接,在播放監(jiān)控前先獲取密鑰,以此密鑰訪問服務(wù)云的媒體服務(wù)器,媒體服務(wù)經(jīng)過密鑰驗(yàn)證和帳號(hào)系統(tǒng)的權(quán)限驗(yàn)證,建立RTP通道,完成播放。
智能主機(jī)以O(shè)penWRT為核心系統(tǒng)[13],對(duì)KNX設(shè)備、KNX 的 TCP/IP 轉(zhuǎn)換[11]、Zigbee傳感器[13]、Zigbee設(shè)備路由算法[16]等協(xié)議算法和設(shè)備功能單獨(dú)實(shí)現(xiàn),形成獨(dú)立的so文件,使用時(shí)動(dòng)態(tài)加載,根據(jù)定制業(yè)務(wù)支持異構(gòu)智能設(shè)備之間的互聯(lián)互通[14]。因此智能主機(jī)的設(shè)計(jì)目標(biāo)是搭建一個(gè)互聯(lián)互通的管理平臺(tái),各種定制的協(xié)議、智能設(shè)備、智能業(yè)務(wù)能夠根據(jù)用戶家庭業(yè)務(wù)的需求進(jìn)行自動(dòng)地裝載和卸載。
管理平臺(tái)主要包括:模塊管理、入網(wǎng)管理、管理中心、智能聯(lián)動(dòng)、權(quán)限管理、數(shù)據(jù)模塊、交互模塊以及其他網(wǎng)絡(luò)管理部分。系統(tǒng)設(shè)計(jì)圖4所示。
圖4 智能主機(jī)可定制化的設(shè)計(jì)
其中交互模塊提供Socket和http服務(wù)[10],實(shí)現(xiàn)與APP本地發(fā)現(xiàn)、本地交互、與平臺(tái)遠(yuǎn)程通信。模塊管理根據(jù)配置動(dòng)態(tài)加載模塊驅(qū)動(dòng)、協(xié)議驅(qū)動(dòng)、版本升級(jí)等,管理中心負(fù)責(zé)模塊協(xié)同、智能聯(lián)動(dòng)等環(huán)節(jié)充分體現(xiàn)了可定制化的特點(diǎn)。
2.2.1根據(jù)配置管理模塊
配置管理是實(shí)現(xiàn)根據(jù)用戶需求使用家庭業(yè)務(wù)的入口。出廠狀態(tài)的智能主機(jī)初次上電后,主機(jī)的配置管理模塊攜帶配置的版本信息向云服務(wù)請(qǐng)求最新配置,云服務(wù)通過版本比較,推送一份最新的設(shè)備配置:根據(jù)工程師與用戶溝通后形成的智能設(shè)備列表等計(jì)算輸出一份數(shù)據(jù),該數(shù)據(jù)根據(jù)需求定制,并符合協(xié)議模型規(guī)范和智能設(shè)備類模型規(guī)范。隨后通知模塊管理檢查模塊版本:比較協(xié)議的動(dòng)態(tài)庫MD5的版本,根據(jù)協(xié)議的下載地址下載最新動(dòng)態(tài)庫文件,比較智能設(shè)備類的驅(qū)動(dòng)庫MD5的版本,根據(jù)驅(qū)動(dòng)的下載地址下載最新的驅(qū)動(dòng)文件。重啟主機(jī)后,根據(jù)協(xié)議提供的方式添加智能設(shè)備,該設(shè)備即可加入家庭業(yè)務(wù),實(shí)現(xiàn)智能控制。這樣的接口設(shè)計(jì)具有擴(kuò)展性,是根據(jù)用戶需求添加設(shè)備,充分發(fā)揮主機(jī)性能的重要設(shè)計(jì)。
2.2.2嵌套的智能聯(lián)動(dòng)
系統(tǒng)的智能聯(lián)動(dòng)模塊主要負(fù)責(zé)執(zhí)行配置中的智能家庭業(yè)務(wù)部分。家庭常見業(yè)務(wù)有序列、聯(lián)動(dòng)、情景模式和定時(shí),都可以統(tǒng)一為一種基本的業(yè)務(wù)模型,關(guān)鍵項(xiàng)包括:業(yè)務(wù)ID、條件組合、組合中等待時(shí)間、執(zhí)行序列、序列中間隔時(shí)間、布防標(biāo)示。條件組合和執(zhí)行序列都符合指令數(shù)據(jù)規(guī)范。當(dāng)把這些業(yè)務(wù)的使能也視為指令,就實(shí)現(xiàn)了聯(lián)動(dòng)嵌套。在業(yè)務(wù)中執(zhí)行其他業(yè)務(wù)的布防和撤防,這個(gè)業(yè)務(wù)嵌套能力使得系統(tǒng)能夠?qū)崿F(xiàn)復(fù)雜的情景模式。譬如用戶需要一個(gè)簡(jiǎn)單的布防策略:當(dāng)5秒內(nèi)門磁觸發(fā)且PIR觸發(fā)時(shí),執(zhí)行報(bào)警器聲光報(bào)警、發(fā)送消息通知主人、保安。在不同的情景模式中布防或撤防,例如當(dāng)一個(gè)情景按鈕按下時(shí),執(zhí)行以下模式:7∶00—18∶00撤防;18∶00—23∶00 客廳燈光開啟;撤防;23∶00—7∶00客廳燈光關(guān)閉;布防。為了避免循環(huán),增加了環(huán)路檢測(cè),在一個(gè)事務(wù)中,當(dāng)設(shè)備同時(shí)出現(xiàn)在條件和執(zhí)行動(dòng)作中時(shí),在配置過程中模擬,事務(wù)執(zhí)行過程中聯(lián)動(dòng)中止。智能聯(lián)動(dòng)支持家庭的具體個(gè)性要求,支持多種復(fù)雜條件的組合,使系統(tǒng)在可定制的基礎(chǔ)上提升住宅的智能化程度。
智能家居系統(tǒng)的UI布局需要為每個(gè)用戶考慮以下個(gè)性定制的內(nèi)容:經(jīng)常操作哪些設(shè)備、看哪些情況、當(dāng)下喜歡怎么顯示、放在哪個(gè)位置、視覺疲勞時(shí)改顏色、換圖片、改變位置、用不同的手機(jī)[8]等問題,簡(jiǎn)化操作步驟、簡(jiǎn)單易用。本系統(tǒng)定義了一系列的UI布局規(guī)范,通過分析用戶變化莫測(cè)的需求,形成符合規(guī)范的云配置,APP根據(jù)規(guī)范解析配置數(shù)據(jù),實(shí)現(xiàn)UI靈活多變的效果[17]。
2.3.1布局
布局規(guī)范設(shè)計(jì)包括:1)為一個(gè)界面用行數(shù)列數(shù)劃分坐標(biāo),對(duì)應(yīng)到APP上的位置和距離的百分比;2)所有UI控件抽象為一種基礎(chǔ)的UI控件模型,其中的關(guān)鍵項(xiàng)有:位置行、位置列、寬、高、讀序列、寫序列,通過坐標(biāo)實(shí)現(xiàn)位置的相互約束。
2.3.2視覺效果
定義一套控件:標(biāo)簽、圖片、按鈕、圖片按鈕、多鍵按鈕、滑動(dòng)開關(guān)、多值枚舉等;定義一些容器:組、模板組、表格;定義一些獨(dú)立功能組件:視頻組件、歷史數(shù)據(jù)組件、語音組件等;各種控件各有特征項(xiàng),譬如滑動(dòng)開關(guān)有頻率設(shè)置,在連續(xù)滑動(dòng)手勢(shì)的基礎(chǔ)上以合適的間隔操控智能設(shè)備。
每種控件都可以通過配置,保留用戶特別關(guān)注的顏色、文字等視覺效果。其中的模板組是某一設(shè)備類驅(qū)動(dòng)規(guī)范中提供的相關(guān)功能的集合,譬如電視接入,通過拖入布局,關(guān)聯(lián)到用戶的設(shè)備ID,用來提高UI設(shè)計(jì)的效率。
2.3.3操控和狀態(tài)呈現(xiàn)
用戶通過界面的控件的事件操作設(shè)備,或者通過語音功能,在平臺(tái)過濾后,得出匹配的指令數(shù)據(jù),操控設(shè)備[15]。這些事件包含了根據(jù)用戶需求定制的設(shè)備操控指令序列。這些控件的設(shè)置中還可能包括讀取智能設(shè)備狀態(tài)的指令,譬如APP定時(shí)主動(dòng)刷新狀態(tài),通過這些設(shè)置還可以在收到狀態(tài)變化上報(bào)時(shí),改變界面的控件的狀態(tài)呈現(xiàn)。UI動(dòng)態(tài)更新智能設(shè)備狀態(tài)的過程如圖5所示。
圖5 智能設(shè)備操控和狀態(tài)更新的流程
圖6 用戶配置和APP界面呈現(xiàn)
我司進(jìn)入智能家居行業(yè)多年,隨著市場(chǎng)推廣,用戶訴求不斷個(gè)性化、維護(hù)成本不斷升高,因此對(duì)整個(gè)智能家居系統(tǒng)進(jìn)行全面改進(jìn),從用戶需求“求異”出發(fā),在云平臺(tái)、智能主機(jī)和APP各方面實(shí)現(xiàn)最大的定制化設(shè)計(jì)。本系統(tǒng)的用戶配置和APP界面如圖6所示。在以用戶需求為核心的智能家居系統(tǒng)的實(shí)踐過程中,因?yàn)槎ㄖ苾?nèi)容豐富,使得配置過程相對(duì)復(fù)雜。如何讓工程商輕松地把新設(shè)備的驅(qū)動(dòng)等輸入到系統(tǒng)的云服務(wù),如何簡(jiǎn)化智能主機(jī)上線配置,如何讓用戶自定義UI布局輕松有趣、語音匹配更優(yōu)等等,還需要繼續(xù)深入研究。
本文基于“云+輕量主機(jī)+端”的智能家居模式,以用戶配置為核心的智能家居系統(tǒng)架構(gòu),并且介紹了關(guān)鍵模塊的實(shí)現(xiàn)方法。該系統(tǒng)的云、主機(jī)和APP基于一系列的協(xié)議規(guī)范,貼近需求、通過配置使不同協(xié)議的智能設(shè)備間互聯(lián)互通,解決市場(chǎng)問題,實(shí)現(xiàn)家庭業(yè)務(wù)個(gè)性化定制,提升住宅智能的舒適度,向下一代智能家居產(chǎn)品邁進(jìn)。
西昌學(xué)院學(xué)報(bào)(自然科學(xué)版)2018年2期