TW201830179A - 家用應用程式介面(api) - Google Patents

家用應用程式介面(api) Download PDF

Info

Publication number
TW201830179A
TW201830179A TW107101222A TW107101222A TW201830179A TW 201830179 A TW201830179 A TW 201830179A TW 107101222 A TW107101222 A TW 107101222A TW 107101222 A TW107101222 A TW 107101222A TW 201830179 A TW201830179 A TW 201830179A
Authority
TW
Taiwan
Prior art keywords
application
devices
environment
auxiliary device
information
Prior art date
Application number
TW107101222A
Other languages
English (en)
Inventor
瑪紐爾 羅曼
瑪拉克萊兒 西格爾
堆波爾 迪塞
安迪E 魯賓
Original Assignee
美商基礎產品股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商基礎產品股份有限公司 filed Critical 美商基礎產品股份有限公司
Publication of TW201830179A publication Critical patent/TW201830179A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Abstract

本揭示考慮用於控制與框架和/或環境作業系統(AmbientOS)耦合的各種不同家用裝置之各式改進的方法和系統。此種家用應用程式介面(API)以自然和直觀的方式表露家用裝置的操作,便於藉由高階命令來控制未知裝置。家用裝置以前後關係回應API命令。另外,家用應用程式介面可以定制所開發於經由具有人工智慧(AI)能力的輔助裝置來控制環境中的裝置的應用程式。

Description

家用應用程式介面(API)
本申請案依專利法主張於2017年8月1日Roman等人提出申請的發明名稱為「家用API(HOME API)」美國臨時專利申請案第62/540,006號、於2017年5月3日Roman等人提出申請的發明名稱為「家用裝置應用程式介面API(HOME DEVICE APPLICATION PROGRAMMING INTERFACE)」美國臨時專利申請案第62/512,658號及於2017年1月23日Roman等人提出申請的發明名稱為「家用API(HOME API)」美國臨時專利申請案第62/449,492號之優先權權益,本申請案依據以上美國專利申請案之揭露內容且該揭露內容以參考之方式全部併入本說明書。
本揭示考慮用於控制與框架和/或環境作業系統耦合的各種不同家用裝置之各式改進的方法和系統。
物聯網(IoT)允許裝置之間進行網際互聯以在裝置之間交換資料以實現複雜的功能。例如,配置用於家用自動化的輔助裝置可以與其他裝置交換資料以允許照明、空調系統、安全等的控制和自動化。現有解決方案需要使用者選擇單個裝置且係歸因於可能需要在選單格式中逐一設置裝置。
本揭示考慮用於控制與框架和/或環境作業系統(AmbientOS)耦合的各種不同家用裝置之各式改進的方法和系統。此種家用應用程式介面(API)以自然和直觀的方式表露家用裝置的操作,便於藉由高階命令來控制未知裝置。家用裝置以前後關係回應API命令。
本說明書所述的某些標的包括用於定制所開發於經由具有人工智慧(AI)能力的輔助裝置來控制環境中的裝置的應用程式之方法。該方法可包括以下步驟:藉由處理器初始化所開發於控制該環境中的該等裝置的該應用程式,該應用程式具有識別該環境中的該等裝置的功能及相關聯的裝置屬性;使用與該應用程式相關聯的定制識別符來決定該定制識別符,該定制識別符表示該應用程式先前已經執行了允許該應用程式在任何環境中連接到該等裝置的定制;請求在該環境中的該輔助裝置的一輔助裝置識別符,該輔助裝置識別符表示與該輔助裝置相關聯的唯一識別符;確定該輔助裝置的該輔助裝置識別符與先前所使用來定制該應用程式之該輔助裝置的該輔助裝置識別符相匹配;請求來自該輔助裝置關於連接到該環境中的該輔助裝置的該等裝置的子集之資訊,該資訊包含裝置識別符、裝置類型(device type)、裝置類別(device category)和更新日期,其中該更新日期包含安裝日期或配置日期中的一個或更多個;確定該裝置識別符、該裝置類型、該裝置類別或該更新日期中的一者沒有匹配儲存在與該應用程式相關聯的資料庫中的定制資訊,該資料庫儲存關於先前在該定制中使用的該等裝置的該子集的第二子集之資訊;基於該裝置識別符、該裝置類型、該裝置類別或該更新日期中的一者沒有匹配該定制資訊之確定來執行第二定制,其中該第二定制包含以下步驟:識別連接到與沒有匹配儲存在與該應用程式相關聯的該資料庫中的該定制資訊之該裝置識別符、該裝置類型、該裝置類別或該更新日期中的一者相關聯的該輔助裝置之該等裝置的該裝置子集的第三裝置子集,其中該等裝置的該第三子集不包含該等裝置的該第二子集;確定該應用程式的該裝置屬性匹配該等裝置中的一裝置的該裝置類型和該裝置類別;及向與該環境中的裝置的該第三子集相關聯的該應用程式提供儲存在該輔助裝置上的一配接器之一參考,其中該配接器能夠控制該裝置執行與該應用程式相關聯的該功能;及更新儲存在與該應用程式相關聯的該資料庫中的該定制資訊以反映被識別為連接到該輔助裝置的裝置的該第三子集;及執行該等裝置的該子集的該第三子集的該等裝置之一者的功能以回應來自該應用程式的請求。
本說明書描述的一些標的包括一種用於定制所開發於經由具有人工智慧(AI)能力的輔助裝置來控制環境中的裝置的應用程式之方法,該方法包括以下步驟:藉由處理器初始化所開發於控制該環境中的該等裝置的該應用程式,該應用程式具有識別該環境中的該等裝置的功能及相關聯的裝置屬性;藉由分析定制資訊來確定該應用程式先前未被定制,其中該定制表示允許該應用程式連接到該環境中的該等裝置;執行該定制的步驟包含以下步驟:識別與在該應用程式中所識別的該功能和該裝置屬性相匹配的連接到該環境中的該輔助裝置的該等裝置;向與該環境中的該等裝置相關聯的該應用程式提供儲存在該輔助裝置上的配接器之參考,其中該配接器能夠控制裝置以執行與該應用程式相關聯的該功能;及更新與該應用程式相關聯所儲存的該定制資訊以反映該定制已被執行;及執行該等裝置中之一者的功能以回應來自該應用程式的請求。
本說明書描述的一些標的包括一種用於定制所開發於經由具有人工智慧(AI)能力的輔助裝置來控制環境中的裝置的應用程式之系統,該系統包括:一個或更多個處理器;及儲存指令的記憶體,其中該處理器經配置執行該等指令,使得該處理器和該記憶體配置成:初始化所開發於控制該環境中的該等裝置的該應用程式,該應用程式具有識別該環境中的該等裝置的功能及相關聯的裝置屬性;藉由分析定制資訊來確定該應用程式先前未被定制,其中該定制表示允許該應用程式連接到該環境中的該等裝置;執行該定制的步驟包含以下步驟:識別與在該應用程式中所識別的該功能和該裝置屬性相匹配的連接到該環境中的該輔助裝置的該等裝置;向與該環境中的該等裝置相關聯的該應用程式提供儲存在該輔助裝置上的配接器之參考,其中該配接器能夠控制裝置以執行與該應用程式相關聯的該功能;及更新儲存在與應用程式相關聯的該資料庫中的定制資訊以反映該定制已被執行;及執行該等裝置中之一者的該功能以回應來自該應用程式的請求。
本揭示考慮與輔助裝置相關聯的環境的各種改進的方法和系統。在至少一個實施例中,家用輔助裝置可以包括家用裝置應用程式介面(家用API)。所述的API可以包括家庭環境中裝置之間的通信和輔助裝置與裝置之間的通信。API可以與開發工具相關聯,其包括用於開發、除錯和測試應用程式、行動裝置應用程式(apps)和/或命令以定制使用者家庭的程序。例如,想要創建用於控制家中所有照明裝置的應用程式的開發者可以使用開發者環境來創建應用程式。在至少一個實施例中,住家(home)可以是圍繞輔助裝置的環境,例如房屋、辦公室、汽車和/或商店。所生成的應用程式可以包含行動應用程式。
環境可以包括能夠提供不同功能的許多不同電子裝置。例如,住家環境可以包括燈光、恆溫器、智慧型電視和咖啡機。該等裝置可以被賦予不同的功能,例如打開燈光、改變溫度、關閉新聞和製作咖啡。裝置可以經配置而連接(如經由Wi-Fi、藍牙等)到輔助裝置,且輔助裝置可以經配置來控制裝置。例如,使用者可以告訴輔助裝置「請關閉電視」;輔助裝置可以向電視發送請求,使電視機關閉,來作為回應。在另一個實例中,使用者可以告訴輔助裝置「請關閉家中的所有燈」;輔助裝置可以向所有燈發出請求,使得家庭環境中的所有燈關閉,來作為回應。此配置可以藉由透過輔助裝置控制裝置而不是實體(physically)操作各個裝置,以節省使用者時間。
開發者環境(包括API)允許使用者和/或開發者藉由提供開發工具、例程、協定和資源來構建輔助裝置基礎架構,以簡化開發、除錯和測試應用程式、行動應用程式和/或命令以定制其住家。例如,開發者可以使用家用API來為智慧型手機(通信地耦合到輔助裝置)創建應用程式,其可以控制家中的所有燈。
圖1圖示連接到其他裝置的輔助裝置的實施例。輔助裝置101連接到一個或更多個裝置。裝置可以包括一個或更多個連接的裝置,如車庫門102、揚聲器103、燈104、恆溫器105和行動裝置106。裝置亦可以包括家用電器,如冰櫃、烤箱、空氣清淨機、洗衣機和乾衣機。在至少一個實施例中,裝置是諸如可穿戴裝置之類的裝置,和/或諸如掃地機器人之類的機器人。
裝置可以實體地和/或經由無線信號連接到輔助裝置。在至少一個實施例中,無線信號可以包括長期進化技術(LTE)、高級LTE、Wi-Fi、藍牙、ZigBee、EnOcean、個人區域網路、TransferJet、超寬帶、WiMAX、HiperMAN、Li-Fi和/或紅外線輻射(IR)中的一個或更多個。
每個連接的裝置都可以使用關聯的配接器和/或驅動程式進行控制。配接器可以是裝置特定的,且在至少一個實施例中是功能特定的。例如,恆溫器可具有相關聯的配接器,輔助裝置可以使用該配接器來操作或控制恆溫器。在一個實例中,輔助裝置可具有用於恆溫器的每個功能(如升高溫度、降低溫度、開啟風扇等)的配接器。配接器可以儲存在本端資源(如輔助裝置記憶體、輔助裝置外部記憶體等)和/或遠端資源(如雲端等)上。
連接的裝置可以由使用者通過輔助裝置來控制。例如,使用者可以口頭地指示輔助裝置「輔助裝置,請打開電視機。」作為回應,輔助裝置可以使用語音識別演算法來解析使用者指令。語音啟動命令「打開」和裝置敘述「電視」可以用於識別特定裝置。隨後,輔助裝置可以向電視機發送命令,請求其執行「打開」功能,從而將電視機打開。
在至少一個實施例中,語音識別演算法可以包括隱式馬爾可夫模型、基於動態時間翹曲的語音識別、神經網路、深度前饋神經網路、端對端自動語音識別(ASR)和/或其他類似的演算法中之一或更多者。
在至少一個實施例中,當輔助裝置在新環境中第一次啟動時,主動式空間管理器服務被啟動。主動式空間管理器可以識別環境中的裝置。在至少一個實施例中,主動式空間管理器識別環境的配置(即,裝置及其在環境中的位置)。主動式空間管理器可以確定家中的裝置,並將該等用於安全性目的的裝置標識為環境中允許的裝置,以及使用主動式空間簡檔(profile)標識該等裝置。在主動式空間簡檔建立之後進入環境的裝置可能需要執行認證流程以允許與輔助裝置互動。認證流程可以包括使用管理密碼和/或生物認證(即視覺識別、語音識別等)來認證裝置。在至少一個實施例中,創建主動式空間簡檔可以包括將憑證分配給環境中的裝置。
在至少一個實施例中,輔助裝置可以啟動整個模型服務,其可以識別房屋的位置、房屋的佈局以及房屋的房間。輔助裝置可以使用地理定位資訊(即GPS)、IP地址資訊和從使用者收集的資訊(如使用者提供的查詢(即,「舊金山天氣如何?」))來確定房屋的位置。此外,輔助裝置可以使用諸如視訊、聲訊和紅外線(IR)輸入的輸入來識別房屋的佈局。使用整個模型服務收集的資訊可以用於確定關於環境(如與裝置關聯的房間(即廚房、兒童房、主臥室等))中的所連接裝置的資訊。
環境可以包括多個輔助裝置。在具有多個輔助裝置的環境中,可以將一個輔助裝置指定為控制器,以及將其他裝置指定為周邊裝置。控制器裝置可以經配置而對周邊裝置進行單向控制。控制器狀態同步器服務可以同步控制器的狀態,且如果控制器變得無法使用,則控制器狀態同步器服務可以將其中一個周邊裝置指定為控制器裝置。與控制器裝置相關聯的資訊可以儲存在雲端上和/或周邊裝置上,使得當控制器裝置變得無法使用時,資訊可以被新控制器裝置使用。
圖2圖示可以在輔助裝置201上運行的核心服務。服務登錄202可以維護正在運行的微服務的列表及提供API來登錄及瀏覽它們。一旦啟動元件,它就可以啟動相關聯的一個或更多個微服務。與元件相關聯的正在運行的微服務可以列在服務登錄中。
元件管理器203可以負責驗證、安裝、卸載和瀏覽元件以及提供運行時間環境以樣例化該等元件。元件(component)是包含可以部署到框架中的資源的封包(package)。在至少一個實施例中,元件可以包括用於操作框架的特徵的資訊或電腦程式碼。在至少一個實施例中,一旦元件被執行,它將初始化一個或更多個微服務。
事件匯流排(Event Bus)204可以負責施行通信頻道。事件匯流排可以包括多個頻道,每個通道具有公佈的資訊。在至少一個實施例中,事件匯流排包括具有發佈者和訂閱者的機制。例如,事件匯流排可以包括用於天氣的特殊頻道,其中天氣資訊可以由天氣服務發佈和/或由訂閱者收集。查詢天氣的應用程式或使用者可以訪問事件匯流排的天氣頻道及識別最新的天氣。在另一個實例中,一個特殊的頻道可以與探索請求相關聯。在該實例中,配接器可以收聽頻道,且一旦應用程式發佈探索請求,配接器將開始探索裝置。在至少一個實例中,配接器可以在探索裝置時將訊息發佈到指定的事件匯流排通道。在至少一個實施例中,主動收聽特徵可以收集輔助裝置輸入以及在事件匯流排上發佈資訊。該等服務可以針對資訊監控事件匯流排,以及當在事件匯流排上識別出引起服務初始化的資訊時,可以初始化該等服務。
使用者管理器205可以負責提供創建、瀏覽、編輯和移除使用者的功能。在至少一個實施例中,當增加使用者時,使用者資訊被儲存在使用者管理器中。使用者管理器可以包括使用者簡檔(如使用者名稱、使用者生物辨識資訊和/或存取服務、微服務、實體等的許可)。
Ambient OS或框架可以是傳輸不可知的(agnostic),且且仰賴閘通道以施行底層協定與系統通信。微服務可以從傳輸中分離(decouple)出來,因此相同的代碼可以與不同的協定協同工作。Ambient OS提供以下閘通道。
WebSocket閘通道(WebSocketGateway)206可以依靠WebSocket作為元件之間的通信協定。在至少一個實施例中,WebSocket閘通道可以用於施行非同步傳訊。非同步傳訊可以包括兩個應用程式或裝置之間的通信;通信可以包括正在傳輸且不等待回覆而繼續的訊息。在至少一個實施例中,WebSocket閘通道可以用於施行同步傳訊。
HTTP閘通道207可以提供服務網頁應用程式(WebApp)所需的功能,最有利地使用(leverage)Ambient OS微服務以及向使用者展露基於HTML的GUI。例如,計時器網頁應用程式顯示帶有計數器的HTML頁面。此HTML頁面與計時器服務交互以設置倒數計時、啟動和停止計時器。此外,頁面收聽頻道,在時間結束時從定時服務獲取通知,以及相應地更新UI。
CloudWeb閘通道(CloudWebSocketGateway)208可以連接到在亞馬遜網路服務(Amazon Web Services(AWS))上運行的服務,以經由雲端啟用遠端交互。為了啟用環境計算,Ambient OS引入了「實體(entities)」的概念。實體是在環境中所存在可以被操縱的任何物體的數位表示。在至少一個實施例中,可以藉由環境外的裝置使用CloudWeb閘通道來存取環境內的裝置。例如,使用者可以藉由存取(access)雲端來存取環境,且使用者可以在環境之外時經由雲端操作裝置(即關燈、調節恆溫器)。
實體登錄209可以維護存在於環境中的實體的列表,以及提供API以登錄、瀏覽、註釋與移除實體。實體登錄仰賴稱為「配接器」的特定微服務類型。實體登錄可以包含所有裝置的列表。在至少一個實施例中,實體登錄包括連接到家用輔助裝置的裝置的列表。實體登錄可以儲存與所連接裝置相關聯的配接器列表。在一個實施例中,當配接器識別輔助裝置的環境中的裝置時,配接器將裝置登記在實體登錄中。在至少一個實施例中,配接器可以在表示所識別的裝置的實體登錄中創建物件。實體登錄可以將裝置列表儲存在資料庫中。一些實體的實例包括恆溫器、燈光、門鎖、電視和揚聲器。
在至少一個實施例中,輔助裝置可以存取與實體登錄相關聯的資料庫,該資料庫儲存連接的裝置和一個或更多個相關聯的配接器的列表、一個或更多個語音可啟用命令、活動類型、裝置描述、裝置類別和/或裝置位置。資料庫亦可以儲存在輔助裝置的本端資源上。在至少一個實施例中,資料庫可以在輔助裝置的外部儲存。例如,與恆溫器相關聯的資料庫條目可以是對恆溫器配接器、語音可啟用命令(如「設定溫度」、「打開風扇」等)、裝置描述(如「恆溫器」)、裝置類別(如「溫度調節」)和/或裝置位置(如「客廳」等)的參考。
圖3圖示應用程式工作流程的實例。應用程式可以包含對裝置的參考。在一些實施例中,開發者不知道使用者在住家環境中具有哪些裝置。在步驟301,應用程式可以在環境中第一次被初始化。在至少一個實施例中,應用程式可以自動確定它是在新的環境下。例如,先前已經在具有輔助裝置的使用者家中運行過的應用程式可以在進入使用者的工作環境時進行首次初始化。應用程式可以藉由偵測新環境來確定其作第一次初始化。可以藉由識別環境中新裝置的閾值及/或藉由在環境中識別新的輔助裝置來偵測新環境。當使用者將輔助裝置移動到新環境並打開應用程式時,應用程式可以確定它之前曾經連接到輔助裝置過。應用程式可以進一步確定環境中的裝置的閾值數量(即,50%、5個裝置、10個裝置等)是應用程式未連接到的裝置數量,以及因此應用程式可以確定它正在在一個環境中第一次初始化。
回應在環境301中第一次初始化應用程式。可以使用元件管理器302來識別與應用相關聯的裝置的屬性(如需求(requirements))。在至少一個實施例中,元件管理器由AmbientOS初始化。元件管理器可以查看應用程式的需求。在至少一個實施例中,元件管理器可以識別應用程式需求(如裝置)。應用程式的需求可以包括與應用程式的請求相關聯的裝置屬性。屬性可以包含有關裝置的資訊,如裝置類別。例如,應用程式可以有一按鈕,當按下按鈕時打開燈光;因此,與應用程式相關聯的屬性和/或裝置類別可以包括「燈光(light)」。因此,元件管理器可以識別與應用程式相關聯的屬性是燈光並且可以針對具有屬性「燈光」的一個或更多個實體來檢查與輔助裝置的環境相關聯的實體登錄。屬性的至少一個實施例可以包括位置。例如,廚房燈可具有相關的一組特徵屬性「廚房」和「燈光」。在至少一個實施例中,當與所相關聯的實體登錄中沒有找到具有由應用程式所指示的需求的裝置時,元件管理器可提示使用者。在至少一個實施例中,裝置的屬性資訊是從整個模型服務所收集的,整個模型服務可以識別房屋的位置、房屋的佈局以及裝置所在的房屋的房間。在至少一個實施例中,應用程式可以使用實體登錄來獲得對實體(如裝置)以及應用程式和/或實體所需的服務之參考。
在步驟303,由元件管理器識別的環境中的實體可以映射到應用程式的相關屬性。在該實例中,具有「燈光」屬性的所識別裝置(實體)可以映射到具有「燈光」裝置需求的應用程式。在至少一個實施例中,在應用程式需求指示實體中的多個參數的情況下,滿足兩個參數的家用環境中的裝置可以被映射到應用程式。例如,如果應用程式具有對同時為燈光裝置且是廚房裝置的一裝置需求,則只有與燈光參數和廚房參數相關聯的裝置才會映射到應用程式。映射可以包括向應用程式提供存取所關聯的裝置驅動程式的所需資訊。在至少一個實施例中,映射可以包括將應用程式所需的裝置的功能映射到實體管理器中所識別的裝置功能。應用程式可以使用實體登錄來獲取對所需實體和/或服務的參考。
在步驟304,申請人將指令提供給連接到輔助裝置的一個或更多個裝置。指令可以包括打開燈光、關閉燈光、鎖上前門等的指令。指令可以經由家用輔助裝置從應用程式發送到相關聯的裝置。指令可以包括能夠使所連接的裝置執行指令305之裝置配接器的初始化。在至少一個實施例中,應用程式可以向實體發送請求以連接到輔助裝置和/或應用程式。
圖4圖示裝置探索工作流程的實施例。應用程式401可以請求環境中的輔助裝置來探索裝置。應用程式401可以向輔助裝置的事件匯流排402發送訊息,該訊息指示針對探索裝置的請求404。在至少一個實施例中,配接器403收聽事件匯流排402上的訊息405。一旦配接器403識別到事件匯流排上指示針對探索裝置的請求之訊息,則配接器可以啟動裝置406的探索。在至少一個實施例中,針對探索裝置404的請求可以是針對探索特定類型的裝置(即揚聲器、燈泡、冰箱等)的請求。在至少一個實施例中,針對探索裝置404的請求可以是針對探索特定裝置(即,Philips Hue A19無線照明系統等)的請求。
在配接器識別針對探索特定裝置的請求的至少一個實施例中,可以存取或初始化與該特定裝置相關聯的配接器,且與該特定裝置相關聯的配接器可開始探索過程。在配接器識別針對裝置類型的請求的實施例中,與該裝置類型相關聯的配接器可以開始探索過程。
針對探索裝置的請求可以是針對探索裝置的通用要求。在至少一個實施例中,在請求為針對探索裝置的通用請求的情況下,輔助裝置可請求所有配接器啟動相關聯的裝置之探索。在請求為針對探索裝置的通用請求的另一個實施例中,輔助裝置可使某些配接器較其他配接器優先啟動相關聯的裝置。配接器的優先權可以包括使較受歡迎的(popular)配接器優先於較不受歡迎的配接器。配接器的優先權亦可以包括使較受歡迎的裝置類型之配接器優先於較不受歡迎的裝置類型之配接器。例如,如果燈光裝置類型比植物澆水裝置更受歡迎,則與燈光裝置類型相關聯的配接器可以較植物澆水裝置類型配接器更優先於探索裝置。受歡迎度可以包括所有權的盛行度率(例如,在使用者的地理區域銷售的裝置的數量、在全球銷售的裝置的數量、一年內在全球銷售的裝置的數量、一個月內在全球銷售的裝置的數量等)。
一旦配接器識別住家環境中的裝置,則它們可以將指示所探索的裝置的訊息發佈到事件匯流排408。該等訊息可以包括關於所探索的裝置的資訊或屬性(即,相關聯的配接器、裝置類型、裝置識別符等)。在至少一個實施例中,所探索的裝置被登錄在實體登錄中409,實體登錄中的裝置的識別符(即裝置ID)可以經由事件匯流排傳遞給應用程式。在至少一個實施例中,可以手動設定關於所探索的裝置的資訊。
圖5圖示確定裝置類別的實施例。該等裝置可以收集和/或生成大量的資料。裝置資料可以包括和/或用於導出關於裝置的前後關係(contextual)資料。裝置資料可以包含使用者對輔助裝置的命令,如「當電視機打開時請將客廳燈調暗」。在一個實例中,輔助裝置可以儲存使用者讓電視機打開的請求。使用者與裝置的請求和交互可以被儲存為裝置資料資訊。在至少一個實施例中,輔助裝置僅儲存從裝置收集的資訊,如打開燈的請求。在至少一個實施例中,裝置資料可以包括由裝置和/或輔助裝置所收集的以下資料中的一個或更多個:感測器資料、使用者手控命令、使用者口頭命令、使用者姿勢命令、設置資料、狀態資料、環境資料和/或其他資料。
在至少一個實施例中,如步驟501所示收集裝置資料資訊,以及使用機器學習演算法502導出類別資訊。在至少一個實施例中,所收集的資訊(如自所連接的裝置收集的裝置資訊)被收集及經由WebSocket閘道發送到人工智慧引擎。
類別可以基於衍生的刻面、特徵、前後關係資訊、關係資訊和/或語義資訊。機器學習演算法可以包括以下各者中一個或更多個:決策樹學習、關聯規則學習、人工神經網路、深度學習、歸納邏輯程式、支援向量機、分群法、貝葉斯網路、強化學習、表徵學習、相似度和度量學習、稀疏字典學習、基因演算法、基於規則的機器學習、學習分類器系統、監督學習、無監督學習、半監督學習、分群演算法和/或分類演算法。
例如,收集的恆溫器的裝置資料可以包括溫度變化請求和時間戳記,且從電視收集的裝置資料可以包括裝置何時使用的時間戳記。機器學習演算法可以分析收集的裝置資料以確定模式。模式可以包括收集的裝置資料之間的相關性;例如,可以確定當電視機打開時恆溫器上的溫度總是升高。在一個實施例中,裝置資料資訊可以用於確定特定裝置處於同一房間或不同房間中。在一個實例中,如果當冰箱裝置打開時總是打開燈光裝置,則可以確定兩個裝置是相關的。在另一個實例中,裝置資料資訊可以用來確定哪些裝置是燈光裝置。
所接收的資料資訊可以進一步用於生成和/或分配類別。在至少一個實施例中,使用裝置資料資訊對裝置進行分類。可以使用裝置和/或相應的刻面、特徵、前後關係資訊、關係資訊和/或語義資訊來確定裝置類別503。例如,控制燈光的所有裝置都可以歸類為「燈光裝置」,以及所有被確定為在主臥室中的裝置都可以被歸類為「主臥室裝置」。在至少一個實施例中,裝置可以是多個類別或屬性的成員。裝置資訊可以儲存在實體登錄或關聯資料庫中。可以經由機器學習演算法來施行裝置的類別和/或相應的刻面、特徵、前後關係資訊、關係資訊和/或語義資訊。類別可以包括裝置位置、活動類型和裝置類別。
例如,基於使用和前後關係,可以確定恆溫器和電視機都位於客廳中。亦可以確定在周末全天使用恆溫器和電視機,但在週間僅在晚上使用。此資訊可以保存為周末或週間晚上活動類型。在一些實施例中,輔助裝置可以確定廚房中的燈和客廳中的燈應該被分配給照明裝置類別。在至少一個實施例中,使用者可以手動輸入、刪除和/或編輯裝置的類別和名稱。
在至少一個實施例中,為每個裝置收集功能資訊,以及經由家用API使其可用。在至少一個實施例中,家用API包括包含裝置類型和/或位置的類別列表。類別可以包括以下各者中的一個或更多個:燈、家用電器、聲訊裝置、可穿戴裝置、使用者行動裝置、植物澆水裝置、電視機和/或鎖。裝置的類別或屬性可以包括如家庭、辦公室、臥室、主臥室、客廳、餐廳、廚房和/或地下室之類的位置。此外,裝置類型和類別可以包括相應的功能,如百葉窗的「打開」和「關閉」功能,該等功能可以與窗戶遮蓋(window coverings)類別相關聯。當裝置連接到一個或更多個輔助裝置時,它與一個或更多個類別相關聯。因此,開發者不需要知道一個或更多個住家中的特定裝置,而是可以指示規則和命令。例如,開發者可以創建一條規則,即當應用程式上的某個按鈕被按下時,與臥室和燈光類別有交集的所有裝置都將切換到「關閉」功能。開發者可以使類別、裝置和/或功能資訊在家用API上可用。因此,開發者不需要知道住家中的裝置,而是可以依賴於未來分配裝置的類別。例如,開發者不需要知道使用者將在臥室中安裝的確切裝置,而是可以依賴裝置將連接及分配到臥室類別的知識。
在至少一個實施例中,在501處收集的裝置資料係從可能連接到家用輔助的所有裝置收集到的。例如,當新裝置引入市場(如公司發佈新裝置等)時,收集關於裝置的裝置資料,以及將一個或更多個類別分配給裝置。裝置資料可以包括由裝置由製造商和/或另一方發佈的資料。裝置和相關聯的類別可以儲存在資料庫中。在至少一個實施例中,資料庫是可公開取用的。在至少一個實施例中,家用API的所有開發者可取用資料庫。在至少一個實施例中,裝置針對環境(如工作環境、住家環境和汽車環境)來作分類。在至少一個實施例中,配接器可以包括關於與其相關聯的裝置類別的資訊。
圖6展示家用API圖形使用者介面(GUI)的實施例。開發者可以使用GUI 601創建應用程式。GUI可以允許開發者生成一個或更多個圖形或匯入一個或更多個圖形。圖形可以包括用於應用程式的圖形使用者介面元素的佈局,以指示輔助裝置控制環境內的一個或更多個裝置。可以藉由創建背景和/或元素來生成圖形。
開發者無需瞭解特定住家環境中的裝置,以及可以針對識別選擇裝置的類別。例如,意圖創建關閉所有燈光的應用程式之開發者不需要知道可以連接為廚房中的燈光的所有裝置之列表,反而可以選擇類別602、燈光裝置與廚房裝置的交集603。Home API GUI亦可以允許開發者選擇所選裝置類別的功能604。例如,開發者可以選擇關閉符合燈光裝置和廚房裝置交集標準的裝置的功能。
開發者可以在沒有住家環境中的裝置的情況下配置應用程式。開發者可以使用類別來識別裝置和相關聯的功能。類別可以包括位置類別,諸如廚房,臥室,主臥室,浴室,車庫,兒童臥室,客臥,餐廳等。類別還可以包括裝置類別,如照明裝置、烹飪裝置、娛樂裝置、電視裝置、辦公裝置等。住家環境中滿足開發者在應用程式中所識別的標準的裝置可以使用行動裝置應用程式來控制。例如,儘管應用程式的開發者不知道哪個燈光裝置在使用者廚房中,但是開發者可以在應用程式開發期間選擇廚房和燈光裝置類別,以及此將允許應用程式控制與住家環境中的廚房和燈光類別相關聯的廚房燈光功能。在至少一個實施例中,住家中裝置的設置過程包括識別與裝置相關聯的一個或更多個裝置類別。隨後可以使用該等類別來識別裝置。
此外,功能604可以被分配給裝置。功能可以包括能夠執行如打開、調暗、關閉、製作咖啡、開啟等任何裝置功能。家用API 601螢幕上顯示的功能可以根據所選裝置類別進行動態調整。例如,當選擇咖啡機裝置類別時,可以調整功能選項以顯示咖啡機裝置的功能,如製作咖啡、研磨咖啡、關閉、保溫等。
在至少一個實施例中,家用API允許開發者使用兩個或更多個IoT裝置來創建規則。例如,開發者可以創建具有以下條件的規則,特定可穿戴IoT裝置報告每日超過10,000步,以及當使用者裝置距離家用裝置10英呎附近時,該條件將觸發輔助裝置經由IoT裝置揚聲器播放歌曲「Gonna Fly Now」。
規則可以包括如定時器服務、視訊監控服務、聲訊監控服務、信號監控服務、新聞監控、衝突監控服務或其組合的服務。可選項目可以經配置而在被選擇時(使用定時器服務)延遲,由一個或更多個裝置執行功能表現,直到在定時器上識別特定時間。例如,開發者可以編程一個名為「在10分鐘內開始製作咖啡」的可選項目,以使咖啡機在使用者選擇可選項目10分鐘後製作咖啡。計時器服務亦可以允許開發者創建可選項目,當選擇該項目時,該選項使得輔助裝置致使裝置在設定的時間(如30秒、5分鐘、2小時等)內執行功能,以及接著使輔助裝置向裝置發送請求以停止執行功能。例如,開發者可以創建一個可選項目,當選則該項目時,只會打開燈光15分鐘,過了15分鐘後燈光會關閉。
該規則亦可以包括視訊監控服務。可選項目可以經配置成,當選擇該可選項目時,使裝置執行功能,直到滿足特定的視訊監控條件。例如,開發者可以編程一可選項目,當選擇該項目時,以使空調關閉,直到有人回家。選擇具有與視訊監控相關聯的規則的可選項目可以使得視訊監控服務來針對指定條件監控環境(如進入環境的人等),以及隨後當條件滿足時執行一功能。在一些實施例中,視訊監控和計時器服務可以組合在一規則條件中。例如,可選項目可以經編程在特定週期時間(如45分鐘等)監控視訊輸入。
信號監控服務可以監控住家中的裝置(如進入住家的行動裝置)裝置狀態的改變(如電視開啟、恆溫器關閉等)或裝置狀態(如恆溫器溫度達到72度等)。新聞監控服務可以監控新聞,如天氣頻道、時事等。新聞監控服務可以針對特定情況監控一個或更多個新聞服務,例如,自然災害(如颶風、龍捲風、地震等)、警察活動(如鎖定鄰近區域)、公共服務通告(如停電警告等)和/或新聞事件(如限電等)。例如,開發者可以配置可選項目,當選擇該項目時,除非新聞監控服務偵測到限電警告,否則打開房屋內的所有燈光,在新聞監控服務偵測到限電警告此種情況下,不執行與可選項目相關聯的功能。在一些實施例中,開發者可以將警告配置為向使用者顯示,且使用者可以選擇忽略它並且執行與可選項目相關聯的功能。
與規則相關聯的衝突監控服務可以監控住家中所有裝置的狀態,並確定正在調用的規則是否與環境中執行的功能、住家中的操作和/或一個或更多個裝置的設定衝突。例如,開發者可以創建與可選項目關聯的規則,該規則不允許在淋浴運行時關閉浴室燈。因此,當選擇了可選項目「關掉所有的燈」,衝突監控服務確定是在淋浴。在本實例中,開發者可以配置規則以執行與某些裝置相關聯的功能(如關閉除浴室燈之外的所有燈),或者可以配置規則以在偵測到衝突時不實施與可選項目相關聯的任何功能。在一些實施例中,開發者可以配置規則以在偵測到衝突時向使用者顯示衝突。在一些實施例中,使用微服務來實現該等服務。
在至少一個實施例中,每個選定的規則和/或功能具有相應的機制,其允許輔助裝置提供諸如為連接的裝置提供指令的功能。機制可以包括遠端調用、服務註冊、發佈和/或訂閱。該等機制可以具有相應的策略。該等策略可以負責決定如何處理諸如網路錯誤和服務行為不正常等事件。在至少一個實施例中,家用API允許開發者配置機制和/或策略。
此外,可以使用微服務來實現規則、功能和/或服務。微服務可以是可編址的遠端對象,其封裝一狀態並公開了一組功能及其相關的參數,一旦調用該等參數,該等參數可以可選地返回參數。微服務可以藉由完全非同步地傳遞訊息來進行通信。微服務可以為被動式(reactive)或主動式(proactive)。被動微服務等待遠端調用以執行一動作及可選地返回一些值。例如,當按下圖標時,與要求打開燈光的規則相關聯的微服務可以為被動式的微服務。
主動式微服務可以處理遠端調用,但它亦可以在背景執行功能(如定時服務、語音識別等)。例如,被動式微服務可以與要求咖啡機裝置保持咖啡溫度15分鐘(如定時服務計數15分鐘以關閉咖啡裝置等)的規則相關聯。語音識別服務可以是主動收聽麥克風並分析聲訊的背景服務。微服務可以打包成與裝置配接器相關的元件。在一些實施例中,系統可以經配置為當微服務沒有回應時執行啟動的功能或規則。在一些實施例中,微服務可以包括無狀態協定,其可以將每個請求視為與任何先前請求無關的獨立事項(transaction)。
在一個實施例中,當一個或更多個微服務不可用時,應用程式可配置為不會失敗。
圖7展示個人家用API圖形使用者介面的實施例。家用API可以供希望構建應用程式以定制其家用的個人使用。在至少一個實施例中,輔助裝置的擁有者可以在她的住家環境中使用個人家用API GUI 401來構建應用程式。開發者(如擁有者)可以使用個人家用API來查看可用裝置703,如廚房天花板燈和廚房檯燈。開發者可以生成應用程式並定制家用環境。在至少一個實施例中,開發者可以藉由選擇類別702來縮小可用裝置的列表。
開發者可以選擇視圖類型,如裝置類別702(如裝置位置、裝置功能類型等)。在展示的實例中,選擇照明裝置和廚房裝置類別以及符合顯示標準的所有裝置;見元件703。一旦顯示該元素,開發者可以選擇該裝置。在至少一個實施例中,在選擇裝置之後,給予開發者選擇裝置的可用功能集合的選項。例如,在選擇廚房檯燈後,可以提示開發者選擇廚房檯燈的功能,如「開燈」。開發者可以選擇功能和/或裝置,並將其與螢幕上的按鈕和/或命令相關聯。
在至少一個實施例中,家用API可以允許使用者設置規則和/或條件。開發者可以選擇和/或輸入條件語句,例如如果(if)、則(then)、當…時(when)、在...的地方(where)以及等效物。在至少一個實施例中,開發者可以使用布林運算符(如and、 or及not)來配置規則。例如,開發者可以創建一規則,即當滿足特定的條件時(如所有的燈都亮著等),裝置應該執行一功能(如關閉智慧型窗簾等)。規則可以藉由開發者從圖形使用者介面上的選單中選擇裝置、功能、操作員和/或語句來創建。規則可以設置為當滿足條件時自動執行特定任務。在至少一個實施例中,規則可以由開發者編寫程式碼來創建。
在至少一個實施例中,家用API允許開發者使用兩個或更多個IoT裝置來創建規則。例如,開發者可以創建具有以下條件的規則,即特定可穿戴裝置報告每日超過10,000步,以及當使用者裝置距離家用裝置10英呎附近時,該條件將觸發輔助裝置經由裝置揚聲器播放歌曲「Gonna Fly Now」。在一些實施例中,基於所選功能和/或裝置類別自動生成規則。
可以使用具有關於裝置、裝置位置、裝置類型、功能和關聯屬性的資訊的規則定義資料庫來自動產生規則。規則定義資料庫中的屬性資訊可以包括關於哪些裝置、裝置位置、裝置類型和功能衝突的屬性資訊。屬性資訊可以指示裝置和/或位置是否與安全有關(如鎖等)、潛在危險(如可能引起火災等)、不可兼容(如不應同時使用的裝置或功能等)和/或對時間敏感(如僅在某些小時之間使用,僅使用一設定週期時間等)。
屬性資訊可以確定生成的可選項目規則。與恆溫器裝置相關聯的屬性可以指定環境中的所有恆溫器裝置應被設置為類似的溫度。例如,相衝突的功能可以是在一個恆溫器上設置高溫,以及在同一房間內第二個恆溫器上設定空調。其他屬性資訊可以存在關於裝置和功能,例如,與安全相關聯的裝置可能需要驗證。在一些實施例中,只有安全裝置的「解鎖」功能可能需要驗證。例如,當開發者以裝置類型「鎖定」和功能「解鎖」生成可選項目「解鎖鎖定」時,可以自動生成需要驗證的規則。規則可以要求啟動視訊監控服務以回應所正選擇的「解鎖鎖定」可選項目,以及視訊監控服務可以確定選擇該項目的個人是主要使用者和/或住家相關聯的主要使用者群組的成員。在一些實施例中,視訊監控服務可以經配置監控「解鎖鎖定」可選項目的使用以及向警察或者輔助裝置的所有主要使用者報告任何異常活動。異常活動可以包括識別視訊輸入中的內容,如在環境中偵測到的武器。位置可以指示需要隱私的屬性,且可以基於與裝置關聯的位置來分配規則。例如,與浴室位置相關的規則可以禁止使用視訊裝置。因此,當開發者分配可選項目以開啟環境中的所有攝影機的功能時,可以自動生成規則以防止具有浴室位置的家中視訊裝置回應可選項目的選擇而開啟。與「解鎖鎖定」可選項目相關聯的規則可以包括確定使用者是否接近裝置位置的信號監控服務。信號監控服務可以確定使用者的裝置離裝置的位置太遠且可以防止功能被施行。例如,當基於由信號監控服務確定距離,使用者的裝置遠離該位置超過閾值距離時,可以防止使用者解鎖鎖定。在一個實例中,當使用信號監控服務確定使用者的裝置不在環境中時,則可設定規則以防止使用者打開諸如咖啡機之類的用具。在一些實施例中,必須滿足使用者裝置對環境的閾值距離以允許使用者裝置上的應用程式的可選項目操作一個或更多個關聯裝置。
圖8圖示將應用程式與輔助裝置整合在環境中的實例。應用程式801可以儲存在行動裝置上或裝置上。應用程式801可以基於諸如類別、裝置類型和位置(即,廚房、燈光等)的裝置屬性來參考裝置。例如,應用程式可以參考廚房燈而不須提供關於應用程式應該控制哪個確切燈光裝置的任何進一步資訊。換句話說,儘管有對廚房燈的參考,但在住家環境中並沒有真正的裝置。出於此原因,應用程式可以執行定制或驗證步驟。驗證步驟可以識別連接到輔助裝置802的環境中的裝置803,該裝置符合在應用程式中所識別的裝置屬性。例如,驗證步驟可以將環境中的廚房燈識別為滿足裝置屬性,因為廚房燈與類別、裝置、類型和/或位置類似。
在至少一個實施例中,輔助裝置可以儲存所有連接的裝置的紀錄。紀錄可以包括關於裝置的資料,如裝置被新增、移除的日期等。在該實施例中,應用程式可以將最後的驗證/定制日期與所連接裝置的輔助裝置紀錄比較,以確定是否有自上次驗證以來發生的與連接裝置相關的任何更改。
在至少一個實施例中,先前已執行定制或驗證的應用程式可儲存驗證的相關定制指示符,且當增加新裝置時不執行驗證。在至少一個實施例中,定制識別符包括二進位指示符,如位元指示符。使用者可在先前經歷定制的應用程式上手動啟動驗證以在環境中增加、更新和/或移除到連接的裝置之映射。在應用程式從未被驗證的至少一個實施例中,應用程式不確定是否需要驗證,而是初始化驗證步驟。
當應用程式被初始化時,可以請求來自輔助裝置802的資訊804。從輔助裝置請求的資訊(可以包括定制資訊)可以是識別資訊,如輔助裝置的裝置ID。在步驟806,應用程式可以使用該資訊來確定應用程式是否先前已經與該輔助裝置一起進行了驗證。在一些實施例中,一旦確定應用程式先前已經與輔助裝置一起進行了驗證,應用程式就可以確定輔助裝置是否處於與之前已經驗證的環境不同的環境中,和/或確定自從應用最後一次驗證以來,是否已經有額外的裝置增加到環境中。輔助裝置可以識別環境中先前尚未被識別的裝置805並且將其登錄在與該輔助裝置802相關聯的實體登錄中。
在一個實施例中,輔助裝置可以確定它已經以輔助裝置執行了先前的驗證步驟,但是輔助裝置現在處於與先前的驗證步驟執行時的環境所不同的新環境中。因此,應用程式可以啟動驗證步驟。可以藉由輔助裝置將關於環境簡檔的資訊發送給應用程式來確定新環境。例如,在一些實施例中,輔助裝置可以具有基於位置的多個簡檔,且簡檔可具有指示資訊的識別符(如,住家、度假屋、汽車、工作等)。在一些實施例中,應用程式可以藉由確定連接到輔助裝置的閾值數量裝置為先前未識別的裝置來確定輔助裝置處於新的環境中。例如,如果當應用程式連接到A公司製造的三個燈和B公司製造的冰箱時,應用程式先前已經以輔助裝置執行了驗證,但現在該應用程式已偵測到環境中的四個燈為由C公司製造且沒有燈為由A公司製造,則可以確定輔助裝置處於新的環境中。閾值數量可以是環境中新裝置的百分比(即50%、30%等),且閾值亦可以是環境中的新裝置的數量,如3、4或10。在至少一個實施例中,藉由識別實體登錄中列出的裝置屬性並確定應用程式先前未看過所存取的具有實體記錄器(entity register)中列出的屬性之實體登錄,以確定輔助裝置處於新環境中。
驗證步驟可以由元件管理器執行。元件管理器可以初始化必要的核心服務以執行定制(驗證)。在應用程式初始化時,可以啟動元件管理器。元件管理器可以定制腳本以與環境中的裝置相匹配並可以啟用腳本。匹配演算法可以包括匹配(即,100%匹配)和/或模糊匹配。匹配可以包括將應用程式中描述的屬性與實體登錄中識別的類別進行匹配。腳本可以執行任務,如將應用程式映射到連接的裝置和/或關聯的配接器。當應用程式包含複雜功能時,可以使用元件管理器,例如在五分鐘內關閉廚房燈的命令,此需要計時器服務初始化和配接器。元件管理器可以協調時間服務(即計時器、馬錶等)的初始化和負責「關閉」功能的配接器的初始化。
在至少一個實施例中,應用程式可以確定,儘管輔助裝置不在新環境中,但應用程式需要執行驗證的環境中有新裝置。在至少一個實施例中,應用程式可以確定先前已經映射到應用程式的裝置不再處於環境中。一旦確定環境中的裝置、新環境的識別和/或應用程式先前未用來驗證的新的輔助裝置的變化,就可以執行驗證步驟。
驗證步驟可以確定環境中的哪些裝置與應用程式中識別的裝置的屬性匹配。驗證步驟可以負責將應用程式中列出的裝置與環境中的裝置映射,以及允許應用程式控制環境中的裝置。可以藉由識別實體登錄中的裝置和/或識別儲存關於裝置的資訊(裝置類型位置和/或類別)之實體登錄所相關聯的資料庫來施行應用程式中識別的裝置之屬性(如類別)所匹配的環境中的裝置之確定。在至少一個實施例中,藉由裝置ID以在實體登錄中識別連接的裝置。在一些實施例中,應用程式儲存它先前已映射到的所連接的裝置的裝置ID。一旦環境中的裝置經識別為與應用程式中列出的裝置的屬性匹配807,則應用程式可以將住家環境中的裝置映射到應用程式上識別的裝置。裝置的映射808可以包括識別與環境中的裝置803相關聯的配接器以及將此資訊傳輸到可以儲存對配接器和/或關聯的實體登錄項的參考的應用程式。在至少一個實施例中,應用程式可以儲存具有關於環境中配接器的資訊之環境簡檔,使得當應用程式被初始化十使用者向應用程式提供的指令可以使得住家環境中的裝置的配接器初始化並執行由使用者識別的動作。例如,由應用程式識別為廚房燈的裝置可以被映射到具有燈光和廚房的屬性資訊的環境中的一個或更多個裝置,一個或更多個識別裝置的配接器的參考可以傳輸回應用程式,使得當使用者指示應用程式打開廚房燈時,與被識別為廚房燈的裝置相關聯的配接器使廚房燈打開。在至少一個實施例中,應用程式可以識別實體登錄中的一個或更多個裝置。
在一些實施例中,實體登錄包括與它們各自的配接器相關聯的裝置。關於配接器的資訊可以傳輸到應用程式。在一些實施例中,回應識別實體登錄中的一個或更多個裝置,配接器資訊可以被傳送給應用程式。在至少一個實施例中,與應用程式相關聯的資訊可以包括諸如關聯裝置的最小數量和/或最大數量的需求。例如,需求可以包括至少2個廚房燈的最小值,可以藉由分析實體登錄來確定在該環境中最少數量的裝置是否滿足該需求。因此,當滿足需求時,可以將識別的裝置映射到應用程式。在一些實施例中,一旦應用程式被驗證且實體被識別,則應用程式使用實體列表以向輔助裝置發送指令來控制相關聯的實體(裝置)。
在至少一個實施例中,應用程式可以經由WebSocketGateway將訊息發送到環境中的裝置的一個或更多個配接器。在至少一個實施例中,來自應用程式的訊息可以包括識別關於應用程式的使用者的資訊,該資訊可以與使用者管理器中的使用者資訊進行比較,以確定與應用程式相關聯的使用者是否被允許控制連接的裝置。
在至少一個實施例中,應用程式儲存先前已經與驗證步驟一起執行的輔助裝置和/或連接裝置有關的簡檔資訊。簡檔資訊可以儲存在資料庫和/或與應用程式相關聯的另一資料結構中。在應用程式先前已經執行驗證步驟的至少一個實施例中,驗證步驟的後續執行可以創建第二應用程式簡檔。例如,如果應用程式已經對住家環境中的輔助裝置和關聯的裝置執行了驗證步驟,則該簡檔可以被命名為住家庭環境。
在該實例中,如果應用程式在不同環境(即工作環境)中第二次驗證了輔助裝置,則應用程式可以使用關聯的映射創建稱為工作環境的第二個簡檔。在至少一個實施例中,一旦應用程式被初始化,其確定任何簡檔是否與所收集的關於環境和/或輔助裝置804的資訊相關聯。
在應用程式確定驗證步驟先前已在環境中運行然而複數個裝置自此變得不可用的至少一個實施例中,應用程式可提示使用者允許刪除該等裝置。在至少一個實施例中,應用程式可記錄裝置不可用以及追蹤應用程式初始化的次數並確定裝置不可用。應用程式可以經配置僅在確定裝置不可用的閾值次數後刪除裝置。例如,如果閾值設置為六次,當應用程式初始化六次且確定裝置不可用時,它可以確定應該刪除該裝置。
在確定裝置不可用的至少一個實施例中且具有類似屬性的替代新裝置可用,則應用程式可以確定不可用裝置已被新裝置替代。例如,如果廚房燈光裝置不再可用,則確定存在具有「廚房」和「燈光」屬性的新裝置。其他應用程式可以確定原始廚房燈光裝置已被新的廚房燈光裝置取代的以及將不可用的廚房燈光裝置相關聯的功能映射到新的廚房燈光裝置。
在至少一個實施例中,映射過程可能遇到應用程式被設置為控制裝置的複數個功能的情境,然而滿足應用程式所識別的裝置屬性的連接裝置可能不具有能力執行該複數個功能中的至少一個功能。例如,應用程式可以被設置以打開具有「廚房」和「燈光」屬性及藍色、紅色、白色、黃色、綠色、紫色和白色光相關聯功能的裝置。然而,具有所識別的「廚房」和「燈光」屬性的連接裝置可能僅具有打開「白色」的相關功能。應用程式可以只將連接裝置能夠執行的功能映射到應用程式。在該實例中,所識別的廚房燈光裝置可以被映射以執行開啟「白色」功能;但是,該裝置沒有被映射來執行它無法執行的其他功能。在至少一個實施例中,應用程式可以使廚房燈光針對六種功能中的所有功能打開白色光。在至少一個實施例中,當裝置升級為包括更多功能時,該應用程式可以偵測到裝置已經升級,且如果該升級使得裝置能夠執行更多功能,則應用程式可以確定與應用程式相關聯的功能中的任何功能是否可以被更新以映射與該裝置相關聯的功能。例如,如果廚房燈光僅具有白色功能,但被升級為具有讀取和白色功能,則應用程式將被映射到升級了功能的廚房燈光。
在至少一個實施例中,更新的裝置可具有比其更新之前的裝置更少的功能,且應用程式可以確定裝置的一些先前映射的功能不再可用。升級可以包括軟體升級的裝置和/或藉由具有相同屬性(即類別、位置等)的替代裝置替換該裝置。例如,升級燈A可以包括用燈B替換燈A。在另一個實例中,升級IoT冰箱可以包括軟體升級,其允許冰箱不僅傳送其溫度而且還傳送架上產品的重量。
圖9圖示輔助裝置的實例。在圖9中,輔助裝置101包括處理器10、記憶體12、觸控螢幕顯示器15、揚聲器11、麥克風13以及其他類型的硬體(如非揮發性記憶體、介面裝置、相機、收音機等)以實現提供在此揭露的技術的通信管理邏輯14。為了簡單化說明,省略了各種常見元件(如快取記憶體)。該輔助裝置意欲說明圖1至8中實例所述的任何元件(及本說明書所述的任何其他元件)所可以施行的硬體裝置。輔助裝置的元件可以經由匯流排或透過其他習知或方便的裝置耦合在一起。
處理器10可以是例如微處理器電路,如英特爾奔騰(Intel Pentium)微處理器或摩托羅拉power PC微處理器。相關領域中的技術人員將認識到,術語「機器可讀(儲存)媒體」或「電腦可讀(儲存)媒體」包括處理器可存取的任何類型的裝置。處理器10亦可以是諸如特定應用積體電路(ASIC)、複雜可程式邏輯裝置(CPLD)、可程式邏輯閘陣列(FPGA)、結構化ASIC等的電路。
記憶體藉由如匯流排耦接至處理器。作為實例而非限制,記憶體可以包括隨機存取記憶體(RAM),如動態RAM(DRAM)和靜態RAM(SRAM)。記憶體可以為本端的、遠端的或分佈式的。
匯流排還將處理器耦接到非揮發性記憶體和驅動單元。非揮發性記憶體通常是軟碟或硬碟;磁光碟;光碟;唯讀記憶體(ROM),如CD-ROM、EPROM或EEPROM;磁卡或光卡;或用於大量資料的其他形式的儲存。該等資料中的部分通常是在執行電腦中的軟體期間藉由直接記憶體存取過程寫入記憶體中的。非揮發性記憶體可以是本端的、遠端的或分佈式的。非揮發性記憶體是可選的,因為可以使用記憶體中的所有可適用資料創建系統。典型的計算機系統通常會至少包括處理器、記憶體和將記憶體耦接到處理器的裝置(如匯流排)。
該軟體可以儲存在非揮發性記憶體和/或驅動單元中。事實上,將整個大型程式儲存在記憶體中可能甚至係不可能的。然而,應該理解的是,為了運行軟體,可能有必要將軟體移動到適合於處理的電腦可讀位置,且出於說明的目的,該位置在本申請案中被稱為記憶體。即使當軟體移動到記憶體以供執行時,處理器通常會使用硬體寄存器來儲存與軟體相關的值,以及理想地利用本端快取以用於加速執行。如本說明書所使用的,軟體程式可以儲存在任何已知或方便的位置(從非揮發性記憶體到硬體寄存器)。
匯流排亦將處理器耦接到網路介面裝置。該介面可以包括數據機或網路介面中的一個或更多個。發明所屬領域中具有通常技術者將會理解,數據機或網路介面可以被認為是計算機系統的一部分。介面可以包括類比數據機、ISDN數據機、電纜數據機、符記環介面、衛星傳輸介面(如「直接PC」)或用於將計算機系統耦接到其他計算機系統的其他介面。介面可以包括一個或更多個輸入和/或輸出裝置。作為實例而非限制,輸入和/或輸出裝置可以包括鍵盤、滑鼠或其他指點裝置、磁碟驅動、印表機、掃描機以及包括顯示裝置的其他輸入和/或輸出裝置。作為實例但不是限制,顯示裝置可以包括陰極射線管(CRT)、液晶顯示器(LCD)或一些其他適用的習知或方便的顯示裝置。
在操作中,可以藉由包括檔案管理系統(如磁碟作業系統)的作業系統軟體來控制該輔助裝置。檔案管理系統通常儲存在非揮發性記憶體和/或驅動單元中,並使處理器執行作業系統所要求的各種動作以輸入和輸出資料,以及將資料儲存在記憶體中,其包含將檔案儲存在非揮發性記憶體和/或驅動單元。該框架可以包括用於物理空間的環境(如住家、辦公室或汽車)的作業系統。
實施方式中的一些項目可以基於電腦記憶體內的資料位元的操作之演算法和符號表示來呈現。該等演算法描述和表示是資料處理領域中的通常知識者所用的構件,以最有效地將其工作的實質傳達給本領域中的其他通常知識者。此處的演算法通常被認為是產生所期望結果的自一致(self-consistent)的一序列操作。該等操作是需要對物理量進行物理操縱的操作。通常但不一定的如此,該等量採取能夠被儲存、傳輸、組合、比較和/或以其他方式操縱的電子或磁信號的形式。主要出於共用的原因,有時為了方便將該等信號稱為位元、值、元件、符號、字符、項、數字等。
但應該記住,所有該等和類似的術語都與適當的物理量相關聯,且僅僅是適用於該等量的方便標記。除非另有特別說明,否則從以下論述中顯而易見的是,本領域具有通常知識者將理解,整個說明書中,利用如「處理」或「計算(computing)」或「計算(calculating)」或「確定」或「顯示」或「生成」或類似用語是指計算機系統或類似的電子計算裝置的動作和處理,計算機系統或類似的電子計算裝置將計算機系統的寄存器和記憶體中表示為物理(電子)量的資料操作並轉換為類似地表示為計算機系統內的記憶體或寄存器或其他此類儲存、傳輸或顯示裝置內的物理量。
本說明書所展示的演算法和顯示並不固有地涉及任何特定的電腦或其他裝置。根據本說明書的教示,各種通用系統可與程式一起使用,或者構建更專用的裝置以執行一些實施例的方法可能證明是方便的。各種該等系統的所需結構將在以下說明中得以彰顯。此外,該等技術沒有針對任何特定的程式語言來描述,因此可使用各種程式語言來實現各種實施例。
在進一步的實施例中,輔助裝置作為獨立裝置運行或者可以連接(如連接網路)到其他機器。在聯網部署中,輔助裝置可在客戶端-伺服器網路環境中以伺服器或客戶端機器的能力運行,或者可以以對等式(或分佈式)網路環境中的作為對等機器運行。
在一些實施例中,輔助裝置包括機器可讀媒體。儘管機器可讀媒體或機器可讀儲存媒體在示範實施例中被示出為單個媒體,但是術語「機器可讀媒體」和「機器可讀儲存媒體」應該被認為包括單個媒體或儲存一組或更多組指令的多媒體(例如,集中式或分佈式資料庫和/或相關聯的快取和伺服器)。術語「機器可讀媒體」和「機器可讀儲存媒體」亦應該被認為包括能夠儲存、編碼或攜帶供機器執行的一組指令的任何媒體,且該媒體使機器執行本揭示的技術和創新的方法或模組中的任何一個或更多個。
一般來說,經執行以實現本揭示的實施例的常用程式(routine)可被實現為稱為「電腦程式」之作業系統或特定應用程式、元件、程式、物件、模組或指令序列的部分。電腦程式通常包括在各種時間在計算機中的各種記憶體和儲存裝置中設置的一個或更多個指令,當指令由電腦中的一個或更多個處理單元或處理器讀取並執行時,使電腦施行操作以執行包含本揭示的各個態樣之元件。
此外,儘管已經在全功能電腦和計算機系統的情境下描述實施例,但是本領域具有通常知識者將認識到,各種實施例能夠以各種形式作為程式產品來分配,且本揭示同樣適用,而不管用於實際實現分配的特定類型的機器或電腦可讀媒體。
機器可讀儲存媒體、機器可讀媒體或電腦可讀(儲存)媒體的其他實例包括但不限於可記錄類型媒體(如揮發性和非揮發性記憶體裝置)、軟碟和其他可移動磁碟、硬碟驅動、光碟(如光碟唯讀機(CD-ROM)、多功能數位光碟(DVD)等)以及傳輸型媒體(如數位和類比通信鏈路)。
在一些情況下,例如,記憶體裝置的操作(如,從二進位1到二進位0的狀態改變或者反之亦然)可以包括諸如物理轉換的轉換。利用特定類型的記憶體裝置,此種物理轉換可以包括物品到不同狀態或事物的物理轉換。例如但不限於,對於某些類型的記憶體裝置,狀態的改變可涉及電荷的積累和儲存或儲存電荷的釋放。類似地,在其他記憶體裝置中,狀態的改變可包括磁性定向上的物理改變或轉變或者分子結構中的物理改變或轉變,例如從結晶轉變為無定形或反之亦然。前面所述並不打算作為一個詳盡的列表,其中儲存裝置中的二進制1到二進制0的狀態或反之亦然可包括諸如物理轉換的轉換。相反地,前面所述意欲作為說明性實例。
儲存媒體通常可以是非暫態的或者包括非暫態裝置。在此上下文中,非暫態儲存媒體可包括有形的裝置,有形的裝置是指該裝置具有具體的物理形式,即便該裝置可改變其物理狀態。因此,例如,非暫態是指即便狀態發生變化仍然保持有形的裝置。
為了說明和描述的目的,提供了申請專利標的的各種實施例的前述描述。此並非意欲窮舉或將申請專利標的限制於所揭露的精確形式。諸多修改與變化將對本領域中具有通常知識者所彰顯。選擇和描述實施例是為了最好地描述某些原理和實際應用,從而使相關領域中的其他技術人員能夠理解適合於考慮特定用途的標的、各種實施例和各種修改。
儘管已經在全功能電腦和計算機系統的情境下描述實施例,但是本領域具有通常知識者將認識到,各種實施例能夠以各種形式作為程式產品來分配,且本揭示同樣適用,而不管用於實際實現分配的機器或電腦可讀媒體為何特定類型。
儘管以上實施方式描述了某些實施例和所設想的最佳模式,但無論文本如何詳細顯示,實施例仍可以以多種方式實踐。該等系統和方法的細節在其實施細節上可能有很大不同,但仍然被本說明書所涵蓋。如上所述,當描述各種實施例的特定特徵或態樣時所使用的特定術語不應被認為暗示該術語在本說明書中被重新界定為限於該術語相關聯所揭露的技術的任何特定特性、特徵或態樣。一般來說,在以下專利申請範圍中使用的術語不應被解釋為將本揭示限制為說明書中所揭露的特定實施例,除非該等術語在本說明書中明確定義。因此,本技術的實際範圍不僅涵蓋所揭露的實施例,而且還包含在申請專利範圍之下實施或施行實施例的所有等效方式。
本說明書中使用的語言主要是為了可讀性和指導性目的而選擇的,且其可能沒有被選擇為劃定(delineate)或限定發明標的。因此,本技術範圍不受此實施方式段落的限制,而是由基於此實施方式的應用所發佈的任何專利申請範圍所限定。因此,各種實施例的揭示是意欲說明,而不是限制以下所附專利申請範圍所述的實施例的範圍。
根據以上所述,為了說明的目的,本說明書已經描述了本發明的具體實施方式,但是可以在不偏離本發明範圍的情況下作各種修改。因此,除了專利申請範圍之外,本發明不受限制。
101‧‧‧輔助裝置
102‧‧‧車庫門
103‧‧‧揚聲器
104‧‧‧燈
105‧‧‧恆溫器
106‧‧‧行動裝置
201‧‧‧輔助裝置
202‧‧‧服務登錄
203‧‧‧元件管理器
204‧‧‧事件匯流排
205‧‧‧使用者管理器
206‧‧‧WebSocket閘通道
207‧‧‧HTTP閘通道
208‧‧‧CloudWeb閘通道
209‧‧‧實體登錄
301‧‧‧步驟
302‧‧‧步驟
303‧‧‧步驟
304‧‧‧步驟
305‧‧‧步驟
401‧‧‧應用程式
402‧‧‧事件匯流排
403‧‧‧配接器
404‧‧‧步驟
405‧‧‧步驟
406‧‧‧步驟
408‧‧‧步驟
409‧‧‧步驟
501‧‧‧步驟
502‧‧‧機器學習演算法
503‧‧‧裝置類別
601‧‧‧圖形使用者介面(GUI)
602‧‧‧類別
603‧‧‧類別、燈光裝置與廚房裝置的交集
604‧‧‧所選裝置類別的功能
702‧‧‧裝置類別
703‧‧‧元件
801‧‧‧應用程式
802‧‧‧輔助裝置
803‧‧‧環境中的裝置
804‧‧‧步驟
805‧‧‧環境中先前尚未被識別的裝置
806‧‧‧步驟
807‧‧‧步驟
808‧‧‧步驟
圖1圖示連接到其他裝置的輔助裝置的一實施例;
圖2圖示可以在該輔助裝置上運行的核心服務;
圖3圖示應用程式工作流程的一實例;
圖4圖示裝置探索(discovery)工作流程的一實施例;
圖5圖示確定裝置類別的一實施例;
圖6展示家用API圖形使用者介面的實施例;
圖7展示個人家用API圖形使用者介面的實施例;
圖8圖示將應用程式與輔助裝置整合在環境中的一實例;及
圖9圖示輔助裝置的一實例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (25)

  1. 一種用於定制所開發於經由具有人工智慧(AI)能力的一輔助裝置來控制一環境中的裝置的一應用程式之方法,該方法包括以下步驟: 藉由一處理器初始化所開發於控制該環境中的該等裝置的該應用程式,該應用程式具有識別該環境中的該等裝置的一功能及相關聯的裝置屬性; 使用與該應用程式相關聯的一定制識別符來確定該定制識別符,該定制識別符表示該應用程式先前已經執行了允許該應用程式在任何環境中連接到該等裝置的一定制; 請求在該環境中的該輔助裝置的一輔助裝置識別符,該輔助裝置識別符表示與該輔助裝置相關聯的一唯一識別符; 確定該輔助裝置的該輔助裝置識別符與先前所使用來定制該應用程式之該輔助裝置的該輔助裝置識別符相匹配; 請求來自該輔助裝置關於連接到該環境中的該輔助裝置的該等裝置的一子集之資訊,該資訊包含一裝置識別符、一裝置類型、一裝置類別和一更新日期,其中該更新日期包含安裝日期或配置日期中的一個或更多個; 確定該裝置識別符、該裝置類型、該裝置類別或該更新日期中的一者沒有匹配儲存在與該應用程式相關聯的一資料庫中的定制資訊,該資料庫儲存關於先前在該定制中使用的該等裝置的該子集的一第二子集之資訊; 基於該裝置識別符、該裝置類型、該裝置類別或該更新日期中的一者沒有匹配該定制資訊之確定來執行一第二定制,其中該第二定制包含以下步驟: 識別連接到與沒有匹配儲存在與該應用程式相關聯的該資料庫中的該定制資訊之該裝置識別符、該裝置類型、該裝置類別或該更新日期中的一者相關聯的該輔助裝置之該等裝置的該子集的一第三子集,其中該等裝置的該子集的該第三子集不包含該等裝置的該子集的該第二子集; 確定該應用程式的該裝置屬性匹配該等裝置中的一裝置的該裝置類型和該裝置類別;及 向與該環境中的該等裝置的該子集的該第三子集相關聯的該應用程式提供儲存在該輔助裝置上的一配接器之一參考,其中該配接器能夠控制該裝置執行與該應用程式相關聯的該功能;及 更新儲存在與該應用程式相關聯的該資料庫中的該定制資訊以反映被識別為連接到該輔助裝置的該等裝置的該子集的該第三子集;及 執行該等裝置的該子集的該第三子集的該等裝置之一者的功能以回應來自該應用程式的一請求。
  2. 一種用於定制所開發於經由一輔助裝置來控制一環境中的裝置的應用程式之方法,該方法包括以下步驟: 藉由一處理器初始化所開發於控制該環境中的該等裝置的該應用程式,該應用程式具有識別該環境中的該等裝置的一功能及相關聯的裝置屬性; 藉由分析定制資訊來確定該應用程式先前未被定制,其中該定制表示允許該應用程式連接到該環境中的該等裝置; 基於該應用程式先前未被定制的該確定來執行該定制,執行該定制的步驟包含以下步驟: 識別與在該應用程式中所識別的該功能和該裝置屬性相匹配的連接到該環境中的該輔助裝置的該等裝置; 向與該環境中的該等裝置相關聯的該應用程式提供儲存在該輔助裝置上的一配接器之一參考,其中該配接器能夠控制一裝置執行與該應用程式相關聯的該功能;及 更新與該應用程式相關聯所儲存的該定制資訊以反映該定制已被執行;及 執行該等裝置中之一者的該功能以回應來自該應用程式的一請求。
  3. 如請求項2所述之方法,其中該定制資訊包括與該輔助裝置相關聯的一輔助裝置識別符。
  4. 如請求項2所述之方法,其中該定制資訊包括一定制識別符。
  5. 如請求項2所述之方法,其中該定制資訊儲存在與該應用程式相關聯的一資料庫中。
  6. 如請求項2所述之方法,其中該環境包括以下各者中的一個或更多個:家庭環境、工作環境或汽車環境。
  7. 如請求項6所述之方法,其中藉由分析該定制資訊來確定該應用程式先前未被定制的步驟包括以下步驟:將連接到該輔助裝置的該等裝置所相關聯的裝置識別符與連接到該應用程式的該等裝置所相關聯的該等裝置識別符作比較。
  8. 如請求項2所述之方法,其中識別連接到該環境中的該輔助裝置的該等裝置的步驟包括以下步驟:使用儲存在該環境中的該輔助裝置上的一實體登錄來識別該等裝置。
  9. 如請求項2所述之方法,其中識別連接到該環境中的該輔助裝置的該等裝置的步驟包括自一整個模型服務導出(derived)的資訊。
  10. 一種用於定制所開發於經由一輔助裝置來控制一環境中的裝置的應用程式之系統,包括: 一處理器;及 儲存指令的一記憶體,其中該處理器經配置執行該等指令,使得該處理器和該記憶體配置成: 初始化所開發於控制該環境中的該等裝置的該應用程式,該應用程式具有識別該環境中的該等裝置的一功能及相關聯的裝置屬性; 藉由分析儲存在與該應用程式相關聯的一資料庫中的定制資訊來確定該應用程式先前未被定制,其中該定制表示允許該應用程式連接到該環境中的該等裝置; 基於該應用程式先前未被定制的該確定來執行該定制,執行該定制的步驟包含以下步驟: 識別與在該應用程式中所識別的該功能和該裝置屬性相匹配的連接到該環境中的該輔助裝置的該等裝置; 向與該環境中的該等裝置相關聯的該應用程式提供儲存在該輔助裝置上的一配接器之一參考,其中該配接器能夠控制一裝置執行與該應用程式相關聯的該功能;及 更新儲存在與應用程式相關聯的該資料庫中表示該定制已被執行的該定制資訊;及 執行該等裝置中之一者的該功能以回應來自該應用程式的一請求。
  11. 如請求項10所述之系統,其中該定制資訊包括與該輔助裝置相關聯的一輔助裝置識別符。
  12. 如請求項10所述之系統,其中該定制資訊包括一定制識別符。
  13. 如請求項10所述之系統,其中與該應用相關聯的該資料庫儲存在一雲端上。
  14. 如請求項10所述之系統,其中該環境包括以下各者中的中的一個或更多個:家庭環境、工作環境或汽車環境。
  15. 如請求項10所述之系統,其中藉由分析該定制資訊來確定該應用程式先前未被定制的步驟包括以下步驟:將連接到該輔助裝置的該等裝置所相關聯的裝置識別符與連接到該應用程式的該等裝置所相關聯的該等裝置識別符作比較。
  16. 如請求項10所述之系統,其中識別連接到該環境中的該輔助裝置的該等裝置的步驟包括以下步驟:使用儲存在該環境中的該輔助裝置上的一實體登錄來識別該等裝置。
  17. 如請求項12所述之系統,其中識別連接到該環境中的該輔助裝置的該等裝置的步驟包括自一整體模型服務導出的資訊。
  18. 一種用於定制所開發於經由一輔助裝置來控制一環境中的裝置的應用程式之電腦程式產品,該電腦程式產品包括具有電腦程式指令儲存於其中的一個或更多個非暫態電腦可讀取媒體,該等電腦程式指令經配置,使得當一或更多個計算裝置執行該等電腦程式指令時,該等電腦程式指令使該一或更多個計算裝置執行以下步驟: 初始化所開發於控制該環境中的該等裝置的該應用程式,該應用程式具有識別該環境中的該等裝置的一功能及相關聯的裝置屬性; 藉由分析定制資訊來確定該應用程式先前未被定制,其中該定制表示允許該應用程式連接到該環境中的該等裝置; 基於該應用程式先前未被定制的該確定來執行該定制,執行該定制的步驟包含以下步驟: 識別與在該應用程式中所識別的該功能和該裝置屬性相匹配的連接到該環境中的該輔助裝置的該等裝置; 向與該環境中的該等裝置相關聯的該應用程式提供儲存在該輔助裝置上的一配接器之一參考,其中該配接器能夠控制一裝置以執行與該應用程式相關聯的該功能;及 更新儲存在與應用程式相關聯的該資料庫中的該定制資訊以反映該定制已被執行;及 執行該等裝置中之一者的該功能以回應來自該應用程式的一請求。
  19. 如請求項18所述之電腦程式產品,其中該定制資訊包括與該輔助裝置相關聯的一輔助裝置識別符。
  20. 如請求項18所述之電腦程式產品,其中該定制資訊包括一定制識別符。
  21. 如請求項18所述之電腦程式產品,其中該定制資訊被儲存在與該應用程式相關聯的一資料庫中。
  22. 如請求項18所述之電腦程式產品,其中該環境包括以下各者中的中的一個或更多個:家庭環境、工作環境或汽車環境。
  23. 如請求項22所述之電腦程式產品,其中藉由分析該定制資訊來確定該應用程式先前未被定制的步驟包括以下步驟:將連接到該輔助裝置的該等裝置所相關聯的裝置識別符與連接到該應用程式的該等裝置所相關聯的該等裝置識別符作比較。
  24. 如請求項18所述之電腦程式產品,其中識別連接到該環境中的該輔助裝置的該等裝置的步驟包括以下步驟:使用儲存在該環境中的該輔助裝置上的一實體登錄來識別該等裝置。
  25. 如請求項18所述之電腦程式產品,其中識別連接到該環境中的該輔助裝置的該等裝置的步驟包括自一整體模型服務導出的資訊。
TW107101222A 2017-01-23 2018-01-12 家用應用程式介面(api) TW201830179A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201762449492P 2017-01-23 2017-01-23
US62/449,492 2017-01-23
US201762512658P 2017-05-30 2017-05-30
US62/512,658 2017-05-30
US201762540006P 2017-08-01 2017-08-01
US62/540,006 2017-08-01
US15/672,216 2017-08-08
US15/672,216 US10365932B2 (en) 2017-01-23 2017-08-08 Dynamic application customization for automated environments

Publications (1)

Publication Number Publication Date
TW201830179A true TW201830179A (zh) 2018-08-16

Family

ID=62906472

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107101222A TW201830179A (zh) 2017-01-23 2018-01-12 家用應用程式介面(api)

Country Status (3)

Country Link
US (2) US10365932B2 (zh)
TW (1) TW201830179A (zh)
WO (1) WO2018136302A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI696784B (zh) * 2019-05-17 2020-06-21 中國科技大學 Ai互動學習檯燈裝置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10673646B1 (en) * 2018-12-09 2020-06-02 Olibra Llc System, device, and method of multi-path wireless communication
JP6852786B2 (ja) * 2017-04-20 2021-03-31 ヤマハ株式会社 機械学習装置、情報処理装置及び出力装置
US10860390B2 (en) 2017-06-28 2020-12-08 Intel Corporation Microservices architecture
EP3461160A1 (en) * 2017-09-26 2019-03-27 Thomson Licensing Method of associating configuration settings with devices in a network and corresponding apparatus
US11360736B1 (en) * 2017-11-03 2022-06-14 Amazon Technologies, Inc. System command processing
MX2020006624A (es) * 2017-12-20 2020-09-14 Hubbell Inc Dispositivo empotrado de respuesta de voz.
US10698737B2 (en) * 2018-04-26 2020-06-30 Hewlett Packard Enterprise Development Lp Interoperable neural network operation scheduler
US11119904B2 (en) * 2019-04-10 2021-09-14 Visa International Service Association Computer update and error correction
CN110210928A (zh) * 2019-05-08 2019-09-06 江苏理工学院 一种基于互联网+的房车ai定制服务平台
US11443188B2 (en) 2020-02-24 2022-09-13 Sony Group Corporation Application generation based on neural network
WO2021183681A1 (en) 2020-03-10 2021-09-16 MeetKai, Inc. Parallel hypothetical reasoning to power a multi-lingual, multi-turn, multi-domain virtual assistant
CN115699036A (zh) * 2020-03-17 2023-02-03 梅特凯股份有限公司 支持跨平台、边缘-云混合人工智能服务的智能层
WO2022076471A1 (en) 2020-10-05 2022-04-14 MeetKai, Inc. System and method for automatically generating question and query pairs
KR20220101856A (ko) * 2021-01-12 2022-07-19 삼성전자주식회사 사용자 인터페이스를 제공하는 방법 및 그 전자 장치

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393496B1 (en) * 1995-11-09 2002-05-21 Curtis A. Schwaderer Operating system and network independent application program interface for use in an intelligent communication device
EP1084576B1 (en) * 1998-05-07 2005-07-27 Samsung Electronics Co., Ltd. Method and apparatus for universally accessible command and control information in a network
US6507762B1 (en) 1999-03-31 2003-01-14 International Business Machines Corporation Method and system for remotely controlling an appliance using a personal digital assistant
US20020056112A1 (en) 1999-06-03 2002-05-09 Vincent Dureau Home digital assistant
US7243355B2 (en) * 2002-04-04 2007-07-10 Verizon Busniess Global Llc Method, system and computer program product for a lightweight directory access protocol client application program interface
US8037421B2 (en) 2005-10-11 2011-10-11 Research In Motion Limited System and method for organizing application indicators on an electronic device
JP2011514586A (ja) * 2008-02-08 2011-05-06 エクリオ インコーポレイテッド デジタル電子デバイス上の複数のアプリケーションおよびサービスを制御するためのシステム、方法、ならびに装置
US8255225B2 (en) 2008-08-07 2012-08-28 Vocollect Healthcare Systems, Inc. Voice assistant system
KR101809923B1 (ko) * 2012-01-17 2017-12-20 엘지전자 주식회사 가전기기, 가전기기 진단장치 및 그 방법
KR101233955B1 (ko) 2012-05-17 2013-02-15 권오형 사용자 중심의 메인 화면 아이콘 구성 장치 및 방법
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9621433B2 (en) 2012-12-28 2017-04-11 Panasonic Intellectual Property Corporation Of America Control method used in a remote control system
US20140218372A1 (en) 2013-02-05 2014-08-07 Apple Inc. Intelligent digital assistant in a desktop environment
US20150162000A1 (en) 2013-12-10 2015-06-11 Harman International Industries, Incorporated Context aware, proactive digital assistant
US9462112B2 (en) 2014-06-19 2016-10-04 Microsoft Technology Licensing, Llc Use of a digital assistant in communications
US20150370272A1 (en) * 2014-06-23 2015-12-24 Google Inc. Intelligent configuration of a smart environment based on arrival time
US10235996B2 (en) 2014-10-01 2019-03-19 XBrain, Inc. Voice and connection platform
US9378467B1 (en) 2015-01-14 2016-06-28 Microsoft Technology Licensing, Llc User interaction pattern extraction for device personalization
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
EP3345138A1 (en) * 2015-09-04 2018-07-11 Robert Bosch GmbH Access and control for driving of autonomous vehicle
TWI557599B (zh) 2015-11-05 2016-11-11 宏碁股份有限公司 語音控制方法及語音控制系統
TW201717655A (zh) 2015-11-05 2017-05-16 宏碁股份有限公司 語音控制方法及語音控制系統
US9892311B2 (en) * 2015-12-31 2018-02-13 Cerner Innovation, Inc. Detecting unauthorized visitors
US9846577B1 (en) 2016-06-03 2017-12-19 Afero, Inc. Integrated development tool with preview functionality for an internet of things (IoT) system
US9747083B1 (en) 2017-01-23 2017-08-29 Essential Products, Inc. Home device application programming interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI696784B (zh) * 2019-05-17 2020-06-21 中國科技大學 Ai互動學習檯燈裝置

Also Published As

Publication number Publication date
WO2018136302A1 (en) 2018-07-26
US20180213037A1 (en) 2018-07-26
US10365932B2 (en) 2019-07-30
US20180210740A1 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
US10365932B2 (en) Dynamic application customization for automated environments
US10031727B1 (en) Home device application programming interface
US20230148087A1 (en) Automatic Device Orchestration and Configuration
US10558323B1 (en) Systems and methods for smart home automation using a multifunction status and entry point icon
US11438939B2 (en) Discovery of connected devices to determine control capabilities and meta-information
EP3192216B1 (en) System for connecting and controlling multiple devices
KR102636605B1 (ko) 어시스턴트 클라이언트 장치에 의해 로컬로 스마트 장치 제어 및/또는 등록
US10574764B2 (en) Automated learning universal gateway
US20150355609A1 (en) Crowdsourcing automation rules
US11153387B2 (en) Decentralized network protected IoT query resolution
KR102340693B1 (ko) 사용자 권한 설정 방법 및 이를 수행하는 홈 사물 인터넷 서비스 시스템
US20170031333A1 (en) Managing interaction constraints
US20190306786A1 (en) Home automation system including selective operation of paired device based upon voice commands and related methods
US10964189B2 (en) Home automation system determining deviated operation device pattern and related methods
Bansal et al. IoT Applications in Smart Homes
US11082248B2 (en) Home automation system including changed current usage notification and related methods
US20230107818A1 (en) Home automation platform
US11985716B2 (en) Discovery of connected devices to determine control capabilities and meta-information
Alvarez Rojano Home Automation System for Rental Properties