本發(fā)明涉及領(lǐng)域智能家居領(lǐng)域,尤其涉及一種智能家居系統(tǒng)的智能主機(jī)與云服務(wù)之間的通信方法。
背景技術(shù):
隨著信息科技的快速發(fā)展,智能家居系統(tǒng)由于其便利性,其應(yīng)用越來(lái)越普及。由于傳統(tǒng)的智能家居系統(tǒng)的控制中心采用家用個(gè)人電腦(PC機(jī))和協(xié)調(diào)器等設(shè)備作為控制中心,基于傳統(tǒng)客戶(hù)端/服務(wù)器(C/S)架構(gòu)的智能家居系統(tǒng)需要保持一臺(tái)個(gè)人電腦(PC機(jī))運(yùn)行作為中間件才能達(dá)到隨時(shí)控制的目的,通過(guò)個(gè)人電腦(PC機(jī))保持與服務(wù)器的連接,使用戶(hù)的控制終端(如手機(jī)、可穿戴設(shè)備遙控器等)能夠獲取到當(dāng)前的智能家居系統(tǒng)的底層設(shè)備狀態(tài)。
如圖4所示,上述應(yīng)用的客戶(hù)端/服務(wù)器架構(gòu)的傳統(tǒng)智能家居系統(tǒng)的設(shè)備控制步驟包括:
步驟一:開(kāi)啟一臺(tái)個(gè)人電腦(PC機(jī))保證其能一直連接互聯(lián)網(wǎng),啟動(dòng)個(gè)人電腦(PC機(jī))內(nèi)的本地服務(wù)器定時(shí)3S去訪(fǎng)問(wèn)云服務(wù),并且與網(wǎng)關(guān)基于局域網(wǎng)Socket保持長(zhǎng)連接。
步驟二:?jiǎn)?dòng)一個(gè)網(wǎng)關(guān)與個(gè)人電腦(PC機(jī))通過(guò)局域網(wǎng)Socket保持長(zhǎng)連接,啟動(dòng)一個(gè)線(xiàn)程并對(duì)底層設(shè)備接收/發(fā)送控制數(shù)據(jù)。
步驟三:云服務(wù)收到一個(gè)用戶(hù)發(fā)送的帶有底層設(shè)備唯一編號(hào)的設(shè)備控制指令,并存儲(chǔ)下來(lái)。
步驟四:個(gè)人電腦(PC機(jī))定時(shí)3S主動(dòng)向云服務(wù)發(fā)送一個(gè)帶有底層設(shè)備唯一編號(hào)的請(qǐng)求最新數(shù)據(jù)指令。
步驟五:云服務(wù)收到外來(lái)的個(gè)人電腦(PC機(jī))的連接請(qǐng)求之后。先獲取個(gè)人電腦(PC機(jī))請(qǐng)求連接的底層設(shè)備唯一標(biāo)志,確定是已注冊(cè)的個(gè)人電腦(PC機(jī))連接請(qǐng)求,則獲取當(dāng)前的底層設(shè)備唯一編號(hào),并將云服務(wù)存儲(chǔ)的當(dāng)前的底層設(shè)備唯一編號(hào)的設(shè)備控制指令反饋給個(gè)人電腦(PC機(jī));如果不對(duì),丟棄不處理,繼續(xù)監(jiān)聽(tīng)個(gè)人電腦(PC機(jī))連接請(qǐng)求。
步驟六:個(gè)人電腦(PC機(jī))請(qǐng)求云服務(wù)獲取最新數(shù)據(jù)指令,在云服務(wù)認(rèn)證確認(rèn)通過(guò)之后,個(gè)人電腦(PC機(jī))收到云服務(wù)反饋的最新數(shù)據(jù)指令。解析出來(lái),并通過(guò)局域網(wǎng)Socket通信發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)收到設(shè)備控制指令,下發(fā)控制指令控制設(shè)備(例如:開(kāi)燈)。
以上采用智能家居采用客戶(hù)端/服務(wù)器(C/S)架構(gòu)的智能家居系統(tǒng),需要采用一個(gè)單獨(dú)的個(gè)人電腦(PC機(jī))與云服務(wù)通信,其系統(tǒng)實(shí)現(xiàn)成本較高。同時(shí),由于個(gè)人電腦(PC機(jī))是定時(shí)去訪(fǎng)問(wèn)服務(wù)器,用戶(hù)控制底層設(shè)備到底層設(shè)備響應(yīng)并改變狀態(tài)的實(shí)時(shí)性較差。整套智能家居系統(tǒng)中使用單獨(dú)的個(gè)人電腦(PC機(jī)),增加了耦合度,使所述智能家居系統(tǒng)控制時(shí)受網(wǎng)絡(luò)的穩(wěn)定性影響加大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種實(shí)時(shí)性較好且相對(duì)較為安全的應(yīng)用于智能家居系統(tǒng)的智能主機(jī)與云服務(wù)之間的通信方法,用于解決上述技術(shù)問(wèn)題。
一種智能主機(jī)與云服務(wù)之間的通信方法,應(yīng)用于智能家居系統(tǒng),所述智能家居系統(tǒng)包括底層設(shè)備、智能主機(jī)、云服務(wù)以及控制終端,所述控制終端用于與所述云服務(wù)通信,并通過(guò)所述云服務(wù)及所述智能主機(jī)控制所述底層設(shè)備工作。所述智能主機(jī)與云服務(wù)之間的通信方法包括步驟:所述智能主機(jī)向所述云服務(wù)發(fā)送連接請(qǐng)求報(bào)文請(qǐng)求連接;所述云服務(wù)接收并讀取連接請(qǐng)求報(bào)文,向所述智能主機(jī)回復(fù)請(qǐng)求確認(rèn)報(bào)文;以及所述智能主機(jī)接收請(qǐng)求確認(rèn)報(bào)文,并與所述云服務(wù)保持長(zhǎng)連接。所述智能主機(jī)在與所述云服務(wù)保持連接的過(guò)程中,每間隔預(yù)定時(shí)間向云服務(wù)發(fā)送一條心跳報(bào)文,以確認(rèn)所述智能主機(jī)與所述云服務(wù)之間是否保持連接;其中,所述報(bào)文為二進(jìn)制字節(jié)流報(bào)文。
在其中一種實(shí)施方式中,當(dāng)所述云服務(wù)收到所述智能主機(jī)發(fā)送的心跳報(bào)文時(shí),所述云服務(wù)判斷該條心跳報(bào)文與同一智能主機(jī)的上一條心跳報(bào)文的時(shí)間差,若時(shí)間差在預(yù)設(shè)時(shí)間范圍內(nèi),則所述云服務(wù)直接回復(fù)一條心跳確認(rèn)報(bào)文,從而使所述云服務(wù)與所述智能主機(jī)繼續(xù)保持長(zhǎng)連接。
在其中一種實(shí)施方式中,若所述云服務(wù)判斷該條心跳報(bào)文與同一智能主機(jī)的上一條心跳報(bào)文的時(shí)間差超出預(yù)設(shè)時(shí)間范圍,則所述云服務(wù)主動(dòng)斷開(kāi)與所述智能主機(jī)的長(zhǎng)連接。
在其中一種實(shí)施方式中,當(dāng)所述云服務(wù)主動(dòng)斷開(kāi)與智能主機(jī)的長(zhǎng)連接后,所述智能主機(jī)再次發(fā)送連接請(qǐng)求報(bào)文請(qǐng)求連接。
在其中一種實(shí)施方式中,所述智能主機(jī)與所述云服務(wù)連接成功后,所述智能主機(jī)向所述云服務(wù)發(fā)送當(dāng)前與所述智能主機(jī)連接下的所有底層設(shè)備的設(shè)備狀態(tài)。
在其中一種實(shí)施方式中,每當(dāng)有底層設(shè)備狀態(tài)變化時(shí),所述智能主機(jī)將該底層設(shè)備的設(shè)備狀態(tài)通過(guò)報(bào)文的形式發(fā)送給所述云服務(wù)。
在其中一種實(shí)施方式中,所述智能主機(jī)在請(qǐng)求連接的過(guò)程中,持續(xù)監(jiān)聽(tīng)能否與所述云服務(wù)連接,且持續(xù)向所述云服務(wù)請(qǐng)求連接,直到與所述云服務(wù)保持長(zhǎng)連接。
在其中一種實(shí)施方式中,所述云服務(wù)在部署在云服務(wù)器上時(shí),即持續(xù)保持監(jiān)聽(tīng)等待所述智能主機(jī)的連接請(qǐng)求和接收所述智能主機(jī)發(fā)送的報(bào)文。
在其中一種實(shí)施方式中,所述云服務(wù)接收所述智能主機(jī)發(fā)送的報(bào)文后,首先獲取報(bào)文中的報(bào)文類(lèi)型信息,并根據(jù)報(bào)文類(lèi)型回復(fù)一個(gè)相應(yīng)的報(bào)文給所述智能主機(jī)。
在其中一種實(shí)施方式中,所述報(bào)文包括用于區(qū)分其他報(bào)文的報(bào)頭以及用于搭載控制信息的數(shù)據(jù)體。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明實(shí)施例提供的智能主機(jī)與云服務(wù)之間的通信方法中,所述智能主機(jī)與所述云服務(wù)保持長(zhǎng)連接,所述云服務(wù)收到用戶(hù)發(fā)送的設(shè)備控制指令,所述智能主機(jī)能夠立刻收到,從用戶(hù)控制到底層設(shè)備響應(yīng)幾乎一瞬間完成,實(shí)時(shí)性強(qiáng)。同時(shí),所述智能主機(jī)與所述云服務(wù)通過(guò)二進(jìn)制字節(jié)流的報(bào)文交互,安全保密性強(qiáng)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明的技術(shù)方案,下面將對(duì)實(shí)施方式中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的智能家居系統(tǒng)的框架示意圖;
圖2是本發(fā)明實(shí)施例提供的智能主機(jī)與云服務(wù)之間的通信報(bào)文的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例提供的智能主機(jī)與云服務(wù)之間的交互流程示意圖;
圖4是本發(fā)明背景技術(shù)的示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)同時(shí)參閱圖1至圖3,本發(fā)明實(shí)施例提供一種如圖3所示的智能主機(jī)與云服務(wù)之間的通信方法,應(yīng)用于如圖1所示的智能家居系統(tǒng)中。所述智能家居系統(tǒng)包括控制終端、遠(yuǎn)程服務(wù)器、家庭控制中心以及底層設(shè)備,所述控制終端用于接收用戶(hù)的操作指令,并用于將所述控制指令發(fā)送至所述遠(yuǎn)程服務(wù)器;所述遠(yuǎn)程服務(wù)器用于與所述家庭控制中心交互,并用于將所述控制指令發(fā)送至所述家庭控制中心;所述家庭控制中心用于與所述底層設(shè)備交互,并根據(jù)所述控制指令控制所述底層設(shè)備工作。其中,所述底層設(shè)備為智能家居設(shè)備,包括但不限于為燈光、插座、門(mén)磁、紅外等。
在本發(fā)明實(shí)施方式中,所述家庭控制中心為智能主機(jī),所述智能主機(jī)與所述底層設(shè)備及所述遠(yuǎn)程服務(wù)器通信連接。所述智能主機(jī)包括具有網(wǎng)關(guān)功能的硬件,所述硬件用于發(fā)送、接收所述底層設(shè)備的信號(hào),并能夠與所述遠(yuǎn)程服務(wù)器保持長(zhǎng)連接。所述智能主機(jī)與所述底層設(shè)備之間的通信基于ZigBee協(xié)議。應(yīng)當(dāng)理解的是,ZigBee是一種低速短距離傳輸?shù)臒o(wú)線(xiàn)網(wǎng)絡(luò)協(xié)議。ZigBee協(xié)議從下到上分別為物理層(PHY)、媒體訪(fǎng)問(wèn)控制層(MAC)、傳輸層(TL)、網(wǎng)絡(luò)層(NWK)、應(yīng)用層(APL)等。其中物理層和媒體訪(fǎng)問(wèn)控制層遵循IEEE 802.15.4標(biāo)準(zhǔn)的規(guī)定。所述長(zhǎng)連接應(yīng)當(dāng)理解為長(zhǎng)期與所述遠(yuǎn)程服務(wù)器連接、收發(fā)數(shù)據(jù)。所述底層設(shè)備控制中心與所述底層設(shè)備之間的連接基于傳感器網(wǎng)絡(luò)連接,其中,所述傳感器網(wǎng)絡(luò)可以通過(guò)ZigBee、Wi-Fi等無(wú)線(xiàn)通信技術(shù)組建。
在本發(fā)明實(shí)施方式中,所述遠(yuǎn)程服務(wù)器為云服務(wù),該云服務(wù)應(yīng)當(dāng)理解為部署在云服務(wù)器上的主從服務(wù)器。
在本發(fā)明實(shí)施方式中,所述控制終端所可以為但不限于為手機(jī)、平板電腦、可穿戴設(shè)備、遙控器等智能便攜式終端,所述控制終端同時(shí)具備網(wǎng)絡(luò)通信功能。用戶(hù)能夠通過(guò)所述控制終端實(shí)現(xiàn)對(duì)所述底層設(shè)備的控制,用戶(hù)的控制模式包括本地模式及遠(yuǎn)程模式。
所述本地模式應(yīng)當(dāng)理解為基于局域網(wǎng)控制模式:所述控制終端與所述智能主機(jī)連接于同一局域網(wǎng),并與所述智能主機(jī)進(jìn)行交互并將控制指令發(fā)送至所述智能主機(jī),以使所述控制終端能夠通過(guò)所述智能主機(jī)控制所述底層設(shè)備。所述遠(yuǎn)程模式應(yīng)當(dāng)理解為基于互聯(lián)網(wǎng)模式:所述控制終端連接于通信網(wǎng)絡(luò),并與所述云服務(wù)進(jìn)行交互,所述控制終端將控制指令發(fā)送至所述云服務(wù)后,所述云服務(wù)將控制指令發(fā)送至所述智能主機(jī),以使所述控制終端能夠通過(guò)所述云服務(wù)、所述智能主機(jī)控制所述底層設(shè)備。其中,所述控制終端與所述云服務(wù)之間、所述云服務(wù)與所述智能主機(jī)之間的通信協(xié)議為T(mén)CP/IP協(xié)議。
在本發(fā)明實(shí)施例中,所述智能主機(jī)作為所述底層設(shè)備控制和連接所述云服務(wù)的中間件,保證了所述底層設(shè)備與所述云服務(wù)的設(shè)備信息及控制設(shè)備響應(yīng)的實(shí)時(shí)性。另外,由于不需要單獨(dú)的個(gè)人電腦(PC機(jī))作為中間件,降低了耦合度,從而降低了網(wǎng)絡(luò)不穩(wěn)定對(duì)控制所述底層設(shè)備帶來(lái)的不良影響。
在本發(fā)明實(shí)施例中,所述智能家居系統(tǒng)的所述底層設(shè)備、所述智能主機(jī)、所述云服務(wù)及所述控制終端相互之間的通信通過(guò)收發(fā)報(bào)文的方式實(shí)現(xiàn)。
請(qǐng)參閱圖2,圖2示意性地示出了所述智能主機(jī)與所述云服務(wù)之間通信的報(bào)文的結(jié)構(gòu)。所述智能主機(jī)與所述云服務(wù)之間通信的報(bào)文協(xié)議如下:整段報(bào)文由二進(jìn)制的字節(jié)流組成,所述報(bào)文包括用于區(qū)分其他報(bào)文的報(bào)頭及用于搭載控制信息的數(shù)據(jù)體。所述報(bào)頭包括頭部、時(shí)間戳、設(shè)備號(hào)、報(bào)文類(lèi)型以及數(shù)據(jù)長(zhǎng)度。所述頭部用于區(qū)分其他報(bào)文,所述時(shí)間戳用于標(biāo)示所述報(bào)文發(fā)送時(shí)間,所述設(shè)備號(hào)用于標(biāo)示所述報(bào)文所對(duì)應(yīng)的底層設(shè)備的設(shè)備號(hào),所述報(bào)文長(zhǎng)度用于標(biāo)示所述數(shù)據(jù)體的長(zhǎng)度。其中,所述數(shù)據(jù)體的長(zhǎng)度在報(bào)頭的數(shù)據(jù)長(zhǎng)度中有,這樣可以避免所述報(bào)文被惡意抓包獲取數(shù)據(jù)信息。
請(qǐng)參閱圖3,圖3示意性地示出了所述云服務(wù)與所述智能主機(jī)之間的交互流程。當(dāng)所述智能主機(jī)收到所述底層設(shè)備上報(bào)的設(shè)備狀態(tài)等報(bào)文后,需要將所述底層設(shè)備的最新?tīng)顟B(tài)通過(guò)長(zhǎng)連接發(fā)送給所述云服務(wù),以允許所述云服務(wù)將所述底層設(shè)備的狀態(tài)信息保存在數(shù)據(jù)庫(kù)中。所述智能主機(jī)與云服務(wù)之間的通信方法包括以下步驟:
步驟一:所述智能主機(jī)每次接電開(kāi)機(jī),就啟動(dòng)與所述云服務(wù)通信的線(xiàn)程并向所述云服務(wù)發(fā)送連接請(qǐng)求報(bào)文。其中,所述智能主機(jī)在請(qǐng)求連接的過(guò)程中,持續(xù)監(jiān)聽(tīng)能否與所述云服務(wù)連接,并且持續(xù)向所述云服務(wù)請(qǐng)求連接,直到與所述云服務(wù)保持長(zhǎng)連接。
步驟二:當(dāng)收到所述智能主機(jī)的連接請(qǐng)求報(bào)文時(shí),所述云服務(wù)首先獲取報(bào)文中的報(bào)文類(lèi)型信息,若判斷是連接請(qǐng)求報(bào)文時(shí),所述云服務(wù)回復(fù)一個(gè)請(qǐng)求確認(rèn)報(bào)文給所述智能主機(jī)。若判斷是其他的報(bào)文,所述云服務(wù)回復(fù)一個(gè)相應(yīng)的報(bào)文給所述智能主機(jī)。其中,所述云服務(wù)在部署于云服務(wù)器上的時(shí)候,就啟動(dòng)監(jiān)聽(tīng)等待所述智能主機(jī)發(fā)送的連接請(qǐng)求和接收所述智能主機(jī)發(fā)送的報(bào)文,所述云服務(wù)器可以為阿里云服務(wù)器。
步驟三:當(dāng)所述智能主機(jī)收到所述云服務(wù)回復(fù)的請(qǐng)求確認(rèn)報(bào)文時(shí),則表示所述智能主機(jī)與所述云服務(wù)連接成功。同時(shí)所述智能主機(jī)向所述云服務(wù)發(fā)送當(dāng)前與所述智能主機(jī)連接下的所有底層設(shè)備(如插座,開(kāi)關(guān)等)的設(shè)備狀態(tài)。在所述智能主機(jī)與所述云服務(wù)保持連接的過(guò)程中,所述智能主機(jī)每間隔預(yù)定時(shí)間向所述云服務(wù)發(fā)送一條心跳報(bào)文,以確認(rèn)二者之間是否保持連接。所述預(yù)定時(shí)間可以為0.1秒、0.5秒、1秒、1.5秒、2秒等等。每當(dāng)有底層設(shè)備狀態(tài)變化時(shí),所述智能主機(jī)將該底層設(shè)備的設(shè)備狀態(tài)通過(guò)報(bào)文的形式發(fā)送給所述云服務(wù)。
步驟四:所述云服務(wù)將請(qǐng)求確認(rèn)報(bào)文回復(fù)至所述智能主機(jī)之后,持續(xù)監(jiān)聽(tīng)接收所述智能接收主機(jī)的報(bào)文。當(dāng)所述云服務(wù)收到底層設(shè)備狀態(tài)報(bào)文,其存儲(chǔ)底層設(shè)備狀態(tài)信息。當(dāng)所述云服務(wù)收到的智能主機(jī)的心跳確認(rèn)報(bào)文時(shí),所述云服務(wù)判斷該條心跳報(bào)文與同一智能主機(jī)的上一條心跳報(bào)文的時(shí)間差,若時(shí)間差在預(yù)設(shè)時(shí)間范圍內(nèi),則所述云服務(wù)直接回復(fù)一條心跳確認(rèn)報(bào)文,從而使所述云服務(wù)與所述智能主機(jī)繼續(xù)保持長(zhǎng)連接;若所述云服務(wù)判斷該條心跳報(bào)文與同一智能主機(jī)的上一條心跳報(bào)文的時(shí)間差超出預(yù)設(shè)時(shí)間范圍,則所述云服務(wù)主動(dòng)斷開(kāi)與所述智能主機(jī)的長(zhǎng)連接。
步驟五:當(dāng)所述云服務(wù)主動(dòng)斷開(kāi)與所述智能主機(jī)的長(zhǎng)連接后,所述智能主機(jī)再次發(fā)送連接請(qǐng)求報(bào)文請(qǐng)求連接,重復(fù)步驟一至四。
本發(fā)明實(shí)施例提供的智能家居系統(tǒng)的智能主機(jī)與云服務(wù)之間的通信方法中,采用了智能主機(jī)替代個(gè)人電腦成為家庭控制中心,降低了智能家居系統(tǒng)的實(shí)現(xiàn)成本。同時(shí),所述智能主機(jī)與所述云服務(wù)保持長(zhǎng)連接,所述云服務(wù)收到用戶(hù)發(fā)送的設(shè)備控制指令,所述智能主機(jī)能夠立刻收到,從用戶(hù)控制到底層設(shè)備響應(yīng)幾乎一瞬間完成,實(shí)時(shí)性強(qiáng)。另外,所述智能主機(jī)與所述云服務(wù)通過(guò)二進(jìn)制字節(jié)流的報(bào)文交互,安全保密性強(qiáng)。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。