CN114598691A - 与负载控制系统通信并控制负载控制系统的系统和方法 - Google Patents

与负载控制系统通信并控制负载控制系统的系统和方法 Download PDF

Info

Publication number
CN114598691A
CN114598691A CN202210185956.8A CN202210185956A CN114598691A CN 114598691 A CN114598691 A CN 114598691A CN 202210185956 A CN202210185956 A CN 202210185956A CN 114598691 A CN114598691 A CN 114598691A
Authority
CN
China
Prior art keywords
message
load control
control system
api
network device
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
CN202210185956.8A
Other languages
English (en)
Other versions
CN114598691B (zh
Inventor
J·B·尼尔
M·班伯格
J·M·斯维尔斯
C·M·琼斯
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.)
Lutron Electronics Co Inc
Original Assignee
Lutron Electronics Co 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 Lutron Electronics Co Inc filed Critical Lutron Electronics Co Inc
Priority to CN202210185956.8A priority Critical patent/CN114598691B/zh
Publication of CN114598691A publication Critical patent/CN114598691A/zh
Application granted granted Critical
Publication of CN114598691B publication Critical patent/CN114598691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J13/00Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network
    • H02J13/00004Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by the power network being locally controlled
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J13/00Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network
    • H02J13/00006Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment
    • H02J13/00007Circuit arrangements for providing remote indication of network conditions, e.g. an instantaneous record of the open or closed condition of each circuitbreaker in the network; Circuit arrangements for providing remote control of switching means in a power distribution network, e.g. switching in and out of current consumers by using a pulse code signal carried by the network characterised by information or instructions transport means between the monitoring, controlling or managing units and monitored, controlled or operated power network element or electrical equipment using the power network as support for the transmission
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J3/00Circuit arrangements for ac mains or ac distribution networks
    • H02J3/12Circuit arrangements for ac mains or ac distribution networks for adjusting voltage in ac networks by changing a characteristic of the network load
    • H02J3/14Circuit arrangements for ac mains or ac distribution networks for adjusting voltage in ac networks by changing a characteristic of the network load by switching loads on to, or off from, network, e.g. progressively balanced loading
    • H02J3/144Demand-response operation of the power transmission or distribution network
    • 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/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • 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/2823Reporting information sensed by appliance or service execution status of appliance services in a home automation network
    • 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/2823Reporting information sensed by appliance or service execution status of appliance services in a home automation network
    • H04L12/2825Reporting to a device located outside the home and the home 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/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
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2639Energy management, use maximum of cheap power, keep peak load low
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J2310/00The network for supplying or distributing electric power characterised by its spatial reach or by the load
    • H02J2310/10The network having a local or delimited stationary reach
    • H02J2310/12The local stationary network supplying a household or a building
    • H02J2310/14The load or loads being home appliances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • Y02B70/3225Demand response systems, e.g. load shedding, peak shaving
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
    • Y02B90/20Smart grids as enabling technology in buildings sector
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S20/00Management or operation of end-user stationary applications or the last stages of power distribution; Controlling, monitoring or operating thereof
    • Y04S20/20End-user application control systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S20/00Management or operation of end-user stationary applications or the last stages of power distribution; Controlling, monitoring or operating thereof
    • Y04S20/20End-user application control systems
    • Y04S20/221General power management systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S20/00Management or operation of end-user stationary applications or the last stages of power distribution; Controlling, monitoring or operating thereof
    • Y04S20/20End-user application control systems
    • Y04S20/222Demand response systems, e.g. load shedding, peak shaving
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S20/00Management or operation of end-user stationary applications or the last stages of power distribution; Controlling, monitoring or operating thereof
    • Y04S20/20End-user application control systems
    • Y04S20/242Home appliances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/12Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them characterised by data transport means between the monitoring, controlling or managing units and monitored, controlled or operated electrical equipment
    • Y04S40/121Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them characterised by data transport means between the monitoring, controlling or managing units and monitored, controlled or operated electrical equipment using the power network as support for the transmission

Abstract

本公开涉及与负载控制系统通信并控制负载控制系统的系统和方法。公开了用于从远离相应的用户环境的位置与这些用户环境的负载控制系统通信并控制这些负载控制系统的系统和方法。

Description

与负载控制系统通信并控制负载控制系统的系统和方法
本申请是申请日为2018年2月28日、申请号为201880025150.4、发明名称为“与负载控制系统通信并控制负载控制系统的系统和方法”的发明专利申请的分案申请。
相关申请的交叉引用
本申请要求2017年2月28日提交的美国临时专利申请号62/464,834的权益,要求2017年3月1日提交的美国临时专利申请号62/465,433的权益,并且要求2017年4月13日提交的美国临时专利申请号62/485,212的权益,它们的全部公开内容以引用方式并入本文。
背景技术
用户环境(诸如住所、办公楼或例如酒店)可被配置为包括各种类型的负载控制系统。例如,照明控制系统可用于控制用户环境中的照明负载。电动窗上用品控制系统可用于控制提供给用户环境的自然光。暖通空调(HVAC)系统可用于控制用户环境中的温度。
发明内容
可能期望的是,与负载控制系统通信并控制负载控制系统。
根据一个示例,系统可被配置为维护数据库,所述数据库被配置为存储对应于多个负载控制系统的条目,所述多个负载控制系统包括第一负载控制系统和第二负载控制系统。所述多个负载控制系统中的每个负载控制系统可被配置为控制用于相应的环境的电气负载。所述多个负载控制系统中的每个负载控制系统可具有与所述负载控制系统相关联的值和标识符。所述数据库可被配置为对于所述多个负载控制系统中的每个负载控制系统使所述负载控制系统的所述值与所述负载控制系统的所述标识符相关联。所述第一负载控制系统可包括第一值和第一标识符,并且所述第二负载控制系统可包括第二值和第二标识符。所述第一负载控制系统可被配置为传达与所述第一负载控制系统中发生的事件有关的消息,并且所述第二负载控制系统可被配置为传达与所述第二负载控制系统中发生的事件有关的消息。所述系统可被配置为从网络装置接收对接收由所述第一负载控制系统传达的消息的请求。所述请求可包括与所述第一负载控制系统相关联的所述第一值。所述系统可被配置为接收由所述第一负载控制系统传达的第一消息。所述第一消息可使所述第一负载控制系统的所述第一标识符与所述第一消息相关联。至少部分地基于所述请求包括所述第一值以及所述第一消息使所述第一标识符与所述第一消息相关联,所述系统可被配置为确定所述网络装置已请求接收由所述第一负载控制系统传达的所述第一消息。至少部分地基于确定所述网络装置已请求接收所述第一消息,所述系统可被配置为将所述第一消息传达到所述网络装置。
根据另一示例,系统可被配置为从网络装置接收对接收由负载控制系统传达的消息的请求。所述请求可包括对与所述负载控制系统相关联的信道的订阅请求。所述负载控制系统可被配置为控制用于环境的电气负载。所述负载控制系统可被配置为使用第一主题将消息发布到消息代理,并且可被配置为通过与所述消息代理订阅第二主题来从所述消息代理接收消息。所述系统可被配置为经由所述消息代理接收由所述负载控制系统传达的第一消息。所述第一消息可与所述第一主题相关联,并且所述第一消息可经由HTTP接口接收。所述系统可被配置为确定与所述第一消息相关联的所述第一主题与所述信道相关。至少部分地基于确定与所述第一消息相关联的所述第一主题与所述信道相关,所述系统可被配置为确定所述网络装置已请求接收由所述负载控制系统传达的所述第一消息。至少部分地基于确定所述网络装置已请求接收所述第一消息,所述系统可被配置为将所述第一消息传达到所述网络装置。
根据又一示例,一种系统可被配置为从网络装置接收对订阅与多个负载控制系统中的第一负载控制系统相关联的信道的请求。所述多个负载控制系统中的每个负载控制系统可被配置为控制用于相应的环境的电气负载。所述多个负载控制系统中的每个负载控制系统可被配置为使用相应的第一主题将消息发布到消息代理,并且可被配置为通过与所述消息代理订阅相应的第二主题来从所述消息代理接收消息。与所述第一负载控制系统相关联的所述信道可与所述第一负载控制系统的所述第一主题和所述第二主题相关。对订阅与所述第一负载控制系统相关联的所述信道的所述请求可包括对接收由所述第一负载控制系统发布到所述第一主题的消息的请求。所述系统可被配置为从计算服务器接收与所述多个负载控制系统中的相应的一个或多个相关联的主题的集合。所述计算服务器可被配置为从所述消息代理接收由所述多个负载控制系统中的所述一个或多个负载控制系统发布到所述消息代理的消息,并且可进一步被配置为基于所接收的消息来确定所述第一主题的集合。所接收的消息可包括由所述第一负载控制系统发布到与所述第一负载控制系统相关联的所述第一主题的第一消息。主题的集合可包括与所述第一负载控制系统相关联的所述第一主题。所述系统可被配置为确定从所述计算服务器接收的主题的集合包括与所述第一负载控制系统相关联的所述第一主题,并且确定所述网络装置已请求接收由所述第一负载控制系统发布到所述第一主题的消息。至少部分地基于所述确定,所述系统可被配置为将对转发由所述第一负载控制系统发布的所述第一消息的指示传达到所述计算服务器。响应于传达所述指示,所述系统可从所述计算服务器接收由所述第一负载控制系统发布的所述第一消息。所述系统可被配置为将由所述第一负载控制系统发布的所述第一消息传达到所述网络装置。
以上优点和特征仅为代表性实施方案的。它们不应被认为是限制。根据附图以及根据权利要求,实施方案的另外的特征和优点将在以下描述中变得显然。
附图说明
图1是图示包括控制装置的示例性负载控制系统的系统图。
图2是图示用于使用基于消息传送的接口与负载控制系统通信和/或控制负载控制系统的系统的系统图。
图3是图示用于使用基于消息传送的接口和/或基于HTTP的接口来与负载控制系统通信和/或控制负载控制系统的系统的系统图。
图4是图示用于使用基于消息传送的接口和/或基于HTTP的接口来与负载控制系统通信和/或控制负载控制系统的另一系统的系统图。
图5是图示用于使用基于消息传送的接口和/或基于HTTP的接口来与负载控制系统通信和/或控制负载控制系统的又一系统的系统图。
具体实施方式
图1示出示例性负载控制系统100的高级图。负载控制系统100可包括系统控制器150和负载控制装置,所述负载控制装置用于(例如,直接和/或间接地)控制用户环境102(本文中也称为负载控制环境)中的一个或多个电气负载。示例性用户环境/负载控制环境102可包括家庭中的一个或多个房间、建筑物的一个或多个楼层、酒店的一个或多个房间等。作为一个示例,除其他电气负载之外,负载控制系统100可实现对用户环境中的照明系统、遮阳物和暖通空调(HVAC)系统的自动化控制。
负载控制系统100的负载控制装置可包括系统控制器150、控制源装置(例如,以下讨论的元件108、110、120和122)以及控制目标装置(例如,以下讨论的元件112、113、116、124和126)(控制源装置和控制目标装置在本文中可单独和/或统称为负载控制装置和/或控制装置)。系统控制器150、控制源装置和控制目标装置可被配置为使用无线信号154(例如,射频(RF)信号)来在彼此之间传达(传送和/或接收)消息,诸如数字消息(但也可传达其他类型的消息),但也可使用有线通信。“数字”消息在本文中将仅用于讨论目的。
控制源装置可包括例如输入装置,所述输入装置被配置为检测用户环境102内的情况(例如,经由开关的用户输入、占用/空置情况、所测量的光强度的改变和/或其他输入信息),并且响应于检测到的情况,将数字消息传送到控制目标装置,所述控制目标装置被配置为响应于在数字消息中的接收的指令或命令来控制电气负载。控制目标装置可包括例如负载控制装置,所述负载控制装置被配置为:从控制源装置和/或系统控制器150接收数字消息,并且响应于所接收的数字消息来控制相应的电气负载。负载控制系统100的单个控制装置既可作为控制源装置又可作为控制目标装置操作。
根据一个示例,系统控制器150可被配置为:接收由控制源装置传送的数字消息,基于负载控制系统的配置来解译这些消息,并且然后将数字消息传送到控制目标装置,以供控制目标装置然后控制相应的电气负载。换句话说,控制源装置和控制目标装置可经由系统控制器150通信。根据另一和/或另外的示例,控制源装置可直接与控制目标装置通信而无需系统控制器150的帮助。系统控制器仍可监测此类通信。根据又一和/或另外的示例,系统控制器150可发源(originate)数字消息,并且然后与控制源装置和/或控制目标装置进行通信。由系统控制器150的此类通信可包括用于控制装置的编程/配置数据(例如,设置),诸如从而配置灯开关上的场景按钮。来自系统控制器150的通信还可包括例如定向至控制目标装置并且包含指令或命令的消息,以供控制目标装置响应于所接收的消息来控制相应的电气负载。例如,系统控制器150可传达用于改变光水平、改变遮阳水平、改变HVAC设置等的消息。这些是示例,并且其他示例也是可能的。
系统控制器150、控制源装置和控制目标装置之间的通信可经由有线通信网络和/或无线通信网络进行,如上文所指示的。无线通信网络的一个示例可以是无线LAN,其中系统控制器、控制源装置和控制目标装置可经由例如在用户环境102本地的路由器进行通信。例如,这种网络可以是标准Wi-Fi网络。无线通信网络的另一示例可以是点对点通信网络,其中系统控制器、控制源装置和控制目标装置使用例如蓝牙、Wi-Fi直连、专有通信信道(诸如CLEAR CONNECTTM)等直接通信来彼此直接通信,以直接通信。可使用其他网络配置,诸如系统控制器充当接入点并提供一个或多个基于无线/有线的网络,系统控制器、控制源装置和控制目标装置可通过所述基于无线/有线的网络进行通信。
为了使控制目标装置响应于来自控制源装置的消息,控制源装置可首先需要与控制目标装置相关联。作为关联程序的一个示例,控制源装置可通过用户142致动控制源装置和/或控制目标装置上的按钮来与控制目标装置相关联。控制源装置和/或控制目标装置上的按钮的致动可将控制源装置和/或控制目标装置置于用于使彼此相关联的关联模式中。在关联模式中,控制源装置可(直接地或通过系统控制器)将(一个或多个)关联消息传送到控制目标装置。来自控制源装置的关联消息可包括控制源装置的唯一标识符。控制目标装置可本地存储控制源的唯一标识符,使得控制目标装置可能够识别来自控制源装置的可包括负载控制指令或命令的数字消息(例如,后续的数字消息)。控制目标装置可被配置为通过根据在来自相关联的控制源装置的数字消息中的接收的负载控制指令控制相应的电气负载来对该数字消息进行响应。这仅仅是控制装置可如何彼此通信以及彼此相关联的一个示例,并且其他示例也是可能的。根据另一示例,系统控制器150可从用户接收指定哪些控制源装置应当控制哪些控制目标装置的配置指令。此后,系统控制器可将此配置信息传达到控制源装置和/或控制目标装置。
作为控制目标装置的一个示例,负载控制系统100可包括一个或多个照明控制装置(诸如照明控制装置112和113)。照明控制装置112可以是调光器、电子开关、镇流器、发光二极管(LED)驱动器等。照明控制装置112可被配置为直接控制提供给(一个或多个)照明负载(诸如照明负载114)的功率量。照明控制装置112可被配置为经由信号154无线地接收数字消息(例如,源自控制源装置和/或系统控制器150的消息),并且响应于所接收的数字消息来控制照明负载114。
照明控制装置113可以是用于控制(一个或多个)照明负载(诸如照明负载115)的壁装调光器、壁装开关或其他小键盘装置。照明控制装置113可适于安装在标准电气壁箱中。照明控制装置113可包括用于控制照明负载115的一个或多个按钮。照明控制装置113可包括拨转(toggle)致动器。拨转致动器的致动(例如,接连的致动)可切换(例如,关闭和打开)照明负载115。照明控制装置113可包括强度调整致动器(例如,摇臂(rocker)开关或强度调整按钮)。强度调整致动器的上部或下部的致动可分别增加或减少递送到照明负载115的功率量,并且从而在最小强度(例如,大约1%)至最大强度(例如,大约100%)的范围内增大或减小接受照明负载的强度。照明控制装置113可包括可被布置成线性阵列并且可亮起以提供对照明负载115强度的反馈的多个(两个或更多个)视觉指示器,例如发光二极管(LED)。
照明控制装置113可被配置为经由无线信号154无线地接收数字消息(例如,源自控制源装置和/或系统控制器150的消息)。照明控制装置113可被配置为响应于所接收的数字消息来控制照明负载115。
负载控制系统100可包括一个或多个其他控制目标装置,诸如:电动窗上用品116,用于直接控制覆盖材料118(例如,经由电机);吊扇;桌上式或插入式负载控制装置126,用于直接控制落地灯128、台灯和/或可插到插入式负载控制装置126中的其他电气负载;和/或温度控制装置124(例如,恒温器),用于直接控制HVAC系统(未示出)。负载控制系统100可以还或替代地包括音频控制装置(例如,扬声器系统)和/或视频控制装置(例如,能够流式传输视频内容的装置)。同样,这些装置可被配置为经由无线信号154无线地接收数字消息(例如,源自控制源装置和/或系统控制器150的消息)。这些装置可被配置为响应于所接收的数字消息来控制相应的电气负载。
除了被配置为经由无线信号无线地接收数字消息并且响应于所接收的数字消息控制相应的电气负载之外,控制目标装置还可被配置为经由无线信号无线地传送数字消息(例如,到系统控制器150和/或(一个或多个)相关联的控制装置)。控制目标装置可传达此类消息,以确认消息的接收和动作的进行、报告状况(例如,光水平)等。同样,控制目标装置可以还或替代地经由有线通信进行通信。
关于控制源装置,负载控制系统100可包括一个或多个远程控制装置122、一个或多个占用传感器110、一个或多个日光传感器108、和/或一个或多个窗传感器120。控制源装置可经由无线信号(诸如信号154)将数字消息无线地发送或传达到相关联的控制目标装置,以控制电气负载。远程控制装置122可在致动远程控制装置122上的一个或多个按钮之后发送用于控制一个或多个控制目标装置的数字消息。该一个或多个按钮可对应于例如用于控制照明负载115的预设场景。占用传感器110可响应于在其可观察区域内感测到的占用和/或空置情况(例如,移动或缺失移动)而将数字消息发送到控制目标装置。日光传感器108可响应于对其可观察区域内的光量的检测而将数字消息发送到控制目标装置。窗传感器120可响应于从用户环境102的外部接收的所测量的光水平而将数字消息发送到控制目标装置。例如,窗传感器120可检测何时太阳光直接照射到窗传感器120中、被反射到窗传感器120上和/或被外部手段(诸如云或建筑物)阻挡。窗传感器120可发送指示所测量的光水平的数字消息。负载控制系统100可包括一个或多个其他控制源装置。同样,应认识到,控制源装置可以还或替代地经由有线通信进行通信。
再次转向系统控制器150,它可促进消息从控制源装置到相关联的控制目标装置的通信,和/或监测此类消息,如上文所指示的,从而知道控制源装置何时检测到事件以及控制目标装置何时在改变电气负载的状况/状态。它可将编程/配置信息传达到控制装置。它也可以是到控制目标装置的控制消息的源,例如,指导装置控制对应的电气负载。作为后者的一个示例,系统控制器可运行基于所配置的安排(schedule)自动地将消息传达到控制目标装置(例如,将命令传达到照明控制装置113以调整灯115,将命令传达到电动窗上用品116以直接控制覆盖材料118等)的一个或多个时钟操作。其他示例也是可能的。
根据负载控制系统100的又一方面,系统控制器150可被配置为例如与在由(一个或多个)用户142使用的一个或多个网络装置144通信。网络装置144可包括个人计算机(PC)、膝上型计算机、平板计算机、智能电话或等效装置。系统控制器150和网络装置144可经由有线通信网络和/或无线通信网络进行通信。通信网络可以是与由系统控制器和控制装置使用的相同的网络,或者可以是不同的网络(例如,使用无线信号152的无线通信网络)。作为一个示例,系统控制器150和网络装置144可通过无线LAN(例如,在用户环境102本地的)进行通信。例如,这种网络可以是由在用户环境102本地的路由器提供的标准Wi-Fi网络。作为另一示例,系统控制器150和网络装置144可使用例如蓝牙、Wi-Fi直连等彼此直接通信。其他示例也是可能的,诸如系统控制器充当接入点并提供一个或多个基于无线/有线的网络,系统控制器和网络装置可通过所述基于无线/有线的网络进行通信。
大体上,系统控制器150可被配置为允许网络装置144的用户142:确定例如用户环境102和负载控制系统100的配置(诸如环境中的房间、哪些控制装置在哪些房间中(例如,控制装置在用户环境内的位置,诸如哪些房间)),确定控制装置的状况和/或配置(例如,光水平、HVAC水平、遮阳水平),配置系统控制器(例如,以改变时钟安排),向系统控制器发出命令以便控制和/或配置控制装置(例如,改变光水平、改变HVAC水平、改变遮阳水平、改变预设等)等。其他示例也是可能的。
图1的负载控制系统100可被配置成使得系统控制器150仅能够在网络装置144在系统控制器本地时与该装置通信,换句话说,用于使两者以点对点方式或通过特定于用户环境102的本地网络(诸如由在用户环境本地的路由器提供的网络)直接通信。可能有利的是,允许网络装置144的用户与系统控制器150通信并且从远程位置(诸如经由互联网或其他公共网络或专用网络)控制负载控制系统100。类似地,可能有利的是,允许第三方集成商与系统控制器150通信,以便向用户环境102的用户提供增强的服务。例如,第三方集成商可在用户环境102内提供其他系统。可能有益的是,将此类系统与负载控制系统100集成在一起。
现在参考图2,示出了示例性系统200。系统200可包括由用户环境202a和202b表示的一个或多个用户环境。更具体地,系统200可被配置为支持多个用户环境,其中仅示出了两个用户环境202a和202b来帮助描述系统200。每个用户环境可基本上相同,它们各自包括相应的负载控制系统210a和210b,所述相应的负载控制系统210a和210b包括相应的系统控制器250a和250b以及相应的控制装置220a和220b(例如,控制源装置和/或控制目标装置)。大体上,负载控制系统210a和210b的系统控制器250a和250b以及控制装置202a和202b可在功能上与如关于图1讨论的系统控制器150和控制装置类似地操作。系统200的每个用户环境202a和202b的不同之处可在于:用户环境可由不同实体拥有。例如,每个用户环境可以是分别由不同用户/房主拥有的住房,可以是企业等,或者是它们的组合。仅出于描述目的,用户环境202a和202b在本文中可称为由房主拥有/租用的住房。因此,每个用户环境可包括不同的控制装置以及这些控制装置和系统控制器的不同配置。以此方式,系统200可包括例如许多不同的家庭。与负载控制系统100相比,系统200可包括供用户和/或第三方从远离用户环境202a/202b的位置(诸如通过互联网或其他专用网络或公用网络)与相应的负载控制系统210a/210b接合的系统。
如所指示的,系统200的每个用户环境202a和202b可包括相应的系统控制器250a和250b(但用户环境可包括多于一个系统控制器)和共同表示为元件220a和220b的控制装置(同样,系统控制器250a和控制装置220a可构成负载控制系统210a,并且系统控制器250b和控制装置220b可构成负载控制系统210b)。系统200还可包括一个或多个消息代理270以及一个或多个网络装置280a和280b。网络装置280a和280b可表示在由相应的用户环境202a和202b的相应的用户使用的计算装置。例如,网络装置280a可以是在由用户环境202a的房主使用的装置(例如,电话、PC、膝上型计算机、平板计算机、智能电话或等效装置),并且网络装置280b可以是在由用户环境202b的房主使用的装置(例如,电话等)。作为另一和/或另外的示例,网络装置280a和280b可以是向用户环境202a和202b的相应的用户/房主提供服务的第三方集成商。此处,网络装置280a和280b可各自是例如一个或多个计算服务器。同样,系统200可包括许多网络装置280a和280b,其中仅出于描述目的示出两个。根据系统200,网络装置280a和280b可远离用户环境(例如,不位于用户环境内)。尽管如此,网络装置280a和280b也可在用户环境本地(例如,位于用户环境内),并且使用消息代理270与系统控制器250a和/或250b通信,如下文所述。
系统200还可包括网络282和283,所述网络282和283可包括专用网络和/或公用网络(诸如互联网)。网络282和283可至少部分地是相同的网络。大体上,系统控制器250a和250b可被配置为经由网络282与消息代理270通信,并且每个网络装置280a和280b可被配置为经由网络283与消息代理270通信。通过使用消息代理270和本文描述的其他机制,例如网络装置280a可与例如用户环境202a的系统控制器250a通信,并且与该环境的控制装置220a交互。作为系统200的一个示例,用户可使用网络装置280a来与系统控制器250a通信,并且通过这些通信,可确定例如负载控制系统210a/用户环境202a的配置(例如,诸如环境中的房间,以及控制装置在用户环境内的位置,诸如哪些房间),用以:确定控制装置220a的状况和/或配置(例如,光水平、HVAC水平、遮阳水平)、配置系统控制器250a(例如,改变时钟安排)、向系统控制器250a发出命令以控制和/或配置控制装置220a(例如,改变光水平、改变HVAC水平、改变遮阳水平、改变预设等)。这些仅仅是示例。作为另一示例,由第三方集成商操作的网络装置280a可与系统控制器250a通信,以确定负载控制系统210a的状况并且控制负载控制系统210a(如本文所述),并且还使用此功能来将负载控制系统210a的特征与用户环境202a中第三方集成商可控制的另一系统的特征进行集成。作为一个示例,第三方集成商可以是家庭安全提供商,并且响应于通过由第三方集成商提供的系统(例如,警报系统)在用户环境202a中检测到问题,指导系统控制器250a致动用户环境中的灯。其他示例也是可能的。例如,第三方集成商可提供位于用户环境202a中的一个或多个基于语音/扬声器的装置。用户可以以听觉方式(例如,通过语音命令)与这种装置接合,该装置转而可与网络装置280a(例如,第三方集成商的计算服务器)通信。网络装置280a可以转而与系统控制器250a通信,以基于用户如何与基于语音/扬声器的装置接合来控制负载控制系统210a。替代地,网络装置280a可与系统控制器250a通信以确定负载控制系统210a的状况,并且转而可与基于语音/扬声器的装置通信以便以听觉方式向用户报告状况。同样,这是一个示例。以类似方式,用户和第三方集成商可以与系统200的任何用户环境通信。
现在更具体地参考系统控制器250a(系统控制器250b可以类似地配置),它可包括例如一个或多个通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、微处理器、微控制器、集成电路、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或任何合适的控制器或处理装置等(未示出)(下文统称为(一个或多个)处理器)。系统控制器250a的(一个或多个)处理器可被配置为执行包括指令的一个或多个基于软件的应用程序和/或基于固件的模块,所述指令当由该(一个或多个)处理器执行时可将该(一个或多个)处理器配置为执行信号编码、数据处理、输入/输出处理、或如本文所述的系统控制器的任何其他功能和/或特征。这些特征和功能部分地由图2中以下进一步描述的模块252和260表示。例如,模块252和260可执行为一个或多个基于软件的过程。还应认识到,除了基于软件的指令和过程之外和/或作为基于软件的指令和过程的替代,本文描述的特征、功能和过程可以还和/或替代地由硬件提供。系统控制器250a还可包括可通信地耦接到(一个或多个)处理器的一个或多个存储器模块/存储器装置(包括易失性和非易失性的存储器模块/存储器装置)。存储器模块/存储器装置可实现为一个或多个外部集成电路(IC)和/或该(一个或多个)处理器的一个或多个内部电路。一个或多个存储器模块/存储器装置可存储基于软件的应用程序,并且还可在处理器执行应用程序时提供执行空间。系统控制器250a还可包括通信地耦接到处理器和/或存储器装置/存储器模块的一个或多个通信接口/收发器/网络接口装置(未示出)。通信接口可允许系统控制器250a通过一个或多个有线通信网络和/或无线通信网络进行通信。作为一个示例,如针对负载控制系统100类似地描述的,通信接口可允许系统控制器250a与控制装置220a无线地通信。通信接口还可允许系统控制器250a无线地和/或经由(一个或多个)有线连接与例如路由器(未示出)通信,该路由器在用户环境202a本地并且向用户环境提供本地网络。通过该本地网络,系统控制器250a可与在用户环境202a本地的网络装置144通信,并且还可与网络282通信(诸如通过互联网服务提供商,未示出)。系统控制器250a还可包括如本文进一步描述的一个或多个数据库254。这些数据库可以是平面数据库、关系/SQL数据库、NoSQL/非SQL数据库和/或时间序列数据库等,但可使用任何形式的(一个或多个)数据库。系统控制器250a还可包括一个或多个用户接口,诸如显示监视器、键盘、鼠标、扬声器、音频接收器等。虽然系统控制器250a被示出为具有示例性模块252和260以及示例性数据库254,但系统控制器可包括更少的、其他的和/或另外的模块和数据库。
更具体地参考模块252和260以及参考数据库254,数据库254可维护负载控制系统250a的配置信息。此信息可包括例如负载控制系统的控制装置220a、用户环境202a的配置(诸如环境中的房间)、哪些控制装置220a在哪些房间中、控制装置的与装置进行通信所需的通信地址、哪些控制源装置可由哪些控制目标装置控制/与哪些控制目标装置相关联、控制装置的配置信息(例如,按钮场景配置、占用/空置传感器配置等)、系统配置(诸如时钟安排)等。数据库还可维护控制装置的状况信息(例如,错误情况、光水平、遮阳水平、HVAC水平、功耗水平等)。数据库还可维护基于事件的信息(如下所提及),该基于事件的信息可包括当事件在系统内发生时这些事件的记录。这些仅仅是示例,并且其他和/或另外的或更少的信息也是可能的。
出于描述目的,模块252在本文中可称为核心模块或核心252,并且可被配置为执行为一个或多个基于软件的过程。核心252可被配置为充当控制装置220a与系统控制器之间的通信模块,从而帮助和/或监测控制源装置与控制目标装置之间的通信,并且将有关的信息存储在数据库254中。该信息可包括例如哪些控制源装置与哪些控制目标装置相关联的改变。该信息还可包括基于事件的信息,诸如(i)由控制源装置检测到的事件(例如,由传感器110检测到的占用/空置、由传感器108和120检测到的光水平、对在远程控制装置113或墙面板/开关113上致动的按钮的检测等);(ii)由控制源装置传达到控制目标装置的命令,以基于检测到的事件(例如,光水平、遮阳水平、HVAC水平等的改变)而更改设置;以及(iii)来自控制目标装置的指示(indicting)/确认所更改的设置的命令。核心252可直接从控制装置接收状况消息(诸如错误情况、光水平、遮阳水平、HVAC水平、功耗水平、占用/空置情况等),并且将此类信息存储在数据库254中。核心252还可运行时钟安排,并且根据这些安排将消息传达到控制装置。同样,核心252可将控制装置的此类改变和/或来自控制装置的确认存储在数据库254中。核心252还可将信息/消息传达到模块260(出于描述目的,模块260可被称为网关模块或网关260),如下所述。核心252可从网关260接收消息,该消息可导致核心:改变系统控制器的配置参数(例如,时钟设置)、或将消息(诸如光水平的改变)传达到控制装置、或调整控制装置的配置/操作参数(例如,改变开关按钮上的场景按钮、占用/空置传感器配置)等。核心252可在其执行这些操作之后响应回网关260。核心252还可从网关260接收对如上所讨论的存储在数据库254中的任何信息的请求,并且将该信息报告回网关。这些是示例,并且核心252可执行其他和/或另外的功能和操作。
转到网关260,它可被配置为充当系统控制器250a与外部装置(诸如位于用户环境202a中的本地网络装置144以及远程网络装置280a和280b)之间的接口。例如,网关260可从网络装置144和/或网络装置280a和/或280b接收消息,并且将这些消息在系统控制器250a内路由,诸如路由到核心252,以供执行。网关260还可(诸如从核心252)接收对此类消息的响应,并且将它们路由回网络装置144、280a和/或280b。网关260还可以(诸如从核心252)接收例如基于状况和事件的信息,并且将该信息路由到网络装置144、280a和/或280b。这些是示例,并且其他示例是可能的。为了执行此类功能和操作,网关260可包括API(应用程序编程接口)服务器264、本地外壳(shell)客户端(在本文中也称为外壳客户端)262以及MQTT(消息队列遥测传输)客户端266。API服务器264、本地外壳客户端262和MQTT客户端266中的每一个可在系统控制器250a内操作为一个或多个基于软件的过程,但其他配置是可能的。应认识到,本文所用的名称API服务器、本地外壳客户端和MQTT客户端仅用于描述目的。
本地外壳客户端262可被配置为作用或操作为至在系统控制器250a本地(例如,与系统控制器在同一本地网络上和/或位于用户环境202a内)的网络装置144的接口点。本地外壳客户端262可被配置为支持与网络装置144的通信连接234。此连接可以是例如基于TCP/IP(传输控制协议/互联网协议)或UDP/IP(用户数据报协议)的连接,但可使用其他连接。本地外壳客户端262可通过该连接提供至网络装置144的外壳类型接口(例如,命令行类型接口)。接口可以是安全外壳接口(例如,使用安全外壳(SSH)协议)。应认识到,虽然本地外壳客户端262在本文中被描述为至在系统控制器250a本地的网络装置144的接口点,但与系统控制器在不同网络上(即,与系统控制器不在同一本地网络上)和/或不位于用户环境202a内的网络装置也可使用本地外壳客户端262来与系统控制器通信。
MQTT客户端266可被配置为作用或操作为至消息代理270的接口点,并且因此作用或操作为至远离系统控制器250a的网络装置280a和280b的接口点。MQTT客户端266可支持与消息代理270的通信连接230a。此连接可以是例如基于TCP/IP的连接,但可使用其他连接。在此连接之上,MQTT客户端266可支持例如与消息代理270的基于MQTT发布-订阅的消息传送协议,其中MQTT客户端266充当代理的客户端。如以下进一步描述的,MQTT客户端266可通过将消息发布到一个或多个所限定的主题(如该术语在基于消息传送的协议中使用的)来将消息从系统控制器发送到消息代理,并且从而发送到网络装置280a和/或280b。类似地,MQTT客户端266可例如通过订阅一个或多个所限定的主题来从消息代理接收源自网络装置280a和/或280b的消息。
系统控制器250a可支持可包括明确限定的命令和响应(在本文中一般称为API或“API消息”)的集合的应用程序编程接口(API),以与网络装置144、280a和/或280b交互。由网络装置144、280a和/或280b提供或在网络装置144、280a和/或280b上执行的基于服务的应用程序(例如,基于软件的应用程序)可使用API来与系统控制器交互。API服务器264可以操作为这些通信在系统控制器250a内的起始点和终止点。例如,网络装置144、280a和/或280b可执行一个或多个基于软件的应用程序,该一个或多个基于软件的应用程序向用户提供服务的限定的集合。这些服务可至少部分地基于与系统控制器250a的交互。例如,网络装置144可向用户提供允许用户控制用户环境202a内的灯或遮阳物的基于软件的应用程序。类似地,网络装置280a可向用户提供允许用户从用户环境外部的位置控制灯或遮阳物的基于软件的应用程序。作为另一示例,网络装置280a可提供如上所述的基于警报的服务。
为了提供此类服务,网络装置可使用系统控制器250a的API来将API消息传达到系统控制器250a。例如,网络装置144可将API消息传达到本地外壳客户端262,本地外壳客户端262然后可以将该消息转发到API服务器264,API服务器264然后可以解译并执行该消息。类似地,网络装置280a可通过消息代理270将API消息传达到MQTT客户端266,MQTT客户端266然后可以将该消息转发到API服务器264,API服务器264然后可以解译并执行该消息。为了执行/解译API消息,API服务器264可将消息(或消息的转换的形式)传达到核心252以提供/执行消息,API服务器可与数据库254通信以检索和/或存储信息,和/或API服务器可自己处理消息。其他示例也是可能的。
类似地,为了提供此类服务,系统控制器250a可将API消息传达到网络装置144、280a和/或280b。例如,核心252可通过将意图用于网络装置的信息发送到API服务器264来传达该信息。这种信息可包括对从网络装置接收且由核心252执行的消息(例如,用于控制控制装置220a的消息)的响应或来自从网络装置接收且由核心252执行的消息的结果。该信息可包括核心252响应于从网络装置接收的消息而从数据库254检索的信息。类似地,API服务器264可响应于从网络装置接收的消息而直接从数据库254检索信息。例如,当API服务器264从核心252和/或数据库254接收信息时,它可根据(一个或多个)适当的API消息来格式化该信息,并且然后将消息转发到本地外壳客户端262以供转发到网络装置144,并且/或者将消息转发到MQTT客户端266以供转发到消息代理270以及网络装置280a和/或280b。其他示例也是可能的。
关于从系统控制器250a流出到达网络装置144、280a和/或280b的信息,在一些情况下,信息可以响应于从网络装置接收的消息,如上文所指示的。在一些情况下,API服务器264可将此类响应的消息传达到本地外壳客户端262和MQTT客户端266两者,而不管原始消息源自何处(即,无论是经由本地外壳客户端262来自网络装置还是经由MQTT客户端266来自网络装置)。在其他情况下,API服务器可将响应消息转发到本地外壳客户端262和MQTT客户端266中的仅一者或另一者,这取决于原始消息源自哪个接口。
根据系统控制器250a的又一方面,核心252可不断地向API服务器264报告源自负载控制系统210a内的基于状况和/或事件的信息。例如,核心252(i)可向API服务器264报告由控制源装置从用户环境202a内检测到的事件(例如,由传感器110检测到的占用/空置、由传感器108和120检测到的光水平、对在远程控制装置113或墙面板/开关113上致动的按钮的检测等);(ii)可向API服务器264报告电气负载的状态的可由来自控制源装置的消息导致的改变(例如,光水平、遮阳水平、HVAC/恒温器水平/读数等的改变);并且(iii)可向API服务器264报告例如电气负载状态的由于时钟事件的改变。核心252还可向API服务器264报告负载控制系统的配置的改变,诸如新的控制装置的添加、控制源装置与控制目标装置之间的关联的改变或创建等。大体上,API服务器264可将API服务器264从核心252接收的任何此类信息作为API消息转发到本地外壳客户端262和/或MQTT客户端266,以供转发到网络装置144和消息代理270,并因此转发到网络装置280a和/或280b。以此方式,网络装置可以保持以“实时”方式获悉负载控制系统210a的状态,而不必向负载控制系统询问其状态。
现在更具体地参考MQTT客户端266、消息代理270(注意,图2中示出了一个消息代理270;尽管如此,应认识到,系统200可包括多个消息代理)、以及网络装置280a和280b,每个网络装置280a和280b可包括客户端过程,该客户端过程支持与消息代理270的相应的连接232a和232b(例如,TCP/IP连接,但可使用其他连接),并且该客户端过程可例如通过该连接支持与消息代理的基于MQTT发布-订阅的消息传送协议。例如,消息代理270可以是用作MQTT消息代理的一个或多个计算装置(例如,一个或多个计算服务器),从而支持MQTT发布-订阅消息传送协议。消息代理270的计算装置可包括例如一个或多个通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、微处理器、微控制器、集成电路、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或任何合适的控制器或处理装置等(下文统称为(一个或多个)处理器)(未示出)。消息代理270的(一个或多个)处理器可被配置为执行包括指令的一个或多个基于软件的应用程序和/或基于固件的模块,所述指令当由该(一个或多个)处理器执行时可将该(一个或多个)处理器配置为执行信号编码、数据处理、输入/输出处理、或将消息代理270配置为提供如本文所述的MQTT消息代理功能和操作的任何其他功能或操作。还应认识到,除了基于软件的指令和过程和/或作为基于软件的指令和过程的替代,消息代理270的本文所述的特征、功能和过程可以还和/或替代地由硬件提供。消息代理270还可包括可通信地耦接到(一个或多个)处理器的一个或多个存储器模块/存储器装置(包括易失性和非易失性的存储器模块/存储器装置)。存储器模块/存储器装置可被实现为一个或多个外部集成电路(IC)和/或被实现为该(一个或多个)处理器的一个或多个内部电路。该一个或多个存储器模块/存储器装置可存储基于软件的应用程序,并且还可在处理器执行应用程序时提供执行空间。消息代理270还可包括通信地耦接到处理器和/或存储器装置/存储器模块的一个或多个通信接口/收发器/网络接口装置(未示出)。通信接口可允许消息代理270通过一个或多个有线通信网络和/或无线通信网络(诸如网络282和283)进行通信。
例如,当相应的系统控制器250a和250b的MQTT客户端266与消息代理270建立相应的连接230a和230b并且通过连接230a和230b与消息代理形成相应的MQTT连接时,消息代理可例如开始与每个MQTT客户端266的相应的过程(诸如基于软件的过程)272a和272b。类似地,例如,当每个网络装置280a和280b与消息代理270建立相应的连接232a和232b时,消息代理可开始与每个网络装置的相应的过程(诸如基于软件的过程)274a和274b。根据MQTT协议的一个示例,消息代理270可分别在过程272a和272b处经由连接230a和230b从MQTT客户端266接收相应的API消息,并且将这些消息转发到过程274a和/或274b。过程274a和274b随后可分别通过连接232a和232b将API消息转发到网络装置280a和280b。类似地,消息代理270可分别在过程274a和274b处经由连接232a和232b从网络装置280a和280b接收相应的API消息,并且将这些API消息转发到过程272a和/或272b。过程272a和272b随后可分别通过连接230a和230b将API消息转发到系统控制器250a和250b的MQTT客户端266。大体上,在消息代理可在网络装置与系统控制器之间转发消息之前,网络装置280a和280b可与消息代理270进行认证过程。
根据MQTT协议的示例,例如,当系统控制器250a的MQTT客户端266从API服务器264接收到API消息时,可通过将API消息发布到限定的主题“A”来通过连接230a将这些消息传达到消息代理270。假设例如网络装置280a期望从系统控制器250a接收信息,它可与消息代理270订阅该同一主题“A”。在已订阅主题“A”之后,消息代理270可经由过程274a将该消息代理270在过程272a处从系统控制器250a接收的API消息通过连接232a转发到网络装置280a。类似地,为使网络装置280a将API消息传达到系统控制器250a,可通过将API消息发布到限定的主题“B”(应认识到,主题A和B可相同或不同)来在消息代理270处通过连接232a将这些消息传达到过程274a。为了从网络装置280a接收API消息,系统控制器250a的MQTT客户端266可与消息代理订阅主题“B”。在已订阅主题“B”之后,消息代理270可经由过程272a通过连接230a将该消息代理270在过程274a处从网络装置280a接收的API消息转发到系统控制器250a的MQTT客户端266。其他示例也是可能的。
现在具体参考如上所述的主题,根据一个示例,系统200的每个系统控制器250a和250b可具有分配的通信地址,诸如MAC地址(媒体访问控制地址)(或可能地多于一个地址)。这可以是例如分配给分别支持与消息代理的连接230a和230b的系统控制器250a和250b的通信接口或收发器或网络接口装置的地址(出于描述目的,本文将使用MAC地址。尽管如此,分配给每个系统控制器的不同地址可以替代地用于代替如本文所讨论的MAC地址(诸如使用主题))。系统200的每个系统控制器250a和250b的MAC地址可以是不同的/唯一的。在此示例中,系统控制器250a可具有MAC地址“A1:B1:C1:D1:E1:F1”,并且系统控制器250b可具有MAC地址“A2:B2:C2:D2:E2:F2”(如插图标号222a和222b所示)。以下进一步讨论MAC地址。根据系统200的又一方面,每个系统控制器250a和250b可被分配唯一标识符(ID)值(唯一ID值),该唯一标识符值可以是随机值。在此示例中,系统控制器250a可具有唯一ID值“ABC123”,并且系统控制器250b可具有唯一ID值“ABC789”(如插图标号222a和222b所示)。这些仅仅是示例。根据系统200的再一方面,系统200的所有系统控制器250a和250b可被分配共同通用标识符。在此示例中,每个系统控制器250a和250b具有共同通用标识符“1201”(如插图标号222a和222b所示)。同样,这些仅仅是示例。(应认识到,虽然系统控制器在本文中被描述为使唯一标识符、MAC地址和通用标识符与该系统控制器相关联,但这些值大体上也可被视为与系统控制器的相应的负载控制系统和/或相应的用户环境相关联)。由系统200的系统控制器250a和250b以及网络装置280a和280b使用的主题可具有使用例如以下项的格式:(i)分配给系统控制器250a/250b的唯一ID值;(ii)分配给所有系统控制器的通用标识符;以及(iii)若干不同主题标识符/值中的一个主题标识符/值(诸如“Request(请求)”和“Response(响应)”),但可使用另外的和/或其他的值。作为一个示例,由系统200使用的主题的格式可具有以下的形式:“/u/Universal-Identifier/d/System-Controller-ID/Topic-Identifier”,其中在此示例中,Universal-Identifier可以是“1201”,System-Controller-ID可以是“ABC123”或“ABC789”,并且Topic-Identifier可以是“Request”或“Response”。同样,这仅仅是一个示例,并且其他变型也是可能的。例如,由系统200的系统控制器250a和250b以及网络装置280a和280b使用的主题可具有使用例如以下项的格式:(i)分配给系统控制器250a/250b的MAC地址;(ii)分配给所有系统控制器的通用标识符;以及(iii)若干不同主题标识符/值中的一个主题标识符/值(诸如“Request”和“Response”),但可使用另外的和/或其他的值。作为一个示例,由系统200使用的主题的格式可具有以下的形式:“/u/Universal-Identifier/d/MAC-Address/Topic-Identifier”,其中Universal-Identifier可以是“1201”,MAC-Address可以是“A1:B1:C1:D1:E1:F1”或“A2:B2:C2:D2:E2:F2”,并且Topic-Identifier可以是“Request”或“Response”。在一个方面,这两个示例的类似之处在于:它们各自使用通用标识符、唯一标识符(例如,系统控制器的MAC地址或分配给系统控制器的唯一ID值)、以及主题标识符/值。为了便于描述,本文将使用以下形式的主题来描述示例性系统:“/u/Universal-Identifier/d/System-Controller-ID/Topic-Identifier”。同样,其他变型也是可能的,并且也可使用。
根据一个示例,每当系统控制器250a的MQTT客户端266将API消息发送到消息代理270时,它可将API消息连同主题“/u/1201/d/ABC123/Response”一起发布到代理。类似地,每当系统控制器250b的MQTT客户端266将API消息发送到消息代理270时,它可将API消息连同主题“/u/1201/d/ABC789/Response”一起发布到代理。如果例如网络装置280a希望从例如系统控制器250a接收API消息,则它可与消息代理订阅主题“/u/1202/d/ABC123/Response”(应认识到,网络装置280a可只需订阅此主题的一部分,诸如“/u/#/d/ABC123/Response”,其中“#”表示通配符值)。类似地,如果例如网络装置280a希望从系统控制器250b接收API消息,则它可与消息代理订阅主题“/u/1202/d/ABC789/Response”(或简单地例如“/u/#/d/ABC789/Response”)。以此方式,当消息代理接收由系统控制器250a和250b发布的API消息时,它可检查相关联的主题,确定哪些网络装置280a和280b可已订阅该主题(至少部分地),并经由过程272a/272b和274a/274b转发消息。可看出,通过使用System-Controller-ID,网络装置280a和280b可从期望的系统控制器250a和250b接收API消息。
根据又一示例,每当例如网络装置280a希望将API消息发送到系统控制器250a时,它可使用主题“/u/1202/d/ABC123/Request”将消息发布到消息代理270。类似地,每当例如网络装置280a希望将API消息发送到系统控制器250b时,它可使用主题“/u/1202/d/ABC789/Request”将消息发布到消息代理270。换句话说,通过使用System-Controller-ID,网络装置280a和280b可与期望的系统控制器250a和250b通信。为了使系统控制器250a从网络装置280a接收API消息,系统控制器250a的MQTT客户端266可订阅主题“/u/1202/d/ABC123/Request”(或简单地例如“/u/#/d/ABC123/Request”)。类似地,为了使系统控制器250b从网络装置280a接收API消息,系统控制器250b的MQTT客户端266可订阅主题“/u/1202/d/ABC789/Request”(或简单地例如“/u/#/d/ABC123/Request”)。以此方式,当消息代理270接收由网络装置280a和280b发布的API消息时,它可检查相关联的主题,确定哪些系统控制器可已订阅该主题(至少部分地),并经由过程274a/74b和272a/272b转发消息。因此,通过使用System-Controller-ID,网络装置280a和280b可将API消息发送到期望的系统控制器250a和250b。
如上所述,除了发布响应于来自网络装置的命令的API消息之外,系统控制器250a和250b还可在相应的负载控制系统内发生事件时将API消息连续地发布到消息代理270。订阅为从相应的系统控制器接收API消息(例如,订阅基于“Response”的主题和系统控制器的System-Controller-ID)的网络装置280a和280b转而可连续地接收API消息。如果网络装置280a和280b均未订阅为接收由相应的系统控制器250a和250b发布的消息,则消息代理可简单地丢弃消息。多个网络装置280a和280b也可同时订阅为从给定的系统控制器接收API消息。从以上还可看出,网络装置280a和280b可通过以下方式将特定的命令传达到特定的系统控制器250a和250b和/或从特定的系统控制器250a和250b请求信息:使用基于“Request”的主题和那个系统控制器的适当的System-Controller-ID来将API消息发布到消息代理。类似地,网络装置可通过以下方式从相应的系统控制器接收对API消息的响应:与消息代理270订阅具有基于“Response”的主题和适当System-Controller-ID的消息。
虽然本文将系统200描述为基于MQTT协议,但可使用其他基于消息的协议(诸如高级消息队列协议(AMQP))。
系统200使用基于MQTT消息的系统以供网络装置280a和280b与相应的用户环境202a和202b的系统控制器250a和/或250b通信。现在转到图3,示出了示例性系统300。虽然系统200使用基于MQTT消息的系统以供网络装置280a和280b与系统控制器250a和/或250b通信,但系统300允许例如网络装置380使用基于HTTP(超文本传输协议)的接口与系统控制器250a和/或250b通信。网络装置380与网络装置280a和280b的类似之处可在于:它可以是在由用户(例如,用户环境的房主)使用的装置,并且/或者可以是第三方集成商,所述第三方集成商被配置为基于通过由相应的系统控制器250a和/或250b支持的API与这些控制器进行的交互来提供(一个或多个)服务。特别地,系统300可允许网络装置380使用HTTP接口接收由相应的系统控制器250a和250b发布的API消息。这些API消息的信息可包括例如在相应的负载控制系统210a和210b中发生的并且由系统控制器250a和250b连续地发布到消息代理370的基于事件和状况的信息(它还可包括是响应于来自网络装置的消息的API消息)。以下讨论的图4的示例性系统400示出示例性系统,所述示例性系统进一步允许网络装置380使用HTTP接口将API消息传达到相应的系统控制器250a和250b(以及从相应的系统控制器250a和250b接收响应)。虽然图3仅示出一个网络装置380,但系统300中可存在许多此类装置。
系统300可包括可类似于如针对系统200所描述的消息代理270进行操作的一个或多个消息代理370(此处示出一个)。系统300还可包括一个或多个用户环境202a和202b以及可具有与消息代理370的MQTT接口的相应的系统控制器250a和250b(以及相关联的控制装置220a和220b),并且还可包括可通过MQTT接口与消息代理370通信的一个或多个网络装置280a和280b。系统控制器250a和250b、消息代理370以及网络装置280a和280b可与如针对系统200所描述的类似地进行操作。系统300现在还可包括一个或多个数据聚合器310(此处示出一个)、一个或多个web服务器340(此处示出一个)、以及可与web服务器340通信的一个或多个网络装置380(其中该一个或多个网络装置在图3中表示为网络装置380)。
同样,虽然本文将系统300描述为基于MQTT协议,但可使用其他基于消息的协议(诸如高级消息队列协议(AMQP))。
数据聚合器310可以是一个或多个计算装置(例如,一个或多个计算服务器),其可包括例如一个或多个通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、微处理器、微控制器、集成电路、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或任何合适的控制器或处理装置等(下文统称为(一个或多个)处理器)(未示出)。数据聚合器310的(一个或多个)处理器可被配置为执行包括指令的一个或多个基于软件的应用程序和/或基于固件的模块,所述指令当由该(一个或多个)处理器执行时可将该(一个或多个)处理器配置为执行信号编码、数据处理、输入/输出处理、或将数据聚合器配置为如本文所述地进行操作的任何其他功能。还应认识到,除了基于软件的指令和过程和/或作为基于软件的指令和过程的替代,本文描述的数据聚合器310的特征、功能和过程可以还和/或替代地由硬件提供。数据聚合器310还可包括可以通信地耦接到(一个或多个)处理器的一个或多个存储器模块/存储器装置(包括易失性和非易失性存储器模块/存储器装置)。这些存储器模块/存储器装置可实现为一个或多个外部集成电路(IC)和/或该(一个或多个)处理器的一个或多个内部电路。该一个或多个存储器模块/存储器装置可存储基于软件的应用程序,并且还可在处理器执行应用程序时提供执行空间。数据聚合器310还可包括通信地耦接到处理器和/或存储器装置/存储器模块的一个或多个通信接口/收发器/网络接口装置(未示出)。通信接口可允许数据聚合器310通过一个或多个有线通信网络和/或无线通信网络(未示出)与消息代理370和web服务器340通信。数据聚合器310还可包括一个或多个用户接口,诸如显示监视器、键盘、鼠标、扬声器、音频接收器等。
数据聚合器310可包括MQTT客户端模块312(在本文中也称为MQTT客户端)、管道模块314(在本文中也称为管道)、以及过滤器模块316(在本文中也称为过滤器)(应认识到,如本文所使用的名称数据聚合器、MQTT客户端和管道仅用于描述目的)。这些模块中的每个模块可被配置为在数据聚合器内操作为一个或多个基于软件的过程,但也可使用其他配置。虽然数据聚合器310被示出为具有示例性模块312、314和316,但聚合器可包括更少的、其他的和/或另外的模块。以MQTT客户端312开始,它可被配置为支持与消息代理370的通信连接332。此连接可以是例如基于TCP/IP的连接,但可使用其他连接。在此连接之上,MQTT客户端312可支持与消息代理370的基于MQTT发布-订阅的消息传送协议,其中MQTT客户端312充当消息代理的客户端。例如,当数据聚合器310的MQTT客户端312与消息代理建立连接332并且形成到代理的MQTT连接时,消息代理可开始与MQTT客户端312的相应的过程376。根据一个示例,MQTT客户端312可与消息代理370订阅主题“/u/1202/d/#/Response”(其中,“#”表示通配符值)。通过订阅使用所有系统控制器250a和250b共同的Universal-Identifier(此处为“1201”)的主题,消息代理370可将由系统控制器250a和250b发布到消息代理370的使用基于“Response”的主题的所有API消息从相应的过程272a/272b转发到过程376。转而,过程376可经由连接332将API消息转发到MQTT客户端312。应认识到,也可使用其他主题。例如,MQTT客户端312也可与消息代理370订阅主题“/u/1202/d/#/Request”(或替代地,订阅主题“/u/1202/d/#/#”)。此处,消息代理370还可将使用基于“Request”的主题的由网络装置280a和280b发布到消息代理370的所有API消息从相应的过程274a/274b转发到过程376(并因此转发到MQTT客户端312)。同样,这些仅仅是示例,并且可使用其他机制来使消息代理370将API消息转发到数据聚合器310。例如,数据聚合器可例如通过指定由系统控制器的特定集合使用的完整主题(例如,“/u/1202/d/ABC123/Response”和“/u/1202/d/ABC789/Response”)来订阅为从相应的控制器接收API消息。假设数据聚合器仅订阅来自所有系统控制器250a和250b的基于“Response”的主题,那么当消息代理将API消息传递到过程376时,该过程转而可经由连接332将API消息传达到MQTT客户端312。与API消息一起,过程376还可传达API消息由相应的系统控制器250a和250b发布到的完整主题(即,该主题可包括相应的系统控制器的System-Controller-ID,诸如“/u/1202/d/ABC123/Request”或“/u/1202/d/ABC789/Request”)。当MQTT客户端312从消息代理370接收API消息(和相关联的主题)时,它可将API消息/主题转发到管道模块314。
管道模块314可被配置为用作例如数据高速缓存/消息队列,所述数据高速缓存/消息队列:从MQTT客户端312接收API消息以及可能地主题;处理API消息(例如,为了数据效率,将若干API消息聚合成更大的块);将API消息放入/写入消息队列中;并控制由过滤器316从消息队列读取API消息,以进行进一步处理。根据另一示例,管道模块314可以是多个消息队列,其中MQTT客户端312将API消息放入这些队列中的相应的队列中。以此方式,管道模块314可充当临时存储装置,直到由过滤器316处理API消息为止,如下所述。根据另一方面,取决于系统300中用户环境202a和202b/负载控制系统210a和210b的数量,可存在多个消息代理370,其中不同的消息代理服务于不同的系统控制器250a和250b。此处,数据聚合器310可具有多个MQTT客户端312,其各自至相应的消息代理。根据此示例,管道模块314可从每个MQTT客户端312接收API消息,并且将这些消息聚合成一个消息队列或多个消息队列(例如,每个MQTT客户端一个消息队列),用于由过滤器316处理。
过滤器316可表示一个或多个模块(其可操作为例如一个或多个基于软件的过程),该一个或多个模块:从管道模块314读取和/或接收API消息(和相关联的主题);基于一个或多个标准过滤这些API消息;并且然后将所得的信息转发到一个或多个目的地。在一个方面,可存在在任何给定的时间执行的多个过滤器模块,所述多个过滤器模块各自分析从管道模块314读取/接收的相同API消息,并且各自搜索和分析特定的数据并将所得的信息路由到相应的目的地。根据另一方面,假设管道模块314是多个消息队列,那么每个队列可具有(一个或多个)相应的过滤器。过滤器316可以是动态的,因为管理员可取决于系统300的期望配置来改变过滤器。过滤器316可基于API消息自身的特定字段和/或基于与相应的API消息相关联的主题来进行过滤。不同过滤器可被配置为具有不同功能。例如,一个过滤器可以操作为简单地移除/丢弃某些类型的API消息(例如,可能存在网络装置380所不需要的由系统控制器250a和250b产生的某些状况信息)并将剩余的API消息(和相关联的主题)路由到某个目的地。另一过滤器可被配置为操作为搜索和检测某些API消息和/或主题,并且将这些API消息(和相关联的主题)路由到某个目的地。另一过滤器316可被配置为对从管道模块314读取/接收的API消息执行操作(诸如对API消息执行统计分析)并且将结果转发到特定的目的地。应认识到,其他示例也是可能的。
根据示例性系统300,过滤器316可具有与web服务器340的通信连接334。此连接可以是例如基于TCP/IP或UDP/IP的连接,但可使用其他类型的连接。web服务器340可使用标准方法(诸如GET、PUT、POST、DELETE等)在此连接上支持HTTP/HTTPS(超文本传输协议/安全超文本传输协议)接口,但应认识到,也可使用其他接口。当过滤器316从管道模块314接收API消息时,它可基于消息的一个或多个字段丢弃某些消息,并且通过连接334将剩余的API消息(连同例如由系统控制器250a和250b发布的这些剩余的API消息的相应的主题一起)传达到web服务器340。过滤器316可通过使用标准HTTP方法(诸如PUT命令)来做到这一点,但可使用其他命令。同样,数据聚合器310可包括将API消息/信息路由到其他目的地的其他过滤器。作为示例,系统300还可包括可从过滤器316接收信息并将此信息存储在数据库中的数据存储系统390。数据库390可以是平面数据库、关系/SQL数据库、NoSQL/非SQL数据库和/或时间序列数据库等,但也可使用任何形式的(一个或多个)数据库。应理解,过滤器316可一次一个地或者周期性地分批(诸如每X秒或分钟、每Y条消息、和/或当Z个字节的消息准备好被转发时等)将API消息传达到web服务器340。其他变型也是可能的。
如上所提及,管道模块314可以是多个消息队列,它们各自具有相应的过滤器316。此处,每个过滤器316可具有与web服务器340的相应的连接334,并且可类似地被配置为丢弃从该过滤器316的相应的消息队列接收的某些API消息,并且通过该过滤器316的相应的连接将剩余的API消息传达到web服务器340。
根据一个特定的示例,数据聚合器310的一个或多个操作/功能可由Amazon WebServices提供,其中来自消息代理370的API消息可被馈送到由一个或多个分片(shard)组成的Kinesis Stream,并且其中(一个或多个)Lambda函数可从Kinesis Stream获得API消息,过滤API消息以丢弃某些消息,并且通过(一个或多个)HTTP接口334将剩余的API消息(和相关联的主题)转发到web服务器340。其他示例也是可能的。
现在转到web服务器340,它可以是一个或多个计算装置(例如,一个或多个计算服务器),其可包括例如一个或多个通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、微处理器、微控制器、集成电路、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或任何合适的控制器或处理装置等(下文统称为(一个或多个)处理器)(未示出)。web服务器340的(一个或多个)处理器可被配置为执行包括指令的一个或多个基于软件的应用程序和/或基于固件的模块,所述指令当由该(一个或多个)处理器执行时可将该(一个或多个)处理器配置为执行信号编码、数据处理、输入/输出处理、或将web服务器270配置为如本文所述地起作用/操作的任何其他功能。还应认识到,除了基于软件的指令和过程和/或作为基于软件的指令和过程的替代,web服务器270的本文所述的特征、功能和过程还可由硬件提供。web服务器340还可包括可以通信地耦接到(一个或多个)处理器的一个或多个存储器模块/存储器装置(包括易失性和非易失性的存储器模块/存储器装置)。存储器模块/存储器装置可被实现为一个或多个外部集成电路(IC)和/或该(一个或多个)处理器的一个或多个内部电路。该一个或多个存储器模块/存储器装置可存储基于软件的应用程序,并且还可在处理器执行应用程序时提供执行空间。web服务器340还可包括通信地耦接到处理器和/或存储器装置/存储器模块的一个或多个通信接口/收发器/网络接口装置(未示出)。通信接口可允许web服务器340通过一个或多个有线通信网络和/或无线通信网络(未示出)进行通信。通过这些网络,web服务器340可支持与数据聚合器310的一个或多个连接334,并且可支持与相应的网络装置380的相应的连接336和338。web服务器340可例如在这些连接上使用标准方法支持基于HTTP/HTTPS的接口,以与数据聚合器310和网络装置380通信。在一个方面,web服务器340可用作HTTP发布-订阅服务器。
web服务器340可包括web服务模块342(在本文中也称为web服务)和工作器(worker)服务模块344(在本文中也称为工作器服务)(应认识到,如本文所用的名称web服务器、web服务和工作器服务仅用于描述目的)。这些模块中的每个模块可在web服务器内操作为一个或多个基于软件的过程。例如,消息队列348可连接web服务模块342和工作器服务模块344。此消息队列可被实现为Redis高速缓存,但可使用其他实现方式。web服务器310还可包括一个或多个数据库,诸如订阅数据库346。订阅数据库346可以是平面数据库、关系/SQL数据库、NoSQL/非SQL数据库和/或时间序列数据库等,但也可使用任何形式的(一个或多个)数据库。虽然网络服务器340被示出为具有示例性模块342和344、消息队列348以及数据库346,但服务器可具有其他配置。
以订阅数据库346开始,它可包括用于系统300的每个系统控制器250a和250b的至少一个条目。如下文进一步描述的,web服务342可将系统控制器250a和250b的MAC地址当作/用作网络装置380可订阅的主题或信道(如该术语可用于HTTP发布-订阅服务器),但这是一个示例并且其他示例也是可能的。假设使用此格式,那么订阅数据库346可包括每个系统控制器250a和250b的MAC地址,并且还可包括系统控制器发布的和/或与消息代理370订阅的相应的主题,并且使每个MAC地址与该相应的主题相关联/相关。例如并且如插图标号350所示,对于系统控制器250a,订阅数据库346可包括系统控制器的MAC地址(“A1:B1:C1:D1:E1:F1”),并且可使此地址与由系统控制器250a使用的主题中的一个或多个主题(此处,“/u/1202/d/ABC123/Request”和“/u/1202/d/ABC123/Response”)相关联。类似地,对于系统控制器250b,订阅数据库346可包括系统控制器的MAC地址(“A2:B2:C2:D2:E2:F2”),并且可使此地址与由系统控制器250b使用的主题中的一个或多个主题(“/u/1202/d/ABC789/Request”和“/u/1202/d/ABC789/Response”)相关联。系统管理员可配置和维护此数据库。因此,当具有相应的系统控制器250的新的用户环境202被添加到系统300时,可将订阅数据库346更新为包括新的系统控制器的MAC地址和相关联的主题。同样,这是一个示例,并且其他示例也是可能的。作为另一变型,web服务342可将系统控制器250a和250b的System-Controller-ID当作/用作网络装置380可订阅的主题或信道。假设使用此格式,订阅数据库346可包括每个系统控制器250a和250b的System-Controller-ID,并且还可包括系统控制器发布的和/或与消息代理370订阅的相应的主题中的一个或多个主题并且使每个System-Controller-ID与该一个或多个主题相关联/相关。例如,订阅数据库346可如下配置:
System-Controller-ID:ABC123
主题:/u/1202/d/ABC123/Request
主题:/u/1202/d/ABC123/Response
System-Controller-ID:ABC789
主题:/u/1202/d/ABC789/Request
主题:/u/1202/d/ABC789/Response
同样,这是一个示例,并且web服务342可使任何值/标识符与相应的系统控制器250a和250b相关联并将该值/标识符用作主题或信道,并且使该值/标识符与由系统控制器使用的主题中的一个或多个主题相关联。出于描述的目的,本文将会将web服务342描述为将系统控制器250a和250b的MAC地址用作主题/信道。
转到web服务342,如所指示的,它可将订阅数据库346中列出的MAC地址中的每个MAC地址当作网络装置380可经由接口336订阅的主题或信道。web服务器340可被配置为如下进行操作。网络装置380可能期望接收由例如系统控制器250a发布到消息代理370的API消息。为此,网络装置380可经由连接336与web服务342通信,以订阅系统控制器250a的MAC地址(即,订阅MAC地址“A1:B1:C1:D1:E1:F1”)。在与web服务342订阅MAC地址时,网络装置380还可向web服务提供web服务器340可将任何API消息公布到的通知地址(例如,统一资源定位符(URL))。web服务可将此通知地址连同网络装置380已订阅系统控制器250a的MAC地址的指示一起存储在订阅数据库346中。以类似的方式,网络装置380还可经由连接336与web服务342通信,以取消订阅系统控制器(诸如系统控制器250a)的MAC地址。转而,web服务可更新订阅数据库346,以指示网络装置380已取消订阅系统控制器250a的MAC地址。web服务342可以其他方式存储哪些网络装置380已订阅哪些信道。
根据一个示例,web服务342可通过(一个或多个)连接334从数据聚合器310接收如上所述的由所有系统控制器250a和250b发布的API消息(或者如果过滤器316已移除某些API消息(诸如某些状况消息),则为由所有系统控制器250a和250b发布的API消息的子集)。同样,作为示例,这些API消息可具有与其相关联的形式为“/u/1202/d/ABC123/Response”和“/u/1202/d/ABC789/Response”的主题。当接收到API消息时,web服务342可使用订阅数据库346的配置信息将主题转换为MAC地址。例如,web服务342可将来自系统控制器250a的API消息的主题“/u/1202/d/ABC123/Response”转换为系统控制器250a的MAC地址“A1:B1:C1:D1:E1:F1”。然后,web服务342可确定是否有任何网络装置380已订阅此MAC地址。如果网络装置380已订阅该MAC地址,则web服务342可将例如API消息连同其相关联的主题和/或MAC地址一起写入消息队列348。相反,如果没有网络装置380订阅API消息,则web服务342可丢弃API消息。作为如刚刚所述的将从数据聚合器310接收的API消息的主题转换为MAC地址的替代,当网络装置380订阅MAC地址时,web服务342可使用订阅数据库346将MAC地址转换为主题或者其一部分(例如,将系统控制器250a的MAC地址“A1:B1:C1:D1:E1:F1”转换为主题“/u/1202/d/ABC123/Response”)。当web服务从数据聚合器310接收到由系统控制器250a和250b发布的API消息时,它可将与该消息相关联的主题与由网络装置380订阅的“主题”进行比较。如果网络装置380已订阅该主题,则web服务342可将API消息连同其相关联的主题和/或MAC地址一起写入消息队列348。相反,如果没有网络装置380订阅API消息,则web服务342可丢弃该API消息。其他变型也是可能的。大体上,通过如由网络装置指定的MAC地址以及通过与API消息相关联的主题的System-Controller-ID部分,web服务至少部分地可使所接收的API消息与网络装置正在寻求接收的消息相关/相关联。
如上所述,web服务342可从数据聚合器310接收由系统控制器250a和250b发布的API消息(或者如果过滤器316已移除某些API消息,则为其子集),并且然后可确定或分析每个API消息,以确定是否有任何网络装置380具有接收相应的API消息的订阅。作为另一变型,当过滤器316从管道模块314接收API消息时,它可丢弃某些消息(诸如某些状况消息),并且然后将剩余的消息周期性地批处理成块。它将消息批处理成块的方式可变化。一些示例可包括:(i)基于时间来批处理消息(例如,在X分钟时段内批处理消息);(ii)按API消息的数量来批处理消息(例如,创建X条API消息的块);(iii)基于大小来批处理消息(例如,创建X个或更少的字节的块);或它们的某种组合。关于API消息的每个批,过滤器316可确定与消息相关联的主题,并且通过连接334将这些主题的列表传达到web服务342。例如,过滤器316可提供完整的主题(例如,“/u/1202/d/ABC123/Response”和“/u/1202/d/ABC789/Response”)或主题的仅一部分(例如,仅仅System-Controller-ID)。作为替代,过滤器316可访问订阅数据库346(如连接318所示),并且将主题转换为MAC地址,并将MAC地址传递给web服务342。其他示例也是可能的。无论如何,过滤器316此时可不转发实际的API消息。在接收到主题的列表之后,web服务342可针对每个主题确定网络装置380当前是否已订阅主题(例如,通过使主题与已经订阅的MAC地址相关),并且通过连接334向过滤器316传达回对已订阅(或替代地,未订阅)的主题的指示。在从web服务342接收到此通信时,过滤器316可从批处理的API消息中丢弃掉那些未订阅的消息,并且通过连接334将剩余的API消息转发到web服务316。在接收到API消息时,web服务342可将每个API消息连同其相关联的主题和/或MAC地址一起写入消息队列348。然后,过滤器316和web服务342可重复该过程,其中过滤器316批处理API消息的另一集合并与web服务通信以确定当前已订阅了哪些相关联的主题。其他变型也是可能的。此配置的一个优点在于:更少的数据需要从数据聚合器310传达到web服务器340,从而提供更高效的通信。
根据又一变型,每当例如网络装置380与web服务342订阅系统控制器250的MAC地址时,web服务342可将那个MAC地址转换为主题(例如,对于系统控制器250a,它可将MAC地址“A1:B1:C1:D1:E1:F1”转换为主题“/u/1202/d/ABC123/Response”)。然后,web服务342可通过连接334将该主题传达到过滤器316,从而指导过滤器316转发具有对应的主题的任何API消息。作为替代,假设过滤器316可访问例如订阅数据库346,则web服务342可将MAC地址传递给过滤器316,然后过滤器316可将MAC地址转换为主题。其他示例也是可能的。应理解,如果多个网络装置380订阅来自同一系统控制器的API消息,则web服务342可仅与过滤器316通信一次。无论如何,当过滤器316从管道模块314接收API消息时,它可丢弃某些消息(诸如某些状况消息),并且然后将API消息的主题与由web服务342提供给它的主题进行比较,以确定网络装置380是否已订阅为接收消息。如果网络装置380已订阅主题,则过滤器316可通过连接334将API消息(及其相关联的主题)转发到web服务342。然后,web服务342可将API消息连同其相关联的主题和/或MAC地址一起写入消息队列348。相反,如果没有网络装置380订阅API消息,则过滤器316可丢弃API消息。类似地,每当网络装置380与web服务342取消订阅系统控制器250的MAC地址时,web服务342可将那个MAC地址转换为主题,并且然后通过连接334将该主题传达到过滤器316,从而指导过滤器316停止转发有关的API消息。应理解,如果多个网络装置同时订阅同一MAC地址,则web服务342在其他装置仍然订阅的情况下可不将此指令传达到过滤器316。同样,这仅仅是一个示例,并且其他变型也是可能的。
转到工作器服务344,它可从消息队列348读取API消息,确定订阅为接收API消息的每个网络装置380的通知地址,并且使用通知地址来通过相应的连接338将API消息传达到相应的网络装置(应认识到,通知地址可因网络装置而异)。工作器服务344可如上文所指示的使用订阅数据库346来确定通知地址,但可使用其他机制来确定地址。在将API消息传达到网络装置时,工作器服务344可包括与API消息相关联的主题和/或相应的系统控制器的MAC地址。此后,例如,网络装置380可接收API消息并对API消息进行操作。
虽然web服务342和工作器服务344被示出并描述为经由消息队列348进行通信,但此队列可能不是需要的,并且这两个模块可以其他方式进行通信。然而,在一个方面,消息队列348可提供在高数据需求情形下临时存储API消息的一种机制。此外,使用例如MAC地址而不是所提及的“Request”和“Response”主题作为网络装置380订阅API消息的机制不一定是需要的,并且web服务342和网络装置380可被配置为直接订阅所提及主题(即,网络装置380可订阅“/u/1202/d/ABC123/Response”)。尽管如此,使用例如MAC地址或其变体的所提及的配置具有至少一个益处,在于:系统控制器250和订阅数据库346可在未来时间更新,以使用不同的主题。使用例如与所提及的主题相关的MAC地址(该MAC地址可为静态值)的网络装置可允许主题改变而不影响由网络装置提供的服务应用程序。
同样,给定的网络装置380可订阅为从web服务器340接收由许多系统控制器产生的API消息。类似地,许多不同的网络装置可订阅为从web服务器340接收由同一系统控制器产生的API消息。
现在转到图4,示出了示例性系统400。系统400可类似于系统300,但除了从系统控制器250a和250b接收API消息之外,网络装置380还可例如使用HTTP接口将API消息传达到指派的系统控制器250a和250b(诸如以控制相应的用户环境中的光水平)。
根据系统400,web服务器340现在还可包括MQTT客户端模块472,MQTT客户端模块472可支持与消息代理370的通信连接474。此连接可以是例如基于TCP/IP的连接,但可使用其他连接。在此连接之上,例如,MQTT客户端472可支持与消息代理370的基于MQTT发布-订阅的消息传送协议,其中MQTT客户端472充当消息代理的客户端。例如,当web服务器340的MQTT客户端472与消息代理建立连接474并且形成到代理的MQTT连接时,消息代理可开始与MQTT客户端472的相应的过程476。
为了将API消息传达到特定系统控制器250(诸如系统控制器250a),网络装置380可通过连接336将API消息发布到web服务342,并且特别地,可将消息发布到系统控制器250a的MAC地址(即,“A1:B1:C1:D1:E1:F1”)。注意到网络装置已将API消息发布到MAC地址的情况下,web服务342可使用订阅数据库346来将MAC地址转换为与MAC地址相关联的“Request”主题(此处,“/u/1202/d/ABC123/Request”)。此后,例如,web服务可将API消息和“/u/1202/d/ABC123/Request”主题转发到MQTT客户端472。MQTT客户端472转而可使用主题“/u/1201/d/ABC123/Request”通过连接474将API消息发布到消息代理370。同时,MQTT客户端472还可通过连接474与消息代理370订阅与控制器250a的MAC地址相关联的“Response”主题(即,“/u/1202/d/ABC123/Response”),该“Response”主题也可例如由web服务342转发到MQTT客户端472。通过订阅系统控制器250a的“Response”主题,MQTT客户端472可从系统控制器250a接收对API消息的任何响应。
因此,当过程476从MQTT客户端472接收到API消息时,消息代理370可将API消息转发到过程272a以供转发到系统控制器250a(如以上所讨论的已订阅主题“/u/1202/d/ABC123/Request”的控制器250a)。当系统控制器250a处理API消息时,它可生成响应API消息,系统控制器250a可使用主题“/u/1202/d/ABC123/Response”将该响应API消息发布到消息代理370,如针对例如系统200和300所描述的。因为MQTT客户端472订阅主题“/u/1202/d/ABC123/Response”,所以消息代理370可将此响应API消息从过程272a转发到过程476,过程476然后可通过连接474将响应API消息转发到MQTT客户端472。在接收到例如响应API消息时,MQTT客户端472可取消订阅主题“/u/1202/d/ABC123/Response”,并且可将响应API消息转发到web服务342。此后,web服务342可将响应API消息的主题从“/u/1202/d/ABC123/Response”转换回系统控制器250a的MAC地址,并通过连接336将响应API消息传达到网络装置380。同样,其他变型也是可能的,诸如网络装置380订阅System-Controller-ID而不是MAC地址。
根据系统400的又一方面,web服务器340可具有多个(两个或更多个)MQTT客户端472,这些MQTT客户端472具有到消息代理370的相应的连接474。web服务342可一次一个地使用这些MQTT客户端472中的相应的MQTT客户端将API消息从网络装置380传达到相应的系统控制器250并且接收对其的响应。
虽然本文将系统400描述为基于MQTT协议,但可使用其他基于消息的协议(诸如高级消息队列协议(AMQP))。
虽然系统300和系统400在本文中被描述为包括数据聚合器310,但这些系统的另一变型可不包括此模块。此处,消息代理370可直接将API消息传达到web服务器340。例如,如果消息代理370从负载控制系统210a和210b接收到有限数量的信息,和/或如果向消息代理提供信息的负载控制系统的数量有限,则可能不需要数据聚合器310。类似地,系统300和系统400的变型可包括数据聚合器310,但可不必包括被配置为从来自管道模块314的API消息的流中移除API消息的过滤器316。换句话说,数据聚合器310可将它从消息代理接收的所有API消息转发到web服务器340,而不是移除一些消息。尽管如此,应认识到的是,数据聚合器及其相应的过滤器模块可提供用于控制信息流入web服务器340中的速率以及流入且需要被传达到web服务器的数据的量的一种示例性机制。此外,虽然本文已将系统控制器250a和250b描述为大体上以非选择性方式将大量信息/API消息转发到消息代理,其中然后数据聚合器过滤此信息,但系统控制器可被配置为选择性地仅将某些API消息转发到消息代理。然而,这可能不是期望的,因为如果稍后认识到可能需要/希望来自系统控制器的其他信息,则可能难以访问所有这些系统并作出修改。系统控制器非选择性地将大量信息/API消息转发到消息代理并且过滤器模块316被配置为选择性地丢弃某些API消息所具有的一个优点在于:如果稍后认识到可能期望使过滤器316转发另外的信息或丢弃其他信息,则管理员可仅仅更新过滤器。
现在转到图5,示出了示例性系统500。系统500类似于例如系统400,但现在还可允许网络装置580使用与由系统控制器支持的API不同的API来与指派的系统控制器250a和250b传达消息(即,向其发送消息和从其接收消息)。换句话说,如关于系统400所讨论,网络装置380可使用由系统控制器250a和250b支持的API与系统400通信。根据系统500,网络装置580可通过HTTP接口与系统500通信,但现在使用可特定于网络装置的第三方API,其中系统500在由系统控制器支持的API与第三方API之间进行转换。仅出于描述目的,根据由系统控制器250a和250b支持的API而格式化的消息在本文中将被称为“API消息”,并且根据由网络控制器580支持的第三方API而格式化的消息在本文中将被称为“第三方API消息”。
网络装置580与网络装置280a和280b以及网络装置380的类似之处在于:它可以是在由用户(例如,用户环境的房主)使用的装置和/或可以是第三方集成商,所述第三方集成商被配置为基于与相应的系统控制器250a和250b的交互来提供(一个或多个)服务。虽然图5仅示出一个网络装置580,但可存在各自被配置为可能地同时与一个或多个系统控制器通信的许多此类装置。
与系统400相比,系统500的数据聚合器310现在可包括网关模块502(在本文中也称为网关)和API转换器模块504(在本文中也称为API转换器)(应认识到,如本文所用的名称网关和API转换器仅用于描述目的)。虽然网关模块502和API转换器模块504被示出为是数据聚合器310的一部分,但这些模块可以替代地由一个或多个其他计算装置(诸如由web服务器340或消息代理370)提供,或者由与消息代理370、数据聚合器310或web服务器340中的任一者分开的另外的(一个或多个)计算装置提供。网关模块502和API转换器模块504中的每一者可在数据聚合器内操作为一个或多个基于软件的过程,但其他实现方式也是可能的。
以网关502开始,它可被配置为对网络装置580与之通信的每个系统控制器250a和250b支持与该网络装置的相应的网络通信连接508。网关502可在连接508上支持可由网络装置580用于与网关502通信的基于HTTP/HTTPS的接口。如所指示的,由网络装置580提供的服务可基于第三方API。如此,网络装置580可向网关502传达针对具体的系统控制器250a和250b的第三方API消息。网关502可被配置为然后将该第三方API消息转发到系统控制器,如以下进一步描述。类似地,如果系统控制器利用API消息进行响应,那么该响应消息可被转发到网关502,网关502然后可将响应消息转发为第三方API消息到网络装置。类似地,网络装置580可与网关502通信,以订阅为接收由具体的系统控制器250a和250b发布的API消息。网关502可被配置为将此订阅请求转发到web服务器340。当web服务器从所订阅的系统控制器接收到API消息时,web服务器可将这些消息转发到网关502,网关502然后可将消息转发为第三方API消息到网络装置。根据一个示例,网关502可不知道由网络装置580使用的特定的第三方API,但可被配置成使得由网络装置使用的第三方API的格式需要基于一定标准。作为一个示例,网关502可被配置成使得第三方API可能需要是基于RESTful(表述性状态转移)的API,其中例如网络装置580使用标准方法(诸如例如GET、PUT、POST、DELETE等)与网关502通信,并且其中例如系统控制器250a和250b以及控制装置220a和220b例如被当作资源。同样,这是一个示例,并且其他示例也是可能的。
转到API转换器504,它可为系统500提供API转换服务。特别地,API转换器504可具有与网关502的连接510。当网关502从网络装置580接收到去往具体的系统控制器250a或250b的第三方API消息时,网关可将那个消息转发到API转换器504。API转换器504可被配置为然后将第三方API消息转换为API消息(即,由系统控制器支持的API消息)并且将API消息转发到系统控制器。类似地,假设系统控制器利用API消息进行响应,那么那个消息可被转发到API转换器504。API转换器504可被配置为然后将API消息转换为第三方API消息并且将第三方API消息转发到网关502,网关502然后可将消息转发到网络装置580。类似地,当网关502从网络装置580接收到对接收由具体的系统控制器(诸如系统控制器250a)发布的API消息的订阅请求时,网关可将那个请求转发到web服务器,可能地通过API转换器504以进行转换(如果必要的话)。假设web服务器在连接334处接收到由系统控制器250a发布的(一个或多个)API消息,那么web服务器可将这(一个或多个)API消息转发到API转换器504。API转换器504可被配置为然后将该(一个或多个)API消息转换为(一个或多个)第三方API消息并且将该(一个或多个)第三方API消息转发到网关502,网关502然后可将(一个或多个)消息转发到网络装置580。
根据一个示例,系统500可包括多个API转换器504,它们各自被配置为在由系统控制器使用的API与由网络装置使用的第三方API之间转换消息,并且各自具有与网关502的相应的连接510。当网络装置580期望与具体的系统控制器250a或250b通信和/或从具体的系统控制器250a或250b接收消息时,网关504可使用“可用的”API转换器504进行该通信。换句话说,给定的API转换器504可仅支持在任何给定的时间与一个系统控制器250a和250b的通信。根据一个示例,API转换器504可静态地存在(即,在任何给定的时间都有限定的数量在“运行”或执行),并且可用/免费的转换器可由网关502根据需要使用。根据另一示例,可如网关502所需创建API转换器。根据此示例,网关502和(一个或多个)API转换器504可特定于具体的第三方API。如下文所讨论的,网关502和(一个或多个)API转换器504的另外的实例可用于支持另外的第三方API。
假设系统500包括多个API转换器504,那么如图5中进一步所示,每个API转换器可具有与web服务器340的并且特别是与web服务342的相应的通信连接512。此连接可以是例如基于TCP/IP或UDP/IP的连接,但也可使用其他连接。web服务器340/web服务342可在此连接上使用标准方法支持基于HTTP/HTTPS的接口,如本文所讨论。
现在将参考系统500的示例性操作。为了将例如具体的命令或请求传达到特定的系统控制器250(诸如系统控制器250a),网络装置580可经由通信连接508将第三方API消息传达到网关502。网络装置可使用例如标准POST命令来传达消息。使用此第三方API消息,网络装置可包括系统控制器250a的MAC地址(即,“A1:B1:C1:D1:E1:F1”)(但也可使用例如系统控制器唯一ID值)。在接收到消息时,网关502可经由相应的连接510将第三方API消息(和MAC地址)转发到相应的API转换器504。在接收到消息时,API转换器504可将第三方API消息转换为API消息。此后,操作流程可如关于例如图4类似所讨论地进行。API转换器504接下来可通过相应的连接512将API消息发布到web服务342,并且特别地,可将消息发布到系统控制器250a的MAC地址(即,“A1:B1:C1:D1:E1:F1”)。注意到API转换器已将API消息发布到MAC地址的情况下,web服务342可使用订阅数据库346来将MAC地址转换为与MAC地址相关联的“Request”主题(此处,“/u/1202/d/ABC123/Request”)。此后,web服务可将API消息和“/u/1202/d/ABC123/Request”主题转发到MQTT客户端472。MQTT客户端472转而可使用主题“/u/1201/d/ABC123/Request”通过连接474将API消息发布到消息代理370。同时,MQTT客户端472还可通过连接474与消息代理370订阅与控制器250a的MAC地址相关联的“Response”主题(即,“/u/1202/d/ABC123/Response”)。通过订阅系统控制器250a的“Response”主题,MQTT客户端472可从系统控制器250a接收对API消息的任何响应。
因此,当消息代理370的过程476从MQTT客户端472接收到API消息时,消息代理可将API消息转发到过程272a,以便转发到系统控制器250a(如以上所讨论的已订阅主题“/u/1202/d/ABC123/Request”的控制器250a)。当系统控制器250a处理API消息时,它可生成响应API消息,系统控制器250a可使用主题“/u/1202/d/ABC123/Response”将该响应API消息发布到消息代理370,如针对例如系统200、300和400所描述的。因为MQTT客户端472订阅主题“/u/1202/d/ABC123/Response”,所以消息代理370可将此响应API消息从过程272a转发到过程476,过程476然后可通过连接474将该响应API消息转发到MQTT客户端472。在接收到该响应API消息时,MQTT客户端472可取消订阅主题“/u/1202/d/ABC123/Response”,并且可将该响应API消息转发到web服务342。此后,web服务342可将该响应API消息的主题从“/u/1202/d/ABC123/Response”转换回系统控制器250a的MAC地址,并通过连接512将该响应API消息传达到API转换器504。
在从web服务342接收到API响应消息时,API转换器504可将API消息转换为第三方API消息(诸如响应消息),并通过连接510将第三方API消息转发到网关502。此后,网关502可将第三方API消息转发到网络装置580。同样,其他变型也是可能的。
类似地,为了使网络装置580订阅为接收由系统控制器(诸如系统控制器250a)发布的API消息,网络装置580可经由通信连接508与网关502通信,以订阅例如系统控制器250a的MAC地址。在接收到订阅请求时,网关502可经由相应的连接510将请求转发到相应的API转换器504,该相应的API转换器504然后可通过相应的连接512将请求转发到web服务342,从而转换请求(如果必要的话)。替代地,网关502可将订阅请求直接转发到web服务。无论如何,操作流程然后可如关于例如图3所讨论的类似地进行。当web服务342经由连接334从数据聚合器310接收到由系统控制器250a发布的API消息时,web服务可确定网络装置(诸如网络装置580)已订阅为接收这些API消息,如本文所讨论。web服务342转而然后可经由相应的连接510将这些API消息(连同例如其相关联的主题和/或MAC地址一起)转发到相应的API转换器504。替代地,web服务342可将这些API消息转发到工作器服务344(诸如通过消息队列348),工作器服务344转而可经由相应的连接510将API消息(连同例如其相关联的主题和/或MAC地址一起)转发到相应的API转换器504。其他变型也是可能的。在从web服务342接收到API消息时,API转换器504可将API消息转换为第三方API消息,并通过相应的连接510将第三方API消息转发到网关502。此后,网关502可将第三方API消息转发到网络装置580。在将第三方API消息传达到网络装置时,消息可包括与API消息相关联的主题和/或相应的系统控制器250a的MAC地址。同样,其他变型也是可能的。
如上文所指示的,根据图5所示的示例,网关502和(一个或多个)API转换器504可特定于具体的第三方API。根据系统500的又一方面,系统可支持多个不同的第三方API。此处,系统500可包括网关502和(一个或多个)API转换器504的多个实例/对,其中每个网关/(一个或多个)API转换器对支持相应的第三方API。取决于网络装置580使用哪个API,装置可与对应的网关通信(例如,每个网关可具有网络装置与之通信的相应的地址/URL)。
根据一个特定的示例,网关502和(一个或多个)API转换器502中的一个或多个可由Amazon Web Service提供,其中网关502可以是Amazon API Gateway,并且其中API转换器的每个相应的实例可以是被配置为如本文所讨论地执行API转换并且如本文所讨论地与web服务器340通信的相应的Lambda函数。此处,Amazon API Gateway可将端点暴露给网络装置580,并且可将如本文所述配置的Lambda函数分配给相应的网关端点。
现在参考系统300、400和500的又一方面,如本文所讨论的,web服务器340可将系统控制器250a和250b的例如MAC地址当作/用作网络装置380和580例如可订阅其和/或向其发布消息的主题或信道。订阅数据库346可包括系统控制器的MAC地址,并且可使此地址与由系统控制器250a和250b使用的主题中的一个或多个主题相关联,如插图标号350所示。同样,这是一个示例。
根据另一示例,还可使授权/访问令牌与相应的系统控制器250a和250b相关联,然后可使这些令牌与由系统控制器使用的主题中的一个或多个主题相关联,其中系统300、400和500以与如本文所述的可使用MAC地址的方式类似的方式使用令牌。例如,出于安全目的,为了使网络装置380或580(即,第三方)与web服务器340或网关502通信以获得对用户环境202a或202b/负载控制系统210a或210b的访问,网络装置可能需要包括例如与HTTP消息一起的可由web服务器340和/或网关502使用以确保允许网络装置访问用户环境202a或202b/负载控制系统210a或210b的授权/访问令牌。用户环境/负载控制系统的用户(诸如房主)可使用例如基于OAuth(例如,OAuth 2.0)的服务来获得此类令牌。这种服务可与系统300、400和500分开提供。在用户获得这种令牌的过程中,它可被存储在例如订阅数据库346中,并且还可被提供给第三方并由第三方和网络服务器340和/或网关502用于认证/授权目的。
在此方面,授权令牌可被视为与用户相关联。根据系统300、400和500的一个方面,这些令牌还可与系统控制器相关联。例如,假设用户环境202a的用户/房主通过基于OAuth的服务获得令牌“XYZ123”,并且假设用户环境202b的用户/房主通过基于OAuth的服务获得令牌“XYZ456”。除了出于安全目的使用这些令牌之外,例如,这些令牌还可被存储在订阅数据库346中(或者替代地,存储在诸如授权数据库的另一数据库中,其中数据库346具有到存储在授权数据库中的令牌的链接),并且与相应的系统控制器250a和250b相关联,并因此与由系统控制器使用的主题中的一个或多个主题相关联,如图5的插图标号350中所示。
如关于图3的系统300所讨论的,为了使网络装置380接收由例如系统控制器250a发布的API消息,它可订阅MAC地址“A1:B1:C1:D1:E1:F1”,如本文所讨论的。关于授权令牌,当网络装置380将HTTP消息传达到web服务器340以订阅为从系统控制器250a接收API消息时,web服务器340可将HTTP消息内的授权令牌(即,“XYZ123”)当作/用作对订阅授权令牌的请求,其中系统300现在以与其使用MAC地址的方式类似的方式使用令牌,以确定由系统控制器250a发布的API消息应该被转发到网络装置。
类似地,如关于图4的系统400所讨论的,为了使网络装置380将API消息传达到例如系统控制器250a,它可将消息发布到系统控制器的MAC地址。关于授权令牌,当网络装置将HTTP消息传达到web服务器以将API消息发布到系统控制器250a时,web服务器340可将HTTP消息内的授权令牌(即,“XYZ123”)当作/用作对将API消息发布到授权令牌的请求,其中系统400现在以与其使用MAC地址的方式类似的方式使用令牌,以便与系统控制器250a传达API消息。
类似地,如关于图5的系统500所讨论的,为了使网络装置580将第三方API消息传达到例如系统控制器250a,它可将系统控制器的MAC地址传达到网关502。关于授权令牌,当网络装置580将HTTP消息(其包括第三方API消息)传达到网关时,网关可将来自HTTP消息的授权令牌(即,“XYZ123”)转发到API转换器504,API转换器504可将第三方API消息转换为API消息。当API转换器504将HTTP消息传达到web服务器340以将API消息发布到系统控制器250a时,它可包括与HTTP消息一起的令牌(例如,用于授权目的)。此后,web服务器340可将HTTP消息内的授权令牌(即,“XYZ123”)当作/用作对将API消息发布到授权令牌的请求,其中系统500现在以与其使用MAC地址的方式类似的方式使用令牌,以便与系统控制器250a传达API消息。授权令牌还可以类似的方式在系统500中用于使网络装置580订阅为接收由系统控制器发布的API消息。同样,其他示例性过程流程也是可能的。
大体上,应认识到,在本文中被描述为消息代理370、数据聚合器310和web服务器340的功能和操作各自可在不同计算装置上执行、或在同一计算装置上执行、或它们的某种组合。这些模块中的一个或多个模块也可以是基于云的系统。类似地,应认识到,在本文中被描述为由消息代理370、数据聚合器310或web服务器340执行的功能和操作可由其他模块执行。例如,web服务器340可提供过滤器316而不是数据聚合器310。再者,虽然在本文中将功能和操作描述为由消息代理370、数据聚合器310和web服务器340执行,但功能和操作可由另外的模块执行。例如,web服务342和工作器服务344可分布在多个计算装置之上。订阅数据库346可以是与web服务器340等分开的数据库管理系统。其他变型也是可能的。
现在参考如本文所述的一个示例性过程。虽然此示例被描述为操作的序列,但并非所有操作都是必需的,另外的和/或其他操作可包括在内,并且操作的顺序可变化。根据此示例,系统可被配置为维护数据库,所述数据库被配置为存储对应于多个负载控制系统的条目,所述多个负载控制系统包括第一负载控制系统和第二负载控制系统。所述多个负载控制系统中的每个负载控制系统可被配置为控制用于相应的环境的电气负载。所述多个负载控制系统中的每个负载控制系统可具有与所述负载控制系统相关联的值和标识符。所述数据库可被配置为对于所述多个负载控制系统中的每个负载控制系统使所述负载控制系统的所述值与所述负载控制系统的所述标识符相关联。所述第一负载控制系统可包括第一值和第一标识符,并且所述第二负载控制系统可包括第二值和第二标识符。所述第一负载控制系统可被配置为传达与所述第一负载控制系统中发生的事件有关的消息,并且所述第二负载控制系统可被配置为传达与所述第二负载控制系统中发生的事件有关的消息。所述系统可从网络装置接收对接收由所述第一负载控制系统传达的消息的请求。所述请求可包括与所述第一负载控制系统相关联的所述第一值。所述系统可接收由所述第一负载控制系统传达的第一消息。所述第一消息可使所述第一负载控制系统的所述第一标识符与所述第一消息相关联。至少部分地基于所述请求包括所述第一值以及所述第一消息使所述第一标识符与所述第一消息相关联,所述系统可确定所述网络装置已请求接收由所述第一负载控制系统传达的所述第一消息。至少部分地基于确定所述网络装置已请求接收所述第一消息,所述系统可将所述第一消息传达到所述网络装置。
根据另一和/或另外的示例,所述系统从所述网络装置接收所述请求可包括:所述系统经由基于HTTP的接口接收所述请求,并且所述系统将所述第一消息传达到所述网络装置可包括:所述系统经由基于HTTP的接口传达所述第一消息。
根据另一和/或另外的示例,所述第一负载控制系统可被配置为使用基于消息的接口来传达所述第一消息。根据另一和/或另外的示例,所述第一负载控制系统可被配置为将所述第一消息传达到消息代理。另外,所述系统接收由所述第一负载控制系统传达的所述第一消息可包括:所述系统经由所述消息代理接收所述第一消息。所述消息代理可被配置为将所述第一消息传达到消息队列。另外,所述系统经由所述消息代理接收所述第一消息可包括:所述系统经由所述消息队列接收所述第一消息。
根据另一和/或另外的示例,与所述多个负载控制系统中的每个负载控制系统相关联的所述值可包括通信地址、媒体访问控制地址、授权令牌和随机值中的至少一者。
根据另一和/或另外的示例,所述系统还可被配置为接收由所述第二负载控制系统传达的第二消息。所述第二消息可使所述第二负载控制系统的所述第二标识符与所述第二消息相关联。所述系统可确定不存在对接收由所述第二负载控制系统传达的消息的请求。至少部分地基于确定不存在对接收由所述第二负载控制系统传达的消息的请求,所述系统丢弃所述第二消息。
根据另一和/或另外的示例,所述系统可被配置为至少部分地基于确定所述网络装置已请求接收所述第一消息而将所述第一消息写入消息队列。另外,所述系统将所述第一消息传达到所述网络装置可包括:所述系统从所述消息队列读取所述第一消息,并将所读取的第一消息传达到所述网络装置。
根据另一和/或另外的示例,所述网络装置可包括第一网络装置。所述系统可进一步被配置为从第二网络装置接收对接收由所述第二负载控制系统传达的消息的请求。来自所述第二网络装置的所述请求可包括与所述第二负载控制系统相关联的所述第二值。所述系统可接收由所述第二负载控制系统传达的第三消息。所述第三消息可使所述第二负载控制系统的所述第二标识符与所述第三消息相关联。至少部分地基于来自所述第二网络装置的所述请求包括所述第二值以及所述第三消息使所述第二标识符与所述第三消息相关联,所述系统可确定所述第二网络装置已请求接收由所述第二负载控制系统传达的所述第三消息。至少部分地基于确定所述第二网络装置已请求接收所述第三消息,所述系统可将所述第三消息传达到所述第二网络装置。根据另一和/或另外的示例,所述第一网络装置可能未请求接收由所述第二负载控制系统传达的消息。所述系统可至少部分地基于所述第一网络装置未请求接收由所述第二负载控制系统传达的消息而不将所述第三消息传达到所述第一网络装置。
根据另一和/或另外的示例,除所述第一消息之外,所述系统可被配置为接收由所述第一负载控制系统传达的多个消息。所述多个消息中的每个消息可使所述第一负载控制系统的所述第一标识符与所述消息相关联。至少部分地基于来自所述第一网络的所述请求包括所述第一值以及所述多个消息中的每个消息使所述第一标识符与所述消息相关联,所述系统可确定所述第一网络装置已请求接收由所述第一负载控制系统传达的所述多个消息。至少部分地基于确定所述第一网络装置已请求接收所述多个消息,所述系统可将所述多个消息传达到所述第一网络装置。
根据另一和/或另外的示例,所述系统可被配置为从所述第一网络装置接收对将第四消息传达到所述第一负载控制系统的请求。对传达所述第四消息的所述请求可包括与所述第一负载控制系统相关联的所述第一值。至少部分地基于对传达所述第四消息的所述请求包括所述第一值,所述系统可使所述第四消息跟与所述第一负载控制系统相关联的所述第一标识符相关联。所述系统可将所述第四消息连同与所述第一负载控制系统相关联的所述第一标识符一起传达到所述第一负载控制系统。
根据另一和/或另外的示例,所述系统将所述第四消息连同与所述第一负载控制系统相关联的所述第一标识符一起传达到所述第一负载控制系统可包括:所述系统将所述第四消息连同所述第一标识符一起传达到消息代理,所述消息代理被配置为将所述第四消息传达到所述第一负载控制系统。根据另一和/或另外的示例,所述系统可从所述消息代理接收第五消息,所述第五消息由所述第一负载控制系统传达到所述消息代理并且响应于所述第四消息。所述第五消息可使所述第一负载控制系统的所述第一标识符与所述第五消息相关联。所述系统可将所述第五消息传达到所述第一网络装置。根据另一和/或另外的示例,所述系统可被配置为将对转发由所述第一负载控制系统传达到所述消息代理的消息的请求传达到所述消息代理。所述系统从所述消息代理接收所述第五消息可包括:所述系统至少部分地基于将对转发由所述第一负载控制系统传达的消息的所述请求传达到所述消息代理而从所述消息代理接收所述第五消息。根据另一和/或另外的示例,在接收到所述第五消息之后,所述系统可将对停止转发由所述第一负载控制系统传达的消息的请求传达到所述消息代理。根据另一和/或另外的示例,所述系统接收对将所述第四消息传达到所述第一负载控制系统的所述请求可包括:所述系统经由基于HTTP的接口接收所述请求,并且所述系统将所述第五消息传达到所述第一网络装置可包括:所述系统经由基于HTTP的接口传达所述第五消息。根据另一和/或另外的示例,所述第一负载控制系统可被配置为将所述第一消息传达到所述消息代理。所述系统接收由所述第一负载控制系统传达的所述第一消息可包括:所述系统经由所述消息代理接收所述第一消息。根据另一和/或另外的示例,所述系统经由所述消息代理接收所述第一消息可包括:所述系统经由第一通信连接经由所述消息代理接收所述第一消息,并且所述系统从所述消息代理接收所述第五消息可包括:所述系统经由与所述第一通信连接不同的第二通信连接从所述消息代理接收所述第五消息。
根据另一和/或另外的示例,所述第一负载控制系统可被配置为使用第一主题将消息发布到所述消息代理,并且可被配置为使用第二主题与所述消息代理订阅为接收消息。所述第一主题和所述第二主题各自可包括与所述第一负载控制系统相关联的所述第一标识符以及主题值,其中对于所述第一主题和所述第二主题,所述主题值可以是不同的。所述数据库可被配置为使所述第一负载控制系统的所述第一值与所述第一主题和所述第二主题相关联。由所述第一负载控制系统传达的所述第一消息可使所述第一主题与所述第一消息相关联。所述系统确定所述第一网络装置已请求接收所述第一消息可包括:所述系统使所述第一主题与所述第一值相关。所述系统使所述第四消息与所述第一标识符相关联可包括:所述系统使所述第四消息与所述第二主题相关联,并且所述系统将所述第四消息连同所述第一标识符一起传达到所述消息代理可包括:所述系统将所述第四消息连同所述第二主题一起传达到所述消息代理。
应认识到,这是一个示例并且其他示例也是可能的。应认识到,本文对第一、第二、第三等的使用意在区分例如不同的消息、负载控制系统等,并且并不意在暗示例如此类消息、负载控制系统等的最小或最大数量。
现在参考如本文所述的另一示例性过程。虽然此示例被描述为操作的序列,但并非所有操作都是必需的,另外的和/或其他操作可包括在内,并且操作的顺序可变化。根据此示例,系统可被配置为从网络装置接收对接收由负载控制系统传达的消息的请求。所述请求可包括对与所述负载控制系统相关联的信道的订阅请求。所述负载控制系统可被配置为控制用于环境的电气负载。所述负载控制系统可被配置为使用第一主题将消息发布到消息代理,并且可被配置为通过与所述消息代理订阅第二主题来从所述消息代理接收消息。所述系统可经由所述消息代理接收由所述负载控制系统传达的第一消息。所述第一消息可与所述第一主题相关联,并且所述第一消息可经由HTTP接口接收。所述系统可确定与所述第一消息相关联的所述第一主题与所述信道相关。至少部分地基于确定与所述第一消息相关联的所述第一主题与所述信道相关,所述系统可确定所述网络装置已请求接收由所述负载控制系统传达的所述第一消息。至少部分地基于确定所述网络装置已请求接收所述第一消息,所述系统可将所述第一消息传达到所述网络装置。
根据另一和/或另外的示例,所述系统可进一步被配置为从所述网络装置接收对将第二消息传达到所述负载控制系统的请求。对传达所述第二消息的所述请求可包括与所述负载控制系统相关联的所述信道。至少部分地基于对传达所述第二消息的所述请求,所述系统可使所述第二消息与所述第二主题相关联。所述系统可通过使用所述第二主题将所述第二消息发布到所述消息代理来将所述第二消息传达到所述消息代理。所述消息代理可被配置为至少部分地基于所述负载控制系统与所述消息代理订阅所述第二主题而将所述第二消息转发到所述负载控制系统。所述系统可通过与所述消息代理订阅所述第一主题来将对转发由所述负载控制系统发布的消息的请求传达到所述消息代理。所述系统可从所述消息代理接收由所述负载控制系统使用所述第一主题发布到所述消息代理的第三消息。在接收到所述第三消息之后,所述系统可将对取消订阅所述第一主题的请求传达到所述消息代理。所述系统可将所述第三消息传达到所述网络装置。
根据另一和/或另外的示例,在将对取消订阅所述第一主题的所述请求传达到所述消息代理之后,所述系统可进一步被配置为经由所述消息代理接收由所述负载控制系统传达的第四消息。所述第四消息可使所述第一主题与所述第四消息相关联。所述系统可确定与所述第四消息相关联的所述第一主题与所述信道相关。至少部分地基于确定与所述第四消息相关联的所述第一主题与所述信道相关,所述系统可确定所述网络装置已请求接收由所述负载控制系统传达的所述第四消息。至少部分地基于确定所述网络装置已请求接收所述第四消息,所述系统可将所述第四消息传达到所述网络装置。所述系统可被配置为使用基于HTTP的接口来与所述网络装置通信。
根据另一和/或另外的示例,所述信道可以是与所述负载控制系统相关联的通信地址、与所述负载控制系统相关联的媒体访问控制地址、授权令牌和随机值中的至少一者。
根据另一和/或另外的示例,所述系统可经由不同通信连接来接收所述第一消息和所述第三消息。
应认识到,这是一个示例并且其他示例也是可能的。还应认识到,本文对第一、第二、第三等的使用意在区分例如不同的消息和主题,并且并不意在暗示例如此类消息和主题的最小或最大数量。
现在参考如本文所述的另一示例性过程。虽然此示例被描述为操作的序列,但并非所有操作都是必需的,另外的和/或其他操作可包括在内,并且操作的顺序可变化。根据此示例,系统可被配置为从网络装置接收对订阅与多个负载控制系统中的第一负载控制系统相关联的信道的请求。所述多个负载控制系统中的每个负载控制系统可被配置为控制用于相应的环境的电气负载。所述多个负载控制系统中的每个负载控制系统可被配置为使用相应的第一主题将消息发布到消息代理,并且可被配置为通过与所述消息代理订阅相应的第二主题来从所述消息代理接收消息。与所述第一负载控制系统相关联的所述信道可与所述第一负载控制系统的所述第一主题和所述第二主题相关。对订阅与所述第一负载控制系统相关联的所述信道的所述请求可包括对接收由所述第一负载控制系统发布到所述第一主题的消息的请求。所述系统可从计算服务器接收与所述多个负载控制系统中的相应的一个或多个相关联的主题的集合。所述计算服务器可被配置为从所述消息代理接收由所述多个负载控制系统中的所述一个或多个负载控制系统发布到所述消息代理的消息,并且可进一步被配置为基于所接收的消息来确定所述第一主题的集合。所接收的消息可包括由所述第一负载控制系统发布到与所述第一负载控制系统相关联的所述第一主题的第一消息。主题的集合可包括与所述第一负载控制系统相关联的所述第一主题。所述系统可确定从所述计算服务器接收的主题的集合包括与所述第一负载控制系统相关联的所述第一主题,并且确定所述网络装置已请求接收由所述第一负载控制系统发布到所述第一主题的消息。至少部分地基于所述确定,所述系统可将对转发由所述第一负载控制系统发布的所述第一消息的指示传达到所述计算服务器。响应于传达所述指示,所述系统可从所述计算服务器接收由所述第一负载控制系统发布的所述第一消息。所述系统可将由所述第一负载控制系统发布的所述第一消息传达到所述网络装置。
根据另一和/或另外的示例,所述系统可从所述网络装置接收对将第二消息传达到所述第一负载控制系统的请求,其中对传达的所述请求可包括与所述第一负载控制系统相关联的所述信道;至少部分地基于对传达的所述请求,所述系统可使所述第二消息跟与所述第一负载控制系统相关联的所述第二主题相关联。所述系统可通过使用与所述第一负载控制系统相关联的所述第二主题将所述第二消息发布到所述消息代理来将所述第二消息传达到所述消息代理。所述消息代理可被配置为至少部分地基于所述第一负载控制系统与所述消息代理订阅与所述第一负载控制系统相关联的所述第二主题而将所述第二消息转发到所述第一负载控制系统。
根据另一和/或另外的示例,所述系统可将对订阅与所述第一负载控制系统相关联的所述第一主题的请求传达到所述消息代理,并且至少部分地基于将对订阅所述第一主题的所述请求传达到所述消息代理,可从所述消息代理接收由所述第一负载控制系统使用与所述第一负载控制系统相关联的所述第一主题发布到所述消息代理的第三消息。所述第三消息可以响应于所述第二消息。所述系统可将所述第三消息传达到所述网络装置。
根据另一和/或另外的示例,在接收到所述第三消息之后,所述系统可将对取消订阅与所述第一负载控制系统相关联的所述第一主题的请求传达到所述消息代理。
根据另一和/或另外的示例,所述信道可包括与所述第一负载控制系统相关联的通信地址、与所述第一负载控制系统相关联的媒体访问控制地址、授权令牌和随机值中的至少一者。
根据另一和/或另外的示例,所述第一消息和所述第三消息可经由不同的通信连接来接收。
应认识到,这是一个示例并且其他示例也是可能的。还应认识到,本文对第一、第二、第三等的使用意在区分例如不同的负载控制系统、消息和主题,并且并不意在暗示例如此类负载控制系统、消息和主题的最小或最大数量。
除了本文已经描述的内容之外,所述方法、过程和系统还可在例如结合在一个或多个计算机可读介质中以便由(一个或多个)计算机或(一个或多个)处理器执行的(一个或多个)计算机程序、软件和/或固件中实现。计算机可读介质的示例包括电子信号(通过有线连接或无线连接传输)和有形/非暂时性计算机可读存储介质。有形/非暂时性计算机可读存储介质的示例包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、可移除磁盘、以及光学介质,诸如CD-ROM盘和数字通用光盘(DVD)。
虽然依据某些实施方案以及大体上相关联的方法描述了本公开,但是实施方案和方法的更改和变换对本领域的技术人员来说将是显然的。因此,以上对示例性实施方案的描述并不限制本公开。在不背离本公开的精神和范围的情况下,其他改变、替换和更改也是可能的。

Claims (10)

1.一种控制设备,包括:
至少一个处理器;
至少一个存储器装置,所述至少一个存储器装置通信地耦接到所述至少一个处理器,并且具有存储在所述至少一个存储器装置上的软件指令,所述软件指令当由所述至少一个处理器执行时引导所述至少一个处理器:
维护数据库,所述数据库被配置为存储对应于多个负载控制系统的条目,所述多个负载控制系统包括第一负载控制系统和第二负载控制系统,其中:
所述多个负载控制系统中的每个负载控制系统被配置为控制用于相应的环境的电气负载,
所述多个负载控制系统中的每个负载控制系统具有与所述负载控制系统相关联的值和标识符,
所述数据库被配置为对于所述多个负载控制系统中的每个负载控制系统使所述负载控制系统的所述值与所述负载控制系统的所述标识符相关联,
所述第一负载控制系统包括第一值和第一标识符,并且所述第二负载控制系统包括第二值和第二标识符,
所述第一负载控制系统被配置为传达与所述第一负载控制系统中发生的事件有关的消息,以及
所述第二负载控制系统被配置为传达与所述第二负载控制系统中发生的事件有关的消息;
从网络装置接收对接收由所述第一负载控制系统传达的消息的请求,其中所述请求包括与所述第一负载控制系统相关联的所述第一值;
接收由所述第一负载控制系统传达的第一消息,其中所述第一消息使所述第一负载控制系统的所述第一标识符与所述第一消息相关联;
至少部分地基于所述请求包括所述第一值以及所述第一消息使所述第一标识符与所述第一消息相关联,确定所述网络装置已请求接收由所述第一负载控制系统传达的所述第一消息;以及
至少部分地基于确定所述网络装置已请求接收所述第一消息,将所述第一消息传达到所述网络装置。
2.如权利要求1所述的控制设备,其中从所述网络装置接收所述请求包括:经由基于HTTP(超文本传输协议)的接口接收所述请求,并且其中将所述第一消息传达到所述网络装置包括:经由基于HTTP的接口传达所述第一消息。
3.如权利要求2所述的控制设备,其中所述第一负载控制系统被配置为使用基于消息的接口来传达所述第一消息。
4.如权利要求2所述的控制设备,其中所述第一负载控制系统被配置为将所述第一消息传达到消息代理,并且其中接收由所述第一负载控制系统传达的所述第一消息包括:经由所述消息代理接收所述第一消息。
5.如权利要求4所述的控制设备,其中所述消息代理被配置为将所述第一消息传达到消息队列,并且其中经由所述消息代理接收所述第一消息包括:经由所述消息队列接收所述第一消息。
6.如权利要求1所述的控制设备,其中与所述多个负载控制系统中的每个负载控制系统相关联的所述值包括以下中的至少一者:
通信地址;
授权令牌;或
随机值。
7.如权利要求1所述的控制设备,其中与所述多个负载控制系统中的每个负载控制系统相关联的所述值包括媒体访问控制地址。
8.如权利要求1所述的控制设备,其中所述指令当由所述至少一个处理器执行时进一步引导所述至少一个处理器:
接收由所述第二负载控制系统传达的第二消息,其中所述第二消息使所述第二负载控制系统的所述第二标识符与所述第二消息相关联;
确定不存在对接收由所述第二负载控制系统传达的消息的请求;以及
至少部分地基于确定不存在对接收由所述第二负载控制系统传达的消息的请求,丢弃所述第二消息。
9.如权利要求1所述的控制设备,
其中所述指令当由所述至少一个处理器执行时进一步引导所述至少一个处理器:
至少部分地基于确定所述网络装置已请求接收所述第一消息,将所述第一消息写入消息队列;以及
其中将所述第一消息传达到所述网络装置包括:从所述消息队列读取所述第一消息,并将所读取的第一消息传达到所述网络装置。
10.如权利要求1所述的控制设备,其中所述网络装置包括第一网络装置,并且其中所述指令当由所述至少一个处理器执行时进一步引导所述至少一个处理器:
从第二网络装置接收对接收由所述第二负载控制系统传达的消息的请求,其中来自所述第二网络装置的所述请求包括与所述第二负载控制系统相关联的所述第二值;
接收由所述第二负载控制系统传达的第二消息,其中所述第二消息使所述第二负载控制系统的所述第二标识符与所述第二消息相关联;
至少部分地基于来自所述第二网络装置的所述请求包括所述第二值以及所述第二消息使所述第二标识符与所述第二消息相关联,确定所述第二网络装置已请求接收由所述第二负载控制系统传达的所述第二消息;以及
至少部分地基于确定所述第二网络装置已请求接收所述第二消息,将所述第二消息传达到所述第二网络装置。
CN202210185956.8A 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法 Active CN114598691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210185956.8A CN114598691B (zh) 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201762464834P 2017-02-28 2017-02-28
US62/464,834 2017-02-28
US201762465433P 2017-03-01 2017-03-01
US62/465,433 2017-03-01
US201762485212P 2017-04-13 2017-04-13
US62/485,212 2017-04-13
CN202210185956.8A CN114598691B (zh) 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法
PCT/US2018/020270 WO2018160728A1 (en) 2017-02-28 2018-02-28 Communicating with and controlling load control systems
CN201880025150.4A CN110622472B (zh) 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880025150.4A Division CN110622472B (zh) 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法

Publications (2)

Publication Number Publication Date
CN114598691A true CN114598691A (zh) 2022-06-07
CN114598691B CN114598691B (zh) 2024-01-12

Family

ID=61683907

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880025150.4A Active CN110622472B (zh) 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法
CN202210185956.8A Active CN114598691B (zh) 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201880025150.4A Active CN110622472B (zh) 2017-02-28 2018-02-28 与负载控制系统通信并控制负载控制系统的系统和方法

Country Status (6)

Country Link
US (3) US10678203B2 (zh)
EP (1) EP3590232B1 (zh)
CN (2) CN110622472B (zh)
CA (2) CA3054798A1 (zh)
MX (1) MX2019010268A (zh)
WO (1) WO2018160728A1 (zh)

Families Citing this family (7)

* 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
US10901812B2 (en) * 2017-09-18 2021-01-26 Rapyuta Robotics Co., Ltd. Managing communication between cloud and heterogeneous devices across networks
WO2021021635A1 (en) * 2019-07-26 2021-02-04 Lutron Technology Company Llc Provisioning multiple cloud-based services to control devices
US11093309B1 (en) * 2020-07-28 2021-08-17 Sprint Communications Company L.P. Communication hub for information technology (IT) services
US11895564B2 (en) 2020-09-22 2024-02-06 Lutron Technology Company Llc Transmission of control data on wireless network communication links
US11811884B1 (en) * 2020-12-11 2023-11-07 Amazon Technologies, Inc. Topic subscription provisioning for communication protocol
CN113573171A (zh) * 2021-07-14 2021-10-29 国能日新科技股份有限公司 遥控遥调方法、装置及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100292857A1 (en) * 2009-05-18 2010-11-18 Consolidated Edison Company Of New York, Inc. Electrical network command and control system and method of operation
CN105208133A (zh) * 2015-10-20 2015-12-30 上海斐讯数据通信技术有限公司 一种服务器、负载均衡器以及服务器负载均衡方法和系统
US20160028780A1 (en) * 2014-07-22 2016-01-28 Nemrude Verzano Managed Device-to-Device Communication in Business Computing Systems
CN105607511A (zh) * 2014-11-17 2016-05-25 西门子工业公司 基于evse的能量自动化、管理和保护系统与方法
CN106325240A (zh) * 2016-06-30 2017-01-11 浙江汉华节能技术有限公司 基于多种通信方式的智能安全用电管理装置及系统
WO2017024268A2 (en) * 2015-08-05 2017-02-09 Lutron Electronics Co., Inc. Commissioning and controlling load control devices

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667193A (en) * 1983-12-13 1987-05-19 Honeywell, Inc. Addressing system for simultaneously polling plural remote stations
US5544036A (en) * 1992-03-25 1996-08-06 Brown, Jr.; Robert J. Energy management and home automation system
US5877957A (en) * 1996-11-06 1999-03-02 Ameritech Services, Inc. Method and system of programming at least one appliance to change state upon the occurrence of a trigger event
US7349682B1 (en) * 1998-06-12 2008-03-25 Sbc Properties, L.P. Home gateway system for automation and security
US6119125A (en) * 1998-04-03 2000-09-12 Johnson Controls Technology Company Software components for a building automation system based on a standard object superclass
US6834208B2 (en) * 1999-12-30 2004-12-21 Microsoft Corporation Method and apparatus for providing distributed control of a home automation and control system
AU2295101A (en) * 1999-12-30 2001-07-16 C-Smart Llc Method and apparatus for providing distributed control of a home automation system
EP1354446B1 (en) * 2001-01-12 2006-04-12 Novar Marketing Inc. Small building automation control system
US7664573B2 (en) * 2003-09-26 2010-02-16 Siemens Industry, Inc. Integrated building environment data system
US20060058923A1 (en) * 2004-09-10 2006-03-16 Kruk James L Building control system configurator
US7747739B2 (en) * 2006-08-10 2010-06-29 Gridpoint, Inc. Connection locator in a power aggregation system for distributed electric resources
WO2008039759A2 (en) * 2006-09-25 2008-04-03 Intelligent Management Systems Corporation System and method for resource management
US7634322B2 (en) * 2007-03-23 2009-12-15 Honeywell International Inc. Configuration of wireless field devices for process control plants
US9177323B2 (en) * 2007-08-28 2015-11-03 Causam Energy, Inc. Systems and methods for determining and utilizing customer energy profiles for load control for individual structures, devices, and aggregation of same
US7836123B2 (en) * 2008-05-13 2010-11-16 International Business Machines Corporation System and method for non-HTTP session based publish/subscribe support using pre-emptive subscriptions
US8760262B2 (en) * 2009-03-20 2014-06-24 Lutron Electronics Co., Inc. Method of automatically programming a load control device using a remote identification tag
US8788097B2 (en) * 2009-06-22 2014-07-22 Johnson Controls Technology Company Systems and methods for using rule-based fault detection in a building management system
US9753455B2 (en) * 2009-06-22 2017-09-05 Johnson Controls Technology Company Building management system with fault analysis
US9606520B2 (en) * 2009-06-22 2017-03-28 Johnson Controls Technology Company Automated fault detection and diagnostics in a building management system
US8731724B2 (en) * 2009-06-22 2014-05-20 Johnson Controls Technology Company Automated fault detection and diagnostics in a building management system
US8532839B2 (en) * 2009-06-22 2013-09-10 Johnson Controls Technology Company Systems and methods for statistical control and fault detection in a building management system
US9124130B2 (en) * 2009-07-30 2015-09-01 Lutron Electronics Co., Inc. Wall-mountable temperature control device for a load control system having an energy savings mode
US8838282B1 (en) * 2009-11-16 2014-09-16 Comverge, Inc. Method and system for providing a central controller that can communicate across heterogenous networks for reaching various energy load control devices
US8598978B2 (en) * 2010-09-02 2013-12-03 Lutron Electronics Co., Inc. Method of configuring a two-way wireless load control system having one-way wireless remote control devices
WO2012077058A2 (en) * 2010-12-06 2012-06-14 Smart Grid Billing, Inc Apparatus and method for controlling consumer electric power consumption
KR101456318B1 (ko) * 2010-12-09 2014-11-03 엘에스산전 주식회사 부하 제어 장치에서의 부하 제어 방법
WO2013052685A2 (en) * 2011-10-04 2013-04-11 Advanergy, Inc. Network integration system and method
EP2798787B1 (en) * 2011-12-28 2018-10-24 Lutron Electronics Co., Inc. Load control system having independently-controlled units responsive to a broadcast controller
JP2014075964A (ja) * 2012-09-11 2014-04-24 Ricoh Co Ltd 種類判定装置、種類判定方法およびプログラム
US20140180486A1 (en) * 2012-12-26 2014-06-26 Lutron Electronics Co., Inc. Multi-Zone Plug-In Load Control Device
US20140244040A1 (en) * 2013-02-26 2014-08-28 Green Edge Technologies, Inc. Systems, devices, and methods for associating devices for building automation and energy management
US9585226B2 (en) * 2013-03-12 2017-02-28 Lutron Electronics Co., Inc. Identification of load control devices
US9864350B2 (en) * 2013-03-12 2018-01-09 Trane International, Inc. Events management
US10135629B2 (en) * 2013-03-15 2018-11-20 Lutron Electronics Co., Inc. Load control device user interface and database management using near field communication (NFC)
US9459601B2 (en) * 2013-04-10 2016-10-04 Starfield Lighting Automation Llc Multi-sensor, event based occupancy determination and load management system
US9590453B2 (en) * 2013-06-11 2017-03-07 Lutron Electronics Co., Inc. Configuring communications for a load control system
CN104516283B (zh) * 2013-09-27 2018-08-24 夏普株式会社 控制装置、被控制设备、控制方法、控制系统以及报知设备
US10671030B2 (en) * 2013-12-06 2020-06-02 Siemens Schweiz Ag Web-based interaction with building automation
US9900177B2 (en) * 2013-12-11 2018-02-20 Echostar Technologies International Corporation Maintaining up-to-date home automation models
ES2966668T3 (es) * 2013-12-11 2024-04-23 Siemens Schweiz Ag Agrupación para disposiciones flexibles de habitaciones
US20150180678A1 (en) * 2013-12-23 2015-06-25 Echostar Technologies L.L.C. Accessing devices via an electronic program guide
US10339795B2 (en) * 2013-12-24 2019-07-02 Lutron Technology Company Llc Wireless communication diagnostics
US9851735B2 (en) * 2014-01-02 2017-12-26 Lutron Electronics Co., Inc. Wireless load control system
US10878323B2 (en) * 2014-02-28 2020-12-29 Tyco Fire & Security Gmbh Rules engine combined with message routing
US9948739B2 (en) 2014-08-04 2018-04-17 Cbs Interactive Inc. Techniques to aggregate and broadcast live event data in real-time
CN115297596A (zh) * 2014-08-22 2022-11-04 路创技术有限责任公司 响应于占用者和移动装置的位置的负载控制系统
US9553843B1 (en) * 2014-10-08 2017-01-24 Google Inc. Service directory profile for a fabric network
TWI556076B (zh) * 2014-10-30 2016-11-01 台達電子工業股份有限公司 區域控制系統及其自動配置方法
CN105577736B (zh) * 2014-11-07 2018-07-13 华为技术有限公司 一种电力线载波通讯终端控制装置、系统及方法
CN104639625B (zh) * 2015-01-27 2018-05-01 华南理工大学 一种基于mqtt的数据集中器采集控制方法、装置及系统
US10129047B2 (en) * 2015-01-29 2018-11-13 Time Warner Cable Enterprises Llc Home automation system deployment
US9839101B2 (en) * 2015-03-06 2017-12-05 Lutron Electronics Co., Inc. Load control adjustment from a wearable wireless device
US10289132B2 (en) * 2015-09-24 2019-05-14 Siemens Industry, Inc. Automated engineering of building automation systems
CA3000702C (en) * 2015-09-30 2021-07-06 Lutron Electronics Co., Inc. System controller for controlling electrical loads
US10101717B2 (en) * 2015-12-15 2018-10-16 Echostar Technologies International Corporation Home automation data storage system and methods
US10091017B2 (en) * 2015-12-30 2018-10-02 Echostar Technologies International Corporation Personalized home automation control based on individualized profiling
US10073428B2 (en) * 2015-12-31 2018-09-11 Echostar Technologies International Corporation Methods and systems for control of home automation activity based on user characteristics
WO2017165514A1 (en) * 2016-03-22 2017-09-28 Lutron Electronics Co., Inc. Seamless connection to multiple wireless controllers
US10319210B2 (en) * 2016-05-31 2019-06-11 Honeywell International Inc. Translating building automation events into mobile notifications
WO2018024528A1 (en) * 2016-08-05 2018-02-08 Philips Lighting Holding B.V. Building automation system with commissioning device
US11131972B2 (en) * 2017-01-12 2021-09-28 Trane International Inc. Performance optimization in a building automation system
EP3596562A1 (en) * 2017-03-15 2020-01-22 Lutron Technology Company LLC Configuring a load control system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100292857A1 (en) * 2009-05-18 2010-11-18 Consolidated Edison Company Of New York, Inc. Electrical network command and control system and method of operation
US20160028780A1 (en) * 2014-07-22 2016-01-28 Nemrude Verzano Managed Device-to-Device Communication in Business Computing Systems
CN105607511A (zh) * 2014-11-17 2016-05-25 西门子工业公司 基于evse的能量自动化、管理和保护系统与方法
WO2017024268A2 (en) * 2015-08-05 2017-02-09 Lutron Electronics Co., Inc. Commissioning and controlling load control devices
CN105208133A (zh) * 2015-10-20 2015-12-30 上海斐讯数据通信技术有限公司 一种服务器、负载均衡器以及服务器负载均衡方法和系统
CN106325240A (zh) * 2016-06-30 2017-01-11 浙江汉华节能技术有限公司 基于多种通信方式的智能安全用电管理装置及系统

Also Published As

Publication number Publication date
EP3590232B1 (en) 2024-03-27
US11868111B2 (en) 2024-01-09
CA3232970A1 (en) 2018-09-07
CN110622472A (zh) 2019-12-27
CN114598691B (zh) 2024-01-12
WO2018160728A1 (en) 2018-09-07
US11415954B2 (en) 2022-08-16
US10678203B2 (en) 2020-06-09
CA3054798A1 (en) 2018-09-07
US20200301387A1 (en) 2020-09-24
CN110622472B (zh) 2022-03-22
MX2019010268A (es) 2020-02-05
US20180259922A1 (en) 2018-09-13
EP3590232A1 (en) 2020-01-08
US20230044585A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
CN110622472B (zh) 与负载控制系统通信并控制负载控制系统的系统和方法
US20230024518A1 (en) Communicating with and Controlling Load Control Systems
US10874005B2 (en) Communicating with and controlling load control systems
US9826601B2 (en) Systems and methods for lighting control
US9497832B2 (en) Systems and methods for managing environmental conditions
KR102252258B1 (ko) 홈 네트워크 시스템에서 홈 디바이스들의 그룹 제어 방법 및 장치
US11221599B2 (en) Systems and methods for managing environmental conditions
CN110692023B (zh) 集成和控制多个负载控制系统
Yan et al. Design of Smart Home System Based on Service Encapsulation and Device Abstraction

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