CN108886676A - 用于自动化环境的协调器设备的选择 - Google Patents

用于自动化环境的协调器设备的选择 Download PDF

Info

Publication number
CN108886676A
CN108886676A CN201780020793.5A CN201780020793A CN108886676A CN 108886676 A CN108886676 A CN 108886676A CN 201780020793 A CN201780020793 A CN 201780020793A CN 108886676 A CN108886676 A CN 108886676A
Authority
CN
China
Prior art keywords
equipment
controller
coordinator
attachment
qualification
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201780020793.5A
Other languages
English (en)
Other versions
CN108886676B (zh
Inventor
A·G·纳达瑟尔
S·拉马
M·C·卢卡斯
N·E·卡罗尔
K·P·麦克劳克林
T·A·迪力甘
A·G·马赛厄斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Priority to CN202210659522.7A priority Critical patent/CN115051883A/zh
Priority to CN201910914426.0A priority patent/CN110691014B/zh
Publication of CN108886676A publication Critical patent/CN108886676A/zh
Application granted granted Critical
Publication of CN108886676B publication Critical patent/CN108886676B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • H04W84/20Master-slave selection or change arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/284Home automation networks characterised by the type of medium used
    • H04L2012/2841Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • H04W84/22Self-organising networks, e.g. ad-hoc networks or sensor networks with access to wired networks

Abstract

一种自动化环境可以包括能够与多个附件设备通信的多个控制器设备。所述控制器设备可以自动地选举它们的数量中的一个来作为用于所述环境的协调器设备,并且可以在现任协调器变得不可用或者放弃的情况下,自动地执行新的选举。所述选举过程对任何用户都可能是透明的。所选举的协调器可以执行各种操作以有助于对所述自动化环境的管理,包括控制器和附件之间的通信的路由。

Description

用于自动化环境的协调器设备的选择
相关申请的交叉引用
本公开要求2016年9月23日提交的美国非临时申请No.15/274,353的权益,所述非临时申请要求2016年6月12日提交的名称为“SELECTION OF A COORDINATOR DEVICE FORAN AUTOMATED ENVIRONMENT”的美国临时申请No.62/348,994的优先权,所述申请的全部内容全文以引用方式并入本文。本公开还涉及以下美国专利申请:2015年2月5日提交的申请14/614,914;2015年5月29日提交的申请14/725,891;以及2015年5月29日提交的申请14/725,912。这些申请的公开内容全文以引用方式并入本文。
背景技术
本公开整体涉及用于自动化环境的控制系统,且具体地涉及使用多个驻留设备对自动化环境的协调控制。
电子设备在多种应用中变得越来越普及。移动电话、平板电脑、家庭娱乐系统等仅仅是用户经常与之互动的电子设备中的一些。
另一类日益普及的电子设备包括各种电子可控设备,诸如恒温器、照明设备、家用电器等。用户希望使用移动设备等轻松和方便地控制这些设备,并使其操作自动化。
发明内容
目前,用户可能难以管理多个电子可控设备或系统。例如,用户的家可能有恒温器、电子可控照明系统、家庭安全系统等等。每个这样的系统可由不同的制造商制造,并且每个制造商可提供专用控制器设备(例如,基于IR的远程控制设备)或控制器应用程序(或者“app”),其可供用户安装在通用设备诸如智能电话、平板电脑或家庭电脑系统上并在其上运行。每个控制器设备或控制器应用程序通常针对特定制造商的系统进行定制,并且可能不能与来自其他制造商的系统或甚至来自同一制造商的其他系统进行互操作。这种零碎的方法不容易扩展。寻求创建具有可以集中控制或管理的不同设备的阵列的“智能家庭”环境等的用户面临需要积累大量控制器设备和/或控制器应用程序。
本发明的某些方面可在用于控制器设备(或“控制器”)与任何数量的将被控制的其他电子设备(本文中被称为“附件设备”或简称为“附件”)之间通信的协议的环境下操作。例如,通过提供具有合适的可执行程序代码的通用计算设备,可在通用计算设备诸如台式计算机、膝上型计算机、平板电脑、智能电话、其他移动电话或其他手持式或可穿戴计算设备上实现控制器;或者,控制器可以是专用计算设备。附件可包括可由控制器控制的任何设备。附件的示例包括灯具、恒温器、门锁、自动开门器(例如,车库开门器)、照相机或摄像机等等。附件和控制器可使用标准传输协议诸如Wi-Fi、Bluetooth、Bluetooth LE等通过有线或无线信道相互通信。应当理解,可使用其他通信协议和传输手段。
在一些实施方案中,可提供“统一的”附件协议,控制器可通过该协议将命令控制消息发送到附件,并且以统一的格式接收来自附件的响应,而不管附件的类型或功能如何。例如,附件可被定义为服务的集合,其中每个服务被定义为一组特征,每个特征在任何给定时间具有一个定义值。这些特征可表示附件状态的各个方面。该协议可以定义消息格式,控制器可通过该消息格式询问(例如,通过读取)和更新(例如,通过写入)附件的特征(单独或成组),由此允许控制器确定和/或改变附件的状态。因此,不管附件的功能是怎样的,都可通过一致的方式来控制任何类型的附件。
在一些实施方案中,该协议可以定义可用于防止未经授权的控制器操作附件的安全措施。例如,附件可被配置为仅接受来自之前已与附件建立配对并且因此被该附件识别的控制器的请求。该协议可以指定配对程序,以便在未经附件的合法所有者/运营商批准的情况下将发生配对的风险降至最低。此外,协议可以指定端到端的消息加密,使得只有特定的控制器和附件可以解密在它们之间交换的消息。
用户可能希望使附件的某些动作自动化,使得响应于特定事件或条件的发生而自动执行动作,诸如当用户到达家中时打开某些灯或在就寝时关闭电器。在一些实施方案中,附件动作的自动化可通过定义触发动作集(本文中也被称为“触发器”)来实现。触发动作集可例如通过向控制器指定触发事件(其可以是可由控制器检测到的任何事件)和在控制器检测到触发事件时要执行的一个或多个结果动作(包括在自动化环境中的附件设备上的一个或多个操作)来定义。触发动作集可由控制器例如通过如下方式执行:检测触发事件的发生,并且响应于检测到触发事件的发生,向附件发送命令控制消息以执行一个或多个结果动作。
在一些情况下,可能存在与给定自动化环境相关联的多个控制器设备。例如,用户可具有能够作为控制器操作的若干个人电子设备,诸如移动电话、平板电脑、膝上型计算机或台式计算机、将视频内容递送到电视(TV)监视器的机顶盒等。在存在多个控制器的情况下,控制器可能会向附件发送冗余命令或不兼容的命令。例如,可以在多个控制器上定义同一触发器,但如果多个控制器执行该触发器,则可能形成针对所作用的一个或多个附件的冗余命令。又如,用户可以决定同时采取不同的动作,从而将冲突指令发送到附件。
因此,可能期望提供用于自动化环境的“协调器”设备。协调器设备可以是能够在自动化环境中与附件和控制器通信的设备。在本文所述的实施方案中,协调器设备可以是添加了在自动化环境中的其他控制器与附件之间接收和中继消息(包括命令、响应和通知)的功能的控制器。在存在协调器的情况下,所有其他控制器都可以向协调器发送指令。协调器可以在向附件发送命令之前,解决冲突指令或冗余指令的任何问题。在一些实施方案中,只有定位于自动化环境中的设备(即,物理地存在于该环境中并连接到与该环境相关联的局域网)才能充当协调器。能够作为协调器操作的任何控制器设备在本文中称为“具有协调器设备能力”或“具有CD能力”。在各种实施方案中,给定控制器是否具有CD能力可取决于设备类型(例如,形状因数、硬件配置和/或软件配置)和/或用户偏好(例如,用户可能能够经由设置菜单来指示是否使特定控制器具有CD能力)。每当具有CD能力的协调器物理地存在于自动化环境中(例如,当它连接到在自动化环境中建立的局域网时),它就可以自动成为“驻留设备”。在一些实施方案中,具有CD能力的协调器(其变成驻留的)可将自己声明为“具有CD资格”。
一些自动化环境可具有多个在任何给定时间具有CD资格的控制器;因此,可能存在多个可能的协调器。然而,出于期望具有用于自动化环境的协调器的原因,也期望在任何给定时间具有仅一个用于自动化环境的协调器。
本发明的某些实施方案涉及具有多个具有CD资格的设备的自动化环境。在此环境中,具有CD资格的设备可以自动地“选举”它们的数量中的一个来作为协调器操作,这对于自动化环境中的控制器或附件的任何用户都是透明的。在一些实施方案中,选举可以以两个阶段进行:在第一阶段期间,选择“临时”协调器完成选举过程;以及在第二阶段期间,临时协调器可以通过选择它自身或另一具有资格的设备成为协调器来完成该过程。可以基于对具有CD资格的设备的软件版本的比较来选择临时协调器;在一些实施方案中,临时协调器可以是具有包括选举逻辑的最新版本的软件的设备(在具有CD资格的设备间进行比较);在其中对于最新版本的软件来说,两个或更多个设备平局的情况下,可以在它们之间进行任意选择(例如,基于哪个设备恰好首先将其自身指定为临时协调器)。
在选举过程的第二阶段中,临时协调器可以应用优先级规则集,所述优先级规则集标识协调器设备的优选特征。例如,在一些实施方案中,优先级规则可以至少部分地基于各种具有CD资格的设备的硬件配置文件。优先级规则的一个示例可能偏向于相对不太可能变成非驻留的类型的设备。例如,机顶盒可能被用户置于特定位置并留在那里,而平板电脑更可能离开环境;因此,机顶盒可能比平板电脑更受欢迎。在一些实施方案中,可以例如基于此类设备将频繁离开环境的假设可能性来按照策略将某些类型的设备(例如,移动电话)声明为具有CD资格。如果存在类似硬件类型的多个设备,则基于硬件配置文件的优先级规则可能会考虑硬件版本(例如,更喜欢较新的硬件版本)。
另一个优先级规则可以基于对正由驻留设备运行的自动化环境软件的版本的比较。在一些实施方案中,当两个或更多个驻留设备各自具有最高优先级硬件配置文件时,会考虑软件版本。在一些情况下,较新的软件版本可能比较旧的软件版本更受欢迎。
另一个优先级规则可以基于特定驻留设备是否能够“到达”自动化环境中的各种附件(即,是否能够与所述附件建立通信信道)。在一些实施方案中,附件的可达性并不重要,因为只要第一驻留设备可以直接到达特定附件,任何其他驻留设备就可以通过使用第一驻留设备作为中继来到达该附件。然而,在所有其他考虑因素相同的情况下(例如,在两个或更多个驻留设备具有相同的硬件配置文件和软件版本的情况下),每个驻留设备可直接到达的附件的数量可以作为决胜属性作用;可以直接到达最多附件的驻留设备可以是所选举的协调器。对于其中可达性引起平局的情况,可以做出附加规定。例如,可以基于每个驻留设备可直接到达哪些附件来打破平局(例如,可以到达前门锁的驻留设备获胜)。还可以实现其他平局打破逻辑,使得选举过程的第二阶段可靠地导致一个设备被选举作为协调器;所选举的协调器可以是临时协调器或另一个设备。
所选举的协调器不需要能够与自动化环境中的每个附件直接通信。在本发明的一些实施方案中,不作为协调器操作的具有CD资格的设备和/或其他控制器设备可以向协调器动态地报告可达性数据。可达性数据可以包括可由报告该数据的设备直接到达的附件的标识符;还可以包括其他信息,诸如接收信号强度信息。协调器可以从具有CD资格的设备收集可达性数据并且可以将通信路由到其他具有CD资格的设备,以在协调器不具有到附件的直接通信路径的情况下递送到附件。
以下具体实施方式连同附图将提供对本发明的实质和优点的更好理解。
附图说明
图1示出了根据本发明的实施方案的家庭环境。
图2示出了根据本发明的实施方案的网络配置。
图3示出了根据本发明的实施方案的环境描述符数据的简化示例。
图4示出了根据本发明的实施方案的可在选举过程的第一阶段中使用的过程的流程图。
图5示出了根据本发明的实施方案的可在选举过程的第二阶段中使用的过程的流程图。
图6示出了根据本发明实施方案的用于发起协调器的选举的过程的流程图。
图7示出了根据本发明实施方案的用于监视现任协调器的过程的流程图。
图8示出了根据本发明的实施方案的本地环境。
图9示出了根据本发明的实施方案的可从图8的控制器中获得的可达性数据的表。
图10是根据本发明的实施方案的用于路径选择的过程的流程图。
图11示出了根据本发明的实施方案的控制器的简化框图。
图12示出了根据本发明的实施方案的附件的简化框图。
具体实施方式
示例性环境
图1示出了根据本发明的实施方案的家庭环境100。家庭环境100包括控制器102,该控制器可与位于该环境中的各种附件设备(也称为附件)通信。控制器102可包括例如台式计算机、膝上型计算机、平板电脑、智能电话、可穿戴计算设备、个人数字助理,或能够向附件传送命令控制消息(例如,如上文提及的美国申请14/614,914中所描述)并且呈现用户界面以允许用户指示出对附件的期望操作的任何其他计算设备或设备组。在一些实施方案中,控制器102可使用多个分立的设备来实现。例如,可以存在一个基站以及一个或多个移动遥控站(例如,手持式或可穿戴设备诸如移动电话、平板电脑、智能手表、眼镜等),其中基站与附件通信,并且可安装在环境100中的固定位置处,而移动遥控站提供了用户界面,并且与基站通信以实现对附件的控制。在一些实施方案中,基站可如下所述充当驻留设备、协调器或代理。
可对任何类型的附件设备进行控制。附件设备的示例包括门锁104、车库门系统106、灯具108、安保摄像机110和恒温器112。在某些情况下,控制器102可与附件直接通信;例如,控制器102被示出为直接与门锁104和车库门系统106通信。在其他情况下,控制器102可经由中间体进行通信。例如,控制器102示为经由无线网络接入点114与在由接入点114提供的无线局域网(LAN)上的附件108、110、112通信。如上所述,在一些实施方案中,控制器102可包括基站,并且基站功能可集成到接入点114中,或集成到待控制的附件之一(例如,恒温器112)中。
一些实施方案包括协调器116。如本文所用,协调器116可以是能够作为控制器操作并且还能够从其他控制器接收消息并将这些消息中继到附件的任何设备。协调器116可以实现协调逻辑,该协调逻辑可以改变到附件的消息或拒绝将某些消息中继到某些附件。例如,协调器116可以包括用于检测和解决到附件的冲突指令的逻辑。协调器116还可以施加访问限制,例如,限制特定控制器102访问某些附件的能力(例如,防止属于儿童的控制器改变恒温器112的设置)。协调器116还可以包括用于对附件执行自动化操作的逻辑。例如,控制器102可以定义“触发器”,该触发器可以包括要在附件上执行的一组操作(例如,关闭灯具108、锁定门锁104、关闭车库门106以及将恒温器112设置为降低的温度)以及定义应该何时执行该组操作的一组一个或多个事件和/或条件(例如,每个工作日晚上10:00,或者当用户说“晚安,在家”或其他条件时)。在一些实施方案中,将针对环境100所定义的所有触发器的执行自动委托给协调器116。
环境100的具体实施可具有多个能够充当协调器116的设备。发生这种情况时,能够充当协调器116的各种设备可以实现“选举”过程以选择这些设备中的刚好一个来充当协调器116。下文描述了此类过程的示例。
可使用各种通信传输手段以及传输手段的组合,并且不同的传输手段可用于不同的设备。例如,一些无线传输手段诸如由Bluetooth SIG发布的经典或智能通信协议和标准(本文中称为“Bluetooth”和“Bluetooth LE”)可支持设备之间在有限范围内的点对点直接通信。由Wi-Fi联盟(Wi-Fi Alliance)发布的遵从网络标准和协议的其他无线传输手段,诸如无线网络(本文中称为“Wi-Fi网络”),可定义具有在网络上的不同设备之间路由通信的中央接入点的无线网络。另外,虽然示出了无线通信传输手段,但也可为一些或所有附件提供有线传输手段。例如,灯泡108可通过有线连接而连接到接入点114,并且控制器102可通过向接入点114无线地发送消息而与灯泡108通信,该接入点可经由有线连接将消息递送到灯泡108。又如,协调器116可如图所示经由有线连接(如果需要,该连接可以是无线的)而连接到接入点114,并且控制器102可经由接入点114通过向协调器116发送消息而与附件诸如灯泡108通信;协调器116可经由接入点114,或经由另一信道诸如Bluetooth LE信道而与灯泡108通信。有线通信和无线通信的其他组合也是可能的。
另外,虽然示出了一个控制器102,但家庭环境中可存在多个控制器设备。例如,该家庭中所居住的每个人可拥有他或她自己的一个或多个便携式设备,这些便携式设备可充当附件104至112中的一些或全部的控制器。不同的控制器设备可被配置为与附件的不同子集通信;例如,可阻止子女的控制器修改恒温器112上的设置,而允许父母的控制器设备修改该设置。此类权限或特权可使用例如下文所述的和上文引用的美国申请14/725,891中所述的技术来配置和控制。
在一些实施方案中,统一附件协议可有助于控制器102(和/或协调器116,其具有控制器功能,如上所述)与一个或多个附件104至112的通信。该协议可提供一种简单且可扩展的框架,该框架可将附件作为服务的集合来建模,其中每个服务被定义为一组特征,每个特征在任何给定时间具有一个定义值。各种特征可表示附件状态的各个方面。例如,就恒温器112而言,特征可包括电力(接通或断开)、当前温度和目标温度。在一些实施方案中,消息格式可以是依赖于传输的,同时符合相同的附件模型。基于服务和特征的附件模型的示例描述于上文引用的美国申请14/614,914中。
协议还可定义控制器102的消息格式,以向附件112(或其他附件)发送命令控制消息(请求),并且可定义附件112的消息格式,以向控制器102发送响应消息。命令和控制消息可允许控制器102询问附件特征的当前状态,并且在一些情况下修改该特征(例如,修改电力特征可将附件断开或接通)。因此,不管附件的功能或制造商是怎样的,都可通过发送适当的消息来控制任何类型的附件。各种附件的格式可以相同。消息格式的示例描述于上文引用的美国申请No.14/614,914中。
该协议可进一步提供通知机制,该通知机制允许附件112(或其他附件)在发生状态变化的情况下选择性地通知控制器102。可实现多个机制,并且控制器102可针对给定目的,对最适当的通知机制进行注册或订阅。通知机制的示例描述于上文引用的美国申请No.14/614,914中。
在一些实施方案中,与给定附件的通信可限于授权控制器。在用户希望控制器102能够控制附件104这一事件具有较高置信度的情况下,协议可指定用于在控制器102与给定附件(例如,门锁附件104)之间建立“配对”的一个或多个机制(包括本文中称为“配对设置”和“配对添加”的机制)。配对设置可包括带外信息交换(例如,用户可将附件104提供的数字或字母数字PIN或密码输入由控制器102提供的界面中)以建立共享秘密。这个共享秘密可用于支持“长期”公共密钥在控制器102和附件104之间的安全交换,并且每个设备可存储从另一个设备接收的长期公共密钥,以使得所建立的配对可以是持久性的。在建立了配对后,则认为控制器102已被授权,随后,控制器102和附件104可根据需要进入和退出通信,而不会失去所建立的配对。当控制器102尝试与附件104通信或控制该附件时,可首先执行“配对验证”过程,以验证存在已建立的配对(例如,控制器102先前已完成与附件104的配对设置的情况也是如此)。配对验证过程可包括每个设备证明其拥有与在配对建立期间交换的长期公共密钥对应的长期私有密钥,并且还可包括建立新的共享秘密或会话密钥以加密在“配对验证”会话(在本文中也称为验证会话)期间的所有通信。在配对验证会话期间,具有适当特权的控制器可执行“配对添加”过程,以便代表另一个控制器与附件建立另一个配对。任一设备均可仅通过使会话密钥的副本破坏或无效而在任何时间结束配对验证会话。
在一些实施方案中,多个控制器可与同一附件建立配对(例如,通过与附件执行配对设置,或通过由先前已与附件建立配对设置的控制器添加配对),并且附件可接受并响应来自其配对控制器中的任一者的通信,同时拒绝或忽略来自未配对控制器的通信。配对设置、配对添加和对验证过程的示例以及安全相关操作的其他示例描述于上文引用的美国申请No.14/614,914中。
应当理解,家居环境100是例示性的,并且变型形式和修改形式是可能的。本发明的实施方案可以在用户希望使用控制器设备来控制一个或多个附件设备的任何环境中实施,该控制器设备包括但不限于房屋、汽车或其他车辆、办公楼、具有多个建筑物的园区(例如,大学校园或公司园区)等。可以控制任何类型的附件设备,包括但不限于门锁、开门器、灯具或照明系统、开关、电源插座、照相机、环境控制系统(例如,恒温器和HVAC系统)、厨房电器(例如,冰箱、微波炉、炉灶、洗碗机)、其他家用电器(例如,洗衣机、干衣机、吸尘器)、娱乐系统(例如,电视机、立体声系统)、窗户、窗帘、安全系统(例如,警报器)、传感器系统等。单个控制器可与任何数量的附件建立配对,并且可与不同的附件在不同时间选择性地通信。类似地,单个附件可由已与其建立配对的多个控制器控制。可通过将功能建模为具有一个或多个特征的服务,并且允许控制器与该服务和/或其特征发生交互作用(例如,读取、修改、接收更新)来控制附件的任何功能。因此,不管附件功能或控制器形状因数或具体界面如何,本发明的实施方案中所使用的协议和通信均可在任何环境下统一地用于一个或多个控制器和一个或多个附件。
图2示出了根据本发明的实施方案的网络配置200。配置200允许控制器202与位于本地环境206(例如,家庭环境)中的附件204通信。各个控制器202可以是经常出入于环境206的用户(例如,家庭住户或家庭固定访问者)所拥有和/或操作的电子设备。控制器202可各自类似于图1的控制器102或协调器116,并且附件204可类似于图1中示出的各种附件。
在配置200中,原则上,任何协调器202都可以直接或通过中介与任何附件204通信。例如,控制器202(1)可以经由控制器202(4)与附件204(1)和204(2)通信,并且控制器202(1)可以经由控制器202(4)和202(5)与附件204(3)通信。
如上所述,可能期望指定可相对于本地环境206定位的单个协调器设备(或“协调器”)。在所示的配置中,控制器202(4)已被指定为协调器,如星形210所指示。应当理解,将特定控制器指定为协调器210是动态的,并且可以在不同时间应用于不同的控制器。在一些实施方案中,对协调器210的指定进行管理,使得在任何给定时间都存在不超过一个协调器210,以及使得几乎始终存在指定为协调器210的设备;当“现任”协调器变得不可用并且其他具有资格的控制器进行选举以替换不可用的协调器时,可以在瞬态的基础上出现异常。(应当理解,如果有源控制器当前都没有资格充当协调器210,则可能没有协调器可用。在这种情况下,环境206可在没有协调器的情况下操作;例如,控制器可与附件直接通信)。
如本文所使用,“协调器”的指定可被应用于能够作为附件204的控制器操作、并将其他控制器(例如,控制器202)的消息中继到附件204的电子设备。在一些实施方案中,协调器可以是可在多个控制器和/或附件间协调操作、并且不限于被动地中继消息的“智能”设备。任何控制器设备都可充当协调器,只要该设备能够将其自身作为控制器呈现给附件204、并且能够与控制器202安全地通信。在一些实施方案中,协调器可将其自身作为控制器呈现给附件204,或作为附件(所述附件提供了用于与其他附件(例如,附件204)进行通信的服务)呈现给控制器202;其示例在上文引用的美国申请14/725,891中有所描述。
在一些实施方案中,协调器210可以是预期驻留在本地环境206中,并且预期在大部分或所有时间被接通且可用于通信的设备。(应当理解,协调器可能会偶尔变得不可用,例如,在软件连接或固件升级、电力中断或出现其他间歇时)。例如,协调器可为各项设备:台式计算机、Wi-Fi或接入点单元、专用附件控制基站、电视或其他器具的机顶盒(除了与电视或其他电器交互作用外,还可实现协调器功能);或根据需要任何其他电子设备。其他实施方案可以允许其他类型的设备(包括可能不时地离开环境的诸如膝上型计算机或平板电脑的设备)至少在它们驻留在本地环境206中的时间期间作为协调器210操作。如下所述,多个控制器可以满足充当协调器的资格,在这种情况下,可以执行选举过程以选举有资格的控制器中的一个作为协调器210。
在一些实施方案中,控制器202和附件204可以使用诸如Wi-Fi网络的局域网(LAN)和/或诸如蓝牙LE的点对点通信介质来通信。应当理解,可使用其他通信协议。在一些实施方案中,控制器202、附件204和协调器210可如上所述支持统一附件协议,该统一附件协议可使用Wi-Fi和蓝牙LE两者作为传输手段来受到支持。
在图2的示例中,控制器202(1)、202(4)和202(5)当前与附件204和协调器210一起定位于本地环境206中。例如,控制器202(1)可与附件204和协调器210位于同一LAN上。控制器202(2)和202(3)当前位于本地环境206之外,但是连接到通信网络208(例如,互联网)。此类控制器被称为“远离”附件204和协调器210。应当理解,控制器202可以是有时位于本地环境206内、而有时位于本地环境206外的移动设备。附件204无需是移动的,并且不需要连接到通信网络208。在一些实施方案中,本地环境206中的一个或多个控制器(例如,控制器202(4))可以连接到通信网络208并且可有助于通过远程控制器202(2)和202(3)访问附件204。
在所示的示例中,控制器202可以经由协调器202(4)与附件204通信,并且协调器202(4)据称可充当附件204的“代理”。协调器202(4)可与附件204(1)和204(2)直接通信。在一些情况下,协调器202(4)(或其他控制器)可经由“桥接器”与附件通信。如本文所用,“代理”可以是可操作为在控制器和附件之间(或在控制器和另一代理之间)中继命令的任何设备。“桥接器”是也可以在控制器和附件使用的不同通信协议之间进行转换的某种类型的代理。另外,在一些实施方案中,称为“隧道”的某种类型的桥接器可在控制器与附件之间提供安全的端到端通信。代理、桥接器和隧道的示例描述于上文引用的美国申请14/725,891中。如下所述,协调器210可以直接或通过可以充当代理(例如,桥接器或隧道)的另一具有协调器能力的控制器202找到到附件的路径;因此,协调器210不需要能够直接与本地环境206中的每个附件204通信。
在网络配置200中,控制器202可以被配置为只要可能就经由协调器210(即,无论哪个控制器202当前被指定为协调器)与附件204通信。因此,如图所示,位于本地环境206中的控制器202(1)与位于远程的控制器202(2)和202(3)一样,与协调器210通信而不是直接与附件204通信。非协调器控制器202和附件204之间的直接通信可限于例如协调器210不可用的情况。在其他实施方案中,控制器202可与附件204直接通信,无论二者何时恰好处于彼此的范围内(例如,在相同的Wi-Fi网络上或在蓝牙范围内)。例如,如图所示,控制器202(4)可与附件204(2)直接通信。
在一些实施方案中,协调器210可用于协调多个控制器202对多个附件204的访问。例如,不是在每个控制器202和每个附件204之间建立配对,而是控制器202可各自与协调器210建立配对,并且协调器210可与每个附件204建立配对。用于建立控制器-附件配对的相同配对设置和/或配对添加过程,也可用于建立控制器-协调器配对,其中协调器充当附件的角色。为了进行协调器-附件配对,协调器可承担控制器的角色。因此,协调器210可在与控制器(例如,控制器202中的任一个)通信时将其自身作为附件呈现,并且当与附件(例如,附件204)通信时将其自身作为控制器呈现。
协调器210可促进包括附件204在内的附件网络的操作。例如,协调器210可协调对定义用于附件网络的环境模型的“环境描述符数据”(也称为“家庭数据”)的维护,并且可将模型(或其部分)提供给各种控制器202;下文描述了环境模型的示例。控制器202可以使用环境模型来为它们的用户动态地生成用户界面,并且可以通过例如响应于用户输入而与协调器210交互作用来操作附件204。在一些实施方案中,可以在所有控制器202可访问的云服务处存储和同步环境描述符数据。可以使用各种技术来管理环境描述符数据或环境模型。
在一些实施方案中,协调器210可管理与附件网络或环境模型相关联的权限,以限制特定控制器202对一些或所有附件204的访问。在一些实施方案中,控制器202可通过协调器210优先将所有请求路由到附件204,并且在一些实施方案中,一些或全部附件204可被配置为仅与协调器210直接通信并忽略直接来自控制器202的请求。这可允许协调器210对访问附件204执行权限和其他限制。
应该注意的是,在配置200中,一个或多个控制器(例如,控制器202(1))可能被允许与一个或多个附件(例如,附件204(1))间接地(经由协调器210)而不是直接地通信,而无论控制器202(1)是否位于本地环境206中。例如,如果控制器202(1)已经与协调器210建立配对,但不是与附件204(1)直接建立配对,则这可能发生。在某些情况下,这可提供增强的安全性;例如,具有与协调器210建立的配对的附件可拒绝建立任何其他配对。然而,可能存在需要直接访问的情况,并且可允许在某个附件(例如,附件204(1))和一个或多个控制器202之间建立直接配对。例如,假定附件204(1)是门锁并且控制器202(1)是移动电话。如果在附件204(1)和控制器202(1)之间建立了直接配对,则用户可使用控制器202(1)经由直接通信来锁定或解锁附件204(1),从而锁定或解锁门。例如,在协调器202(4)暂时不可用的情况下,这可能是有用的。在一些实施方案中,协调器202(4)可用于向附件204(1)指示哪些控制器202被授权直接访问,并且附件204(1)可与已授权控制器202建立配对。在一些实施方案中,附件204(1)可被配置为只有当协调器210不可用时,接受来自已授权控制器202的直接通信。因此,一般规则可为:与附件204的所有通信都通过协调器210,而以每个附件和每个控制器为基础进行例外处理。在尚未指定协调器210的情况下,可以允许所有控制器直接或经由非协调器代理与所有附件通信。
指定的协调器210可作为智能代理操作,以允许控制器操作附件,而不是简单地中继消息。例如,协调器210可建立与每个控制器202的配对以及与每个附件204的配对。当控制器202(1)例如接收到与特定附件(例如,附件204(1))交互的用户请求时,控制器202(1)可与协调器210建立第一配对验证会话,并且经由第一配对验证会话将附件204(1)的指令提供给协调器210。协调器210可接收指令,与附件204(1)建立第二配对验证会话,并且经由第二配对验证会话向附件204(1)发送适当的控制消息。在一些实施方案中,协调器210可知道指令的内容,并且在一些实施方案中,发送到附件204(1)的消息不必对应于由控制器202(1)提供的指令。例如,在与控制器202(1)通信时,协调器210也可与另一个控制器(例如,控制器202(2))通信。控制器202(1)和202(2)可各自将附件204(1)的指令提供给协调器210。协调器210可分析接收到的指令,例如以检测和解决冲突,诸如在控制器202(1)指示协调器210打开附件204(1)的同时控制器202(2)指示协调器210关闭附件204(1)。协调器210可以用优先级规则或用于解决冲突的其他规则来编程(例如,“开”优先于“关”;来自具有管理员权限的控制器的指令优先于来自没有管理员权限的控制器的指令;等等)。协调器210可应用优先级规则来解决任何冲突,并且可以基于这种解决将指令传送给附件204(1)。当从附件204(1)接收到响应时,协调器210可以确定是否向控制器202(1)和/或向控制器202(2)发送对应的消息(或不同的消息)。又如,协调器210可执行为各种控制器202和/或附件204建立的权限。例如,当控制器202中的一个发送请求时,协调器210可以应用判定逻辑来确定发送请求的控制器202是否具有适当的许可;如果不是,则协调器210可拒绝该请求。判定逻辑可以根据需要为简单的或复杂的;例如,属于子女的控制器可能受限于一天中的哪些小时或者其可以操作特定附件(例如,电视机)多长时间,而父母的控制器可具有不受限的访问,或者与一个客人(例如,保姆)相关联的控制器可被限制为操作附件的某个子集。因此,协调器210不限于充当控制器和附件之间的消息的被动中继器,而是可以主动干预以解决冲突指令,执行被授予特定控制器或用户的权限或许可上可能存在的任何限制,等等。
应当理解,网络配置200是例示性的,并且变型形式和修改形式是可能的。可将任何数量的控制器和任何数量的附件包括在网络配置中。一些或全部附件204可能仅在本地环境内可访问。此外,不同的控制器202可具有关于访问附件204的不同级别的权限;例如,经由网络208的远程访问可被允许用于一些控制器202,但不允许用于其他控制器202。
如上所述,协调器的指定可在具有可被控制的多个附件的自动化环境的情况下特别有用。示例包括房屋、汽车或其他车辆、办公楼、具有多个建筑物的园区等等。出于举例说明的目的,将描述房屋的附件网络具体实施的示例;接触本公开的本领域技术人员将会理解,可以在其他自动化环境中实现类似的附件网络。
在附件网络的一个示例中,每个附件都与一个或多个控制器建立了配对,并且附件可以通过发送消息来控制,例如,如在上文引用的美国申请14/725,912和美国申请14/614,914中所述。对于只有少数附件的小型网络来说,这是完全可供使用的。然而,在某些情况下,特别是随着附件数量的增加,建立对于可以协调的方式进行管理的(对用户而言)有意义的附件组可为有帮助的。因此,本发明的某些实施方案结合了可用于协调跨附件网络中的多个附件的控制的环境模型。
如本文所用,环境模型可提供环境中的附件的各种逻辑分组。例如,家庭环境可通过定义可以表示家中的房间(例如,厨房、客厅、主卧室等)的“房间”来建模。在某些情况下,模型中的房间不一定对应于家中的房间;例如,可以有“前院”房间或“任何地方”房间(其可用于指存在于家中的附件,但其在家中的位置可以改变或者没有被定义为房间)。家中的每个附件可例如基于附件的实际物理位置分配给环境模型中的房间。可基于物理和/或逻辑相似性将房间分组成区域。例如,两层楼房的环境模型可具有“楼上”区域和“楼下”区域。又如,环境模型可具有“卧室”区域,其包括所有的卧室而不管它们在哪里。该模型可以根据需要(例如,取决于环境的大小和复杂性)为简单的或复杂的。
在定义环境模型的情况下,环境模型中表示的附件可以单独控制,也可以在房间、区域或整个模型的层面进行控制。例如,用户可以指示控制器或协调器打开所有的外部灯或关闭特定房间中的所有附件。
还可以定义其他附件分组。例如,在一些实施方案中,用户可通过将各种附件分组成“服务组”来扩充环境模型,所述“服务组”可包括用户可能希望在至少一些时间一起控制的任一组附件。服务组可包括房间或区域的任何组合中的附件,并且服务组中的附件可以是同类的(例如,所有楼上的灯)或者异类的(例如,灯、风扇和电视机)。在一些实施方案中,用户可以向控制器提供单个指令以设置整个服务组的状态(例如,打开或关闭该组)。虽然不是必需的,但是服务组的使用可以提供在协调对多个附件的控制方面的另一种程度的灵活性。
可以使用数据结构(本文中也称为“环境描述符数据”)来表示环境模型。环境描述符数据可以包括环境的描述符(例如,已经定义的房间、区域等);已添加到环境中的附件的标识符和长期公钥(以及附件到房间的分配);可能已由各种控制器创建的触发动作集或触发器的定义;已授权用户和/或它们的控制器设备的标识符;以及与协调器的标识和选举有关的其他信息,其示例如下所述。可以使用基于云的数据存储和同步服务在控制器间共享环境描述符数据。环境描述符数据可以以加密形式存储在云中,并且由各种控制器使用本地地存储在其上的密钥来解密。因此,与自动化环境相关联的所有控制器都可以由共享环境模型操作。
在上文引用的美国申请14/725,912中描述了与定义、共享和使用环境模型有关的另外的示例。应当理解,环境模型不需要利用下文所述的至少一些特征。
环境描述符数据
在本发明的一些实施方案中,环境描述符数据可以包括可用于有助于动态地和自动地“选举”与环境模型相关联的控制器设备中的一个成为针对环境的指定协调器的数据。
图3示出了根据本发明的实施方案的环境描述符数据300的简化示例。环境描述符数据300包括分配给数据所属的环境的名称302(“HomeA”);例如,可以在用户首次创建环境模型并成为环境模型的指定“所有者”时,分配该名称。在一些实施方案中,可以稍后由所有者更改该名称。该名称在其中控制器与多个环境相关联的情况下是有用的(例如,用户可以具有主要住所和次要住所,或者用户可以具有在家和在工作处的自动化环境)。环境描述符数据300还可以包括用户标识符的列表304以及被授权在自动化环境中操作控制器的每个用户的相关权限级别。在一些实施方案中,可以通过参考它们在基于云的数据管理服务(例如,Apple Inc.的服务)上的帐户来标识用户。可以根据需要定义各种权限级别。例如,初始可以将“所有者”权限分配给创建了环境的用户;所有者权限可能是最高级别的权限,允许对环境模型进行任何类型的修改(根据具体实施,所有者可能会或可能不会重新分配所有者权限)。可以由所有者(或另一管理员)向一个或多个其他用户授予“管理员”权限,允许这些用户对环境模型进行至少某些类型的更改;可以由所有者或管理员向应当被允许访问环境模型但具有有限的能力或没有能力修改环境模型的用户授予“用户”权限。可以定义其他权限级别。
环境描述符数据300还可以包括与环境相关联的、“具有CD能力”的特定控制器的标识符的列表306。如本文所用,“具有CD能力”表示具有至少在一些时间(例如,当它驻留在环境中时)充当协调器的能力的控制器,但并不一定意味着控制器实际上或将充当协调器。(在图2中,控制器202(3)、202(4)和202(5)都具有CD能力)。
在一些实施方案中,任何控制器都可具有CD能力。在其他实施方案中,可能期望强加进一步的要求以将特定控制器建立为具有CD能力。例如,一些实施方案规定,只有注册到对于环境具有所有者(或管理员)权限的用户的控制器才能具有CD能力;注册到其他用户的控制器不具有CD能力。此外或相反,限制可以基于设备类型。例如,可能期望要求协调器“驻留”(即,物理地存在)于其作为协调器的环境中。可能经常不在环境中的控制器设备(诸如移动电话或可穿戴设备)作为协调器可能不是期望的,并且可以将此类设备指定为不具有CD能力。另一方面,不太可能离开它所安装的环境的控制器设备(诸如机顶盒或台式计算机)可以具有CD能力。在一些情况下,用户可能能够例如经由控制器设备提供的设置菜单来选择特定控制器设备是否具有CD能力。例如,平板电脑或膝上型计算机的一些用户倾向于在大多数时间将它们留在家中并且可能选择将它们指定为具有CD能力,而倾向于随身携带这些设备的其他用户可能选择将它们指定为不具有CD能力。另一个要求可以基于软件版本(例如,使设备能够作为控制器操作的环境控制软件程序的版本);例如,应当将不具有包括实现协调器功能的程序代码的软件版本的控制器指定为不具有CD能力。
在一些实施方案中,可以将满足硬件配置文件、软件版本以及注册到具有适当权限的用户的最低要求的任何控制器都指定为具有CD能力。这可以是相对静态的指定,并且具有CD能力的设备可能始终可以或者可能并非始终可以充当协调器。因此,在一些实施方案中,具有CD能力的控制器可能能够根据其当前情况将其自身指定为“具有CD资格”或“不具有CD资格”。例如,环境描述符数据300还可以包括与环境相关联的、已将它们自己指定为具有CD资格的特定控制器的标识符的列表307;不在列表307上的控制器可被认为不具有CD资格。
在一些实施方案中,每个具有CD能力的控制器都可以确定是否以及何时将其自身指定为具有CD资格。例如,参照图2,如果期望协调器210物理地存在于具有要控制的附件的本地环境中,则诸如控制器202(3)的控制器(其并不物理地存在于本地环境206中)可以将其自身指定为不具有CD资格。又如,依靠电池电源操作的控制器在其功率储备降低到阈值水平以下的情况下,无论其位置如何,都可能会将其自身指定为不具有CD资格。又如,用户可能能够例如经由由控制器设备提供的设置菜单来选择特定控制器设备是否应该具有CD资格,并且控制器设备可以向用户建议用户应该使另一个控制器设备(或其自身)具有CD资格。根据具体实施,具有CD能力的控制器可以随着它们状态的变化将它们自身指定为具有CD资格或不具有CD资格(例如,当控制器进入或离开本地环境时)或者当调用对协调器的选举时;下面描述了选举。因此,可以将该组具有CD资格的控制器理解为由一些或全部具有CD能力的控制器组成的子组。
在一些实施方案中,一个控制器不能将另一个控制器指定为具有CD资格,但可建议另一个控制器将其自身指定为具有CD资格。在一些实施方案中,一个控制器可以将另一个控制器指定为具有CD资格。例如,如果一个控制器正在运行较旧版本(“版本A”)的环境控制软件(其具有在较后版本(“版本B”)中修复的错误),则这可能是期望的。该错误的性质可能使协调器不期望运行软件版本A,并且软件版本B可以包括指示应将运行软件版本A的控制器指定为不具有CD资格的指令。运行软件版本B的控制器可以执行该指令并将运行版本A的所有控制器指定为不具有CD资格。
任何数量的具有CD能力和/或具有CD资格的控制器都可以与环境相关联;然而,如上所述,期望在任何给定时间仅具有一个协调器。因此,在任何给定时间,可以将具有CD资格的控制器中的一个指定为协调器,并且环境描述符数据300可以包括当前指定的协调器(例如,图2的协调器210)的标识符308。在没有指定协调器的情况下,标识符308可存储空值。下面描述了用于指定协调器的技术的示例。
在操作中,当任何控制器(例如,图2的控制器202(1))准备与附件通信时,控制器可以读取协调器标识符308以确定当前是否指定了协调器。如果指定了协调器,则控制器可以将通信引向指定的协调器。如果没有指定协调器,则控制器可尝试直接与附件通信。
环境描述符数据300还可以存储可用于与和其相关的环境进行交互作用的其他信息。示例包括附件信息310(其可以包括例如附件标识符、公钥和/或附件服务和特征的描述符)和触发器信息312(其可以包括定义将由指定的协调器或其他控制器执行的自动化过程的信息)。应当理解,可用于与环境进行交互作用的任何信息都可包含在环境描述符数据300中。
如上所述,环境描述符数据300可以例如经由基于云的服务和/或其他同步技术而跨越与环境相关联的各种控制器同步。因此,所有控制器都可以维护最新的、相互一致的版本的环境描述符数据300。
示例选举过程
根据本发明的一些实施方案,可以使用对于自动化环境的用户透明的“选举”过程来动态地选择用于自动化环境的协调器设备。在一些实施方案中,可以由任何具有CD资格的设备(例如,其可以是连接到与自动化环境相关联的LAN的任何具有CD能力的设备)发起选举过程。例如,可在具有CD资格的设备确定不存在“现任”协调器的情况下发起选举过程(这可以是例如协调器指示符308被设置为空值或者在LAN上不存在由协调器指示符308标识的协调器的情况)。在一些实施方案中,具有CD资格或具有CD能力的控制器设备可以在其变成连接到LAN(也称为变为“驻留”在本地环境中)时发起选举。选举过程导致选择具有CD资格的设备中的一个作为协调器。
可以由一个或多个设备在各种情况下发起选举,例如当“现任”协调器离开环境时或者当新的具有CD能力的控制器变为驻留在环境中时。下文描述了用于发起选举的条件的具体示例。可以假设,具有CD能力的设备(或至少具有CD资格的设备)得到通知何时发起选举,使得它们可以参与选举。在一些实施方案中,选举过程可以包括确定哪些控制器当前具有CD资格。
在一些实施方案中,选举过程可包括两个阶段。在第一阶段期间,从具有CD资格的控制器设备间选举“临时”协调器从,以及在第二阶段期间,临时协调器可以决定是否继续作为协调器或将它自身替换为从具有CD资格的控制器设备间选出的不同协调器。
图4示出了根据本发明的实施方案的可在选举过程的第一阶段中使用的过程400的流程图。每当发起选举时,每个具有CD能力的设备可以同时执行过程400。在过程400期间,为了进行选举过程的第二阶段的目的,每个具有CD能力的设备都可以独立地确定其是否应将其自身在临时的基础上指定为协调器;过程400可以包含仲裁策略(或其他冲突解决机制),使得即使多个设备确定它们应该将它们自身指定为临时协调器,实际上也只有一个设备被这样指定。
过程400可以在具有CD能力的设备接收到已经发起选举的通知时开始,例如,在本文描述为导致发起选举的任何情况下。在框402处,具有CD能力的设备可以更新其自身的资格状态,例如,将其指定为具有CD资格或不具有CD资格。例如,如上所述,具有CD能力的设备可能基于其位置、功率储备和/或对于特定的具有CD能力的设备可能变化或可能不变的其他因素,在不同时间将其自身声明为具有CD资格或不具有CD资格。在一些实施方案中,更新资格状态可以包括更新图3的列表307和/或向其他具有CD能力的设备发送指示该设备是否具有CD资格的通知。在一些实施方案中,如果执行过程400的设备确定它不具有CD资格,则此时它可以退出过程400。在其他实施方案中,具有CD能力的设备可以成为协调器足够长的时间以完成选举过程(即使它当前不具有CD资格),并且过程400可以包括所有具有CD能力的设备。
在框408处,执行过程400的设备可以标识与环境相关联的一组具有CD能力的控制器设备。例如,该设备可以从中央储存库读取图3的列表307,或者该设备可以与和环境相关联的其他具有CD能力的设备交换状态消息(该设备也可以响应于被通知进行选举而同时执行过程400)。可以使用各种技术来允许每个具有CD能力的设备将其状态传送给其他具有CD能力的设备。在另选的实施方案中,在框408处,该组具有CD能力的设备可以限于具有CD资格的设备。
在框410处,执行过程400的设备可以确定在框408处标识的组中的每个具有CD能力的控制器设备(包括其自身)的软件版本。设备可以基于内部存储的数据来确定其自身的软件版本。可以例如从存储在环境描述符数据300中的信息、从框408处被提供有资格状态消息的信息、或者通过查询其他设备来确定用于其他设备的软件版本。
在框412处,执行过程400的设备可以确定任何其他具有CD能力的设备是否具有比该设备更高(更新)的软件版本。“软件版本”可以是包括实现选举逻辑的代码的软件程序或程序部件的版本。可以假设,用于选举协调器的逻辑,特别是用于选举过程的第二阶段的逻辑,可以随时间的推移而演进,其中较后的软件版本具有更复杂的选举逻辑。因此,可以假设,期望由具有最高(最新)软件版本的设备进行的选举过程的第二阶段在该组具有CD能力的设备内可用。如果在框412处,执行过程400的设备确定另一个具有CD能力的设备具有更高的软件版本,那么在框416处,执行过程400的设备不尝试将其自身指定为协调器,并且过程400可以在框418处结束。设备不需要执行进一步的选举逻辑,尽管(如将变得明显的)在框418处退出选举过程的设备可以最终被选为协调器。在一些实施方案中,框416还可以包括向被标识为具有最高软件版本的另外一个设备(或多个设备)发送消息,以通知另一设备正在进行选举;如果接收到此通知的设备尚未执行过程400,则该通知可以触发设备发起过程400。
如果在框412处,执行过程400的设备确定其他具有CD能力的设备不具有更高的软件版本,则在框420处,执行过程400的设备可以尝试例如通过更新图3的数据结构308中的协调器字段来将其自身指定为协调器,该协调器字段假设在与环境相关联的所有协调器设备之间共享。应当指出的是,同时执行过程400的两个或更多个具有CD能力的设备可以在大致相同的时间到达框420。在本文所述的实施方案中,可以假设,如果两个(或更多)协调器同时尝试更新协调器字段308,则要处理的第一更新请求将成功,并且剩余的请求将作为对过期数据的操作而被拒绝。因此,在框422处,执行过程400的设备可以确定它将其自身指定为协调器的尝试是否成功。如果没有成功,则在框424处,设备可以确定哪个设备被指定为协调器(例如,通过读取更新的协调器字段308),并且过程400可以在框418处结束。该指定可以被视为临时指定,其可以由于选举的第二阶段的执行而发生变化,例如,如下所述。
如果在框422处,设备将其自身指定为协调器的尝试成功,那么在框426处,设备可以担任协调器的角色并进行选举过程的第二阶段。在框420处两个或更多个设备试图将它们自身指定为协调器的情况下,每个这样的设备都具有相同的软件版本以及因此用于进行选举的第二阶段的相同决策逻辑,因此第二阶段的结果不应取决于框426处两个或更多个设备中的哪个设备承担协调器的角色。在进行选举过程的第二阶段时,设备可在所有方面作为协调器操作,包括从控制器接收请求并将请求路由到附件,反之亦然。
图5示出了根据本发明的实施方案的可在选举过程的第二阶段中使用的过程500的流程图。过程500可以由由于第一阶段而选择的“临时”协调器设备执行(例如,由与环境相关联的具有CD能力的设备执行过程400的结果)。在过程500期间,临时协调器可以应用一系列优先级规则来确定当前的一组具有CD资格的设备中哪个设备具有最高优先级排序。具有最高优先级排序的设备(其可能是也可能不是临时协调器)是所选举的协调器并且可以保持该角色(也称为“现任”协调器),直到其放弃或新的选举被举行。
在框502处,临时协调器可以定义该组具有CD资格的设备,它们将在选举的第二阶段被视为候选者。在一些实施方案中,所有具有CD能力的控制器都可以被视为具有CD资格除非它们决定退出(例如,通过在过程400的框402处将它们的资格状态更新为不具有CD资格)。在一些实施方案中,临时协调器可以与每个具有CD能力的控制器进行通信,以确认它是否应该包含在具有CD资格的组中。在一些实施方案中,将其自身声明为具有CD资格的控制器可能被临时协调器“推翻”。例如,由临时协调器执行的软件版本可以为CD资格指定最低软件版本,并且如果已将其自身指定为具有CD资格的控制器不具有至少最低软件版本,则临时协调器可以将该控制器声明为不具有CD资格。又如,可能期望例如通过移除已经脱机很长一段时间(例如,四周、两个月等)的任何列出的控制器来精简具有CD资格的控制器的列表307。
在框504处,临时协调器可以例如通过从每个设备请求和接收配置报告来获得在框502处定义的组中的每个具有CD资格的设备的配置信息。临时协调器(假设它仍然具有CD资格)也可以获得它自己的配置信息。在一些实施方案中,来自特定设备的配置报告可包括硬件配置文件、软件配置文件和可达性配置文件。“硬件配置文件”可以包括诸如设备类型(例如,膝上型计算机、平板电脑、机顶盒等)、设备制造商和型号、制造日期(或制造期间分配的硬件版本号或代码)的信息,关于特定硬件部件的信息(例如,处理器类型和/或速度、可用存储器、电源和功率储备水平等),等等。“软件配置文件”可以包括诸如设备上安装的操作系统和版本的信息,设备上安装的环境管理软件的版本标识符,和/或可能影响通信、电源管理或与设备作为协调器的性能相关的其他因素的其他软件部件或程序的版本信息。“可达性配置文件”可以包括关于特定控制器与环境中的各种附件直接通信的能力的信息。例如,控制器可以通过尝试与和环境相关联的附件中的每一个建立直接通信路径(例如,使用LAN或蓝牙通信信道)并记录结果来生成可达性配置文件。可包括各种信息;例如,可达性配置文件可以指示尝试成功的附件的数量(全局地或每个通信信道)和/或可以直接到达的特定附件的标识符。
一旦获得配置信息,临时协调器就可以应用优先级规则来完成选举过程。在过程500中,优先级规则首先基于硬件配置文件,然后基于软件配置文件,然后基于可达性配置文件;然而,这只是一个示例,可以使用其他优先级规则集。
在框506处,临时控制器可确定具有CD资格的设备中的一个是否具有比任何其他具有CD资格的设备更高的硬件优先级。在一些实施方案中,优先级排序可以与每个硬件配置文件相关联(例如,由实现过程500的软件的开发者),并且特定排序可以基于诸如可靠性、稳定性、电源和功耗等考虑因素。
为了进一步说明硬件优先级排序的概念,考虑其中具有CD能力的硬件配置包括平板电脑和机顶盒的示例。可以预期,机顶盒比平板电脑更有可能在相当长的一段时间(几天或几周)内保持驻留,因此设备类型对应于“机顶盒”的硬件配置文件可以接收比设备类型对应于“平板电脑”的硬件配置文件更高的优先级排序。在机顶盒的设备类型内,可以基于硬件版本号来分配排序,例如,使得较新版本的机顶盒硬件比较旧版本获得更高的优先级排序。其他考虑因素也可能适用;例如,插入外部电源的较旧的平板电脑可以接收比从内部电池吸取工作电源的较新的平板电脑更高的优先级排序。
如果在框506处,临时协调器确定该组具有CD资格的设备中的一个设备具有比该组具有CD资格的设备中的任何其他设备更高的硬件优先级,则在框508处,可以选择具有最高硬件优先级的具有CD资格的设备作为协调器。例如,在上面给出的特定排序示例中,如果存在两个具有CD资格的设备且一个是平板电脑而另一个是机顶盒,则机顶盒具有最高优先级排序并赢得选举。又如,再次使用上面给出的排序,如果存在两个机顶盒,则具有较新硬件的机顶盒具有较高的硬件优先级排序并赢得选举。然后可以结束选举,如下所述。
在框506处,可能不仅仅存在一个具有最高硬件优先级的设备。这将是该组具有CD资格的设备中的两个或更多个设备对于最高硬件优先级来说处于“平局”的情况。如果对于最高硬件优先级来说存在平局,则可以应用进一步的优先级规则来打破平局。因此,选举过程可以继续进行,但只剩下对于最高硬件优先级来说平局的两个或更多设备作为候选者。例如,在框510处,临时控制器可以确定剩余候选设备中的一个设备是否具有比任何其他剩余候选设备更高的软件优先级。在一些实施方案中,优先级排序可以与每个软件配置文件相关联(例如,由实现过程500的软件的开发者),并且特定排序可以基于诸如稳定性、安全性等考虑因素。在典型的示例中,较新版本的软件可能更加稳定和安全,因此较新版本的软件可以获得更高的优先级排序。应当指出的是,优先级排序可以基于多个不同软件部件的版本。例如,优先级排序可以规定,运行相同版本的环境管理软件的设备可以基于它们正在运行哪个版本的操作系统而被分配不同的优先级排序。
如果在框510处,临时协调器确定剩余候选设备中的一个设备具有比任何其他剩余候选设备更高的软件优先级,那么在框508处,可以选举具有最高软件优先级的候选设备作为协调器。例如,根据一个优先级规则集,如果存在两个候选设备具有相同(最高)的硬件优先级,以及如果一个设备正在运行比另一个更新版本的环境管理软件,那么具有较新软件版本的设备将具有更高的软件优先级。然后可以结束选举,如下所述。
在框510处,可能不仅仅存在一个具有最高软件优先级的设备。这将是候选设备中的两个或更多个设备(即,在框506处对于最高硬件优先级来说平局的设备)对于最高软件优先级来说也平局的情况。发生这种情况时,那么选举过程可以继续进行,只剩下对于最高软件优先级来说平局的两个或更多设备作为候选者。
例如,在框512处,临时控制器可以基于可达性配置文件来确定剩余候选设备中的一个设备是否具有比任何其他设备更多数量的可达附件。如果可以标识一个这样的候选设备,则在框508处可以选举该候选者作为协调器,并且可以如下所述结束选举。
如果框512不会导致单个候选者的选举,则可以在框514处调用另外的仲裁逻辑以打破平局。该逻辑可以包括关于临时协调器可用的剩余候选设备的任何信息。例如,依靠不受限制的电源(例如,插入墙上插座)操作的候选设备可优于依靠电池电源操作的候选设备。另外或相反,可以比较候选设备上的资源使用或可用性,包括但不限于CPU使用、网络负载、可能排除或降低与附件直接通信的能力的无线外围设备的存在或不存在等等。可以比较当前资源使用水平和/或历史模式,并且负载较少的设备可能优于负载较重的设备。其他考虑因素可以基于驻留因素,诸如给定候选设备连续驻留在环境中的时间长度(偏向于更长的连续驻留时间)、设备在过去一个月或其他时间段内驻留的时间分数(偏向于更频繁出现的设备)、驻留时段的平均持续时间(偏向于不频繁离开的设备)等。在一些实施方案中,最后手段的平局打破器可以是剩余候选者间的任意选择,并且如果临时协调器在框514处仍然是候选者,则该临时协调器可以优先选择它自身。可以使用任何决策过程,只要该过程导致候选设备中的刚好一个设备被选举作为协调器。
一旦选举了协调器(根据情况可以经由框508或框514),就可以结束选举。在框520处,临时协调器(执行过程500的设备)可以确定它还是另一设备被选举。如果选举了另一个设备,则在框522处,临时协调器可以例如通过更新图3中的协调器字段308来通知其他控制器(包括但不限于具有CD资格的协调器)有了新的协调器。如果临时协调器选举了它自身,则不需要更新协调器字段308,并且过程500可以在框524处结束。在一些实施方案中,临时协调器可以向一个或多个其他具有CD资格的设备发送直接通知,指示选举已完成并且可选地指示结果。
应当理解,选举过程400和500为例示性的并且变型形式和修改形式是可能的。可以并行地执行顺序描述的操作,可以将单独描述的操作组合起来,并且可以将操作顺序修改到操作依赖性不需要特定顺序的程度。临时协调器的选举可以在所有具有CD能力的设备间执行(如上所述),或者根据需要限于具有CD资格的设备。在选举的第二阶段中,所应用的优先级规则的具体数量和顺序可以变化,每个阶段的规则内容也可以变化。优先级规则可以基于硬件特征、软件特征、连接性(例如,特定附件的可达性)、设备特有的行为或移动模式(例如,特定设备离开环境的频率,优先考虑不那么频繁离开的设备)、功率考虑因素(例如,特定设备是依靠电池电源操作还是依靠来自墙上插座的电源操作等,优先考虑依靠“墙上”电源操作的设备)、负载平衡考虑因素(例如,优先考虑具有最多备用资源的设备)和/或可在具有CD资格的设备间进行比较的任何其他信息。
在一些实施方案中,可以提供更复杂的优先级规则。例如,为了定义优先级规则的目的,可以由于所涉及的更改的性质(例如,对安全性和/或可靠性的显著改进)而将某个软件更新或版本指定为“关键”更新。在一些实施方案中,第一优先级规则可以基于软件版本是否包括最新的关键更新,并且软件版本不包括关键更新的任何设备将从选举中退出(例如,通过声明为不具有CD资格或通过应用优先级规则)。在软件版本包括关键更新的具有CD资格的设备中,选举可以基于硬件优先级排序,然后是软件优先级排序来进行,如上所述。因此,例如,在具有CD资格的设备是机顶盒和平板电脑的情况下,硬件优先级规则通常可能偏向于机顶盒,但如果只有平板电脑具有关键更新,则可以选举平板电脑;另一方面,如果平板电脑和机顶盒都具有关键更新,则可以基于硬件优先级来选择机顶盒(即使平板电脑具有较新的软件版本)。还可以实现其他优先级规则和规则的组合。
又如,在一些实施方案中,可以由计算每个候选设备的一个得分或一组得分的公式来替换或补充顺序地应用的优先级规则。评分公式可以将设备能力或性能的不同方面组合起来(例如,硬件配置文件结合电源、软件配置文件结合资源负载以及任何其他组合)。协调器的选择可以基于不同的具有CD资格的设备的一个得分或一组得分的比较。
一旦特定设备成为临时协调器或所选举的协调器(例如,作为选举过程400和/或500的结果),该设备就可以开始作为协调器操作。例如,所有其他控制器(包括其他驻地设备)可以开始将它们对附件的指令发送到协调器而不是直接发送到附件(或先前指定的协调器)。此外,协调器可以承担执行已针对自动化环境定义的任何触发器的责任。例如,协调器可以从环境描述符数据300读取触发器定义312,并且可以开始执行定义的触发器。因此,尽管在提及与选举有关的协调器时可以使用诸如“临时”和“现任”的各种限定词,但此类限定词对于协调器与其他控制器和附件的交互作用并没有意义;正在进行选举过程的临时协调器可以作为协调器操作。一些实施方案可以允许具有CD能力但当前不具有CD资格的设备作为临时协调器操作(例如,在执行过程500的持续时间内)。
应当指出的是,协调器的更改可能不是完全无缝的。例如,在没有指定协调器的时间段期间,控制器可能需要在选举新的协调器之前延迟与附件的通信,或者控制器可能尝试经由另选的路径(例如,直接通信)与附件通信。因此,在上述两阶段过程中,如果当存在在LAN上可到达的指定协调器(本文中也称为“现任”协调器)时发起选举,则现任协调器可以在选举的第一阶段正在进行时,继续作为协调器操作。一旦第一阶段结束,临时协调器可以开始作为协调器操作(如果现任协调器作为临时协调器赢得选举,则它继续作为协调器操作),同时执行选举的第二阶段。如果临时协调器没有赢得选举,则可以以与其他控制器的最小延迟发生向新的协调器的过渡。
上述实施方案要求协调器是驻留设备(即,物理存在于本地环境中的设备)。在假设本地环境中的物理存在将有助于协调器和附件之间的通信(例如,使通信更快和/或更可靠)的情况下,这可能是优选的。然而,应当理解,不需要驻留要求;一些实施方案可以允许当前未驻留的具有CD能力的设备被声明为具有CD资格,前提是非驻留的具有CD能力的设备能够与附件通信(例如,经由消息中继服务或通过物理地存在于本地环境中的另一设备路由消息)。
选举的发起
如上所述,可以在各种情况下发起使用过程400和/或500进行的选举。现在将描述示例。
可以发起选举的一种情况是新的具有CD能力的设备变得具有CD资格(例如,当新设备变为驻留在本地环境中时)。图6示出了根据本发明实施方案的用于发起协调器的选举的过程600的流程图。过程600可由与特定环境相关联的任何驻留设备执行。
过程600可以在框602处开始,此时具有CD能力的设备变为具有CD资格。例如,能够确定其位置的设备可以检测到它已经进入与自动化环境相关联的地理围栏,或者设备可以检测到它现在连接到与自动化环境相关联的LAN。例如,图2的具有CD能力的控制器202(5)可以是用户带回家的平板设备,其自动检测并加入用户的家庭Wi-Fi网络,或者它可以是新安装的设备例如新的机顶盒。
在框604处,执行过程600的设备可确定是否存在“现任”协调器(例如,作为前一次选举的结果)。例如,新驻留设备可以从环境描述符数据300读取协调器标识符308,然后验证在LAN上存在所标识的协调器。如果存在现任协调器,则在框606处,执行过程600的设备可以初步确定它是否能够在假设选举中击败现任协调器。例如,新驻留设备可以应用过程500的一些或所有优先级规则(但不改变协调器指定)。如果执行过程600的设备确定它不会击败现任协调器,则它可以在框608处终止过程600而不发起选举。然而,如果新驻留设备确定它将赢,那么它可以在框610发起选举。例如,如果现任控制器是机顶盒并且优先级规则相对于平板电脑偏向于机顶盒,则变成驻留的平板电脑可以决定不发起选举,但是根据相同的优先级规则,如果现任控制器是平板电脑,那么变成驻留的机顶盒可以发起选举。在一些实施方案中,在框610处发起的选举可以是“有针对的”选举,其中只有现任控制器和新驻留设备作为候选者参与。
在一些实施方案中,如果存在现任协调器,那么变得具有CD资格的具有CD能力的设备可能不会发起选举;它只能等待现任协调器变得不可用或者等待可能导致发起选举的其他条件。这可以避免正常操作发生与协调器之间的过渡相关的任何中断;需权衡之处是现任协调器可能不是最佳选择。
如果在框604处,不存在现任协调器(例如,如果协调器标识符308具有空值或者如果在LAN上不存在由标识符308标识的协调器),则在框612处,执行过程600的设备可以确定是否存在任何其他具有CD资格的设备。例如,执行过程600的设备可以读取环境描述符数据300(图3),所述环境描述符数据标识与环境相关联的所有具有CD能力和/或具有CD资格的控制器设备。执行过程600的设备可以确定这些具有CD能力的设备中的哪些(如果有的话)当前具有CD资格(例如,哪些设备在与环境相关联的LAN上可见)。例如,参照图2,控制器202(5)可以确定控制器202(4)和202(3)具有CD能力,但只有控制器202(4)当前具有CD资格(因为控制器202(3)并非物理地存在)。
如果不存在其他具有CD资格的设备,则在框612处,执行过程600的设备可以例如通过更新环境描述符数据300中的协调器标识符308来将其自身指定为协调器。如果存在至少一个其他具有CD资格的设备,则执行过程600的设备可以在框610处发起选举。例如,执行过程600的设备可以向每个其他具有CD资格(或具有CD能力)的设备发送消息,指示它应该发起选举过程。在一些实施方案中,可在框610处使用缩短的选举过程。例如,如上所述,如果存在现任协调器,则选举可以是现任协调器与新的具有资格的设备之间的“有针对的”选举。又如,如果执行过程600的设备可以确定其他驻留设备都不具有更高的软件版本,则它可以执行过程500而无需首先将其自身指定为临时协调器。在一些实施方案中,在框610处发起的选举可以是“有针对的”选举,其中只有现任控制器和新驻留设备作为候选者参与。
当现任协调器不可用时,发生可能会导致选举发起的另一种情况。例如,可将协调器设备从本地环境中移除、断电或与用户帐户解除关联(例如,如果用户退出共享设备)。为了避免协调器长时间不可用,具有CD资格(或具有CD能力)的设备(其并非协调器)可以主动监视现任协调器的状态,并且如果现任协调器在足够长的时间内不可用,则可以发起选举。
图7示出了根据本发明实施方案的用于监视现任协调器的过程700的流程图。过程700可以由并非现任协调器的任何设备执行(例如,由图2中的控制器202(5));在一些实施方案中,具有CD能力或具有CD资格的设备执行过程700。如果存在多个并非现任协调器的设备,则每个这样的设备都可以独立地执行过程700。
在框702处,执行过程700的设备可以周期性地查验现任协调器,以确保协调器仍然存在于LAN上。“查验”可包括需要接收来自LAN上的协调器的响应的任何通信操作。如果在框704处,现任协调器对查验作出响应,则执行过程700的设备可以继续查验(例如,以规则的时间间隔如每60秒、每5分钟、每10分钟等)。可以基于查验设备的特征(例如,电源状态、查验设备是本地的还是远程的)和/或现任协调器的特征来动态地优化特定的查验间隔。如果现任协调器不作出响应(例如,在10秒内或一些其他响应时间内),则在框706处,设备可以确定(例如,经由以更高的速率继续查验)协调器是否对阈值数量的连续查验周期保持无响应。所述阈值可以是例如一个查验周期、五个查验周期、十个查验周期。如果协调器对阈值数量的连续查验周期保持无响应,则在框708处,执行过程700的设备可以确定是否至少一个其他具有CD资格的设备可用。如果不是,则执行过程700的设备是唯一具有CD资格的设备,并且它可以在框710处将其自身指定为协调器。如果至少一个其他具有CD资格的设备可用,则在框712处,执行过程700的设备可以发起选举以选择新的协调器,例如,如上面参考图6所述。选举可以根据过程400和500或其他类似过程进行。在一些实施方案中,进行选举可以包括最后尝试与现任协调器通信(例如,在流程500的框502处);如果尝试成功,则可以将现任协调器视为候选者。
过程700可以无限期地继续,并且可以在并非现任协调器的每个具有CD能力(或具有CD资格)的设备上在后台执行。执行过程700的不同设备可以具有不同的查验速率和不同的超时间隔(例如,依靠电池电源操作的设备可以较不频繁地查验以节省电力)。一旦一个设备确定现任协调器无响应,就发起选举,并且所有具有CD能力(或具有CD资格)的设备可以中断过程700并参与选举。
在一些实施方案中,如果现任协调器变得无响应,则可通知用户。例如,一些控制器可能能够显示呈现关于自动化环境的状态信息的用户界面,并且可以更新该状态信息以指示协调器脱机。这可以允许用户调查并纠正问题(如果确实存在问题)。
在一些实施方案中,现任协调器可以主动放弃其角色,转而支持另一设备。例如,根据具体实施,便携式的设备(如平板电脑)可以具有CD资格,并且可以成为协调器。如果用户将便携式设备从本地环境移除,则可能期望便携式设备放弃充当协调器转而支持仍驻留在本地环境中的设备。又如,协调器设备可依靠电池电源操作。如果依靠电池电源操作的协调器确定其功率储备已降至阈值水平以下(这可能取决于设备),则协调器可以放弃其角色以保存其剩余电量和/或提供到不同协调器设备的更平稳过渡。还可能出现其他情况,即现任协调器确定另一个设备可能更适合作为协调器操作。在出现这种情况时,现任协调器可以放弃,这可能导致新的选举。
可以执行各种放弃过程。在一个过程中,放弃的协调器可以向一个或多个其他具有CD资格的控制器发送消息,指示放弃的协调器正在将其状态变为不具有CD资格。这可以导致其他具有CD资格的控制器进行选举(例如,使用过程400和500),而无需放弃的协调器的参与。例如,放弃的协调器可以在过程400中拒绝将其自身指定为临时协调器,并且如果放弃的协调器在框502处被提示将其自身声明为具有CD资格,则它可以拒绝这样做,这可以确保放弃的协调器不会被选举。在另一个放弃过程中,放弃的协调器可以执行类似于过程400的过程,以确定它还是另一设备应该进行选举以将其替换。如果结果是放弃的协调器应该进行选举,则放弃的协调器可以执行类似于过程500的过程,但将其自身排除在该组具有CD资格的设备之外(这确保放弃的协调器不会被选举)。如果结果是另一个设备应该进行选举,那么放弃的协调器可以通知另一个设备应该发起选举;与其他示例中一样,放弃的协调器可以拒绝参加随后的选举。其他具体实施也是可能的。
协调器的示例性寻路
协调器不需要能够与和环境相关联的每个附件直接通信。在一些情况下,此要求可能是不切实际的。例如,一些附件可以使用诸如蓝牙LE的近程信道进行通信;在大型家庭中,可能无法将单个协调器设备定位成使得它在家庭中的每个使用蓝牙的附件的信令范围内。相反,如上面参考图2所述,协调器可以具有到一些或全部附件的间接路径。
图8示出了根据本发明的实施方案的本地环境800。本地环境800可大体类似于图2的本地环境206,并且可以包括与附件804(其可以与附件204类似或相同)通信的控制器802(其可以与控制器202类似或相同)。在该示例中,仅示出了本地设备;应当理解,远程控制器也可参与。
控制器802(4)是用于本地环境800的指定协调器(如星形810所示)(例如,作为上述选举过程的结果),并且协调器802(2)和802(5)是其他具有CD资格的设备。不同的控制器802具有到附件804的不同子组的直接通信路径(箭头指示通信路径)。例如,控制器802(4)具有到附件804(1)、804(2)和804(4)的直接通信路径;控制器802(2)具有到附件804(4)和804(5)的直接通信路径;控制器802(5)具有到附件804(2)、804(3)和804(4)的直接通信路径。直接通信路径可以是点对点路径,诸如蓝牙通信信道。
尽管图8并未示出具有到具有CD资格的控制器802(2)、802(4)、802(5)中的每一个的直接路径的附件的示例,但是应该理解,可以存在此类附件。例如,支持Wi-Fi通信的附件可以利用控制器802(2)、802(4)和802(5)加入Wi-Fi网络,从而允许这些控制器中的任何一个解决与启用了Wi-Fi的附件的通信。
在该示例中,可以假设,控制器802将其与附件的所有通信路由到控制器802(4),起到作为协调器810的作用。为了有助于控制器802和所有附件804之间的通信,协调器810可以使可达性信息保持处于例如查找表的形式,指示哪些具有CD资格的控制器可以到达每个附件。例如,协调器810可以从每个具有CD资格的控制器获得从该控制器直接可达的附件的列表。各种具有CD资格的控制器802可以向协调器810提供更新的可达性数据。例如,响应于确定控制器802(4)已被选举作为协调器810,具有CD资格的控制器802(2)和802(5)可以各自向控制器802(4)发送包含直接可达附件的列表的消息。控制器802(4)还可以生成它自己的直接可达附件的列表。
图9示出了根据本发明的实施方案的可从图8的控制器中获得的可达性数据的表900。控制器802可以例如通过在附件变得可达或不可达时向协调器810发送更新来更新可达性表900。表900可以由协调器810转换成可达性映射920,该可达性映射可以是由附件组织的查找表。可以基于从控制器802接收的更新来将表900保持为最新。当协调器810接收到访问特定附件的请求时,协调器810可以查询可达性映射920并选择路径。
可以基于由其他控制器发送到协调器810的可达性数据来构造和更新表900和可达性映射920,并且表900和可达性映射920中包含的信息不需要由协调器810传播到其他设备。这可以减少与连接性数据的维护相关联的网络流量。在一些实施方案中,当新的协调器(例如,协调器810)被选举时(例如,作为上述过程400和500的结果),可以初始化表900。新的协调器810可以从一些或所有其他控制器802请求可达性数据,并且每个控制器802可以通过发送可达性数据或通过发送指示控制器不参与消息路由的决定退出消息来响应该请求。在对初始请求作出响应之后,每个控制器802可以在发生变化时将更新的可达性数据发送到协调器810。最初决定退出的控制器802可以例如通过将可达性数据发送到协调器810来稍后决定加入,并且最初决定加入(例如,通过发送可达性数据)的控制器802可以例如通过向协调器810发送决定退出消息来稍后决定退出。因此,各个控制器可以动态地决定加入或退出路由网络。例如,在移动电话中实现的控制器可以在移动电话进入本地环境时决定加入,并在移动电话离开时决定退出。
图10是根据本发明的实施方案的用于路径选择的过程1000的流程图。可以例如在协调器810或充当协调器或充当另一个控制器的中继的任何其他设备中实现过程1000。
过程1000可以在框1002处开始,此时协调器810从控制器(例如,控制器802(1))接收消息以递送到附件(例如,附件804中的任何一个)。在一些实施方案中,协调器810可以在接收时转发消息,并且不需要知道其内容。在其他实施方案中,协调器810可以以智能模式操作(如上所述),在这种情况下,协调器810可以读取消息内容并确定要递送到附件的适当消息。框1002可以包括与标识目的地附件和/或确定要递送到目的地附件的消息的内容有关的任何处理操作。
在框1004处,协调器810可以确定目的地附件是否是直接可达的。例如,协调器810可以查询可达性数据900或可达性映射920以确定当前在控制器802(4)(其作为协调器810操作)与目的地附件之间是否存在直接路径。在该示例中,从控制器802(4)到附件804(1)和804(2),而不是到其他附件存在直接路径。在框1006处,如果目的地附件是直接可达的,则协调器810可以在直接路径上将消息发送到目的地附件。
如果在框1004处,目的地附件不是直接可达的,则在框1008处,协调器810可以使用可达性映射920(或其他可达性数据)来选择控制器设备以中继该消息。在一些情况下,可能只有一个控制器设备具有到目的地附件的直接路径;例如,在图8和图9中,仅控制器804(5)具有到附件804(3)的直接路径。发生这种情况时,那么可以选择具有直接路径的一个控制器。然而,在一些情况下,多个控制器可具有到目的地附件的直接路径;例如,在图8和图9中,控制器802(2)和802(5)都具有到附件804(4)的直接路径。发生这种情况时,协调器810可应用仲裁逻辑来选择路径。例如,在一些实施方案中,由控制器报告的可达性数据可以包括针对每个可达附件的信号强度指示,并且可以选择报告最强信号的控制器。其他考虑因素可以包括例如各种控制器处的资源使用或可用性(例如,如果控制器802(2)是正用于以高分辨率流式传输电影的机顶盒,则可能需要在不同路径上路由该消息)。
在框1010处,协调器810可以将消息发送到所选择的控制器(例如,用于目的地附件804(3)的控制器802(5)),并且所选择的控制器802(5)可以将消息中继到目的地附件。在这种情况下,控制器802(5)可以作为无源中继器操作,其在接收时转发消息。在一些实施方案中,控制器802(5)可以作为桥接器操作,该桥接器可以重新格式化消息以便与另一个传输手段兼容而无需读取消息内容;例如,控制器802(4)可以使用Wi-Fi网络与控制器802(5)通信,而控制器802(5)使用蓝牙通信与目的地附件804(3)通信。
应当理解,寻路配置和过程是说明性的,并且可以进行修改。控制器和附件的特定布置和连接可以根据需要改变,并且不同的附件(或控制器)可以使用不同的传输手段。在一些实施方案中,任何控制器,不仅仅是具有CD资格的控制器,都可以将其可达性数据报告给协调器,并且协调器可以通过可以到达附件的任何控制器将消息路由到附件。应当理解,除协调器之外的任何控制器都可以例如通过不向协调器发送可达性数据而决定退出参与路由。在一些实施方案中,一些路径可以包括可能不具有CD资格的专用代理(例如,桥接器或隧道)。另外,在一些实施方案中,可以将多跳路径映射到附件。此外,可能存在作为消息的发起者的控制器(例如,上述示例中的控制器802(1))不具有到协调器810的直接通信路径的情况。发生这种情况时,控制器802(1)可以通过间接路径路由消息,该间接路径在一些情况下可以包括能够中继消息的一个或多个其他控制器(例如,控制器802(2)或802(5))。
示例性设备
本文所述的实施方案可实现在可具有一般常规设计的电子设备中。此类设备可适于符合支持命令与控制操作的统一附件协议,通过这个协议,控制器(第一电子设备)可控制附件(第二电子设备)的操作。在某些情况下,例如在如上所述的协调器(包括任何具有CD能力的设备)或代理的情况下,设备可将控制器和附件的各个特征或方面组合。
图11示出了根据本发明的实施方案的控制器1100(其可为用户设备)的简化框图。控制器1100可实现本文所述的控制器功能、行为和能力中的任何或全部(包括协调器功能),以及未明确描述的其他功能、行为和能力。控制器1100可包括处理子系统1110、存储设备1112、用户界面1114、通信接口1116、安全存储模块1118和密码逻辑模块1120。控制器1100还可包括其他部件(未明确示出),诸如电池、电力控制器和可操作以提供各种增强能力的其他部件。在各种实施方案中,控制器1100可在台式计算机、膝上型计算机、平板电脑、智能电话、其他移动电话、可穿戴计算设备或具有任何期望形状因数的其他系统中实现。此外,如上所述,控制器1100可部分地在基站中实现,并部分地在与基站通信并提供用户界面的移动单元中实现。
存储设备1112可例如使用磁盘、闪存存储器或任何其他非暂态存储介质或介质的组合来实现,并且可包括易失性和/或非易失性介质。在一些实施方案中,存储设备1112可存储将由处理子系统1110执行的一个或多个应用程序和/或操作系统程序,包括用于实现如正由控制器执行的上述各种操作的程序。例如,存储设备1112可存储统一的控制器应用程序,所述控制器应用程序可读取附件描述记录并基于其中信息来生成用于控制该附件的图形用户界面(例如,如上文引用的美国申请14/614,914中所述的)。在一些实施方案中,本文所述的控制器功能的部分(或全部)可在操作系统程序而非应用程序中实现。在一些实施方案中,存储设备1112还可存储为特定附件或特定类别的附件(例如,用于管理IP相机附件的IP相机应用或用于与门锁附件交互的安全应用)设计的应用。存储设备1112还可存储由控制器1100在其操作过程中产生或使用的其他数据,包括触发器数据对象和/或有关环境模型的其他数据。
用户界面1114可包括输入设备诸如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备诸如视频屏幕、指示灯、扬声器、耳机接口等,连同支持性电子器件(例如,数模转换器或模数转换器、信号处理器等)。用户可操作用户界面1114的输入设备以调用控制器1100的功能,并且可经由用户界面1114的输出设备来查看和/或收听来自控制器1100的输出。
处理子系统1110可以实现为一个或多个集成电路,例如一个或多个单核或多核微处理器或微控制器,这些微处理器或微控制器的示例在本领域中是已知的。在操作中,处理系统1110可控制控制器1100的操作。在各种实施方案中,处理子系统1110可响应于程序代码来执行各种程序,并且可维护多个同时执行的程序或过程。在任何给定时间,待执行的程序代码中的一些或全部程序代码可驻留在处理子系统1110和/或存储介质诸如存储设备1112中。
通过合适的编程,处理子系统1110可为控制器1100提供各种功能。例如,在一些实施方案中,处理子系统1110可实现如由控制器实现的上述各种过程(或其部分)。处理子系统1110还可执行其他程序(包括可存储在存储设备1112中的应用程序)以控制控制器1100的其他功能。在一些实施方案中,这些应用程序可例如通过生成待发送至附件的消息和/或通过从附件接收响应与附件进行交互。此类交互可由附件管理守护进程和/或例如如上所述其他操作系统进程促成。
通信接口1116可为控制器1100提供语音和/或数据通信能力。在一些实施方案中,通信接口1116可包括:用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、数据网络技术诸如3G、4G/LTE、Wi-Fi、其他IEEE 802.11系列标准或其他移动通信技术,或它们的任何组合)的射频(RF)收发器部件、用于近程无线通信(例如,使用蓝牙标准和/或蓝牙LE标准、NFC等)的部件和/或其他部件。在一些实施方案中,除了无线接口之外或代替无线接口,通信接口1116可提供有线网络连接性(例如,以太网)。通信接口1116可使用硬件部件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟信号处理电路和/或数字信号处理电路)与软件部件的组合来实现。在一些实施方案中,通信接口1116可使用相同传输手段或不同传输手段同时或在不同时间支持多个通信信道。
安全存储模块1118可以是可安全地存储用于控制器1100的密码信息的集成电路等。可存储在安全存储模块1118内的信息的示例包括控制器的长期公共密钥和私人密钥1122(如上所述的LTPKC、LTSKC)以及配对附件1124列表(例如,将附件ID映射到如上所述已完成配对设置或配对添加过程的附件的附件长期公共密钥LTPKA的查找表)。
在一些实施方案中,密码操作可在与安全存储模块1118通信的密码逻辑模块1120中实现。在物理上,密码逻辑模块1120可根据需要在具有安全存储模块1118的相同集成电路或不同集成电路(例如,处理子系统1110中的处理器)中实现。密码逻辑模块1120可包括实现或支持控制器1100的密码操作(包括上述任何或所有的密码操作)的各种逻辑电路(根据需要是固定的或可编程的)。安全存储模块1118和/或密码逻辑模块1120可对控制器1100的其余部分表现为“黑盒”。因此,例如,通信接口1116可以加密形式接收其不能解密的消息,并且可简单地将消息递送到处理子系统1110。处理子系统1110也可能无法解密消息,但其可将消息识别为加密的并将其递送到密码逻辑模块1120。密码逻辑模块1120可解密消息(例如,使用从安全存储模块1118提取的信息)并确定哪些信息要返回到处理子系统1110。因此,某些信息可仅在安全存储模块1118和密码逻辑模块1120内可用。如果安全存储模块1118和密码逻辑模块1120在仅执行来自内部安全储存库的代码的单个集成电路上实现,则这可能使信息提取非常困难,从而可提供高度的安全性。其他具体实施也是可能的。
图12示出了根据本发明的实施方案的附件1200的简化框图。附件1200可实现本文所述的附件功能、行为和能力中的任何或全部,以及未明确描述的其他功能、行为和能力。附件1200可包括存储设备1228、处理子系统1230、用户界面1232、附件专用硬件1234、通信接口1236、安全存储模块1238和密码逻辑模块1240。附件1200还可包括其他部件(未明确示出),诸如电池、电力控制器和可操作以提供各种增强能力的其他部件。
附件1200表示可由控制器诸如控制器1100操作的一大类附件,并且此类附件在能力、复杂性和形状因数方面可能有很大不同。各种附件可包括图12中未明确示出的部件,包括但不限于:具有固定或可移除的存储介质的存储设备(磁盘、闪存存储器等);视频屏幕、扬声器或用于连接至外部音频/视频设备的端口;相机部件,诸如镜头、图像传感器和用于相机部件的控件(例如,光圈、变焦、曝光时间、帧速率等);用于记录音频(单独或与视频记录结合)的麦克风;等等。
存储设备1228可例如使用磁盘、闪存存储器或任何其他非暂态存储介质或介质的组合来实现,并且可包括易失性和/或非易失性介质。在一些实施方案中,存储设备1228可存储将由处理子系统1230执行的一个或多个程序(例如,固件)以及与特定附件行为相关的操作,所述一个或多个程序包括用于实现如正由附件执行的上述各种操作的程序。存储设备1228还可存储可提供给控制器设备的附件对象或附件定义记录,例如在上文引用的美国申请14/614,914中所述的设备发现期间。存储设备1228还可存储附件状态信息和可在附件1200的操作期间使用的任何其他数据。
处理子系统1230可包括例如执行程序代码以便执行与附件1200相关联的各种功能的一个或多个单核或多核微处理器和/或微控制器。例如,处理子系统1230可实现如正由附件实现的上述各种过程(或其部分),例如通过执行存储在存储设备1228中的程序代码。处理子系统1230还可执行其他程序以控制附件1230的其他功能。在一些情况下,由处理子系统1230执行的程序可例如通过生成要发送到控制器的消息和/或从控制器接收消息来与控制器(例如,控制器1100)交互。
用户界面1232可包括用户可操作的输入设备诸如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备诸如视频屏幕、指示灯、扬声器、耳机接口等,连同支持性电子器件(例如,数模转换器或模数转换器、信号处理器等)。根据特定附件1200的具体实施,用户可操作用户界面1232的输入设备以调用附件1200的功能,并且可经由用户界面1232的输出设备来查看和/或收听来自附件1200的输出。一些附件可提供最小用户界面或根本不提供用户界面。在附件不具有用户界面的情况下,用户仍可使用控制器(例如,控制器1100)与附件交互。
附件专用硬件1234可包括可存在于附件1200中以启用其功能的任何其他部件。例如,在各种实施方案中,附件专用硬件1234可包括使用固定或可移除的存储介质的一个或多个存储设备;GPS接收器;电源和/或电力管理电路;相机;麦克风;一个或多个致动器;控制开关;环境传感器(例如,温度传感器、压力传感器、加速度计、化学传感器等);等等。应当理解,可通过提供适当的附件专用硬件1234来支持任何类型的附件功能,并且附件专用硬件可包括机械以及电或电子部件。
通信接口1236可为附件1200提供语音和/或数据通信能力。在一些实施方案中,通信接口1236可包括:用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、数据网络技术诸如3G、4G/LTE、Wi-Fi、其他IEEE 802.11系列标准或其他移动通信技术,或它们的任何组合)的射频(RF)收发器部件、用于近程无线通信(例如,使用蓝牙标准和/或蓝牙LE标准、NFC等)的部件和/或其他部件。在一些实施方案中,除了无线接口之外或代替无线接口,通信接口1236可提供有线网络连接性(例如,以太网)。通信接口1236可使用硬件部件(例如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟信号处理电路和/或数字信号处理电路)与软件部件的组合来实现。在一些实施方案中,通信接口1236可使用相同传输手段或不同传输手段同时或在不同时间支持多个通信信道。
安全存储模块1238可以是可安全地存储用于附件1200的密码信息的集成电路等。可存储在安全存储模块1238内的信息的示例包括附件的长期公共密钥和私人密钥1242(如上所述的LTPKA、LTSKA)以及配对控制器1244列表(例如,将控制器ID映射到如上所述已完成配对设置或配对添加过程的控制器的控制器长期公共密钥LTPKC的查找表)。在一些实施方案中,安全存储模块1238可被省略;配对控制器的密钥和列表可被存储在存储设备1228中。
在一些实施方案中,密码操作可在与安全存储模块1238通信的密码逻辑模块1240中实现。在物理上,密码逻辑模块1240可根据需要在具有安全存储模块1238的相同集成电路或不同集成电路(例如,处理子系统1230中的处理器)中实现。密码逻辑模块1240可包括实现或支持附件1200的密码操作的各种逻辑电路(根据需要是固定的或可编程的),包括上述任何或所有密码操作。安全存储模块1238和/或密码逻辑模块1240可对附件1200的其余部分表现为“黑盒”。因此,例如,通信接口1236可以加密形式接收其不能解密的消息,并且可简单地将消息递送到处理子系统1230。处理子系统1230也可能无法解密消息,但其可将消息识别为加密的并将其递送到密码逻辑模块1240。密码逻辑模块1240可解密消息(例如,使用从安全存储模块1238提取的信息)并确定哪些信息要返回到处理子系统1230。因此,某些信息可仅在安全存储模块1238和密码逻辑模块1240内可用。如果安全存储模块1238和密码逻辑模块1240在仅执行来自内部安全储存库的代码的单个集成电路上实现,则这可能使信息提取非常困难,从而可提供高度的安全性。其他具体实施也是可能的。
附件1200可以是与控制器1100交互的任何电子装置。在一些实施方案中,控制器1100可通过如上所述的附件1200的操作来提供远程控制。例如,控制器1100可为附件1200提供远程用户界面,该远程用户界面可包括输入控件和输出控件两者(例如,用于显示从附件1200获得的当前状态信息的显示屏和用于允许状态信息的改变的输入控件诸如触摸屏覆盖)。在各种实施方案中,控制器1100可控制附件1200的任何功能并且还可从附件1200接收数据。
应当理解,本文所述的系统配置和部件是例示性的,并且变型和修改是可能的。应当理解,控制器1100的具体实施可执行上述正由控制器执行的所有操作,并且附件1200的具体实施可执行上述正由附件执行的任何或所有操作。代理、桥接器、隧道或协调器可根据需要使用相同硬件或不同硬件来组合控制器1100和附件1200的部件。控制器和/或附件可能具有本文并未明确描述的其他能力(例如,移动电话、全球定位系统(GPS)、宽带数据通信、互联网连接等)。根据具体实施,这些设备可以进行互操作,以便提供由任一(或两个)设备支持的任何功能性或提供在每个设备中部分地实现的功能性。在一些实施方案中,特定附件可具有无法经由特定控制器访问或调用但可经由另一控制器或通过直接与附件交互访问的某些功能。
此外,尽管本文参考特定块描述了控制器和附件,但应当理解,定义这些块是为了描述的方便,而并非旨在暗示部件部分的特定物理布置。此外,块不必对应于物理上不同的部件。可以例如通过对处理器进行编程或提供适当的控制电路来配置块以执行各种操作,并且根据初始配置的获得方式,各个块可能是可重新配置的或不可重新配置的。可在包括使用电路和软件的任何组合实现的电子设备在内的各种装置中实现本发明的实施方案。
另外的实施方案
虽然已结合具体实施方案对本发明进行了描述,但本领域的技术人员将认识到,许多修改形式是可能的。控制器网络和/或附件网络可根据需要包括尽可能多或者尽可能少的设备。在一些实施方案中,任何控制器都可作为协调器操作;在其他实施方案中,作为协调器操作可限于某些类型的设备(例如,基于支持的制造商、型号和/或系统软件)。在一些实施方案中,能够作为协调器操作的控制器(本文中称为“具有CD能力”)仅在与具有要控制的附件的环境相关联的局域网上时才被允许作为协调器操作。然而,这种限制不是必需的,并且一些实施方案可允许装置外协调器。
可使用专用部件和/或可编程处理器和/或其他可编程设备的任意组合来实现本发明的实施方案。本文所述的各种过程可以任何组合方式在同一处理器或不同处理器上实现。在部件被描述为被配置为执行某些操作的情况下,可例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作或其任何组合来实现此类配置。此外,虽然上述实施方案可能参考了具体硬件部件和软件部件,但本领域的技术人员应当理解,也可使用硬件部件和/或软件部件的不同组合,并且被描述为正在硬件中实现的特定操作也可能在软件中被实现,反之亦然。
可在各种计算机可读存储介质上编码并存储结合本发明的各种特征的计算机程序。合适的介质包括磁盘或磁带、光学存储介质诸如光盘(CD)或DVD(数字通用光盘)、闪存存储器,以及其他非暂态介质。(应当理解,数据的“存储”不同于使用暂态介质诸如载波的数据的传播。)可将用程序代码编码的计算机可读介质与兼容的电子设备封装在一起,或者该程序代码可独立于电子设备提供(例如,经由互联网下载或作为单独封装的计算机可读存储介质)。
因此,尽管已相对于具体实施方案描述了本发明,但是应当理解,本发明旨在覆盖以下权利要求书范围内的所有修改形式和等同形式。

Claims (19)

1.一种用于从与自动化环境相关联的多个控制器设备中选择协调器设备的方法,所述方法包括由所述控制器设备中的至少第一控制器设备:
确定所述多个控制器设备中的至少两个控制器设备能够作为所述协调器设备操作(“具有CD能力”),所述至少两个控制器设备包括所述第一控制器设备和至少一个其他控制器设备;
确定具有CD能力的其他设备中的任一个是否具有比所述第一控制器设备更高软件版本的实现选举逻辑的软件;
响应于确定具有CD能力的所述其他设备都不具有比所述第一控制器设备更高软件版本的实现选举逻辑的软件:
尝试将所述第一控制器设备声明为临时协调器;以及
在所述尝试成功的情况下,应用所述选举逻辑来选举协调器;以及
响应于确定具有CD能力的所述其他设备中的至少一个具有比所述第一控制器设备更高软件版本的实现选举逻辑的软件,等待具有CD资格的所述其他设备中的一个设备应用所述选举逻辑的结果。
2.根据权利要求1所述的方法,还包括响应于确定具有CD能力的所述其他设备中的至少一个具有比所述第一控制器设备更高软件版本的实现选举逻辑的软件:
通知具有CD能力的所述其他设备中的所述至少一个正在进行选举。
3.根据权利要求1所述的方法,其中应用所述选举逻辑包括:
从所述多个控制器设备定义有资格作为所述协调器设备操作(“具有CD资格”)的一组控制器设备;
获得具有CD资格的设备中的每个设备的设备配置文件,所述设备配置文件包括硬件配置文件、软件配置文件和可达性配置文件;
向所述设备配置文件应用优先级规则集以选举所述具有CD资格的设备中的一个设备作为所述协调器;以及
更新用于所述自动化环境的环境描述符数据以标识所选举的协调器。
4.根据权利要求3所述的方法,其中所述优先级规则集包括基于所述具有CD资格的设备的所述硬件配置文件的第一优先级规则、基于所述具有CD资格的设备的所述软件配置文件的第二优先级规则、以及基于所述具有CD资格的设备的所述可达性配置文件的第三优先级规则。
5.根据权利要求3所述的方法,其中应用所述优先级规则集包括:
从所述具有CD资格的设备的所述硬件配置文件确定所述具有CD资格的设备中的每个设备的硬件类型和版本,其中每个硬件类型和版本具有与其相关联的硬件优先级排序;
确定所述具有CD资格的设备中的一个设备是否具有比其他具有CD资格的设备中的任一个设备更高的硬件优先级排序;
在所述具有CD资格的设备中的第一设备具有比所述其他具有CD资格的设备中的任一个设备更高的硬件优先级排序的情况下,确定应当选举所述具有CD资格的设备中的所述第一设备作为所述协调器;并且
在所述具有CD资格的设备中的两个或更多个设备在所述具有CD资格的设备中各自具有最高硬件优先级排序的情况下,向所述具有CD资格的设备中的各自具有所述最高硬件优先级排序的所述两个或更多个设备应用第二优先级规则。
6.根据权利要求5所述的方法,其中应用所述第二优先级规则包括:
将所述具有CD资格的设备中的各自具有所述最高硬件优先级排序的所述两个或更多个设备标识为候选设备,
从所述候选设备的所述软件配置文件确定所述候选设备中的每个候选设备的软件版本,其中每个软件版本具有与其相关联的软件优先级排序;
确定所述候选设备中的一个候选设备是否具有比其他候选设备中的任一个候选设备更高的软件优先级排序;
在所述候选设备中的第一候选设备具有比所述其他候选设备中的任一个候选设备更高的软件优先级排序的情况下,确定应当选举所述候选设备中的所述第一设备作为所述协调器;并且
在所述候选设备中的两个或更多个候选设备在所述候选设备中各自具有最高软件优先级排序的情况下,向各自具有所述最高软件优先级排序的所述两个或更多个候选设备应用第三优先级规则。
7.根据权利要求6所述的方法,其中应用所述第三优先级规则包括:
将各自具有所述最高软件优先级排序的所述两个或更多个候选设备标识为剩余候选设备;
从所述剩余候选设备的所述可达性配置文件确定所述剩余候选设备中的每个候选设备可达的所述自动化环境中的附件的数量;
在所述剩余候选设备中的第一候选设备具有比其他剩余候选设备中的任一个候选设备更高数量的可达附件的情况下,确定应当选举所述剩余候选设备中的所述第一候选设备作为所述协调器;并且
在所述剩余候选设备中的两个或更多个候选设备各自具有最高数量的可达附件的情况下,应用仲裁逻辑以从所述剩余候选设备中的各自具有最高数量的可达附件的所述两个或更多个候选设备中选举协调器。
8.根据权利要求1所述的方法,其中响应于从所述其他控制器设备中的一个设备接收发起选举的指令来执行所述方法。
9.一种电子设备,包括:
通信接口;和
一个或多个处理器,所述一个或多个处理器耦接到所述通信接口并被配置为执行根据权利要求1至8中任一项所述的方法。
10.一种其中存储有程序代码的计算机可读存储介质,所述程序代码在由电子设备中的一个或多个处理器执行时,使得所述电子设备执行根据权利要求1至8中任一项所述的方法。
11.一种可在用于自动化环境的第一控制器设备中执行的方法,所述自动化环境具有多个控制器设备,所述多个控制器设备包括第一控制器设备和第二控制器设备,所述方法包括由所述第一控制器设备:
访问用于所述自动化环境的环境描述符数据;
基于所述环境描述符数据确定所述第二控制器设备被指定为用于所述自动化环境的协调器设备;
监视所述指定的协调器设备的状态以确定所述指定的协调器设备是否已变得无响应;以及
响应于确定所述指定的协调器设备已变得无响应,在所述多个控制器设备中发起选举以指定新的协调器设备。
12.根据权利要求11所述的方法,其中所述选举根据权利要求1至8中任一项所述的方法进行。
13.一种电子设备,包括:
通信接口;和
一个或多个处理器,所述一个或多个处理器耦接到所述通信接口并被配置为执行根据权利要求11至12中任一项所述的方法。
14.一种其中存储有程序代码的计算机可读存储介质,所述程序代码在由电子设备中的一个或多个处理器执行时,使得所述电子设备执行根据权利要求11至12中任一项所述的方法。
15.一种方法,包括:
由与具有多个附件设备的自动化环境相关联的协调器设备从与所述自动化环境相关联的一个或多个控制器设备获得可达性数据,来自每个控制器的所述可达性数据包括所述自动化环境中的所述附件设备中的一个或多个附件设备的标识符,提供所述可达性数据的所述控制器具有到所述附件设备的直接通信路径;
由所述协调器设备接收来自与所述自动化环境相关联的源控制器设备的请求,以向所述多个附件设备中的第一附件设备发送消息;
由所述协调器设备确定所述协调器设备是否具有到所述第一附件设备的直接通信路径;
响应于确定所述协调器设备具有到所述第一附件设备的直接通信路径,由所述协调器设备在到所述第一附件设备的所述直接通信路径上发送所述消息;以及
响应于确定所述协调器设备不具有到所述第一附件设备的直接通信路径:
由所述协调器设备基于从所述一个或多个控制器设备获得的所述可达性数据,确定所述一个或多个控制器设备中的第一控制器设备具有到所述第一附件的直接通信路径;以及
由所述协调器设备向所述第一控制器设备发送所述消息以中继到所述第一附件设备。
16.根据权利要求15所述的方法,还包括:
由所述协调器设备维护基于从所述一个或多个控制器设备接收的所述可达性数据的可达性映射,
其中确定所述第一控制器设备具有到所述第一附件的直接通信路径是基于所述可达性映射的。
17.根据权利要求15所述的方法,其中获得所述可达性数据包括:
从与所述自动化环境相关联的所述控制器设备中的每个控制器设备请求初始可达性数据;
接收对来自所述控制器设备中的至少一些的所述请求的响应;以及
从所述控制器设备中的至少一个接收更新的可达性数据,其中所述控制器设备发送所述更新的可达性数据,而无需等待来自所述协调器的进一步请求。
18.一种电子设备,包括:
通信接口;和
一个或多个处理器,所述一个或多个处理器耦接到所述通信接口并被配置为执行根据权利要求15至17中任一项所述的方法。
19.一种其中存储有程序代码的计算机可读存储介质,所述程序代码在由电子设备中的一个或多个处理器执行时,使得所述电子设备执行根据权利要求15至17中任一项所述的方法。
CN201780020793.5A 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择 Active CN108886676B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210659522.7A CN115051883A (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择
CN201910914426.0A CN110691014B (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662348994P 2016-06-12 2016-06-12
US62/348,994 2016-06-12
US15/274,353 US10270610B2 (en) 2016-06-12 2016-09-23 Selection of a coordinator device for an automated environment
US15/274,353 2016-09-23
PCT/US2017/035003 WO2017218176A1 (en) 2016-06-12 2017-05-30 Selection of a coordinator device for an automated environment

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202210659522.7A Division CN115051883A (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择
CN201910914426.0A Division CN110691014B (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择

Publications (2)

Publication Number Publication Date
CN108886676A true CN108886676A (zh) 2018-11-23
CN108886676B CN108886676B (zh) 2019-09-27

Family

ID=60573209

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201780020793.5A Active CN108886676B (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择
CN201910914426.0A Active CN110691014B (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择
CN202210659522.7A Pending CN115051883A (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201910914426.0A Active CN110691014B (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择
CN202210659522.7A Pending CN115051883A (zh) 2016-06-12 2017-05-30 用于自动化环境的协调器设备的选择

Country Status (4)

Country Link
US (4) US10270610B2 (zh)
EP (1) EP3420780B1 (zh)
CN (3) CN108886676B (zh)
WO (1) WO2017218176A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113382394A (zh) * 2020-02-25 2021-09-10 西门子瑞士有限公司 设备配置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10270610B2 (en) * 2016-06-12 2019-04-23 Apple Inc. Selection of a coordinator device for an automated environment
KR102514428B1 (ko) * 2016-12-06 2023-03-27 아싸 아브로이 에이비 서비스 소비자 장치에 의한 락에 액세스 제공
US11563595B2 (en) * 2017-01-03 2023-01-24 Brilliant Home Technology, Inc. Home device controller with touch control grooves
US11229023B2 (en) * 2017-04-21 2022-01-18 Netgear, Inc. Secure communication in network access points
US10897374B2 (en) * 2017-11-06 2021-01-19 Computime Ltd. Scalable smart environment for controlling a plurality of controlled apparatuses using a connection hub to route a processed subset of control data received from a cloud computing resource to terminal units
US11057238B2 (en) 2018-01-08 2021-07-06 Brilliant Home Technology, Inc. Automatic scene creation using home device control
USD944216S1 (en) 2018-01-08 2022-02-22 Brilliant Home Technology, Inc. Control panel with sensor area
EP3522605A1 (de) 2018-01-31 2019-08-07 Siemens Aktiengesellschaft Funk-kommunikationssystem für ein industrielles automatisierungssystem und verfahren zum betrieb eines funk-kommunikationssystems
US11197224B1 (en) * 2018-02-19 2021-12-07 Synapse Wireless, Inc. Systems and methods for routing messages through wireless networks
US10985972B2 (en) 2018-07-20 2021-04-20 Brilliant Home Technoloy, Inc. Distributed system of home device controllers
US11700141B2 (en) * 2018-10-08 2023-07-11 Google Llc Control and/or registration of smart devices, locally by an assistant client device
US11402812B1 (en) 2019-03-22 2022-08-02 The Chamberlain Group Llc Apparatus and method for controlling a device
USD945973S1 (en) 2019-09-04 2022-03-15 Brilliant Home Technology, Inc. Touch control panel with moveable shutter
WO2021100895A1 (ko) * 2019-11-19 2021-05-27 엘지전자 주식회사 전자 기기
US11469916B2 (en) 2020-01-05 2022-10-11 Brilliant Home Technology, Inc. Bridging mesh device controller for implementing a scene
US11715943B2 (en) 2020-01-05 2023-08-01 Brilliant Home Technology, Inc. Faceplate for multi-sensor control device
US11528028B2 (en) 2020-01-05 2022-12-13 Brilliant Home Technology, Inc. Touch-based control device to detect touch input without blind spots
US11755136B2 (en) 2020-01-05 2023-09-12 Brilliant Home Technology, Inc. Touch-based control device for scene invocation
US20220206985A1 (en) * 2020-12-29 2022-06-30 Good Way Technology Co., Ltd. Management system and device for access of an electronic device to a host
CN114866365B (zh) * 2021-01-18 2024-01-19 宁波奥克斯电气股份有限公司 仲裁机选举方法、装置、智能设备及计算机可读存储介质
US11968081B2 (en) * 2022-01-19 2024-04-23 Nile Global, Inc. Methods and systems for network device management using a neighboring network device as a proxy
WO2023239590A1 (en) * 2022-06-05 2023-12-14 Apple Inc. Prioritized resident electronic device in home
US11799934B1 (en) 2022-10-28 2023-10-24 Genetec Inc. Methods and systems for routing media

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1529502A (zh) * 2003-10-16 2004-09-15 上海交通大学 基于对等互连的多点视频会议系统的应用层组播方法
CN101513100A (zh) * 2006-08-31 2009-08-19 Lg电子株式会社 无线网络中的通信方法
CN101800752A (zh) * 2010-03-11 2010-08-11 赵家祥 一种提高域名系统安全和性能的方法和系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092214A (en) * 1997-11-06 2000-07-18 Cisco Technology, Inc. Redundant network management system for a stackable fast ethernet repeater
US6823519B1 (en) * 1999-06-24 2004-11-23 Microsoft Corporation Control object and user interface for controlling networked devices
US6956941B1 (en) * 2000-04-12 2005-10-18 Austin Logistics Incorporated Method and system for scheduling inbound inquiries
US20030149735A1 (en) * 2001-06-22 2003-08-07 Sun Microsystems, Inc. Network and method for coordinating high availability system services
RU2207724C1 (ru) * 2001-11-01 2003-06-27 Общество с ограниченной ответственностью "Алгоритм" Способ радиосвязи в беспроводной локальной сети
US7299265B2 (en) * 2003-06-06 2007-11-20 Oracle International Corporation Distributed computing system selecting a service master for each service by an elected global master for managing requests for that service
US7463886B2 (en) * 2003-09-16 2008-12-09 Spyder Navigations L.L.C. Method and system for supporting residual energy awareness in an ad hoc wireless communications network
CN100375458C (zh) * 2005-05-13 2008-03-12 中兴通讯股份有限公司 一种家庭网络中多个服务器设备协同工作的方法
US7856002B2 (en) * 2006-09-11 2010-12-21 Samsung Electronic Co., Ltd. System and method for wireless communication having a device coordinator selection capability
US10637724B2 (en) * 2006-09-25 2020-04-28 Remot3.It, Inc. Managing network connected devices
JP2008083911A (ja) * 2006-09-27 2008-04-10 Matsushita Electric Ind Co Ltd Dma転送制御装置および半導体集積回路装置
US20100030819A1 (en) * 2006-10-10 2010-02-04 Allgo Embedded Systems Private Limited Method, system and apparatus to seamlessly manage and access files across multiple devices
US7688802B2 (en) * 2008-05-23 2010-03-30 Honeywell International Inc. System and method for time synchronization in a wireless network
US8855222B2 (en) * 2008-10-07 2014-10-07 Qualcomm Incorporated Codes and preambles for single carrier and OFDM transmissions
MX2011009983A (es) * 2009-03-26 2012-02-28 Xped Holdings Pty Ltd Una estructura para manejar comunicacion inalambrica entre dispositivos.
KR20110127604A (ko) * 2010-05-19 2011-11-25 삼성전자주식회사 코디네이터 결정 방법 및 장치
US20130275198A1 (en) * 2010-08-23 2013-10-17 MobileBits Corporation System and methods for delivering targeted marketing content to mobile device users based on geolocation
CN102148731B (zh) * 2011-02-14 2013-04-03 上海理滋芯片设计有限公司 智能家居系统及其中的终端设备
CN104919760B (zh) * 2012-11-12 2019-01-25 阿尔卡特朗讯公司 虚拟机箱系统控制协议
US9292832B2 (en) * 2013-02-25 2016-03-22 Qualcomm Incorporated Collaborative intelligence and decision-making in an IoT device group
EP3742810B1 (en) 2013-06-26 2022-01-19 Telefonaktiebolaget LM Ericsson (publ) Cluster head selection in a communications network
US10177933B2 (en) * 2014-02-05 2019-01-08 Apple Inc. Controller networks for an accessory management system
US10416625B2 (en) * 2013-11-15 2019-09-17 Apple Inc. Aggregating user routines in an automated environment
US10571873B2 (en) * 2013-11-15 2020-02-25 Apple Inc. Aggregating automated-environment information across a neighborhood
US10719122B2 (en) * 2013-11-15 2020-07-21 Apple Inc. Automated environment providing feedback based on user routine
CN108259159B (zh) * 2014-02-05 2021-02-05 苹果公司 用于在控制器和附件之间进行配对的方法和系统
CN104301905B (zh) * 2014-10-20 2018-10-16 上海电机学院 基于选举监督策略的智能家居自组网方法及系统
CN104836709A (zh) * 2014-12-26 2015-08-12 苏州市职业大学 一种基于电力载波的智能家居系统
US9680646B2 (en) * 2015-02-05 2017-06-13 Apple Inc. Relay service for communication between controllers and accessories
CN106549994A (zh) * 2015-09-21 2017-03-29 张生福 窄数据传输方法及使用该方法的系统
CN105471648A (zh) * 2015-12-03 2016-04-06 英华达(上海)科技有限公司 Zigbee网络系统及其备援方法
US10270610B2 (en) * 2016-06-12 2019-04-23 Apple Inc. Selection of a coordinator device for an automated environment
US10387165B2 (en) * 2016-10-25 2019-08-20 International Business Machines Corporation Choosing optimum nodes to boot in multi-node server

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1529502A (zh) * 2003-10-16 2004-09-15 上海交通大学 基于对等互连的多点视频会议系统的应用层组播方法
CN101513100A (zh) * 2006-08-31 2009-08-19 Lg电子株式会社 无线网络中的通信方法
CN101800752A (zh) * 2010-03-11 2010-08-11 赵家祥 一种提高域名系统安全和性能的方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113382394A (zh) * 2020-02-25 2021-09-10 西门子瑞士有限公司 设备配置

Also Published As

Publication number Publication date
US10630500B2 (en) 2020-04-21
CN110691014B (zh) 2022-06-17
WO2017218176A1 (en) 2017-12-21
CN110691014A (zh) 2020-01-14
US20170359190A1 (en) 2017-12-14
US20190229942A1 (en) 2019-07-25
CN115051883A (zh) 2022-09-13
EP3420780B1 (en) 2019-08-14
US20200228362A1 (en) 2020-07-16
CN108886676B (zh) 2019-09-27
US10270610B2 (en) 2019-04-23
US11088862B2 (en) 2021-08-10
US20220006662A1 (en) 2022-01-06
EP3420780A1 (en) 2019-01-02

Similar Documents

Publication Publication Date Title
CN108886676B (zh) 用于自动化环境的协调器设备的选择
US10310725B2 (en) Generating scenes based on accessory state
US10511456B2 (en) Presenting accessory group controls
CN106664226B (zh) 用于附件管理系统的控制器网络的方法、设备及系统
US11003147B2 (en) Automatically grouping accessories
CN105144662B (zh) 在机器对机器通信中使用基于网络的群管理和发言权控制机制的协调式资源共享
US11277278B2 (en) Smart home service server and control method therefor
US20220303154A1 (en) Techniques for utilizing a coordinator device
US10575178B2 (en) Bluetooth device networking method and system
CN105981352A (zh) 用于在控制器和附件之间通信的统一通信协议
US9794867B2 (en) Reconfiguration of wireless devices for wireless network access
US20210341889A1 (en) Coordinationg modifications by multiple users to a shared automated environment
CN107851046A (zh) 自动化环境中触发器执行的委托
CN110557307B (zh) 用于附件控制的计算设备、方法和介质
US20240031223A1 (en) Configuring accessory network connections
KR20130015980A (ko) Cpns시스템에서 개인망과 cpns서버의 접속 관리 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant