TWI615037B - Method and apparatus for controlling sensor devices - Google Patents

Method and apparatus for controlling sensor devices Download PDF

Info

Publication number
TWI615037B
TWI615037B TW102122982A TW102122982A TWI615037B TW I615037 B TWI615037 B TW I615037B TW 102122982 A TW102122982 A TW 102122982A TW 102122982 A TW102122982 A TW 102122982A TW I615037 B TWI615037 B TW I615037B
Authority
TW
Taiwan
Prior art keywords
device
interface device
data
interface
controller
Prior art date
Application number
TW102122982A
Other languages
Chinese (zh)
Other versions
TW201404183A (en
Inventor
蘭德爾 弗雷
程令可
羅伯特 佩拉
Original Assignee
尤比奎蒂網絡公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US201261665238P priority Critical
Priority to US61/665,238 priority
Priority to US201261665839P priority
Priority to US61/665,839 priority
Priority to US201261716429P priority
Priority to US61/716,429 priority
Priority to US13/736,869 priority
Priority to US13/736,879 priority
Priority to US13/736,883 priority
Priority to US13/736,872 priority
Priority to US13/736,879 priority patent/US20140006506A1/en
Priority to US13/736,872 priority patent/US10326678B2/en
Priority to US13/736,883 priority patent/US8880204B2/en
Priority to US13/736,869 priority patent/US20140005810A1/en
Application filed by 尤比奎蒂網絡公司 filed Critical 尤比奎蒂網絡公司
Publication of TW201404183A publication Critical patent/TW201404183A/en
Application granted granted Critical
Publication of TWI615037B publication Critical patent/TWI615037B/en

Links

Classifications

    • 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
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

A device control system is arranged to monitor and control one or more interface devices such that the interface device can obtain and propagate sensor data from one or more connected physical devices, the physical device including Attribute sensor. During operation, the system can set up the interface device by establishing a network connection with the interface device and determine one or more rules for the interface device. A rule may indicate an operational description for making an operation and indicate a condition that indicates the criteria for handling the operational description of the rule. The system can set up an interface device to handle its associated rules.

Description

Method and apparatus for controlling an inductor device

The invention generally relates to the control of multiple devices. More specifically, the present invention relates to intelligent control of multiple devices.

Home automation, or smart homes, improve the quality of life of their users.

More specifically, residential automation systems enable centralized control of lighting, HVAC (heating, ventilation, air conditioning), appliances, and other systems, thereby providing greater convenience, comfort, energy efficiency, and safety. Some automation systems provide an automated time or environmental factor based control method, such as on an HVAC or automatic sprinkler system. However, such a typical automation system provides automation for only a single type of appliance, and different automation systems do not interact with one another to provide a complete residential automation solution.

In contrast, in smart homes, all electrical devices/equipment are integrated in the house to provide convenience and better life experience for their users. In addition, the universality of Internet connectivity also enables users to remotely monitor and/or control Make your own home. For example, when on vacation in Europe, the user can connect to a monitoring system for monitoring his home in Washington, DC to monitor his home activities; or, after receiving the Washington DC storm forecast, the user can close him accordingly. Home automatic sprinkler system.

Typical home automation techniques are typically implemented using specially designed control and monitoring devices that communicate with one another using dedicated communication protocols. Since the communication protocol between devices is proprietary, it is difficult for the owner to customize such a system to include new or different monitoring devices of other vendors. Taking a home monitoring system as an example, the monitoring system controller is connected to various specially designed sensors and/or cameras manufactured by the same vendor. In addition, to achieve centralized control, the appliances (or at least the controller of each appliance) also need to be manufactured by the same vendor. In the home monitoring system and automatic sprinkler system examples described above, the home monitoring system and the automatic sprinkler system (or controllers of these systems) need to be from the same vendor if the user is to be allowed to access the two systems using one interface. However, installing these specialized devices or device controllers can be expensive and wasteful, as many existing houses may already be equipped with sensors and appliances manufactured by different vendors.

One embodiment of the present invention provides a system for a control device that sets, monitors, and/or controls one or more interface devices. The interface device can obtain and propagate sensor data from one or more connected physical devices, which can include physical properties for measurement Sensor. During operation, the system can set up the interface device by establishing a network connection with the interface device and select one or more rules that are processed by the interface device. The system sets up the interface device to process the rules associated with it.

One embodiment of the present invention provides a system that establishes a network connection to a plurality of network devices to facilitate communication between the interface device and the device control system, the peer interface device, or other computing device. The system can receive data from the network device and forward the data to a peer network device that subscribes to the data. The system sends the data to the peer network device through a network connection established with the peer network device.

One embodiment of the present invention provides an interface device that communicates with other devices over an established network connection to transmit and/or receive instant sensor data. During operation, the local device can establish a network connection with a remote network device, such as a peer interface device, or a data forwarding system. The local device can maintain subscriptions to data of other peer devices to obtain instant data elements associated with a rule, such as by means of an established network connection to send a data subscription to a peer-to-peer network device capable of generating a data element request.

One embodiment of the present invention provides a local controller that maintains a local repository for storing information about a set of interface devices on a local area network. The local repository may include a repository image of a remote repository of remote controllers for storing information for a set of interface devices being provisioned. During operation, the local controller maintains a local repository that is synchronized with at least a subset of the remote repository. However, when local control When the controller confirms that the remote controller is offline, if the remote controller has the main control of the interface device on the local area network, the local controller can obtain the main control of the interface device in the local area network.

One embodiment provides an interface device configured to process one or more rules based on sensor data to make a predetermined operation. During operation, the device can receive the configuration of the device, including the rules used by the interface device. The rules may include an operational description for making an operation, and may also include a condition with the sensor data as input and indicating the criteria for making the operation. The device can store the rules in a rule base and can determine a remote interface device that generates data associated with the conditions of the rule. The device can also subscribe to the material from the remote interface device.

One embodiment provides a sensor monitoring interface device that is coupled to one or more physical devices that include sensors that measure physical properties. The interface device acquires and processes sensor data from the physical device during operation. When the interface device determines that a rule condition has been satisfied based on the sensor data, the interface device can process the operational description of the rule to make a corresponding operation.

One embodiment provides a load control interface device for acquiring and processing sensor data received from a user interface and/or from a remote interface device. During operation, the load control interface device is based on sensor data processing rules to control electrical loads, such as a luminaire.

One embodiment provides a load monitoring interface device that acquires and processes sensor data from an electrical load. The interface device can be packaged Include at least one power outlet for powering a corresponding electrical load. During operation, the interface device can obtain sensor data from a local power outlet that is connected to the electrical load such that the sensor data can indicate an electrical measurement associated with the electrical load. The interface device can process a rule associated with the sensor data, such as enabling or disabling the power outlet, or making any other predetermined operations.

100‧‧‧Monitoring and control systems

102‧‧‧ Controller

104‧‧‧Users

106‧‧‧Network

108‧‧‧Interface device

110‧‧‧Physical devices

150‧‧‧Monitoring and control systems

152‧‧‧Computer cluster

154‧‧‧ Wide Area Network

156‧‧‧Users

158‧‧‧ device

160‧‧‧Local Area Network

162‧‧‧Interface device

166‧‧‧Database

200‧‧‧Interface device

202,204,206‧‧‧埠

208‧‧‧Processing unit

210‧‧‧ storage unit

212‧‧‧Packet Generator/Parser

214‧‧‧Wired network interface

216‧‧‧Wireless network interface

218‧‧‧Common Serial Bus (USB) Interface

220‧‧‧ Software Architecture

222‧‧‧ operating system kernel

224‧‧‧Device Driver

226‧‧‧Microcontroller Agent Module (mcAgent)

228‧‧‧Communication Module

230‧‧‧Internet Protocol (IP) Module

232‧‧‧WebSocket Module

234‧‧‧Internet Server

240‧‧‧Device architecture

242‧‧‧Processing unit

244‧‧‧Storage device

246‧‧‧Flash memory

247‧‧‧Communication module

248‧‧‧Wireless Module

249‧‧‧Ethnet

250‧‧‧Sequence

252‧‧‧Digital input

254‧‧‧ digital output

255‧‧• Analog to Digital Converter (ADC)

256‧‧‧ analog input

258‧‧‧ device

260‧‧‧ device architecture

262‧‧‧Processing unit

264‧‧‧Storage device

265‧‧‧Wireless Module

266‧‧‧Flash memory

267‧‧‧Sequence

268‧‧‧Communication module

269‧‧‧Ethnet

270‧‧‧Power output module

272‧‧‧Relay

274‧‧‧Power Output Controller

276‧‧‧Power socket

278‧‧‧mPower interface device

280‧‧‧ device architecture

282‧‧‧Processing unit

283‧‧‧Storage device

284‧‧‧Flash memory

285‧‧‧Communication module

286‧‧‧Wireless Module

287‧‧‧Sequence

288‧‧‧Microcontroller

289‧‧‧Power Output Controller

290‧‧‧Power Control Module

292‧‧‧Power terminal

294‧‧‧Touch-sensitive user interface

295‧‧‧ proximity sensor

296‧‧‧motion sensor

297‧‧‧Touch sensitive detector

298‧‧‧mDimmer interface device

299‧‧‧mDimmer interface device

460‧‧‧GUI

462‧‧‧Central display area

464‧‧‧ side panel

466‧‧‧ space label

468‧‧‧Information label

470‧‧‧ Event Label

472‧‧‧ rule label

474‧‧‧ device label

476,478‧‧‧ icon

480‧‧‧Zoom slider

482‧‧‧Central display area

484‧‧‧ device icon

490‧‧‧GUI

492‧‧‧Central display area

550‧‧‧GUI

552‧‧‧ Door opening rules

554‧‧‧ rule name field

556‧‧‧ conditional field

558‧‧‧ operation field

560‧‧‧rule button

562‧‧‧"Add" button

564‧‧‧"Timeline" button

600‧‧‧GUI

602, 604‧‧‧ panel

630‧‧‧GUI

632‧‧‧Date range panel

634‧‧‧View selection panel

636‧‧‧ device panel

660‧‧‧GUI

662‧‧‧Screening program panel

664‧‧‧Date range panel

666‧‧‧ device panel

668,670,672,674‧‧‧Area

800‧‧‧ computer system

802‧‧‧ controller

804‧‧‧ Wide Area Network

806‧‧‧Router/Firewall

808‧‧‧Local Area Network

810‧‧‧Interface device

812‧‧‧ Computing equipment

814.1, 814.2‧‧‧埠 Tunnel passage

1100‧‧‧Distributed system

1102‧‧‧Computer cluster

1104‧‧‧ Wide Area Network

1106‧‧‧Users

1108‧‧‧ laptop

1110‧‧‧ LAN

1112‧‧‧Smart Phone

1114‧‧‧Dimmer

1116‧‧‧Control socket

1118‧‧‧Lamps

1200‧‧‧System Architecture

1202‧‧‧ Wide Area Network

1204‧‧‧ Controller

1206‧‧‧Database

1208, 1216‧‧‧ LAN

1210‧‧‧ Controller

1212‧‧‧Database

1214‧‧‧Interface device

1218‧‧‧Local Controller

1220‧‧‧Database

1222‧‧‧ device

1250‧‧‧System Architecture

1252‧‧‧ Wide Area Network

1254‧‧‧Data Forwarding Service

1256‧‧‧ LAN

1258‧‧‧ Controller

1260‧‧‧Database

1262‧‧‧ device

1264‧‧‧Local Area Network

1266‧‧‧ device

1268‧‧‧Smart Phone

1300‧‧‧Computer and communication systems

1302‧‧‧ Processor

1304‧‧‧ memory

1306‧‧‧Storage device

1308‧‧‧Smart Monitoring and Control Applications

1310, 1312‧‧‧Applications

1314‧‧‧ display

1316‧‧‧ keyboard

1318‧‧‧ pointing device

1400‧‧‧mPort interface device

1402‧‧‧RJ-45埠

1404‧‧‧Connecting terminal

1406‧‧‧Common Serial Bus (USB) Connector

1408‧‧‧Ethnet

1410‧‧‧Reset button

1412‧‧‧LED indicator

1430‧‧‧mPort interface device

1460‧‧‧mPort interface device

1500‧‧‧mPort interface device

1502‧‧‧Serial interface

1504‧‧‧Connecting terminal

1506‧‧‧Common Serial Bus (USB) Connector

1508‧‧‧Ethnet

1510‧‧‧Reset button

1512‧‧‧LED indicator

1522‧‧‧Antenna connector

1540, 1560‧‧‧mPort interface device

FIG. 1A illustrates a system architecture of an exemplary monitoring and control system in accordance with one embodiment of the present invention.

1B illustrates a system architecture of an exemplary monitoring and control system including a controller deployed over a wide area network (WAN) that is deployed on a cluster of computers in accordance with an embodiment of the present invention.

2A shows an apparatus architecture of an exemplary interface device in accordance with one embodiment of the present invention.

2B illustrates an exemplary interface device software architecture in accordance with one embodiment of the present invention.

2C illustrates an apparatus architecture of an exemplary mPort interface device in accordance with one embodiment of the present invention.

Figure 2D illustrates an mPort interface device in accordance with one embodiment of the present invention.

2E shows an apparatus architecture of an exemplary mPower interface device in accordance with one embodiment of the present invention.

Figure 2F shows an embodiment in accordance with one embodiment of the present invention. mPower interface device.

2G shows an apparatus architecture of an exemplary mDimmer or mSwitch interface device in accordance with one embodiment of the present invention.

Figure 2H illustrates an mDimmer interface device in accordance with one embodiment of the present invention.

Figure 2I illustrates several mDimmer interface devices connected by a serial communication interface in accordance with one embodiment of the present invention.

3A is a flow chart showing an exemplary method for setting up a device controller in accordance with an embodiment of the present invention.

FIG. 3B is a flow diagram illustrating an exemplary method for presenting configuration data and/or sensor data in accordance with an embodiment of the present invention.

4A is a flow diagram showing an exemplary method for setting a device layout space (device-) on a space-view graphical user interface (GUI) in accordance with an embodiment of the present invention. Placement space).

4B is a flow diagram illustrating an exemplary method for presenting and updating a spatial view GUI in accordance with an embodiment of the present invention.

Figure 4C illustrates an exemplary controller space view GUI in accordance with one embodiment of the present invention.

Figure 4D illustrates a spatial view GUI provided by an exemplary controller in accordance with one embodiment of the present invention.

Figure 4E illustrates an example in accordance with one embodiment of the present invention. The spatial view GUI provided by the sex controller.

Figure 5A is a flow diagram illustrating an exemplary method for generating and storing rules for controlling a device in accordance with one embodiment of the present invention.

FIG. 5B illustrates an exemplary controller rule view GUI in accordance with one embodiment of the present invention.

Figure 5C illustrates a user interface showing exemplary predefined conditions that may be incorporated into a set of conditional conditions in accordance with one embodiment of the present invention.

FIG. 6A illustrates an exemplary controller device view GUI in accordance with one embodiment of the present invention.

Figure 6B illustrates an exemplary controller profile view GUI in accordance with one embodiment of the present invention.

Figure 6C illustrates an exemplary controller event view GUI in accordance with one embodiment of the present invention.

Figure 7 is a flow diagram illustrating an exemplary method for processing a rule at a local interface device in accordance with one embodiment of the present invention.

Figure 8 illustrates an exemplary computer system for connecting a controller within a server cluster to devices within a local area network (LAN).

9 is a flow chart showing an exemplary method for establishing a network connection to a remote device based on an embodiment of the present invention, the connection being established based on the center of one remote device Controller connection Received network address information.

10 is a flow chart showing an exemplary method for establishing a network connection with a remote device based on an embodiment of the present invention, the connection being established based on the stored remote device Network address information.

Figure 11 illustrates an exemplary system architecture including an mDimmer device in accordance with one embodiment of the present invention.

Figure 12A illustrates an exemplary system architecture including a central controller and one or more local area network controllers with database images.

Figure 12B illustrates an exemplary system architecture including a local area network controller within a local area network and a forwarding service accessible within the wide area network, in accordance with one embodiment of the present invention.

Figure 13 illustrates an exemplary computer system for smart monitoring and control of a device in accordance with one embodiment of the present invention.

Figure 14A shows an angled view of an mPort interface device in accordance with one embodiment of the present invention.

Figure 14B shows a side view of an mPort interface device in accordance with one embodiment of the present invention.

Figure 14C shows a side view of an mPort interface device in accordance with one embodiment of the present invention.

Figure 15A shows an angled view of an mPort interface device in accordance with one embodiment of the present invention.

Figure 15B illustrates an inclusion in accordance with one embodiment of the present invention. An angled view of the mPort interface device of the antenna connector.

Figure 15C shows a side view of an mPort interface device in accordance with one embodiment of the present invention.

Figure 15D shows a side view of an mPort interface device in accordance with one embodiment of the present invention.

The following description is provided to enable a person skilled in the art to make and use the embodiments, and the following description is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be apparent to those skilled in the art, and the <RTIgt; general</RTI> principles defined herein may be applied to other embodiments and applications without departing from the scope of the invention. And spirit. Therefore, the present invention is not limited to the embodiments shown, but the invention should be accorded to the broadest scope.

Overview

Embodiments of the present invention provide a controller that can implement a unified "smart" environment, such as a smart home system or an industrial environment, using various sensors and devices from different vendors. More specifically, these various physical devices are coupled to one or more interface devices that continuously monitor and control the physical devices such that the interface devices can be accessed and disposed through the controller. For example, a centralized controller can be in a server cluster (eg, "cloud") and allows users to pass through the user's An Internet browser or application on the computer accesses a control user interface (UI). At the same time, the interface device and physical device can be distributed over a wide area (for example, throughout a city, or in different cities around the world). The user can interact with the centralized controller to set up the interface device, determine how the interface device monitors the data from the physical device, and control how the interface device controls one or more physical devices based on the monitored data. .

Each interface device includes a plurality of device connectors and one or more network interfaces that enable the interface device and the centralized controller to be connected through a common or private network. In one embodiment, the interface device is connected to the controller via an Internet Protocol (IP) based network. The interface device and the centralized controller communicate by exchanging IP data packets. The centralized controller can provide a graphical user interface (GUI) that its user can use at a remote location to monitor and control the operation of the device. In addition, the graphical user interface allows the user to set up compound rules that automatically control the operation of the device.

system structure

FIG. 1A illustrates a system architecture of an exemplary monitoring and control system 100 in accordance with one embodiment of the present invention. The monitoring and control system 100 includes a controller 102, a network 106, and a number of interface devices 108 (e.g., interface devices 108.1 and 108. m ), each interface device being coupled to a plurality of controlled physical devices 110. For example, interface device 108.1 is coupled to physical devices 110.1, 110.2, and 110. n .

The controller 102 can include any computing device that communicates with the interface device 108 and executes an application software that is used by the user 104 to monitor and control the operation of the physical device connected to the interface device 108. For example, the controller 102 can exist and run on a separate computing device, including but not limited to a desktop or laptop 102.1, a personal digital assistant (PDA) or smart phone 102.2, a tablet 102.3, or a large computer. 102. k . In some embodiments, the controller 102 exists and runs on a server cloud. Moreover, in some (not shown) embodiments, controller 102 is present and operates on one or more interface devices (e.g., interface devices 108.1 and/or 108. m ) to implement a distributed controller.

Network 106 can generally include any type of wired or wireless communication channel that can connect computing nodes together. Network 106 includes, but is not limited to, a local area network, a wide area network, a private network, a public network, or a combination of networks. Additionally, network 106 can include a wired network, a wireless network, or a combination thereof. In some embodiments, network 106 includes an IP-based network. In another embodiment, the network 106 includes the Internet.

Each interface device 108, such as 108.1 or 108. m of the interface device, includes a number of physical ports that connect the interface device to a number of physical devices. Moreover, physical device 110 (eg, devices 110.1-110. n ) can include any type of physical device, such as a sensor, a machine, or any type of electrically powered component now known or later developed. The device may include a sensor (eg, a temperature sensor, a humidity sensor, a current sensor, a motion sensor, and a door/window sensor), or a controllable device (eg, a light switch, a power source) Sockets, power boards, relays, etc.).

In some embodiments, physical device 110 may be a "stupid" device that does not have any intelligence, such as the ability to calculate or connect to a network. In another embodiment, physical device 110 may include any type of off-the-shelf sensor that detects environmental factors including, but not limited to, temperature, sound, light intensity, humidity, motion, current, door/window opening. Or off. The output of a sensor can include an analog or digital signal. For example, the output of a temperature sensor can be an analog voltage signal within a certain range. The output of a motion sensor may be a binary digital word signal, with a "1" indicating that the motion has been detected.

In some embodiments, the interface device 108 can include a serial port (such as RS232 or RS485 port), and the device 110 can be a serial device that communicates with the interface device 108 via a serial port. For example, device 110.1 can include a device that can be controlled by a sequence of devices 108.1 that can be connected to the device via a serial port. Thus, the interface device 108.1 can receive status information from the device via the serial port and can communicate commands through the sequence to control the device. As another example, the device 110. n can include a router, and the interface device 108.1 can be connected to the console port of the router to enable remote monitoring and control of the router.

FIG. 1B illustrates a system architecture of an exemplary monitoring and control system 150 including a controller deployed on a computer cluster 152 that is accessible over a wide area network 154, in accordance with an embodiment of the present invention. In some embodiments, the computer cluster 152 can include a plurality of server computers 152.1-152. k that distribute their load throughout the computer cluster 152 using load balancing techniques.

Over time, as the load on the computer cluster 152 increases, the system administrator can add additional servers to the computer cluster 152. Specifically, the server computer 152.1-152. K may be distributed in different locations, so that a specific number of geographical location server may need to be adjusted according to the geographic location. This allows the computer cluster 152 to serve requests from multiple devices in near real time, as well as push data to the multiple devices.

During operation, computer cluster 152 can maintain a continuous or continuous network connection to a plurality of client devices (e.g., computer device 158, and/or interface device 162). The network connection may include a two-way channel established using a WebSocket protocol, or the network connection may be maintained by using the STUN protocol, the Comet protocol, or any other communication protocol now known or later developed. The computer cluster 152 can receive instant data from these client devices and can forward the instant data to a client device that has subscribed to the data. For example, in some embodiments, computer cluster 152 can include a database 166 associated with the controller such that database 166 can maintain a "trackable cursor" directory. These traceable cursors implement a queue for forwarding data to a client device that subscribes to a profile. The client device can bind and wait for these traceable cursors.

In some embodiments, device 158 can include a client computing device, such as a computer (eg, a laptop), a mobile device (eg, a smart device) Hui mobile phone or tablet) and so on. Device 158 can communicate with computer cluster 152 and/or interface device 162 by establishing and maintaining a network connection to a desired target device. For example, a user 156 can use an application running on device 158 (e.g., a laptop or smart phone) to establish a session with a controller running on computer cluster 152 and receive one or Network address information for more than one interface device 162. Device 158 can use the network address information of an interface device to transmit data to the interface device and/or establish a network connection with the interface device.

In some embodiments, device 158 and/or interface device 162 can determine when they can peer-to-peer communication with each other and when they need to communicate with one another via a forwarding service (eg, via computer cluster 152). For example, device 158 may remember a configuration snapshot of the network of decentralized interface devices by means of device access information stored by interface device 162 and/or any other computing device. The device access information may include network address information, such as the IP address and nickname of the remote device, and/or may include authentication information used to access the remote device (eg, digital certificate, username, password, authorization) Scepter, etc.). Thus, if the interface device 162 within the local area network 160 loses their connection to the controller (eg, the local area network 160 and the wide area network 154 are disconnected), the application of the device 158 can use the stored configuration snapshots through the local area network 160 and the interface device 162. Direct communication. This allows an application software that monitors the network of interface devices to communicate directly with the interface device 162 without first contacting the controller on the computer cluster 152.

In some embodiments, by utilizing known network address information The device sends a request (e.g., via a JSONP message) and device 158 can test the connection to the interface device. The request may indicate device identification information (e.g., a logical identification, a media access control address (MAC address), etc.) of the desired interface device, which allows the device 158 to test the connection without requesting sensitive information from the remote device. . If the request arrives at an interface device, the interface device compares the identification information with the local device identification information and confirms its identity if it is indeed the target interface device. In some embodiments, the interface device confirms its identity to device 158 by providing authentication information, such as a digital certificate.

If the network address information includes the IP address of the interface device, when the device 158 and the interface device are simultaneously connected to the same local area network (e.g., local area network 160), the device 158 can communicate with the interface device using the IP address. However, if device 158 and the interface device are not connected to the same local area network, nor can a peer-to-peer connection be established across domains (eg, due to a firewall), device 158 can communicate with the interface device using a data forwarding service (eg, computer cluster 152, or another A server computer connected to the wide area network 154).

Moreover, in some embodiments, device 158 can automatically discover the presence of other devices (eg, using Universal Plug and Play (UPnP), or other automatic discovery protocols). For example, if the network information of an interface device has changed and device 158 is unable to establish a network connection to the central controller, device 158 can automatically discover the presence of other devices to obtain device identification information (eg, a MAC address, a Digital certificate, etc.). Device 158 can identify device information of the received discovered device Compare with the device identification information of the desired interface device. If an automatically discovered device is consistent with a desired interface device, device 158 can retrieve and store the network address information of the discovered device (eg, to replace old or invalid information) and can be used This network address information establishes a network connection to the discovered device.

The user 156 can interact with the central controller (e.g., access the controller on the computer cluster 152) using an Internet browser on the device 158, which allows the user to view the instant material from the various interface devices 162. The controller can generate a web page for the user, which includes network address information of each interface device. If device 158 and an interface device are in the same domain (e.g., a local area network, or a virtual private network), the browser on device 158 can obtain instant data directly from the interface device. For example, the browser may request data from the interface device using JSONP (JavaScript object notation, with padding) or CORS (cross-origin resource sharing), and the interface device may be on a different domain than the controller that provides the web page.

In some embodiments, devices within system architecture 150 can communicate with each other in near real time by establishing and maintaining a continuous or continuous network connection. For example, the interface devices 162 can subscribe to each other's data and can use the network connection to instantly push the data to the subscribing device. As another example, device 158 can establish a network connection to a number of interface devices 162 and receive instant data for presentation to a user.

In addition, local devices within the local area network 160 can establish and maintain a continuous network connection with the computer cluster 152, which can be determined by The external address is shared with the computer cluster 152 (e.g., using STUN) or by maintaining a tunnel through the firewall (e.g., using Comet) within the local area network 160. Alternatively, the local device can establish a continuous two-way network connection, such as using the WebSocket protocol or any other two-way communication protocol.

Using Comet to maintain the network connection, the local device can send a long polling request to the computer cluster 152 (for example, as a notification of XMLHttpRequest (XHR)), which will open a temporary port within the firewall through which the computer cluster 152 can provide a Respond to the message. If the computer cluster 152 has new data available to the local device, the computer cluster 152 can respond to the XHR notification using the XHR response, which includes the new data. Otherwise, if the computer cluster 152 does not have new information for the local device, the computer cluster 152 does not respond to the XHR request, thereby terminating the XHR request.

Once the XHR request is terminated, a network router or firewall may close a port associated with the XHR request, which will prevent the computer cluster 152 from providing new data to the local device. Thus, in order to maintain a network connection with computer cluster 152, the local device may periodically send additional long polling requests before the termination of an existing request (eg, at a 30 second time interval). The computer cluster 152 can associate the new XHR request with the local device (e.g., replace the previous XHR request) and push the instant data to the local device using the network address information in the new XHR request.

Using the WebSocket protocol to establish a network connection, the local device can Sending a WebSocket handshake request to the computer cluster 152 will upgrade a Hypertext Transfer Protocol (HTTP) session to a WebSocket session that includes the Sec-WebSocket-Key token to the controller on the computer cluster 152. The controller sends a response to the local device to respond, the response acknowledges the WebSocket session, and includes the Sec-WebSocket-Accept token from the Sec-WebSocket-Key token.

Device architecture

FIG. 2A illustrates an apparatus architecture of an exemplary interface device 200 in accordance with an embodiment of the present invention. Interface device 200 includes a number of physical ports, such as ports 202, 204, and 206, for providing physical connections to a number of physical devices; processing unit 208, storage unit 210, for generating or parsing packet generators/parsing of communication packets The device 212, the wired network interface 214, and the wireless network interface 216. Interface device 200 can optionally include a universal serial bus (USB) interface 218.

Physical ports 202-206 provide a connection between interface device 200 and some physical devices. More specifically, the physical ports 206-208 can power the connected physical devices and receive input signals from and send output signals to the connected physical devices. In some embodiments, these functions are implemented by a wired connection between a physical device and a physical device. For example, a typical temperature sensor can include three pins, one for ground, one for input power, and one for analog voltage output. When the temperature sensor is connected to a physical port, each of the three pins is connected to the corresponding physical port. Point, so that the interface device 200 supplies power to the temperature sensor through those wired connections and receives the voltage of its output from the temperature sensor. In some embodiments, the physical volume includes at least one RJ45(R) (one RJ45 female socket) that provides eight equally-spaced conductive channels. An RJ45 cable plugged into the jack provides a wired connection to a device that may or may not include an RJ45 jack. In some embodiments, the physical port includes a terminal block that includes eight equally spaced metal posts, each of which can be coupled to a device terminal. Please note that this simple terminal block allows the interface device 200 to be connected to almost any type of device as long as the device has eight or fewer connections.

Processing unit 208 is responsible for sampling, analyzing, and interpreting the original input signals (analog or digital) received from the physical device. For example, if a physical device is a temperature sensor, the raw input signal received from the corresponding physical port will be an analog voltage within a certain range (eg, from 0 to 2 volts), thus, the use and temperature sensor Related calibration information, processing unit 208 can convert the analog voltage to a corresponding temperature. In some embodiments, calibration information related to the sensor can be provided by the user. In some embodiments, the monitoring and control system maintains a record of many off-the-shelf sensors and can find calibration information based on the make and model of the sensor. In addition, processing unit 208 is also responsible for executing control commands received from the controller. For example, if the controller sends a command to turn off a temperature sensor, processing unit 208 will stop supplying power to the corresponding terminal.

The storage unit 210 is responsible for storing various types of information about connected devices, such as historical data. Utilizing slave processing unit 208 and memory unit 210 The information obtained by the packet generator/parser 212 generates a communication package and parses the communication package received from the controller. In some embodiments, the packet generator/parser 212 is capable of generating and parsing IP data packages.

The wired network interface 214 and the wireless network interface 216 provide a connection between the interface device 200 and a network to interface the interface device 200 with the controller. In some embodiments, the wired network interface 214 and the wireless network interface 216 allow the interface device 200 to be connected to the Internet. In some embodiments, the wired network interface 214 includes an Ethernet network. In another embodiment, the Ethernet network also supplies power to the interface device 200 via Ethernet power (PoE). In addition to providing a communication interface with the controller, the wired network interface 214 and the wireless network interface 216 also enable the interface device 200 to communicate with other peer interface devices.

In some embodiments, if the interface device 200 has not been provisioned, the interface device 200 can set the wireless network interface 216 as an access point. The user can connect to the wireless local area network associated with the interface device 200 using a personal computing device to access the access point (for example, the user can determine the SSID of the wireless local area network, for example, from the printed text on the chassis of the interface device 200). And password.). Once the user's computing device is connected to the access point, the interface device 200 can provide the user with a setup GUI, which can be accomplished, for example, by an HTTP session.

When the user launches an internet browser on his personal computer, the interface device 200 can reset the user's internet browser to the setting. GUI, this interface allows the user to set the access point as needed. For example, the user can set up a connection to a user's personal access point (eg, a wireless router connected to the Internet) and can enter personal login information to use a service that allows the user to control the interface device 200 over the Internet.

Once the user completes the setup of the interface device 200, the interface device 200 saves the settings and reboots. When the interface device 200 is restarted, if the interface device 200 determines that it has been properly set, the interface device 200 can set the wireless network interface 216 to be a wireless client device and connect to the user's personal wireless access. point.

In some embodiments, an interface device can also be a specially designed, networked power strip that monitors the energy usage (eg, current and/or voltage) of a device connected to the power strip. The power strip device can control a connected device, such as turning the corresponding power outlet on or off locally or remotely.

FIG. 2B illustrates a software architecture 220 of an exemplary interface device in accordance with an embodiment of the present invention. The software architecture 220 includes an operating system kernel 222, a plurality of device drivers 224, a plurality of communication modules 228, an Internet server 234, and a microcontroller agent module (mcAgent 226). In particular, the interface device 200 can store the software architecture 220 within the storage unit 210 and can use the processing unit 208 to execute one or more modules of the software architecture 220.

The communication module 228 can include an Internet Protocol (IP) module 230 for establishing and maintaining a network based on an IP layer protocol and a remote device. Road connections, such as the use of the STUN Agreement, the Comet Agreement, etc. In some embodiments, communication module 228 can include a WebSocket module 232 that maintains and maintains a network connection to a remote device using the WebSocket protocol. The WebSocket module 232 can include a user space application or service that utilizes other kernel space services (e.g., device driver 224) and/or other user space services to establish and maintain the network connection.

The operating system kernel 222 can include any operating system, such as a variant of a Linux operating system. The microcontroller agent (mcAgent) 226 may include an application running in the user space above the operating system kernel 222 to implement the functionality of the interface device 200 described herein. For example, the mcAgent can interact with the device driver 224 to detect a user-dominated event (eg, from a user input device, such as a light switch), periodically monitoring the sensor input (eg, a motion sensor), and / or control an output device (for example, a power supply). At the same time, the mcAgent can interact with the communication module 228 to establish a network connection to the remote controller and/or one or more remote interface devices, and/or to send data to the controller via a corresponding network connection. Or remote interface device, or receiving data from the controller or remote interface device.

Device driver 224 may include one or more kernel space driver modules that may be used by a virtual file interface (eg, a virtual file in the /proc directory of the Linux file system). Communication module 228 and/or mcAgent 226 can interact with device driver 224 by reading and writing a virtual file corresponding to a target device.

Device driver 224 may include, for example, a network device driver for accessing and controlling a network interface, such as an Ethernet controller, a Wi-Fi controller, or a Bluetooth controller. The operating system kernel 222 can communicate with a remote computer device by using a network device driver. At the same time, the communication module 228 can use a network device driver to establish and maintain a network connection to the controller and/or peer interface device.

As another example, device driver 224 can include a driver module that passes through a general purpose input and output (GPIO) of a processing unit, a serial interface of the processing unit, or a universal asynchronous receiver of the processing unit/ Transmitter (UART), monitors or controls a peripheral device. For example, the serial interface can include a serial peripheral interface (SPI) bus, an inter-integrated circuit (I 2 C) bus, or any serial interface now known or later developed.

In some embodiments, the peripheral device can include a non-persistent storage device (eg, a random access memory (RAM) module), or a permanent storage device (eg, a flash memory device). In other embodiments, the peripheral device can include a shift register, an analog-to-digital converter (ADC), a digital-to-analog converter (DAC), an output power regulator, a relay, and a triac (TRIAC)-based device. Wait. Further, the peripheral device may also include a user input device such as a touch sensitive user interface.

Microcontroller agent

In some embodiments, the microcontroller agent (mcAgent) 226 manages operations performed by the interface device, such as managing data subscriptions from multiple remote devices, and processing rules that are triggered when new events are detected. During operation, the mcAgent 226 can receive a data subscription request from a remote device (e.g., a controller or interface device), at which point the mcAgent 226 can insert the data subscription request into the data subscription library. The data subscription request may indicate the type of material being subscribed to, and a condition (eg, a minimum or maximum threshold) that the mcAgent 226 needs to satisfy to push the data to the remote device.

Moreover, the mcAgent 226 can periodically collect data samples from various input sensors and push the data to a remote device that has subscribed to a certain type of data update. The McAgent 226 can periodically collect data samples from input sensors or devices at predetermined time intervals (eg, every 15 milliseconds). Each time the mcAgent 226 obtains a data sample, the mcAgent 226 can compare the collected samples (or changes in the last sampled value) with one or more thresholds associated with a set of data subscriptions. If the sampled value (or a change in value) satisfies the subscription request, the mcAgent determines a remote device associated with the data subscription and pushes the sampled data value to the remote device. In some embodiments, the system can, for example, push the sampled data values to the remote device using network address information associated with the persistent network connection of the remote device (eg, using the WebSocket module 232) .

In some embodiments, the remote device is an interface device that utilizes sampled data to determine whether to perform a regular operation.

In other embodiments, the remote device can include a controller that collects data and/or presents the data to the user. For example, a user can set up the controller to store an event log that includes events on the interface device 200 that meet certain conditions. The controller can establish and maintain a network connection with the interface device 200 and populate the event log by subscribing to the interface device 200 with sample data under user-specified conditions.

As another example, through a controller, a user can monitor data from various interface devices using a personal computer device. The user accesses a "Map" user interface (UI) on the controller, such a map user interface showing the sensors associated with the interface device 200 on a map, and the sampled real-time data can also be displayed on the map. Therefore, in order to display the instant data to the user, the controller can establish and maintain a continuous network connection to the interface device 200 and subscribe to the data sampled by the interface device 200. The subscription may indicate that the sampled data is periodically pushed to the controller at a predetermined time interval (eg, every second) or pushed to the controller when the sampled data value produces at least one limit change. In this way, when the user browses the map user interface, the controller can receive the sensor data in near real time and display it to the user. When the user leaves the sensor on the map user interface, or when the user closes the map user interface, the controller can send a request to the interface device 200 to cancel the data subscription. The controller may also disconnect the network connection to the interface device 200 if the controller does not need to send data to or receive data from the interface device 200.

Exemplary interface device

2C shows an apparatus architecture 240 of an exemplary mPort interface device in accordance with one embodiment of the present invention. The device architecture 240 can include a flash memory 246 for storing data and software instructions for operating the mPort interface device, and a processing unit 242 and a storage device 244 for executing instructions (eg, random access) Take memory (RAM)).

The device architecture 240 can include a digital input 252, and a digital output 254. Digital input 252 can be coupled to a digital output signal of one or more external devices, such as a door sensor, a toggle switch, and the like. The digital output 254 can be connected to an external device for setting up or controlling the external device, or can be connected to an output display of an mPort device (eg, a liquid crystal display (LCD), or a light emitting diode (LED) indicator). .

The device architecture 240 can also include at least one analog to digital converter (ADC) 255 that converts the physical quantity of an analog signal into a digital signal (e.g., a binary number) that represents the amplitude of the physical quantity. In some embodiments, the ADC can be coupled to an external device, such as a sensor, via analog input 256 for sampling physical quantities associated with the sensor. The analog input 256 can include a differential pair with which the ADC 255 samples the corresponding analog signal. Processing unit 242 can read data from ADC 255 through the pins of the digital interface or through the serial bus and store or operate the data representing the physical quantities associated with the connected sensors.

For example, in some embodiments, the analog input 256 can be connected to one The differential pair of temperature sensors (not shown). The temperature sensor can provide a continuous analog signal on the differential pair such that the analog signal represents a temperature physical quantity detected by a detection portion of the temperature sensor. Additionally, processing unit 242 can be coupled to the sensor via digital output 254 to calibrate the sensor or to set the operational operation of the sensor (eg, to set a read period).

Device architecture 240 may include one or more modules in communication with external devices. For example, device architecture 240 can include communication module 247, which can include an Ethernet module connected to an Ethernet port 249, and/or can include or be connected to a wireless module 248 (eg, a Wi- Fi module, or Bluetooth module). The device architecture 240 can also include a serial port 250 (e.g., a UART-used RS-232 jack) that can be coupled to an external device and can be used by the processing unit 242 to monitor and/or control peripheral devices. The peripheral device can include a device (eg, HVAC (HVAC System)), or any electronic or computer device that can communicate via the UART 250.

FIG. 2D illustrates an mPort interface device 258 in accordance with one embodiment of the present invention. Specifically, the chassis of device 258 includes at least one reset switch, one Ethernet switch, one universal serial bus (USB) port, one Ethernet port, one serial port, and one group and one or more. The connection of the external device (for example, via RJ-45埠, or through the connection terminal). Device 258 may also include a wireless network device, such as an internal Wi-Fi module.

At the same time, the mPort interface device 258 can include a set of LED indications light. When the mPort interface device 258 is properly connected to the power source, the power LED indicator turns solid green. When a valid Ethernet connection is established, the Ethernet LED indicator lights up in a steady green color and flashes when there is activity on the Ethernet connection. When the mPort interface device 258 unpacks the factory default mode for the first time, a status LED lights up in a steady yellow color. When the device 258 has been successfully integrated into a network and is functioning properly, the status LED lights up in a steady green color. At the same time, when the Locate button is used in the mFi controller software to display the device 258 on the map, the status LED flashes.

Figure 14A shows an angled view of an mPort interface device 1400, in accordance with one embodiment of the present invention. In particular, the apparatus 1400 includes a set of connections to one or more external physical devices (e.g., via RJ-45 埠 1402, or through a connection terminal 1404), including a reset button 1410, and includes an LED indicator 1412. The device 1400 can also include a universal serial bus (USB) connector 1406, and an Ethernet port 1408, which facilitates connection of the device 1400 to a computer network or other device (eg, for setting up the device 1400). Personal computer).

Figure 14B shows a side view of an mPort interface device 1430 in accordance with one embodiment of the present invention. In particular, the side view of device 1430 shows a set of LED indicators and shows two RJ-45 turns and a set of connection terminals that can be connected to one or more external physical devices.

Figure 14C illustrates an embodiment in accordance with one embodiment of the present invention. A side view of the mPort interface device 1460. In particular, the side view of device 1460 shows a universal serial bus (USB) port, an Ethernet port, and a reset button.

Figure 15A shows an angled view of an mPort interface device 1500 in accordance with one embodiment of the present invention. Specifically, the device 1500 includes a serial interface 1502 (eg, an RS-232 port, RS-422 port, and/or RS-485 port) that can be coupled to a peripheral device (eg, an electrical device) and A connection terminal 1504 is included that can be coupled to a physical device (eg, a sensor). The device 1500 also includes a reset button 1510, and an LED indicator light 1512. Device 1500 can also include a universal serial bus (USB) connector 1506, and an Ethernet port 1508, which facilitates connection of device 1500 to a computer network or other device (e.g., for setting device 1500). Personal computer).

Figure 15B shows an angled view of an mPort interface device including an antenna connector 1522, in accordance with one embodiment of the present invention. Specifically, the antenna connector 1522 includes a male coaxial connector that can be connected to an antenna used by the wireless module, such as a Wi-Fi module (eg, the wireless module 248 in FIG. 2C). .

Figure 15C shows a side view of an mPort interface device 1540 in accordance with one embodiment of the present invention. In particular, the side view of device 1540 shows a set of LED indicators, an antenna connector, and shows a tandem connector and a set of connection terminals that can be connected to one or more external physical devices .

Figure 15D shows a side view of an mPort interface device 1560 in accordance with one embodiment of the present invention. In particular, the side view of device 1560 shows a universal serial bus (USB) port, an Ethernet port, and a reset button.

2E shows an apparatus architecture 260 of an exemplary mPower interface device in accordance with one embodiment of the present invention. The device architecture 260 can include a flash memory 266 for storing data and software instructions for operating the mPower interface device, and a processing unit 262 and a storage device 264 (such as RAM) for executing instructions.

The device architecture 260 can include one or more power output modules 270, each of which can include a power output controller 274 (eg, a Prolific PL7221 integrated circuit (IC) device), a relay 272, and A power outlet 276. The processing unit 262 can enable or disable power transmitted through the power outlet 276 by using a digital interface pin or a serial bus to control the corresponding power output controller 274, at which point the power output control device 274 can be generated for opening Or the electrical signal of relay 272 is closed to enable or disable electrical transmission to power outlet 276. The processing unit 262 can also provide a power output controller 274 to monitor the power consumption of the power outlet 276, for example, to periodically obtain power measurements of the corresponding electrical load.

The processing unit 262 can set the power output controller 274 to sample the physical quantity of the power signal of the power outlet 276 and obtain the sampled value through the digital interface pin or the serial bus. The physical quantity collected can be packaged Includes current, voltage, active power, reactive power, apparent power, and/or other physical quantities of power signals.

In some embodiments, device architecture 260 can include a current regulating device (eg, a TRIAC device, not shown) to control the power provided to an external device. When the phase of the power signal reaches a certain phase angle, the power output controller 274 can provide a trigger pulse to the current regulating device for a determinable time interval to provide the desired power level to the external device. For example, when power outlet 276 is coupled to a luminaire, power output controller 274 can control the current regulator as a means of adjusting the brightness level of the luminaire. As another example, when power outlet 276 is coupled to an induction motor (eg, a ventilating fan), power output controller 274 can control the current regulator as a means of adjusting the rotational speed of the motor shaft (eg, the blades of the fan).

The device architecture 260 can also include a serial port 267 that can be coupled to a peripheral device that accepts power from the power outlet 276. For example, after a peripheral device (eg, a computing device) is powered up via power outlet 276, processor 262 can use sequence 埠 267 to set up peripheral devices and/or monitor and control peripheral devices while the device is operating. In some embodiments, if the device does not respond to the command via sequence 267, processing unit 262 can determine that the peripheral device has experienced a fault event and can perform a power off and on operation through power outlet 276 to reset the device. . If the processing unit 262 needs to disable power to the peripheral device during operation of the peripheral device, the processing unit 262 can use the sequence 埠 267 to perform the shutdown sequence of the peripheral device.

Device architecture 260 may also include one or more modules in communication with external devices. For example, device architecture 260 can include communication module 268, which can include an Ethernet module connected to an Ethernet network 269, and/or can include or be connected to a wireless module 265 (eg, a Wi- Fi module, or Bluetooth module).

FIG. 2F shows an mPower interface device 278 in accordance with one embodiment of the present invention. In particular, device 278 includes at least one reset button, an LED status indicator, one or more power outlets, and a power plug. When the interface device 278 unpacks the factory default mode for the first time, a status LED indicates a steady yellow color, which is solid green when the device 278 has been successfully integrated into a network and is functioning properly. At the same time, when the Locate button is used in the mFi controller software to display the device 278 on the map, the status LED flashes.

2G shows an apparatus architecture 280 of an exemplary mDimmer or mSwitch interface device in accordance with one embodiment of the present invention. The device architecture 280 can include a flash memory 284 for storing data and software instructions for operating the mDimmer interface device, as well as a processing unit 282 and a storage device 283 for executing instructions. Device architecture 260 may also include a touch sensitive user interface 294 and a microcontroller 288 for controlling the touch sensitive user interface 294. The touch sensitive user interface 294 can include a proximity sensor 295, a motion sensor 296, and a plurality of touch sensitive sensors 297.

The proximity sensor 295 can be an object (eg, the user's hand) This is detected when approaching the touch sensitive user interface 294, and based on the proximity of the detected object to the proximity sensor 295, the proximity sensor can generate an analog signal. For example, proximity sensor 295 can include an infrared proximity sensor that emits an infrared signal from an infrared emitter and generates it based on the amount of infrared light detected by the infrared detector (eg, infrared light reflected by the user's hand). The analog signal.

Touch sensitive sensor 297 can include a resistive touch sensor, a capacitive touch sensor, or any touch screen sensor now known or later developed. When the user touches the corresponding touch sensitive sensor (eg, sensor 297. n ), the touch sensitive sensor detects an increase in the capacitance of its touch screen surface and generates an analog voltage that reflects the detected capacitance.

A corresponding touch sensitive sensor may comprise a sawtooth shape along one dimension, such as a plurality of V-shapes connected in a horizontal direction, and the touch sensor group 297.1-297. n may be perpendicular to the sawtooth shape of a user interface 294 Direction setting (eg, in the vertical direction of user interface 294). In addition, two adjacent touch sensitive sensors can be placed in close proximity, for example, the coordinates of the lowest point of a touch sensitive sensor (eg, sensor 297.1) along the vertical direction of user interface 294 are less than or equal to The highest point of the adjacent touch sensitive detector (eg, sensor 297.2).

Alternatively, a corresponding touch sensitive sensor may comprise any other shape suitable for implementing a touch sensitive grid, and the touch sensitive sensor set 297.1-297. n may be arranged along two dimensions of the user interface 294, To create a touch-sensitive surface (eg, a grid or other user interface mode) that is associated with a predetermined set of touch surface gestures.

With respect to motion sensor 296, motion sensor 296 can include an ultrasonic motion sensor, a microwave motion sensor, an optical tomographic motion sensor, or any motion sensing now known or later developed. Device. When a user or an object moves in front of the touch sensitive user interface 294, motion sensor 296 can detect its motion and can generate a binary value to indicate that an object has been detected. In some embodiments, motion sensor 296 can generate analog or digital values to indicate, for example, changes in ultrasonic measurements, changes in microwave measurements, and the like.

The touch sensitive user interface 294 generates a digital output signal for each proximity sensor 295, touch sensitive sensor 297.1-217.7. n , and motion sensor 296. In some embodiments, the touch sensitive user interface 294 can include an ADC (analog and digital conversion) device corresponding to each sensor that converts the analog signal of the sensor to a digital binary signal. The touch sensitive user interface 294 can pass through a parallel bus (eg, a number of GPIO pins on the microcontroller 288) or through a series of busses (eg, an SPI or I 2 on the microcontroller 288) The C bus is provided with the digital binary signal.

In other embodiments, the touch sensitive user interface 294 can include a Schmitt trigger device corresponding to each sensor, and a corresponding Schmitt trigger generates a binary output signal, Indicates whether a corresponding sensor has detected an object. The touch sensitive user interface 294 can pass through a parallel bus (eg, a number of GPIO pins on the microcontroller 288) or through a series of busses (eg, an SPI or I 2 on the microcontroller 288) The C busbar transmits the binary digital value to the microcontroller 288 for each sensor.

Microcontroller 288 can periodically monitor the status of various sensors of touch-sensitive user interface 294, such as at intervals of approximately 15 milliseconds. If the microcontroller 288 determines that the proximity sensor 295 detects an object, the microcontroller 288 can initiate a light source to the touch sensitive user interface 294 to allow the user to see the user when the user enters a device control command through the user interface 294. Interface 294. The manner in which the microcontroller 288 activates the light source may be, for example, by increasing the brightness of the light source to a certain level (e.g., a fixed level, or based on the level of light from the surroundings) over a determined time interval.

And, if the microcontroller 288 determines that the touch sensitive sensor detects a contact of an object, the microcontroller 288 can determine a gesture based on the current state of the touch screen user interface 294 and the previous state. For example, the microcontroller 288 can determine the current region (eg, the current state) of the user interface 294 that the user is touching, and based on the touch (eg, the previous state) of the object detected by the previous touch sensitive sensor, You can determine the direction of a touch gesture. Once the user has completed interaction with the user interface 294, the microcontroller 288 can generate a gesture indicating the speed and direction of the user's gesture, and/or the distance the user's gesture has passed. Thus, the microcontroller 288 can determine the gesture of the user swiping the finger up, or the gesture of swiping the finger down, and the speed at which the finger swipes the gesture and the distance traveled.

If the user does not swipe his finger on the surface of the touch-sensitive user interface 294 (eg, the previous state does not involve the user touching or swiping through the user interface 288), the microcontroller 288 can determine the user touch on the user interface 294. An area touched. Microcontroller 288 can generate and store a gesture that indicates a portion of the surface of user interface 294 that was touched by the user, for example, using a numerical value to indicate the vertical coordinates of user interface 294 that the user has touched. Processing unit 282 can set the output power of the luminaire to achieve a light intensity corresponding to the value.

In some embodiments, processing unit 282 obtains sensor readings and/or detected gestures from microcontroller 288 periodically (eg, at intervals of about 15 milliseconds). At the same time, processing unit 282 can use the obtained data to select a set of rules for evaluation, and can make any operations related to the rules whose conditions have been met. Processing unit 282 can also select a set of remote devices that have subscribed to a profile (eg, information about detected motions and/or detected gestures) and can use the network bits associated with the respective network connection. The address information sends the data to the selected device.

Device architecture 280 can include one or more communication modules 285 to communicate with external devices. The communication module 285 can include or be connected to a wireless module 286 (eg, a Wi-Fi module, or a Bluetooth module), and/or can include an Ethernet module connected to an Ethernet network ( Not shown). The device architecture 280 can also include a serial port 287 (e.g., a UART ported RS-232 jack) that can be coupled to an external device and can be used by the processing unit 282 to monitor and/or control peripheral devices. Peripheral equipment may include an appliance (eg, HVAC (HVAC)), or any electronic or computer device that can communicate via serial port 287.

The device architecture 280 can also include a power control module 290 to control and/or regulate the output power signal, and can include a power output controller 289 to set and monitor the output power of the power control module 290. The device architecture 280 can also include a power terminal 292 for providing power output signals to electrical loads, such as luminaires, electric motors, HVAC systems, and the like. In some embodiments, device architecture 280 implements a light switch (eg, an mSwitch device) and power control module 290 includes a relay 290.1. When the processing unit 282 determines that the user has touched the surface of the touch-sensitive user interface 294 (eg, touches any touch sensitive sensor 297), the processing unit 282 can set the microcontroller 288 to turn it on if the relay 290.1 is closed, or If relay 290.1 is open then turn it off. This configuration allows the user to turn a luminaire electrically connected to the power terminal 292 on or off. Microcontroller 288 turns relay 290.1 on or off by setting power output controller 289 to generate the electrical signals needed to open or close relay 290.1. The microcontroller can also be configured with a power output controller 289 to monitor the power consumption of the power terminals 292, for example, to periodically obtain power measurements of the corresponding electrical loads.

In some embodiments, device architecture 280 implements a light dimmer (eg, an mDimmer device) and power control module 290 includes an alternating current transistor (TRIAC) 290.2. When the processing unit 282 detects a user gesture on the touch screen (eg, via the microcontroller 288), the processing unit 282 can set the microcontroller 288 to adjust the brightness level of the luminaire that is electrically connected to the power terminal 292. For example, when the user swipes up the finger on the touch-sensitive user interface 294, the processing unit 282 can be based on the user's The finger determines the brightness level of a fixture at the current (or nearest) position, direction, and/or speed of the touch sensitive user interface 294. If the user clicks on the touch sensitive sensor 297.1, the processing unit 282 can select the highest brightness level, or if the user clicks on the touch sensitive sensor 297.n, the lowest (or off) brightness level can be selected. Processing unit 282 can set microcontroller 288 to adjust the output power of the alternating current transistor (TRIAC) 290.2 to correspond to the brightness level desired by the user. Microcontroller 288 controls the power output by setting power output control device 289 to generate the electrical signals needed to set TRIAC 290.2 and achieve and maintain it at the desired power output level.

In some embodiments, power output controller 289 also monitors the amount of current, amount of power generated, and/or electrical phase transmitted through power terminal 292. Microcontroller 288 can calibrate power output controller 289 based on the measured values to stabilize the electrical power transmitted through power terminal 292. If the microcontroller 288 detects a change in electrical load, such as due to dimming of the luminaire, the microcontroller 288 can adjust the power output controller 289 to compensate for variations in the electrical load to achieve the desired power output. Thus, the microcontroller 288 can implement a feedback loop using the power output controller 289 to adjust the lamp power to ensure a stable (non-pulsating) light intensity even if the lamp ages over time.

In some embodiments, processing unit 282 can store a previous level of illumination for the user. For example, the user can make a finger swipe gesture to adjust the level of illumination to the desired level (eg, swipe with his finger to a position corresponding to the desired level of illumination). Then, when you want to turn off the lights, the user can In any place where the touch sensitive user interface 294 is clicked, at this time, the processing unit 282 stores the current lighting level for the user and sets the power output controller 289 to stop the power terminal 292 from powering. If the user clicks anywhere in the touch-sensitive user interface 294 to turn on the light at a later time, the processing unit 282 can restore power to the previous illumination level based on the stored settings.

In addition, if the user makes a quick up or down finger swipe, processing unit 282 can quickly raise or lower the brightness level. Alternatively, if the user makes a slow up or down finger swipe, the processing unit 282 can finely adjust the brightness level of the luminaire, for example, more than can be obtained by clicking on any of the touch sensitive sensors 297. The degree of fineness increases or decreases the brightness level.

In some embodiments, processor 282 can control a luminaire that is not electrically connected to power terminal 292. When the processing unit 282 detects an event of a user's gesture (eg, via the microcontroller 288), the processing unit 282 can send the gesture event to a remote interface device that has subscribed to the local interface device for the event. The remote interface device can include a device that provides power to the luminaire, such as the mPower device illustrated by Figure 2E. When the remote interface device receives the gesture event, the remote interface device can use the information of the event and control the power of the luminaire based on a rule stored in the local rule base of the device.

In some embodiments, the electrical load connected to the power terminal 292 can include an HVAC system. For example, the processor 282 can be configured to control based on commands entered by the user via the touch sensitive user interface 294. An HVAC system. The user can swipe up to raise the temperature, swipe the finger down to lower the temperature, and trigger the power to the HVAC system by clicking on the surface of the touch sensitive user interface 294. In addition, the microcontroller 288 can provide a power output controller 289 to monitor the amount of electrical energy consumed by the HVAC system to facilitate the user to create control of the HVAC unit based on user commands and electrical consumption of the HVAC system and/or other devices. rule.

FIG. 2H illustrates an mDimmer interface device 298 in accordance with an embodiment of the present invention. In particular, device 298 includes at least one reset button, a trackpad area, and a status LED. When the interface device 298 is unpacked for the first time to activate the factory default mode, a status LED indicates a steady yellow color, which is solid green when the device 298 has been successfully integrated into a network and is functioning properly. At the same time, when the Locate button is used in the mFi controller software to display the device 298 on the map, the status LED flashes.

In some embodiments, an mDimmer or mSwitch device can communicate with a network bridge interface device through a serial communication interface, such as an SPI or I 2 C interface. The network bridge interface device can include a wired or wireless network connection to a local area network.

Figure 2I illustrates several mDimmer interface devices 299 connected by a serial communication interface in accordance with one embodiment of the present invention. Specifically, an mDimmer device 299.1 includes a network module, such as an Ethernet module or a Wi-Fi module. Meanwhile, mDimmer device 299.2-299. K may or may not include a network module, and can be connected via a serial connection and means 299.1. For example, mDimmer device 299.1 may be used mDimmer device 299.2-299. K network gateway. If an mDimmer device 299. k subscribes to its data to a remote interface device, the mDimmer device 299. k can receive real-time data (e.g., a sensor event of a remote device) via the mDimmer device 299.1. Once the mDimmer device 299. k receives the instant material, the device 299. k can process one or more rules initiated by the received material.

Interface device as data server

In some embodiments, interface device 200 can be used as a data server to send instant data from a connected physical device to a remote device that has subscribed to the data (e.g., computer cluster 152 in FIG. 1B). One controller). For example, the packet generator/parser 212 can receive a conditional subscription request from the remote device, which will cause the remote device to subscribe to the conditional alert message from the interface device 200.

The conditional subscription request may indicate a condition that determines when the interface device 200 sends status updates and/or sensor measurements of a connected physical device to the remote device. The interface device 200 can store, in the storage unit 210, the received condition associated with the remote device (eg, associated with the IP address of the remote device and/or any other network reachability information or device identification word thereof) condition). Then, when the interface device 200 determines that the condition has been met (eg, when a connected object The sensor device's sensor measurement data satisfies the condition), and the interface device 200 can send a corresponding conditional alarm message to the remote device (eg, based on the device's network reachability information). The interface device 200 can transmit a corresponding conditional alert message to the remote device using network address information associated with the network connection to the remote device. The conditional alert message may indicate that the condition has been met, and/or may indicate a status and/or sensor measurement of the physical device connected to the interface device 200.

Interface device as a data client

In some embodiments, the interface device 200 can act as a user of a profile to receive status and/or sensor measurements from a remote interface device or a central controller (eg, one or more connections to the remote Relevant information of the physical device of the end interface device). The interface device 200 can use the data it receives to modify its operational status. In particular, storage unit 210 may store one or more compound rules that are executed by interface device 200. A compound rule can indicate a set of conditions that trigger an action and can indicate an operational description of the action. The interface device 200 can select and process rules based on the received data and modify its working state based on the operational description of the rules.

The central controller can analyze a set of rules to determine such a remote interface device: the interface device 200 needs to accept data from a physical device from the remote interface device and determine conditions associated with the data. For example, the controller may determine that when a physical device X determines that the temperature has reached above 100 °F, the controller needs to receive a device from a remote interface. Temperature measurement of the physical device X of Y. The controller can provide device access information for the remote device to the interface device 200, which interface device 200 uses to establish a network connection with the remote device.

In particular, the interface device 200 can use the packet generator/parser 212 to send a conditional subscription request to the remote interface device, which causes the interface device 200 to subscribe to and receive conditional alert messages from the remote interface device. Once the interface device 200 has successfully subscribed to the conditional alert message, the remote interface device will issue a conditional alert message to the interface device 200 once the required conditions have been met. The conditional alert message may indicate that the condition has been met, and/or may indicate a status and/or sensor measurement of a physical device connected to the remote interface device.

Once the packet generator/parser 212 receives a conditional alert message, the interface device 200 can use the storage unit 210 to store the status/measurement data of the conditional alert message. In addition, processing unit 208 determines one or more such rules from storage unit 210: status/measurement data received from the conditional alert message, and/or from other recent status/measurement data stored in storage unit 210. The condition of the rule is met. Processing unit 208 can perform an operational description of any of the rules for which the condition has been met.

system running

Returning to Figure 1, communication between controller 102 and peripheral devices 106 and 108 is accomplished by exchanging communication packets, such as by exchanging IP packets over network 106, which may be an IP network. In some embodiments, device 108 processes raw input data received from connected devices 110.1-110. n (eg, by converting raw analog or digital data into meaningful information, such as temperature or humidity readings). The interface device 108.1 encapsulates the conversion data into an IP data package and sends the data package to the controller 102 so that the user 104 can view the information. In addition, user 104 can issue a command, such as establishing a rule for controlling the operation of the connected physical device. The controller 102 can encapsulate the user commands into IP data packets and send the data packets to respective interface devices (e.g., devices 108.1 and 108. m ), which in turn parse the data packets and execute user commands. Note that because the network 106 can include the Internet, the user 104 and the controller 102 can still monitor and control the physical device 110 at any location that enables him to access the network 106.

FIG. 3A is a flow chart illustrating an exemplary method 300 for setting up a device controller in accordance with an embodiment of the present invention. During the initialization process of the system, the controller discovers several interface devices (also known as mPorts) that are part of the system (operation 302). In some embodiments, the controller and mPorts are in the same local area network (LAN) domain. In other embodiments, the controller is coupled to the mPorts via a wide area network (WAN), such as the Internet.

To discover the interface device, the controller can receive the user's login information from the user, and the controller identifies the interface device associated with the user's account. The controller can identify each interface device by its MAC address and/or by its IP address. At the same time, during the discovery phase, the controller can also automatically detect the physical installation of some interface devices connected to the user. Set (such as devices made with the same vendor that manufactures mPorts), regardless of whether the user has already registered them, so that it is associated with his user account.

The system can then receive information from a third party physical device (e.g., a dedicated device connected to the mPorts) connected to the interface device (operation 304). For example, the user can interact with a graphical user interface (GUI) provided by a controller, enter a model for the third party device, and determine which mPort the third party device is connected to (eg, by its MAC address identification). ), which is connected to which mPort. Remember, the mPort device can be connected to a physical device via an analog terminal or through a serial communication port. The system can use the model number of the physical device to determine a descriptive label for the device, determine the type of material that can be observed from the device (eg, an analog or digital value, and a descriptive label of the observation), and Determine which types of data values can be provided to the physical device. In some embodiments, if the system does not recognize the physical device, the user can use the GUI input parameter indicating the data value that is expected to be available from the physical device or the data value that can be provided to the physical device, and the data values. Descriptive label.

The system can also receive settings from the user regarding the configuration of the interface device (operation 306). In this process, the user can interact with the GUI to indicate the location of the device placed or installed by the user on a map, indicating how these devices operate. For example, the user can specify an operational schedule for an mPort device and can indicate a schedule and/or frequency. Used to monitor a defect on the device.

The controller also receives one or more rules defined by the user (operation 308). Each rule defines the conditions that trigger an action and what happens when those conditions are met. A rule condition may include a conditional element that takes one or more physical quantities of sensor measurements as input information. The detected physical quantities may include, for example, time value, temperature, humidity, power level, voltage, current, detected motion, on/off state (eg, with respect to an electrical load), on/off state (eg, regarding one Door), light level, (for example, ambient light), and moisture content.

Further, a condition element can include a comparison operation that can be performed by comparing one sensor measurement to a predetermined value (eg, a constant value) or another sensor measurement. The comparison can include, for example, whether the sensor measurement is greater than, less than, or equal to the predetermined value or another sensor measurement. A conditional element may also include an assessment or comparison of physical quantities associated with time. For example, a conditional element can take the current time as an input and compare the current time to a predetermined time value. As another example, a conditional element may take as input a duration of a sensor's current state, such as when the state of the sensor maintains its current value, or the state of the sensor continues above or below a predetermined threshold. time. The conditional element can compare the time period to a predetermined time, for example, to determine if the state of the sensor is already at the current value (or above a given threshold) for at least 10 minutes.

In some embodiments, a rule can be a composite, involving Rules to multiple devices. A conditional element can contain a logical operand that can be evaluated by logical operations on the result of one or more conditional elements. For example, a rule may stipulate that once a door sensor detects that the door is open and a motion sensor determines that no motion is detected in the room (eg, means that a person is entering the room), then a light switch should automatically Open a light in the room. Also, another rule may stipulate that once the door is opened and motion has been detected in the room before (eg, meaning the person is leaving the room), the light switch should turn off the light. Note that these rules define conditions that trigger the corresponding action (eg, turning the light on or off) (eg, the door is opened and whether motion is detected) and may involve multiple devices (eg, door sensors, motion sensing) , and light switch). The controller can in turn store the rules in the rule base (operation 310) to set the controller to operate based on the rule definition and physical device data.

The operational description of a rule specifies one or more operations that should be performed when the condition criteria are met. The operational description may include one or more operations that should be performed, such as turning a digital output signal on or off with an optional time limit (eg, turning the digital output signal on or off for 10 minutes, or 10) Turn the digital output signal on or off after a minute). As another example, the operational description can specify a script that is processed by the interface device. The script can include a series of instructions that are made by the interface device to achieve the desired result. Also, the operational description may indicate that the interface device will send a message to a target entity (eg, an email message), or generate an event and store it in a transaction. The logs are visible to an administrator.

In some embodiments, if the interface devices (mPorts) execute rules (eg, when implementing a decentralized control system), the local controller (eg, the user's personal computing device) can send the defined rules to the connected physical Interface device of the device. For example, the local controller can send the rules to an IP address associated with the interface device that should execute the rule, or the rules can be sent to the interface device via a network connection to the interface device.

FIG. 3B is a flow diagram illustrating an exemplary method 350 for presenting configuration data and/or sensor data in accordance with an embodiment of the present invention. During operation, the controller can provide the user with a graphical user interface that allows the user to select one or more physical devices to monitor. The controller can receive a selection from the user regarding one or more physical devices to be monitored (operation 352), and in response to receiving the selection, the controller obtains historical and/or real-time data for the physical device. (Operation 354). The system can obtain the data from a local sensor database (eg, in a local repository) or can request data from an interface device connected to the physical device. The controller can then present device configuration information associated with the physical devices, and can also present historical and/or real-time data to the user via the graphical user interface (operation 356). For example, the user can select a temperature sensor, and the mport associated with the temperature sensor sends the temperature detected by the sensor to the controller for a specified period of time. The graphical user interface can include a map showing a temperature sensor at a corresponding location of the temperature sensor As shown, current or recent temperature measurements can be displayed next to the icon on the map. The graphical user interface can also include a table or line graph for presenting historical temperature measurements of the temperature sensor.

User interface view

4A is a flow diagram showing an exemplary method for setting up a device layout space for a spatial view graphical user interface (GUI) in accordance with an embodiment of the present invention. During operation, the controller may receive deployment space data for the device deployment area (operation 402). The deployment space data may include, for example, a map coordinate (eg, a street map) of an outdoor area in which a set of physical and/or interface devices have been deployed. Or an image representing a map of an indoor area (for example, a floor plan) or an outdoor area. As another example, the deployment space material may include a still picture of a room in which a set of physical devices has been deployed, or may include instant video transmission of the room or space (eg, from a tilt zoom camera (tilt- Zoom camera)). The user can select an existing image file from a storage device that can be used by his personal computing device and upload the image for a given space, or select a source of the image or instant delivery (eg, , a network address, a port number, and/or a client certificate). The user can also upload the image by taking a photo of the space (for example, using a camera connected to a smart phone, tablet, or laptop) and uploading the photo to the controller.

If the deployment space data is a map corresponding to an outdoor area, use The user can provide the deployment space data to the controller by indicating a geographic area that covers the set of deployed devices. A user may indicate the geographic area by providing two or more sets of geographic coordinates associated with the deployed device (eg, by providing a geographic coordinate covering the area of the device, or the geographic coordinates of the device itself), The system can thus determine a geographic area that covers the deployed device for presentation to the user. Alternatively or additionally, the controller can provide a spatial view graphical user interface that allows the user to view an interactive map (eg, a street map or satellite map). By browsing the interactive map to the area that covers the deployed device (for example, entering a city name or postal code number in a search box, and/or swiping the interactive map), and by adjusting the zoom level to cover a surrounding The desired area of the deployed device that the user can provide.

Once the controller receives the deployment space data, the controller can provide a spatial view GUI that includes a visual representation of the device deployment space (operation 404) and can obtain device location information for one or more devices deployed in the space ( Operation 406). The controller can obtain device location information from a device library that includes configuration information for a plurality of physical devices and interface devices. The controller may also retrieve the location of the device from the user when the user drags the icon of a physical device or interface device to a location on the visual representation of the deployment space such that the target location represents the deployed location of the device. News. Once the user completes deploying the device on the visual representation, the user can click on a "Save" button on the spatial view GUI to complete the setup, at which point the controller can store the deployment space data. And device location information (operation 408).

In some embodiments, when the user interacts with the spatial view GUI, the controller can receive recent device status and/or sensor measurements for the one or more deployed devices (operation 410). In response to receiving the new material, the controller may update the spatial view GUI to present the information to the user, for example, by overlaying the icon of the device and their recent status and/or measurement data in the device deployment space. The representation is on (operation 412).

4B is a flow diagram showing an exemplary method 430 for presenting and updating a spatial view GUI in accordance with an embodiment of the present invention. During operation, the controller may display a spatial view GUI showing a visual representation of a device deployment space overlaid with device icons and corresponding status and/or sensor measurements (operation 432) . For example, the controller can use an icon to show the status of the device indicating whether the device is working (eg, being utilized), available but is being deactivated (eg, not utilized), or no response ( For example, it is turned off, there is no network connection, or a failure condition). In addition, the controller can render by displaying an alphanumeric value or any image representing a recent measurement (eg, a value representing a temperature reading, or an LED image representing an on/off value or any binary value) The sensor of the device measures the data.

In some embodiments, the controller can determine if it has received an update from a state or measurement of a device (operation 434). If so, the controller can update the spatial view GUI to show the updated device shape State and/or updated sensor measurements (operation 436). The controller can then return to operation 434 (e.g., after a determinable delay period) to receive updated status or measurements from the same device or different devices.

Otherwise, if the controller does not receive an updated status or measurement, the controller can determine if the currently displayed status or measurement data has timed out (operation 438). If the currently displayed material has timed out, the controller may update the spatial view GUI to remove the timeout data and/or indicate that the data has timed out (operation 440). The controller can then return to operation 434 to determine if it has received an updated status or measurement from the same device or a different device.

FIG. 4C illustrates a spatial view GUI 460 provided by an exemplary controller in accordance with one embodiment of the present invention. The GUI 460 includes a central display area 462, side panels 464, and a number of selectable tags, such as a space tag 466, a material tag 468, an event tag 470, a rule tag 472, and a device tag 474. The central display area 462 displays information such as pictures, graphics, and control panels associated with a selected tag. In Figure 4C, the selected tag is a "space" tag 466 that displays the layout of a building that shows the location of a set of interface devices (mPorts) and physical devices using appropriate illustrations. For example, one diagram 476 represents one mPort and one diagram 478 represents a temperature sensor.

In some embodiments, the user can upload a spatial view image by selecting an existing map or an image of the room in the user's computer, or by taking a photo of a room using the camera on the user's smart phone. . In some other embodiments, the spatial view image may include an image taken by a security camera or an instant video transmission. In some embodiments, a user may use images acquired from an internet-based map service (eg, Internet service of Google Maps) to indicate mPorts and locations with physical devices.

The content of the side panel 464 is also associated with the "space" tag and can display a list of available devices that can be dragged to the appropriate location in the space displayed by the central display area 462. In addition, the user can also drag a device icon (eg, an illustration of an mPort device) from its current location in the spatial view to a new location. In Figure 4C, central display area 462 also includes a zoom slider 480 that can be used to zoom the map.

FIG. 4D illustrates an exemplary spatial view GUI 480 provided by a controller in accordance with one embodiment of the present invention. The GUI 480 includes a central display area 482 that can display an image of a room selected by the user that deploys a set of sensors, or can display a security camera provided that includes a desired portion of the room. Instant video transmission, or instant video transmission from a user's portable handheld device.

The user can drag a device icon from the side panel of the GUI 480 to a location on the display area 482 associated with the device. The controller can store the display position of the device, which will allow the system to overlay the device icon to the same location in display area 482 relative to the "space" image. In some embodiments, if display area 482 is providing a pan/tilt/change The instant video transmission from the pan/tilt/zoom security camera can be displayed in the display area 482 as the camera sweeps, tilts, and/or zooms the adjustment device. This causes the device icon to appear to be locked to a part or location of the room. Likewise, if display area 482 is providing instant video transmission from a user's portable handheld device, the controller can obtain the geographic coordinates of the portable device and its orientation. The controller then determines and displays a set of devices and can adjust the position of the device in display area 482 as the user moves, pans, tilts, and/or zooms the portable camera.

In some embodiments, a user may interact with a device icon to control the type of information displayed, or to control an interface device and/or physical device associated with a device icon. For example, device diagram 484.1 corresponds to a current measuring device for measuring a fixture mounted on a wall. The user can view the current consumption of the luminaire to determine if the luminaire's bulb is worn or extinguished. At the same time, device diagrams 484.2 and 484.3 may correspond to a temperature adjustment device and may indicate current room temperature and humidity measurements, respectively.

Device icon 484.4 may correspond to a sensor indicating whether the door is open or closed, and device icon 484.5 may correspond to a motion sensor (eg, a sensor built into a light switch). In Figure 4D, the user activates device representation 484.5, which causes the controller to use color to display the detected level of motion within a quarter circle. The controller also overlays a set of control icons around the device illustration. The control icon allows the user to control the information provided by the corresponding device, and/or control The device itself. For example, the control icons may include: a "chart" icon; a "detailed information" icon; a "locked" icon; and a "delete" icon.

The "chart" icon displays a color-coded value table that represents a low value, an average value, and/or a high value, or an event frequency, based on the type of device. The "details" icon allows the user to open a detailed view window for viewing detailed information about the physical device, such as the name, model, and mPort identification of the interface device, and a link associated with the physical device. Detailed information can also include historical status/sensor data, as well as historical events. In some embodiments, the detail view window also allows the user to control the device, such as turning the light on or off.

The "lock" icon is used to lock the selected sensor to the current position of the image of the space and disables the "delete" function of the sensor when the sensor icon is in the locked state. The "delete" icon allows the user to delete the sensor at a location in display area 482.

If the device is a serial-based sensor, the controller also displays a "shell" illustration that allows the user to open a command-line interface shell to control the device or device. interactive.

FIG. 4E illustrates an exemplary spatial view GUI 490 provided by a controller in accordance with one embodiment of the present invention. The GUI 490 includes a central display area 492 that displays a geographic map of a geographic area selected by the user. The controller can display a map for the user, for example, a map service from the Internet (for example, Google Maps Internet Service), and the user can interact with the map and scroll through And/or zooming to get the desired view of display area 492 to navigate to the desired location.

The user can drag a device icon from the side panel of the GUI 490 to a location on the display area 492 associated with the device. The GUI 490 includes a set of exemplary device icons, such as a motion sensing device graphic 294, a power sensing device graphic 295, and a temperature sensing device graphic 297. In some embodiments, based on where the user places the device icon in display area 492, the controller can determine a geographic location that corresponds to the device icon. The controller associates the geographic location with the device (e.g., in a device location repository) such that the controller is relatively "space" on display area 492 despite the user scrolling or zooming in "space" The device icon is displayed at the same location as the image. At the same time, by giving the device an attribute of a geographic location, the user can monitor and/or control the device using an augmented-reality application on the mobile device.

Location-based device visual representation

In some embodiments, the controller allows the user to view the device's profile based on the location or geographic location of one or more devices. The controller can determine the geographic location of the device from the device's built-in GPS (Global Positioning System) sensor, which can also be obtained by Wi-Fi triangulation, or by acquiring the device's location identifier or geography from a device location repository. Realized by location.

For example, if the user is using a geographic map user interface (UI) check Looking at the device's profile (eg, GUI 490), the controller can overlay the profile such that it includes the profile of the sensor associated with the geographic area that the map UI includes. If the map UI is zoomed out, causing multiple device icons to overlap, the controller can replace the overlapping device icon with an aggregate device icon. In some embodiments, the aggregation device diagram represents a number of devices that overlap within a respective region. In some embodiments, if the illustrations represented by the aggregation device diagram are the same type of device, the controller can generate a graphical representation of the aggregation device indicating the aggregate value. The total value can represent, for example, a sensor measuring the mean or median, the sum of the sensor measurements, or any calculation of the number of sensor measurements using a mathematical function.

Then, if the user further zooms in on the map such that one or more devices no longer overlap with other devices, the controller can update the overlay representation as needed. For example, the controller can update the map UI to clearly display the non-overlapping device representations and generate an aggregated device icon for indicating the values calculated from the remaining overlapping device icons.

In some embodiments, the controller can provide the device's profile to the user's mobile device for display in an augmented reality view. Similar to GUI 490 (Fig. 4E), the controller provides the mobile device with device information of the interface device and/or physical device within the display area of the UI (e.g., within the current view of the user). Because the user can align the camera of his mobile device in a direction that includes a remote device (eg, a temperature sensor throughout a city), the controller can only provide the mobile device with a distance from the user. Information on devices within a certain range.

Similar to UI 480 (Fig. 4D), the user's mobile device overlays the device icon over the instant image transfer captured from the camera on the mobile device. When a user pans, tilts, or zooms a camera of their mobile device, the augmented reality system updates the overlay device icon to include only those icons that are within the user's field of view. The augmented reality system selection icon overlays the captured image based on the location and geographic location of the user's mobile device, as well as the geographic location of known physical devices and interface devices. A user can interact with a device icon to control the type of information displayed, or to control an interface device and/or physical device associated with a device icon.

Generate and process rules

FIG. 5A is a flow diagram illustrating an exemplary method 500 for generating and storing rules for controlling an interface device or physical device, in accordance with an embodiment of the present invention. A rule can contain one condition or can include multiple conditions. For example, a single device may be associated with two or more conditions, or there may be multiple devices, each associated with at least one condition. The rules can also include an action that is executed when the condition is met.

During operation, the controller may accept (eg, via a rules view GUI) one or more devices to be monitored by the user (operation 502). An interface device can include an mPort interface device, an mPower interface device, or an mSwitch or mDimmer interface device.

As previously mentioned, the mPower interface device can implement a power strip that provides the controller with the power consumed by each outlet and can control the power to a socket based on the results of processing a regular operational description. The interface device or controller can determine from the power measurements whether a device is being used or is in standby mode. Thus, the user can select a socket on a power strip to monitor the operational status of a corresponding appliance powered by the outlet, and the user can specify a voltage value as a condition to trigger an operation.

The mPort interface device can be coupled to one or more physical sensors to obtain an analog or digital value from each sensor. Thus, the user can select a sensor that is connected to the interface device and can specify an original value (or a descriptive tag associated with the original value) as a condition to trigger an operation.

The controller may also receive condition values for one or more devices, or nested conditions (operation 504), and a type of conditional processing indicating how conditions from one or more devices are processed (operation 506). For example, a conditional processing type may indicate that when any, all, or a particular number of individual conditional elements (eg, no, one, two, all, etc.) are satisfied, the condition of the rule is satisfied. In some embodiments, a conditional element can include a target value of a monitored physical device.

In some embodiments, a conditional element can contain a nested condition that itself has a conditional type. Therefore, a rule condition can implement complex logic statements, such as the sum of products (SoP) or the product of the sum (PoS). As an example, the conditions of the rule can be Includes a top-level condition that indicates that all of the elements of the condition need to be met (for example, implement an "and" logical statement), and a nested condition that indicates that at least one of the elements of the nested condition needs to be satisfied (for example, Implement an "or" logical statement).

In other embodiments, a conditional element may contain a "schedule" condition indicating a time or time range during which the rule may be processed. The interface device can use the time of one schedule (eg, start time) to trigger the evaluation of the rule, and/or, if the rule is triggered by another event (eg, through a conditional element associated with a physical device), the interface The device can determine if the rule can be processed.

Further, the controller can receive an operational description of the operation that is desired to be performed (operation 508). By interacting with a rules view GUI, the user can provide an operational description that indicates one or more operations to be performed by one or more interface devices. These operations may include setting the output voltage of a particular turn of the interface device to a predetermined target value. In some embodiments, the behavior description can be in the form of a script that is executed by one or more target interface devices.

Once the user has set the rule element, the controller can generate the rule to initiate the desired operation when the condition indicated by the conditional processing type is satisfied (operation 510). The controller then stores the generated rules in a rule base, for example, in an interface device and/or on a database of an application server (operation 512).

Figure 5B illustrates a graphical user interface (GUI) of an exemplary controller in accordance with one embodiment of the present invention. As shown in Figure 4C, GUI 550 Includes center display area, side panels, and optional labels. In Figure 5B, the selected tag is the "Operation" tag, which allows the user to define a set of rules. The side panel displays a list of previously defined rules, such as door open rule 552. By clicking on a rule, the user can view the rule in the central display area, which includes a rule name field 554, a condition field 556, and an action field 558.

The condition field 556 includes a set of conditional elements that can trigger an evaluation of the rule and be analyzed to determine whether to process the operational description of the rule. A conditional element can include a variable that selects a device or nested condition and can include another variable that defines which conditions associated with the device or condition will trigger the rule. Condition field 556 can also define whether the rule will be triggered when any of the conditional elements are met, or if all of the listed conditional elements are met (not shown).

In the example shown in FIG. 5B, the name of the rule is "rule 123", and the first device associated with the rule is "socket 1", and the corresponding condition value indicates that the power of the socket needs to be greater than 1 watt to enable the condition element. Satisfied. The second device associated with the rule is a "sensor" that monitors an analog input signal and the user can set a corresponding condition value that indicates the minimum voltage required to achieve the conditional element. By selecting the "Add" button 562, the user can add a conditional element to another physical device or interface device. At the same time, by selecting a "schedule" button 564, the user can add a conditional element that indicates the schedule of the rule.

Operation field 558 displays the action to be taken once the condition is met. In the example shown in Figure 5B, once the conditions are met, the system will cause socket 1 It lasts for 10 seconds and can be set to a "floor fan" physical device that is turned on for 0.08 minutes. The user can also add other operations to the action field 558, such as executing a script, setting the output of an interface device (eg, controlling the "floor fan" output), and/or sending a notification (eg, by sending an email to the specified Mail address and / or generate a system alert).

At the same time, the user can use the GUI 550 to edit and update existing rules 552, click on a new rule button 560 to define a new rule, and/or enable or disable the rule.

Figure 5C illustrates a user interface 560 showing exemplary predefined conditions that may be incorporated into a set of conditions for a rule in accordance with one embodiment of the present invention. In particular, condition group 562 includes a set of conditions associated with various physical environments. For example, when a motion detector detects motion near a particular physical space, the condition "motion of window 2", "motion of window 3", "motion of conference room", "motion: mFi lab 1" is evaluated Be "correct". When an infrared beam is blocked, the condition "beam detector" is evaluated as "correct", which indicates that an object passes a particular location (eg, at the entrance of the door). When a corresponding door is opened, the conditions "Door 1" and "Door 2" are evaluated as "correct".

At the same time, the "schedule" group 564 can indicate a number of schedules associated with one user. For example, a "night" plan can indicate when a luminaire should not be opened in a given building or space, and a "safe" plan can correspond to a time period during which no one should In a given building. A “backyard watering” and “front yard watering” plan can indicate a time range in which a spray head can be activated to correspondingly water the backyard or front yard.

FIG. 6A illustrates an exemplary controller device view GUI 600 in accordance with one embodiment of the present invention. In Figure 6A, the selected tag is the "Device" tag, and the central display area of the GUI 600 displays two panels that view a set of device related material. In particular, panel 602 displays a list of physical devices that a user can monitor, and panel 604 displays a list of interface devices (mPorts) associated with the user. Users can manually add or remove physical and/or interface devices by interacting with the GUI 600 and view the current working status of these devices.

FIG. 6B illustrates an exemplary controller profile view GUI 630 in accordance with one embodiment of the present invention. The GUI 630 includes a central display area, a side panel, and a set of optional labels associated with various views. In Figure 6B, the selected tag is a "data" tag that allows the user to view data collected from one or more physical devices and interface devices.

The side panel displays three selection panels: a date range panel 632, a view selection panel 634, and a device panel 636. Device panel 636 displays a list of available devices, sorted by type. By clicking on one or more devices, the user can view the device's data in the central display area. The user can use the date range panel 632 to specify a time period for the displayed material, and can use the view selection panel 634 to create a customized view of the material for a specified time. If the user creates a custom view, the system can use the custom view again to be in the format desired by the user. The user presents the data. In the exemplary view provided in Figure 6B, the central display area displays two graphs showing the temperature versus time of the two selected temperature sensors.

In some embodiments, the central display area may also display historical data of the sensor in a map or space (not shown). For example, the user can select a time period or time range, and the system can update the GUI 630 to place a sensor value (eg, a sensor average or a graph of sensor values) on one of the maps Or on the image of the space next to the device icon. The GUI 630 can also present a set of events caused by the device over time to the user. The user can select the "Play", "Rewind", or "Fast Forward" buttons to select a speed for viewing how the sensor event notifications are triggered over time, and/or to see the sensor values over time. Variety. Additionally, the user can control a "scrubber" to select a particular time or time interval that displays the sensor event and/or the value of the sensor.

The GUI 630 also has a mouse hover function that allows the user to hover the mouse over the data schedule to view specific details and click and highlight a specific area of the schedule to give a specific portion of the schedule. close up. In one embodiment, a magnifying glass icon appears when the user hovers the mouse pointer over the data schedule, and when the user clicks on the mouse pointer and drags the mouse pointer from the timeline side to the other side The time range selected by the user will be highlighted. Once the user completes his time range selection, all devices in the view will be focused to the selected time range.

Figure 6C shows an example in accordance with one embodiment of the present invention. Sexual Controller Event View GUI 660. The GUI 660 includes a central display area, a side panel, and an optional set of labels. The tag selected in GUI 660 is an "Events" tag that allows the user to view historical events associated with a group of devices. Note that an event is an execution of a rule.

The side panel displays three selection panels: screening program panel 662, date range panel 664, and device panel 666. The central display area displays information about historical events. Device panel 666 displays a list of available devices categorized by type, and the user can select one or more devices to view their historical event data. Screening program panel 662 allows the user to filter the data using specific search criteria. More specifically, the user can enter a text string in the screening program panel 662, and the controller uses the input text string to remove event data that does not match the input text string to perform an instant search. The user can also use the date range panel 664 to specify the time period of the event material to be displayed in the central display area. The controller does not display events that occur outside of the specified time period.

In GUI 660, the central display area includes a plurality of display areas, such as areas 668, 670, and 672. Region 668 uses a bar graph to display the temporal distribution of events generated over a specified time range. Each bar represents an event that occurs within a unit of time, and the unit time is set by default to a period of 2 hours. The user can click on a bar to display events related to the time period.

Region 670 displays a pie chart showing the device-based distribution of events occurring within a specified time. Modify search or filter criteria each time a user modifies The controller can update the time profile and device profile. Area 672 is the primary display area that displays a list of events that satisfy the search or filter criteria. Each event entry displays: a time field that displays the date and time when the event occurred; a device field that displays the name of the device that generated the event; a type field that displays the type of event; and a numeric field that displays the trigger The value of the event; and a rule name field that displays the name of the rule that triggered the event. When the user mouses over an event, the controller can display a window presenting the current location of the device in the corresponding "space" (eg, via a map, a stored image, or in a The "space" instant video transmission is overlaid with a device icon), a 24-hour summary of the value, the value at the time the event occurred, and the last reported value, as indicated by area 674.

Interface device runtime function

FIG. 7 is a flow chart illustrating an exemplary method 700 for processing a rule at a local interface device in accordance with an embodiment of the present invention. During operation, the local interface device can detect an event that triggers the rule (operation 702) and select a rule associated with the detected event (operation 704). The device may receive an event from a remote device or may detect the event locally, such as by monitoring a locally connected physical device and/or monitoring a schedule condition that triggers a rule. To select a rule triggered by an event, the local device can perform a rule lookup operation that selects at least one rule from the rule base that includes a condition associated with the detected event. For example, remote loading The set may include an mPort device that receives input from the door sensor, the local interface device may select one or more rules, and when the door sensor indicates whether the door is open or closed, the operation of the rule is triggered.

In some embodiments, a condition may include multiple sensor variables that need to be evaluated to determine if the condition is met. In addition, the condition can also include a reference to a nested condition, and the device needs to evaluate the nested condition first to determine its outcome. Once the local device chooses to process the rule, the local device can determine if the condition of the rule requires additional input material (operation 706). The rules may include one or more conditional elements associated with, for example, a physical device (eg, a motion sensor), a schedule condition, and/or a nested condition. If the condition of the rule does not require additional input, the local device may process the rule using the received data indicating the recent status, or the measurement data from the remote interface device (operation 712).

However, if the condition of the rule does require additional input, the local device can determine the source of the other input data for the rule (operation 708), such as sensor data, information about the timing of the rules, or the result of a nested condition. The local device then obtains the necessary information from other input sources (operation 710) and proceeds to operation 712 to use the obtained rule-related status and/or measurement data processing rules.

After processing the rules, the local device can determine if the condition of the rule has been satisfied by the device status and/or measurement data (operation 714). If so, the local device can process a rule-related operational description (operation 716). Otherwise, the local device can ignore the rule or perform a remedial measure (for example, ignore the rule for a certain period of time).

The operational description, for example, can include a command that sets one or more interface devices or physical devices as targets to a predetermined state. As another example, the operational description can include a script that performs complex operations. In some embodiments, the script can calculate a target state for the local device by performing a sequence of instructions to process recent and/or historical states and measurements of one or more physical devices. The local device also determines if there are more rules associated with the updated status or measurement (operation 718), and if so, the local device can return to operation 704 to select another rule.

Note that it may happen that two rules have overlapping conditions (for example, conditions allow both rules of the operation to be performed), and the operations of the conditions conflict with each other. The operation of one rule may involve turning on a light, while the operation of other rules may involve turning off the same light. If the processing of two rules is "parallel", the two rules can be executed in any order (not necessarily simultaneously), so that the action of one rule does not affect the execution of the next rule. In the example of the above control light, if the conditions of both rules are satisfied, and the two rules are basically executed in parallel, the final state of the lamp depends on which rule is processed by the second. Therefore, an unexpected sequence of execution can lead to unexpected behavior.

In some embodiments, the local device processes one rule at a time and processes it in a user-specified order.

For example, the local device proceeds to operation 718 to select another rule in an ordered collection, but this is only at operation 714 and/or 716. After processing the previous rules. At the same time, if the execution rule changes the state of a device, the next rule in the ordered collection is processed according to the new state of the device. Such rule processing ensures that each updated state/measurement obtained from an interface device has only one expected behavior.

Cloud-based implementation

In some embodiments, the controller exists and runs in a server cluster (eg, "cloud"). The controller can monitor and control the interface device for a number of different users, which is achieved by communicating over an WAN, such as the Internet, using IP packets and each interface device. When the user first deploys an interface device in his local area network, the user can pair the interface device with his personal account on the controller. For example, the user can enter their own account number and password when setting up the interface device. Alternatively, the user can pair his interface device without revealing his password, for example by registering his interface device's unique identifier (eg, a MAC address) on the controller. The interface device is authorized by an open authorization agreement.

Also, if the user wants to interact with the controller to monitor or control one or more devices within their own LAN, the user can access a user interface, or use and control of the controller via an Internet browser. An application that interfaces with web application interfaces (Web APIs) (for example, using a mobile app on a smartphone or tablet computer, or using an application software on a personal computer).

Figure 8 illustrates an exemplary computer system 800 for use in A controller 802 within a server cluster is coupled to a device 808 within a local area network. Computer system 800 includes a controller 802 that is coupled to wide area network 804. Computer system 800 also includes an interface device 810 and computing device 812 within local area network 808 and includes a router/firewall 806 that separates local area network 808 from wide area network 804.

During operation, devices within local area network 808 can establish a network connection to controller 802 or to one or more peer devices within local area network 808. For example, the controller 802 can store the network address information of each device in a database and maintain the latest state network address information to facilitate communication with these devices. This allows the user to reset one or more interface devices in the local area network 808, and/or one or more rules of the interface device, using a personal computer (eg, computing device 812). The user's personal computer can include application software that provides a user interface for monitoring and/or configuring the device interface network and uploading any configuration to controller 802. The user's personal computer can also have an internet browser that accesses the user interface of controller 802.

When a user enters and communicates configuration changes to the device interface network, for one or more devices that need to be updated, the controller 802 programs the user's configuration into the configuration of those particular devices and passes the updated configuration through these interfaces. The network address information associated with the corresponding network connection of the device is sent to these interface devices. The configuration of the particular device may include network configuration of the interface device, rule configuration, network address information for one or more peer devices (eg, for subscription data, as one or one Update of the input information of the above rules).

Moreover, in some embodiments, each device within local area network 808 can also establish a network connection with any device that it subscribes to, and/or any material that subscribes to it. The device can receive and respond to data requests from the peer device (or from controller 802) as a server. The device can also act as a client device that can receive unsolicited data (or requests for data) from a remote device and can use the network bits associated with the network connection to the remote device. Information to push real-time data to the remote device. Thus, even if the local area network 808 is disconnected from the wide area network 804 (and therefore disconnected from the controller 802), devices within the local area network 808 can continue to communicate with each other using established point-to-point connections and perform the functions of the server and the client.

During operation, controller 802 can receive IP data packets from device 810 and device 812 via a tunnel channel 814.1 or 814.2, respectively. In some embodiments, the tunnel channel 814 may include a network connection created by temporarily opening a router on the router/firewall 806 via a long polling request (eg, by, for example, STUN (Session Traversal Utilities for NAT), Comet, etc.) The network connection created by the agreement). These long polling requests temporarily open a port on the router/firewall 806, which can be used by the controller 802 to issue a response packet.

For example, in some embodiments, controller 802 needs to send unsolicited material to interface device 810 (eg, instant material or configuration of device 810), or send unsolicited data to computing device 812 (eg, instant data) ). Passing a long polling message through the controller 802 periodically /Requirement (e.g., when using Comet, an XHR message, or a STUN message when using STUN), the devices in the local area network 808 can maintain a continuous network connection with the controller 802. The message indicates a unique identifier of the device (e.g., a MAC address) that the controller 802 uses to store the latest communication port of the device in a device access repository.

In other embodiments, the tunnel channel 814 can include a persistent two-way network connection, such as a channel established using the WebSocket protocol. To establish a WebSocket channel, the device within the local area network 808 sends a WebSocket handshake request to the controller 802, which upgrades an HTTP session to a WebSocket session, which may include a Sec-WebSocket-Key token. The controller 802 sends a response to the device in response to the acknowledgement of the WebSocket session and includes a Sec-WebSocket-Accept token derived from the Sec-WebSocket-Key token.

As previously mentioned, each device (e.g., controller 802, device 810, or device 812) associated with the interface device network includes a device access repository that includes each computing device or interface device in the network. Device access information. In some embodiments, the device accesses the repository to associate a device's unique identifier with one or more of the following: an nickname associated with the device on the router/firewall 806, in order to reach the router/firewall The IP address of 806 (e.g., a wide area network IP address), and the IP address used in the local area network 808 to reach the device. For example, when the controller 802 needs to send a data packet to the device 810 Or device 812, controller 802 can determine from the device access repository the IP address necessary to reach the device and a recent nickname. Controller 802 can then send a packet to the IP address via the recent nickname of router/firewall 806.

Instant data communication via a peer-to-peer network connection

In some embodiments, an interface device within the local area network 808 can perform instant data communication with the peer device by obtaining device access information for the peer device from the device access repository. The device access information may indicate a network address associated with the network connection to the target peer device and may indicate authorization information (eg, username, password, and/or certificate) for the local interface device. If the network connection to the peer device is active, the local interface device can connect to the peer device via a network connection and using any required authorization information.

If the network connection to the peer device is not active, the local interface device can establish a point-to-point network connection, which can be accomplished, for example, by obtaining device access information for the peer device from a central controller. This point-to-point network connection provides reliable communication between peer devices because it does not require the device to communicate over the wide area network 804, nor does it require a central forwarding service (e.g., controller 802) to maintain or complete the interface between the peer interface devices. Internet connection.

Instant data communication via forwarding service

In some embodiments, an interface device within the local area network 808 can It is impossible to establish a point-to-point network connection, for example, when two peer devices exist in different network domains. In this case, the local interface device can perform instant data communication by using a forwarding service and a peer device, which may be provided by the controller 802 or by a server (not shown) separate from the controller 802. provide.

The device access information may indicate a network address associated with the network connection of the forwarding service, a unique identifier of a peer device, and authorization information for the local interface device (eg, username, password, and/or certificate). For example, if the local device does not have a network connection to the peer device, the local interface device can send the data to the peer device by forwarding the service and using any authorization information required. This allows two peer devices to communicate with each other on real-time data, even if the two devices are not in the same network domain.

As another example, a local interface device can receive instant data from multiple peer devices via a network connection to a forwarding service. The forwarding service can maintain a network connection to each interface device and can use the network connection to the corresponding interface device to send to the interface device the instant data that the device has subscribed to from any other peer device. This allows the interface device to receive instant data from multiple peer devices without maintaining a network connection to each peer device.

In some embodiments, the user's personal computing device can communicate directly with the interface device or, if there is no direct network connection, communicate with the interface device via a data forwarding service. When the user opens the computing device (or launches a device monitoring application), the computing device can use it for the previous A network address snapshot stored in the snapshot of the network configuration communicates with other devices. If the network address information is not available locally, the user's computing device can also obtain the network address information from the central controller.

9 is a flow chart showing an exemplary method 900 for establishing a network connection to a remote device based on a central control from a remote device, in accordance with an embodiment of the present invention. Network address information received by the device. As noted above, the network connection can include a two-way channel that is established and maintained using the WebSocket protocol, the STUN protocol, the Comet protocol, or any other communication protocol now known or later developed.

During operation, the user's computing device determines a remote device that needs to establish communication with it (operation 902) and determines if the computing device has network address information for the remote interface device (operation 904). The user interacts with the user interface to monitor, set up, and/or control the interface device; in response, the computing device can determine that it needs to establish a network connection to the remote device. The computing device can determine if it has network address information for the remote device, for example, this can be accomplished by searching for a corresponding entry in the device access repository.

If so, the computing device establishes a network connection to the remote device based on the network address information (operation 908), such as a peer-to-peer network connection, or a network connection through a data forwarding service.

However, if the computing device does not have the network address information, the computing device retrieves network address information for the remote device from a controller (eg, controller 802 in FIG. 8) (operation 906). Then, the computing device advances At operation 908, communication is established with the remote device based on the network address information.

10 is a flow chart showing an exemplary method 1000 for establishing a network connection with a remote device based on the stored remote device, in accordance with an embodiment of the present invention. Network address information. During operation, the user's computing device determines network address information for a remote device (operation 1002) and tests a point-to-point connection with the remote device based on the network address information (operation 1004). In some embodiments, the computing device can test the peer-to-peer connection by sending a request to access a predetermined file in the peer device. The file can contain any files that are expected to be stored by the target remote device, such that a successful request confirms that the desired interface device can be reached via a point-to-point connection.

The computing device then determines if it has successfully established a point-to-point connection with the remote device (operation 1006). If so, the computing device communicates with the remote device over the established peer-to-peer network connection (operation 1008). Otherwise, the computing device can establish a communication channel with the remote device via a data forwarding service (operation 1010).

Device authentication and communication security

In some embodiments, to establish a peer-to-peer network connection, a device at one end of the network connection needs to be authorized or authenticated by another device connected to the network. For example, two devices can communicate with each other by establishing a one-way path from one device to another. A device that establishes a one-way channel can serve as a communication client (for example, a recipient of subscription data). The device carrying the data can act as a communication server (for example, the sender of the subscribed instant data).

A one-way channel can be established and maintained using STUN protocols, Comet protocols, XHR messages, or any other communication protocol now known or later developed. However, the two devices can also establish a continuous two-way communication channel, such as a channel established using the WebSocket protocol, or any other two-way communication channel established by a protocol now known or later developed.

In some embodiments, the controller can provide each interface device with a username and password for each communication client that can subscribe to the material from the interface device. The password can be in the form of a text value, a hash value, or a "salted hash". The communication client can provide a username and password to the communication server to establish a one-way network connection. If the username and password match a known username and password received from the controller, the communication server can authorize the communication. user terminal. The two devices can establish a two-way network connection by providing each device with a username and password to another device and authorizing the other device based on the received username and password.

If the controller provides a cryptographic hash or salted hash to the interface device (communication server) as the client password, the controller can also provide the interface device with a hash for generating a hash value, or a salted hash. Key (and "salt", if necessary). Each interface device can receive a key and "salt" that can be used by its communication client. The controller does not provide the interface device with a corresponding decryption key for decrypting the password from the hash or salted hash. . Thus, when establishing a network connection, the interface device can provide an encryption key and "salt" to the communication client such that the client does not disclose its personal password to the interface device. The communication client can use the encryption key and the salt to generate a hash of the password or a hash of the salt, and provide the communication server with a hash of the username and password or a hash of the salt to establish a secure network. connection.

In some embodiments, the controller can provide each interface device with a digital certificate indicating the domain to which the interface device belongs, as well as other domains to which the interface device can communicate. The controller can act as a Certificate Authority (CA) to sign a digital certificate or interact with a third party CA to assign a digital certificate to an interface device. To establish a one-way network connection, the communication client can provide its digital certificate to the communication server. If the digital certificate is valid, and if the digital certificate indicates the domain to which the communication server belongs, the communication server can give Communication client authorization. Thus, in an interface device network, communication occurs between devices belonging to the same domain, or between devices that are set or allowed to communicate with devices within other domains. The two devices can provide a digital certificate to each device through each device and authenticate another device based on the received digital certificate to establish a two-way network connection.

The two interface devices can also communicate using encrypted data over a continuous channel. For example, the digital certificate may also include a public key of the communication client to facilitate communication by the interface device over a secure channel. The communication server can encrypt the data to be sent over the network connection using the public key, and the communicating client can decrypt the data it receives from the communication server using the corresponding private key. Optional, these two devices can be used Kerberos protocols to secure their data or to transfer data over an encrypted connection, such as the Secure Socket Layer (or "SSL") protocol or the Transport Layer Security ("TLS") protocol.

Load balancing

11 shows a decentralized system 1100 of an exemplary interface device network including a controller deployed on a computer cluster 1102, in accordance with one embodiment of the present invention. Computer 1102 may include a plurality of clusters of computing nodes 1102.1-1102. K, they may be in a single location, connected to each other through a local network, or may be deployed in multiple locations, and connected by the WAN 1104.

In some embodiments, a system administrator can deploy a set of compute nodes in different geographic locations and can deploy redundant repositories in different geographic locations. Moreover, since the redundant databases on the decentralized system 1100 are synchronized, the plurality of compute nodes of the computer cluster 1102 operate as a single computing entity.

When the interface devices are added or removed in the decentralized system 1100, the administrator can adjust the computing power provided by the decentralized system 1100 at different geographic locations to meet the computing needs of these geographic locations. For example, when an interface device is added or deleted at a given geographic location, an administrator can add or delete compute nodes at that geographic location. Meanwhile, using a central controller fluctuate over time when, in the computer cluster computing device 1102 can 1102.1-1102. K load on the load balancing, thereby increasing the responsiveness of each computing node also increases The responsiveness of the computer cluster 1102 as a whole.

Typical application: dimmer

In some embodiments, system architecture 1100 can also include a dimmer 1114 and luminaire 1118. The dimmer 1114 can be in the same room as the luminaire 1118, or the luminaire 1118 can be controlled from a remote location via the wide area network 1104 and/or the local area network 1110. For example, luminaire 1118 can be coupled to dimmer 1114, which can include a power conditioner for controlling the power provided to luminaire 1118. Alternatively, the luminaire 1118 can also be coupled to a power outlet 1116 that includes a power conditioner for controlling the power provided to the luminaire 1118, and the dimmer 1114 can send commands to the power outlet 1116 via the local area network 1110.

In other embodiments, the dimmer 1114 can be in a different room than the luminaire 1118 and can send commands to the power outlet 1116 over a computer network to control the brightness level of the luminaire 1118. For example, the light fixture 1118 can include a stage light, and the dimmer 1114 can be mounted in an audio and lighting control room behind a stadium seat. A lighting technician in the control room can interact with the dimmer 1114 to control one or more luminaires, at which point the dimmer 1114 can generate device control events and send them over the local area network 1110 to one or more luminaires. .

As another example, a security mechanism can install multiple luminaires at a critical location in a bank (eg, in a bank vault) so that they can be remotely controlled at the security agency headquarters via dimmer 1114. in case A security agent wants to look at the bank's premises, and the security agent can interact with the dimmer 1114, at which point the dimmer 1114 can generate device control events and send them over the wide area network 1104 to one or more fixtures.

As previously mentioned, in some embodiments, the dimmer 1114 can maintain a point-to-point network connection with each target luminaire (e.g., luminaire 1118) and can send device control events to the luminaires via respective network connections. The dimmer 1114 and the plurality of luminaires (e.g., luminaires 1118) can maintain a network connection with a forwarding service (e.g., a forwarding service provided by the computer cluster 1102) over the wide area network 1104. At the same time, the dimmer 1114 can control the event to the forwarding service provider via a network connection and can indicate which luminaires will receive the control device event. At this point, by forwarding the network connection between the service and the designated luminaire (e.g., via WAN 1104 and local area network 1110), the forwarding service can send device control events to the designated luminaire.

In some embodiments, a device in a network of interface devices can maintain a log of events it has performed. When the dimmer 1114 receives a user interface event through the touch screen interface, the dimmer 114 can store the user interface event in a log. The dimmer can also handle user interface events (eg, finger swipe) to determine the action to perform and generate device control events based on user interface events. If the user makes a downward sweep on the touch screen interface, the dimmer 1114 can determine that the user wants to reduce the illumination level of the corresponding fixture 1118 and can determine a target based on the speed and/or distance of the downward finger swipe. Lighting level. Dimmer 1114 also The device control event can be logged in the event log.

If the dimmer 1114 is configured to directly control the luminaire 1118 (eg, via a built-in power conditioner whose output is electrically coupled to the luminaire 1118), the dimmer 1114 can adjust the power provided to the luminaire 1118 based on the device control event. Level. At the same time, the dimmer 1114 can monitor the amount of power consumed by the luminaire 1118 after the power level is adjusted, and can create an event log entry to record the detected power level.

On the other hand, if the dimmer 1114 is configured to control the outlet 1116, the dimmer 1114 can send a device control event to the outlet 1116. Then, when the outlet 1116 receives the device control event, the outlet 1116 can store the received user control event in the event log and adjust the power level provided to the luminaire 1118 based on the device control event. The dimmer 1114 can also monitor the amount of power consumed by the luminaire 1118 after adjusting the power level and can record the detected power level in the event log.

The controller and/or user can compare log entries from various peer devices in a communication chain to exclude event conflicts. For example, a user 1106 may generate a rule for the dimmer 1114 that, when a built-in motion sensor detects motion, sets the dimmer 1114 to increase the brightness of the luminaire 1118 to a predetermined level. Thus, if a user interacts with the touch screen interface of the dimmer 1114 to turn off or dim the light fixture 1118, the dimmer 1114 will detect a user control event through the touch screen interface, which may also be detected by the built-in motion sensor. Motion sensing events. These events may cause the dimmer 1114 to turn on the light fixture 1118 shortly after performing a user command to dim or turn off the light fixture 1118, which may be a Unwanted consequences.

As previously mentioned, when an interface device includes one or more rules that generate conflicting events, the interface device can process the rules in a predetermined order such that the last executed rule will produce the final result. Thus, if a user creates a sequence of rules that cannot resolve conflicts in a desired manner, the user can resolve the conflict by analyzing the event log of one or more interface devices to determine a new sequence of rules.

For example, the user can determine that the dimmer 1114 processes a rule associated with the motion sensor after processing a rule associated with the touch screen interface (turning off or dimming the light fixture 1118) by analyzing the event log of the dimmer 1114. Rule (turn on the light fixture 1118). The user can cause the dimmer 1114 to process the rules associated with the touch screen interface after processing the rules associated with the motion sensor, thereby correcting the above problem.

As another example, by analyzing the event log, the user can determine that after the dimmer 1114 processes the user's touch screen event to turn off or dim the light fixture 1118, the dimmer 1114 detects that the user has moved his hand to make it Motion sensing events that leave the touch screen interface. The user can disable the rules associated with the motion sensor by setting the dimmer 1114 for a predetermined period of time, or until the motion sensor does not detect motion for a predetermined period of time.

In some embodiments, a log of one device may store a plurality of history entries, such storage operations may be made for a certain period of time (eg, log entries of the past week), and/or the history has a certain number limit (for example, up to 1000 log bars) ), or have a limit on the size of the file (for example, a maximum of 5MB).

Setting up the device interface network

As previously mentioned, one or more computing devices can interact with the controller to manage and set up the interface device network. For example, a user can interact with a personal computing device to set up and provision an interface device on a new interface device network, and/or deploy one or more rules to the interface device. When the user submits the configuration of the device, the controller can add the new device to the network and establish a network connection between the new device and other devices with which it needs to exchange data.

However, in some embodiments, peer devices that exist on different network domains may not be able to establish a point-to-point connection. Thus, to establish a network connection between peer devices, the controller can set up peer devices to communicate with one another via a forwarding service. The forwarding service can be part of the controller or a separate network service that can be used by peers on the network.

In some embodiments, the interface device network includes at most one controller that sets the interface device to operate within the network. For example, computer cluster 1102 can be used to implement a controller of interface device network 1100. If a user needs to reset the network structure using a network device (for example, a laptop 1108 connected to the WAN 1104 or a smart phone 1112 on the LAN 1110), the network device needs to perform the network weight through the main controller. Settings.

If another user also interacts with the controller to set up the network, the controller can push changes made by the first user to the second user's computer to prevent the two users from making redundant or conflicting network configurations. Changes. At the same time, when a user submits a change to his network configuration, the controller can compile a configuration file for each affected interface device and can download the configuration file for each changed interface device.

Note that if the connection to the centralized controller is broken (for example, the controller is offline, or a LAN loses its connection to the Internet), the interface device can continue to process the rules and communicate over a peer-to-peer network connection. However, considering that the primary controller is unavailable, it is not possible to provision a new interface device, compile and publish new or updated rules, or reset the network connection between peer interface devices, the network device may not be able to reset Network configuration.

In some embodiments, the interface device network can include more than one centralized controller. For example, the network may include a primary controller for any reconfiguration of the network and may include one or more secondary or backup controllers that may be used in situations where the primary controller becomes unavailable Reset at least part of the network.

Figure 12A illustrates an exemplary system architecture 1200 that includes a main controller 1204 and one or more local area network controllers with database images in accordance with one embodiment of the present invention. For example, main controller 1204 can include or be coupled to a repository 1206 that stores configuration information and historical data for a plurality of interface devices (e.g., interface devices in local area networks 1208 and 1216). Local area network 1208 can include A local controller 1210 is coupled to a database 1212 that stores configuration information and historical data for the interface device of the 1208 in the local area network. At the same time, the local area network 1216 can include a local controller 1218 coupled to a database 1220 that stores configuration information and historical data for the interface devices in the local area network 1216.

In system architecture 1200, the local controller keeps their local database in sync with the host controller database. The database 1212 can mirror the entries of the tables of the plurality of databases 1206, which are associated with the devices 1214.1-1214. m in the local area network 1208. Similarly, database 1220 can mirror the entries of the tables of multiple databases 1206, which are associated with devices 1222.1-1222. m in local area network 1216. Thus, if the system architecture 1200 includes interface devices distributed across multiple domains (eg, distributed across different cities), the amount of data stored by the local controllers 1210 and 1218 in the databases 1212 and 1220 is stored by the host controller. The amount of data in the database 1206 is quite small.

In some embodiments, local controller 1210 can monitor and/or control multiple interface devices within local area network 1208. Additionally, an administrator can interact with the local controller 1210, resetting a set of rules to be executed by the interface device 1214 within the local area network 1210, and the controller 1210 can reset the device 1214 based on the new rule set. However, in some embodiments, local controller 1210 is unable to provide a provision to new devices to add them to the interface device network, and/or cannot remove devices from the network. The system administrator can add a supply to a new interface device by interacting with the main controller 1204 to add them to the network. The main controller 1204 can be The new device assigns a digital certificate, sets up the new device to establish a network connection with other peer devices (eg, to send or receive subscribed material), and can set up a new device to process a set of rules.

If the version of the database of controller 1210 is out of date (e.g., when database 1212 is not synchronized with a portion of database 1206 that is associated with local area network 1208), controller 1210 will not be able to reset an existing interface device. This requirement prevents the controller 1210 from reversing the settings previously made by the main controller 1204 or any controller that remains updated (e.g., controller 1218). For example, if the local controller 1210 is offline and the controller 1204 resets one or more interface devices 1214.1-1214. m , the configuration data in the repository 1212 may become out of date. As another example, if the local controller 1210 loses communication with the central controller 1204 and the local controller 1210 resets one or more interface devices 1214.1-1214. m , the configuration data in the repository 1206 can become stale.

Each interface device can store a configuration version number (eg, a strictly increasing number or time stamp) that indicates a locally unique identifier for the device configuration. At the same time, each database can store an associated new configuration version number for a device, which allows a corresponding controller to determine if the database has expired before resetting an interface device. If the controller attempts to reset an existing interface device, the controller may first determine if the corresponding database has expired for the interface device being set.

If the controller determines that its latest configuration version number corresponding to an interface device matches the configuration version number of the interface device, the controller can perform the pair Reset of the interface device. However, if the controller determines that its latest configuration version number does not match the configuration version number of the interface device (eg, its latest version number is less than the version number of the interface device), the controller can perform a remedial action. Remedial measures may include alerting the user about the version difference and prompting the user to specify whether he wants to reset the interface device based on the old device configuration of the expired database. Alternatively, the remedy may include resetting the interface device one time after the database is updated.

Alternatively, in some embodiments, when the connection of the local area network 1208 to the controller 1204 is broken (eg, the connection of the local area network 1208 to the wide area network 1202 is broken, or the controller 1204 is offline), the controller 1210 can become a local area network. The main controller of the interface device in 1208. Controller 1210 can provide a provision to the interface device to add it to the network or remove the interface device from the network. Controller 1210 can track changes in the network in database 1212. Then, once the controller 1210 resumes connection with the controller 1204, the controller 1210 can provide changes to the network to the controller 1204, and the controller 1204 updates the database 1206 to reflect changes in these networks.

Moreover, once controller 1204 synchronizes database 1206 with database 1212, controller 1210 can in turn abandon its state as the primary controller, at which point controller 1204 becomes the primary controller of local area network 1208. If a new interface device within the local area network 1208 is to communicate with a device other than the local area network 1208, the main controller 1204 can re-supply the new device so that the new device can interact with devices external to the network 1208. For example, the main controller 1204 can provide one to the new device. A digital certificate that is valid outside of the local area network 1208 and that can be reconfigured so that the new device establishes a network connection with one or more devices other than the local area network 1208 (eg, via a point-to-point channel, or through a Data forwarding service).

Figure 12B illustrates an exemplary system architecture 1250 including a local area network controller within a local area network and a forwarding service available within the wide area network, in accordance with one embodiment of the present invention. The local area network 1256 can include a main controller 1258 that can be used to set up, monitor, and/or control interface devices within a local domain and within one or more remote domains.

In particular, controller 1258 can be installed within local area network 1256 and can include or be coupled to a repository 1260 that stores configuration information and historical data for interface devices in the local and remote domains. The controller 1258 can establish a LAN device within 1262.1-1262 1256. M point to point network connection, a distal end and a domain can be one or more service interface device 1254 to establish a data forwarding through (e.g., a local area network 1264 Network connection of the device 1266.1-1266. n ).

For example, controller 1258 can be installed in an organization's office building to manage multiple devices. The system administrator can interact with the controller 1258 to add an interface device to the network, such as an mPort device connected to a motion sensor, and an mPower device connected to a fixture. The system can also set up controller 1258 to collect instant event data from multiple interface devices in the event log, which allows the administrator to analyze the event log to ensure that the network device is functioning properly.

Further, if the organization expands to other buildings, in the same city or at a remote location, the administrator can set up a controller 1258 to establish a network connection with the device at the remote location via the data forwarding service 1254. This allows the controller 1258 to set up, control, and/or monitor the device at the remote location without the need to utilize a central controller outside of any one of the organization's local area networks. Thus, installing the controller 1258 within the organization's local area network will allow the administrator to control the data collected by the interface device and stored in the repository 1260 while also allowing the administrator to deploy additional devices in the remote area.

In some embodiments, the administrator can also interact with the controller 1258 and/or any interface device when the administrator is not in any local area network of the organization. An administrator can install an application on a personal computing device (eg, a smart phone 1268) that can access the wide area network 1252 (eg, via a cellular network) and communicate with the central control via data forwarding service 1254. The device 1258 and/or the interface device communicate. Alternatively, a connection to the controller 1258 is established through the data forwarding service 1254, and the administrator can access the Internet-based interface provided by the controller 1258 using an internet browser.

In some embodiments, system architecture 1250 can include a backup controller that can be accessed over wide area network 1252, which includes or is coupled to a repository that is a mirror of repository 1260. When the primary controller 1258 is offline, the backup controller can temporarily become the primary controller. This allows the administrator to interact with the backup controller (eg, using smart phone 1268) to add or remove devices from the interface device network, and/or reset Existing interface devices.

Figure 13 illustrates an exemplary computer system for smart monitoring and control of a device in accordance with one embodiment of the present invention. In one embodiment, a computer and communication system 1300 includes a processor 1302, a memory 1304, and a storage device 1306. Storage device 1306 stores a smart monitoring and control application 1308, as well as other applications and materials (eg, additional applications 1310 and 1312). During operation, the smart monitoring control application 1308 is loaded from the storage device 1306 to the memory 1304 and then executed by the processor 1302 for monitoring data from a plurality of interface devices, setting interface devices, and/or controlling an interface. The status of the device. When the program is run, the processor 1302 performs the above functions. Computer and communication system 1300 can be coupled to display 1314, keyboard 1316, and pointing device 1318. The display, keyboard, pointing device can facilitate user monitoring, configuration, and/or control of one or more interface devices.

One embodiment of the present invention provides a device control system that sets, monitors, and controls one or more interface devices such that the interface device can obtain sensor data from one or more connected physical devices and Propagation, the physical device described above includes a sensor for measuring physical properties. During operation, the system can set up the interface device by establishing a network connection with the interface device and determine one or more rules for the interface device. A rule may indicate an operational description for performing an operation and indicate a condition that indicates the criteria for processing the operational description of the rule. The system can set up an interface device to handle its associated rule.

In some variations of this embodiment, the system sets up an interface device that transmits recent sensor data to a computer of the control device, and the system uses the data to set or control one or more interface devices. When the system determines that the rules associated with the interface device are satisfied based on recent data of one or more interface devices, the system modifies the operational state of the interface device based on the ruled operational description.

In some variations of this embodiment, the system provides one or more interface devices to facilitate decentralized rule processing. To set up the interface device, the system causes the interface device to work by program to process one or more rules. The system also determines one or more other devices that generate sensor data associated with one or more rules of the interface device and set the interface device to subscribe to the one or more other devices Tester data.

In some embodiments, the system can receive a request from the client device to obtain a device monitoring interface. By obtaining data associated with one or more interface devices for use by the device monitoring interface, and providing the device monitoring interface to the client device, the system can present the device monitoring interface such that the device monitoring interface is presented from the one Or sensor data for more than one interface device.

In some variations of these embodiments, the information associated with an interface device includes device access information for the interface device, which can be used by the client device to obtain an immediate sensor for the device monitoring interface directly from the corresponding interface device. data.

In some variations of these embodiments, the information associated with an interface device includes a geographic location. At the same time, to provide a device monitoring interface, the system can obtain a map that includes a geographic area associated with at least one interface device. The system then generates the device monitoring interface to display the resulting map and overlay the at least one interface device on the map.

In some variations of these embodiments, the material associated with an interface device includes a set of image coordinates. Thus, when the system provides a device monitoring interface, the system can obtain an image of an area associated with at least one interface device. The system then generates the device monitoring interface to display the resulting map and overlays the at least one interface device on the obtained image. The resulting image may include one frame from an instant video transmission, and the system periodically updates the device monitoring interface to display a recent frame in the instant video transmission.

In some variations of these embodiments, the instant video transmission may include video transmission from a pan-tilt-zoom (or "PTZ") camera. Thus, when the system provides a device monitoring interface, the system can map the image coordinates of the interface device to a set of coordinates associated with the frames of the PTZ camera. When the direction of the camera changes, the system can update the device monitoring interface to overlay the interface device to the nearest frame based on the mapped image coordinates.

In some embodiments, a user-definable rule can include a composite, rule associated with multiple physical devices.

In some embodiments, the system can receive an instruction from a client device to control an interface device. Then the system determines that one has been built A network connection for communicating with the interface device and setting the interface device over the network connection in accordance with the received command.

The system may also receive a request from the client device to obtain a rule setting UI. The rule setting UI can indicate one or more existing rules regarding one or more interface devices and help create or modify existing or new rules. Then, in response to receiving a description of a rule, the system determines one or more target interface devices that process at least a portion of the operational description of the rule. The system then generates a specific device-specific rule for a target device such that the rule for the particular device includes a portion of the rule's operational description that should be processed by the target device. The system then sets the target device to process the rules for the particular device.

In variations of some of the above embodiments, when an interface device is provided, the system can determine the geographic location of the interface device and/or can determine one or more descriptions of physical devices connected to the interface device. At the same time, the system can generate a digital certificate for the interface device and/or can provision the interface device based on at least the digital certificate.

One embodiment of the present invention provides a data forwarding system that establishes a network connection to a plurality of network devices to facilitate communication between the interface device and the device control system, peer interface device, or other computing device. In operation, when the system receives data from a network device, the system determines a peer network device that receives the data, for example, a device that subscribes to the data. The system can forward sensor data to the peer network device by determining an established network connection to interact with the second network device Communication is accomplished by sending sensor data to the peer network device over an established network connection.

In some embodiments, to determine a second network device that subscribes to the received sensor data, the system searches for a data subscription library that stores data subscription requests for multiple network devices to obtain a stored a subscription request for data associated with the received sensor data. Then, based on the stored material subscription request, the system determines an interface device that subscribes to the received sensor data.

In some embodiments, the system implements a data forwarding service that receives a data subscription request from a first network device. The data subscription request indicates an interface device that provides the data, and also indicates the sensor data provided by the interface device providing the data. The system then stores the subscription material associated with the first network device in a data subscription library. The system also forwards the data subscription request to the interface device that provided the material.

In some embodiments, upon establishing a network connection, the system receives a request from a network device to establish the network connection, and the system determines device access information for the network device based on the request. The system stores device access information associated with the network device and establishes a network connection to the network device based on the device access information.

In some embodiments, the system uses a WebSocket protocol, a Session Traversal Utilities for Network-address-translation ("STUN") protocol, and/or a Comet protocol to establish a network connection.

In some variations of these embodiments, the WebSocket Association is used. When establishing a network connection, the request may include a WebSocket handshake request to upgrade a Hypertext Transfer Protocol (HTTP) session to a WebSocket session and may include a Sec-WebSocket-Key token from the network device. . The system can store the Sec-WebSocket-Key associated with the network device, and can generate a Sec-WebSocket-Accept token for the network device based on the Sec-WebSocket-Key. The system then sends a response to the interface device that acknowledges a continuous WebSocket communication channel such that the response includes at least the Sec-WebSocket-Accept token for the interface device.

In some variations of these embodiments, when a network connection is established using the STUN protocol, the system receives a binding request indicating the network address information of the network device and storing the network associated with the network device. Road address information. The network address information can include at least one or more network addresses and nicknames.

In some variations of these embodiments, when establishing a network connection using the Comet protocol, the system receives a long polling request from the network device and determines network address information for the network device based on the long polling request. The network address information includes at least one or more network addresses and nicknames. The system stores network address information associated with the network device, which facilitates access to the network device at a later time.

In some embodiments, the device access information may include a network address of the network device, an nickname of the network device, and/or a unique identifier of the network device. Device access information may also include authentication information, such as points A digital certificate assigned to the network device, a login certificate associated with the network device, and the like.

In some embodiments, the system can determine the network address and/or nickname of the network device based on a message header of the network packet including the request, and then access through the determining device. News.

In some embodiments, the network device can include a sensor interface device, a power outlet, a power strip, a dimmer, a light switch, or a client computing device.

One embodiment of the present invention provides an interface device that communicates with other devices over an established network connection to transmit and/or receive instant sensor data. During operation, the local device can establish a network connection with a remote network device, such as a peer interface device, or a data forwarding system. By selecting a rule that takes the sensor data of one or more remote interface devices as input and generates a data subscription request for the sensor data elements associated with the rule, the device can maintain the pair Subscription of information for other peer devices. The data subscription request specifies an interface device that provides the data, and also indicates the sensor data provided by the interface device providing the data. The device then sends a data subscription request to the remote device over the established network connection.

In some embodiments, the remote device can include a remote peer device associated with the data subscription request, or a data forwarding device configured to maintain the local network device and associated with the data subscription request Network connection between remote peers.

In some embodiments, the local interface device can store the rule in a rule base. Then, when the device receives the sensor's data by establishing a network connection, and when it is determined that the received sensor data is associated with the stored rules, the device processes the rule based at least on the received sensor data.

In some embodiments, the local interface device can retrieve the sensor's data from a local physical device such that the physical device can include a sensor for measuring one or more physical attributes. If the interface device determines that the remote device subscribes to the data obtained by the sensor, the interface device transmits the sensor data to the remote device via the established network connection.

In some embodiments, the local interface device establishes a network connection using a WebSocket protocol, a Session Traversal Utilities for Network-address-translation ("STUN") protocol, and/or a Comet protocol.

In some variations of these embodiments, the request may include a WebSocket handshake request to upgrade a Hypertext Transfer Protocol (HTTP) session to a WebSocket session and may include a Sec-WebSocket-Key from the network device. Scepter. Also, when the network connection is established using the WebSocket protocol, the local interface device can store the Sec-WebSocket-Key associated with the remote device, and generate a Sec-WebSocket for the remote device based on the Sec-WebSocket-Key. -Accept scepter. The local interface device then sends a response to the remote device that acknowledges an ongoing WebSocket communication channel, such that the response includes at least the remote interface The device's Sec-WebSocket-Accept token.

In some variations of these embodiments, upon establishing a network connection using the STUN protocol, the local interface device receives a binding request indicating the network address information of the remote device and storing the remote device with the remote device Associated network address information. The network address information can include at least one or more network addresses and nicknames.

In some variations of these embodiments, the local interface device receives a long polling request from the remote device when establishing a network connection using the Comet protocol, and determines the network of the remote device based on the long polling request. Address information. The network address information includes at least one or more network addresses and nicknames. The local interface device stores network address information associated with the remote device, which facilitates use of the network connection at a later time.

One embodiment of the present invention provides a local controller that maintains a local repository for storing information about a set of interface devices on a local area network. The local repository may include a repository image of a remote repository of remote controllers for storing information for a set of interface devices being provisioned. During normal operation, a remote controller that is the host of the remote repository may have master control of the local area network device and/or other network domain interface devices, and the local controller maintains a local database to Includes at least a subset of the remote repository. However, when the remote controller is confirmed to be offline, the local controller can obtain the master control of the interface device within the local area network.

In some embodiments, when the local network controller is set up to obtain the main control within the local area network, the local controller can monitor the interface in the local area network. Set, reset the interface device in the LAN, and / or control the interface device in the LAN.

In some embodiments, the local controller is not configured to add an interface device to the interface device network or to remove an interface device from the provided set of interface devices.

In some embodiments, upon obtaining the master control of the local area network, the local controller determines that the local database is synchronized with the latest version of the remote repository.

In some embodiments, the local controller is configured to obtain master control of the local area network as a response to determining synchronization of the local repository and the remote repository. To obtain the master control of the local area network, the local controller can add an interface device to the set of interface devices that are provisioned and delete an interface device from the set of interface devices that are provisioned.

In some embodiments, the local controller is set to release master control of the local area network in response to determining that a remote controller that is the host of the remote repository becomes online.

In some embodiments, the local controller synchronizes the local repository with the remote repository when the main control of the local area network is released.

One embodiment provides an interface device configured to process one or more rules based on sensor data to make a predetermined operation. During operation, the device can receive the configuration of the device, including the rules used by the interface device. The rule may include an operational description for performing an operation, and may also include a condition that takes the sensor's profile as input and indicates criteria for performing the operation. The device can store the rule in a rule base and determine a remote interface device, the far The end interface device generates data associated with the conditions of the rule. The device can also subscribe to the material from the remote interface device.

In some embodiments, the local interface device establishes a network connection with the remote interface device and subscribes to the material from the remote interface device over the established connection.

In some embodiments, the local interface device establishes a peer-to-peer network connection with the remote interface device when establishing a network connection.

In some embodiments, the local interface device establishes the network connection using a WebSocket protocol, a Session Traversal Utilities for Network-address-translation ("STUN") protocol, and/or a Comet protocol.

In some embodiments, when establishing a network connection, if the local interface device determines that the remote interface device cannot be obtained through a peer-to-peer communication channel, the local interface device establishes a network connection through the data forwarding service.

In some embodiments, when the local interface device obtains sensor data, the local interface device selects a rule based on the sensor data selection. If the local interface device determines that the condition of a rule has been met, the local interface device can process the operational description of the rule to make the operation.

In some embodiments, the local interface device obtains sensor data from a local or remote physical device that measures one or more physical attributes, and/or detects and/or sets one or more interface devices from one The network controller gets the sensor data.

In some embodiments, when selecting a rule to process, the local interface device selects a set of rules whose conditions treat the obtained data as a loss Enter and determine the ordering of the set of rules specified by the user. The user-specified order indicates the order in which the rules are processed. The local interface device then selects a rule from the set of rules based on the user-specified ordering.

In some embodiments, the local interface device acquires sensor data by periodically monitoring data values from a physical device connected to the interface device. Moreover, if the local interface device determines that the obtained data satisfies a data subscription request of a remote interface device, the local interface device transmits the obtained data to the remote interface device.

In some embodiments, the local interface device can communicate the data to the remote interface device over an established network connection that is established for communication with the remote interface device.

One embodiment provides a sensor monitoring interface device that is coupled to one or more physical devices that include sensors that measure physical properties. During operation, the interface device retrieves and processes sensor data from the physical device. When the interface device obtains sensor data from a physical device, the interface device processes based on the obtained sensor data selection rules. If the interface device determines that the condition of the rule has been met, the interface device can process the operational description of the rule to make a corresponding operation.

In some embodiments, the physical device may include a temperature sensor, a humidity sensor, a voltage sensor, a current sensor, a motion sensor, a light sensor, a moisture sensor, and a digital value sensing. , and / or door and window sensors.

In some embodiments, the operation can include sending a reservation through the serial port Signal mode, and/or transmission of a predetermined signal pattern through one or more general purpose output pins. Moreover, the operations can include processing a predetermined script to set up a peripheral device via a serial port, send an email message to a predetermined recipient, create a system alert, generate an event for the event log, and/or based in part on the received The sensor data is used to calculate a data value.

In some embodiments, if the local interface device determines that the obtained data satisfies a data subscription request of a remote interface device, the local interface device transmits the sensor data to the remote interface device.

In some embodiments, the data subscription request can indicate a minimum threshold for sensor data, a maximum threshold for sensor data from the last sensor data to the remote interface device to the current time interval, and / or a threshold value for the difference between the obtained sensor data and the last sensor data provided to the remote interface device.

In some embodiments, when transmitting data to the remote interface device, the local interface device can transmit the data via an established peer-to-peer network connection associated with the remote interface device.

In some embodiments, upon selecting a rule to process, the local interface device selects a set of rules whose conditions take the obtained material as input and determine the ordering of the set of rules specified by the user. The user-specified order indicates the order in which the rules are processed. The local interface device then selects a rule based on the user-specified ordering.

In some embodiments, the interface device can adjust the color of a light-emitting diode (LED) indicator light based on determining that the local interface device is in a factory default mode. In determining the local interface device by a monitoring one Based on the configuration of the network control lights of one or more interface devices, and/or determining that the interface device is being monitored by the network controller, the interface device can adjust the color of one of the LED indicators .

One embodiment provides a load control interface device that acquires and processes sensor data from a user interface and/or other device and controls electrical loads, such as luminaires, based on sensor data processing rules. During operation, when the interface device obtains sensor data, the interface device processes a rule based on sensor data from the user interface. If the interface device determines that the condition of the rule has been met, the interface device can process the operational description of the rule to make a corresponding operation to control the power of the electrical load.

In some embodiments, the electrical load includes a light fixture.

In some embodiments, the event material includes sensor data from a touch screen user interface. The touch screen user interface can include a capacitive touch surface, a resistive touch surface, a proximity sensor, and/or a motion sensor.

In some embodiments, the event material from the touch screen user interface may indicate a portion of a touch screen user interface that was touched by a local user, an object detected within a determined distance of the touch screen user interface, and/or detected. motion.

In some embodiments, the interface device processes information of the touch screen user interface to determine a gesture when acquiring event data. The gesture may include an upward swipe finger that represents an increase in the light intensity of the luminaire, a swipe finger that represents a decrease in the light intensity of the luminaire, representing the activation or deactivation of powering the luminaire. One finger taps, and/or represents a light tap that adjusts the light intensity of the fixture to a certain level.

In some embodiments, the interface device can determine that the event profile satisfies a data subscription request from the remote interface device and communicate the event data to the remote interface device.

In some embodiments, the remote interface device is electrically coupled to a respective luminaire, and the remote interface device can be configured to adjust the power of the respective luminaire based on the event data.

One embodiment provides a load monitoring interface device that acquires and processes sensor data from an electrical load. The interface device can include at least one power outlet for powering a respective electrical load. During operation, the interface device can obtain sensor data from a local power outlet that is connected to an electrical load such that the sensor data can indicate an electrical measurement associated with the electrical load. The interface device selects a rule based on the obtained sensor data to process and processes the rule to determine whether an operation is to be made. If the conditions of the rule are met, the interface device in turn processes the operational description of the rule to make the operation, such as enabling or disabling a power outlet, or making any other predetermined operations.

In some embodiments, the sensor data from the power outlet can include power states, current measurements, and/or voltage measurements of the respective electrical loads.

In some embodiments, the operation can include activating a power outlet, deactivating a power outlet, adjusting a voltage provided by a socket, and/or Adjust the amount of current supplied by a power outlet. Moreover, the operations can include sending an email message to a predetermined recipient, creating a system alert, generating an event for the event log, and/or calculating a profile value based in part on the received sensor profile.

The material structure and code described in this specification are typically stored on a computer readable storage medium, which can be any device or medium that can store code and/or data and make it a computer system. Computer readable storage media includes, but is not limited to, non-permanent memory, permanent memory, magnetic or optical storage devices such as disk drives, magnetic tapes, compact discs, DVDs (digital versatile discs or digital video) A disc or other medium that is now known or later developed to store computer readable media.

The methods and processes described in this specification can be embodied in code and/or materials which can be stored in a computer readable storage medium as described above. When a computer system reads and executes code or material stored on a computer readable storage medium, the computer system makes the method and flow embodied as a data structure and code and stored on a computer readable storage medium.

Moreover, the methods and processes described herein can be included in a hardware module or device. These modules or devices may include, but are not limited to, dedicated integrated circuit (ASIC) chips, field programmable gate arrays (FPGAs), dedicated or shared processing of a particular software module or piece of code at a specific time. And/or other programmable logic devices now known or later developed. When the hardware modules or devices are activated, they perform the methods and processes included among them.

The above description of various embodiments is for illustrative and illustrative purposes only. They are not exhaustive or limit the invention to the form disclosed. Therefore, many modifications and variations will be apparent to those skilled in the art. Moreover, the above disclosure does not limit the invention.

220‧‧‧ Software Architecture

222‧‧‧ operating system kernel

224‧‧‧Device Driver

226‧‧‧Microcontroller Agent Module (mcAgent)

228‧‧‧Communication Module

230‧‧‧Internet Protocol (IP) Module

232‧‧‧WebSocket Module

234‧‧‧Internet Server

Claims (16)

  1. A method for controlling a plurality of devices, comprising the steps of: receiving a device configuration at a local interface device, the device configuration including rules processed by the local interface device, the rules including operational descriptions for making operations, and including a condition for performing the operation; storing the rule in a rule base; determining a remote interface device, the remote interface device generating data related to conditions of the rule; establishing a network connection with the network device, the network device including The remote interface device or a controller device that manages the remote interface device; the remote interface device subscribes to the data through the established network connection, wherein the subscribing the data to the remote interface device includes: generating a pair a subscription request for the sensor data element associated with the rule, the subscription request indicating the remote interface device and sensor data provided by the remote interface device; transmitting the network interface to the remote interface device via the established network connection Data subscription request.
  2. The method of claim 1, wherein the step of establishing a network connection with the remote interface device comprises: establishing a network connection with the remote interface device using a WebSocket protocol; and/or using a Comet protocol and The remote interface device establishes a network connection; and/or establishes a network connection with the remote interface device using the STUN protocol.
  3. The method of claim 1, wherein the establishing the network connection comprises establishing a peer-to-peer network connection with the remote interface device.
  4. The method of claim 1, wherein the establishing the network connection comprises: determining that a peer-to-peer network connection cannot be established with the remote interface device; establishing a network connection with the remote interface device by using a data forwarding service.
  5. The method of claim 1, further comprising the steps of: acquiring sensor data; selecting a rule based on the sensor data; determining that the condition of the rule is satisfied; processing an operation description of the rule to perform an operation.
  6. The method of claim 5, wherein the step of acquiring sensor data comprises: acquiring sensor data from a local physical device; and/or obtaining sensor data from a remote interface device; and / Or obtaining sensor data from a network controller that controls and/or sets one or more interface devices.
  7. The method of claim 5, wherein the step of acquiring sensor data comprises periodically monitoring data of a physical device connected to the local interface device, the method further comprising the step of: determining that the acquired data meets the far a data subscription request of the interface device; the acquired data is sent to the remote interface device.
  8. A device for controlling a plurality of devices, comprising: a communication module for receiving a device configuration, the device configuration including a rule processed by a local interface device, the rule including an operation description for making an operation, and including a condition for making the operation; and a source determining module for Determining a remote interface device, the remote interface device generating data related to conditions of the rule; a data subscription module, configured to establish a network connection with the remote interface device, and subscribe the data to the remote interface device, The data subscription module is further configured to: generate a subscription request for the sensor data element related to the rule, the subscription request indicating the remote interface device, and the sensor data provided by the remote interface device; The network connection sends the data subscription request to the remote interface device.
  9. The device of claim 8, wherein the communication module comprises: an Ethernet communication module; and/or a Wi-Fi wireless communication module; and/or a Bluetooth wireless communication module.
  10. The device of claim 8, wherein the data subscription module is further configured to establish a peer-to-peer network connection with the remote interface device.
  11. The device of claim 8, wherein the data subscription module is further configured to: determine that a peer-to-peer network connection cannot be established with the remote interface device; Establish a network connection through the data forwarding service and the remote interface device.
  12. The device of claim 8, further comprising a rule processing module, configured to: acquire sensor data; select a rule based on the sensor data; determine that the condition of the rule is satisfied; and operate the rule Description to make an action.
  13. The device of claim 12, wherein the rule processing module is further configured to: acquire sensor data from a local physical device; and/or obtain sensor data from a remote interface device; and/or Sensor data is obtained from a network controller that controls and/or sets one or more interface devices.
  14. The device of claim 12, wherein the rule processing module is further configured to: periodically monitor data of a physical device connected to the local interface device; and determine that the acquired data meets a data subscription of the remote interface device. Requesting; transmitting the acquired data to the remote interface device.
  15. The device of claim 14, wherein the rule processing module is further configured to establish a point-to-point network connection with the remote interface device when the obtained data is sent to the remote interface device; Point-to-point network connection sends the acquisition to the remote interface device data of.
  16. The device of claim 14, wherein the rule processing module is further configured to: determine that a peer-to-peer network connection cannot be established with the remote interface device when the obtained data is sent to the remote interface device; The acquired data is sent to the remote interface device through a data forwarding service.
TW102122982A 2012-06-27 2013-06-27 Method and apparatus for controlling sensor devices TWI615037B (en)

Priority Applications (14)

Application Number Priority Date Filing Date Title
US201261665238P true 2012-06-27 2012-06-27
US61/665,238 2012-06-27
US201261665839P true 2012-06-28 2012-06-28
US61/665,839 2012-06-28
US201261716429P true 2012-10-19 2012-10-19
US61/716,429 2012-10-19
US13/736,883 2013-01-08
US13/736,872 2013-01-08
US13/736,879 US20140006506A1 (en) 2012-06-27 2013-01-08 Method and apparatus for monitoring and processing sensor data from an electrical outlet
US13/736,872 US10326678B2 (en) 2012-06-27 2013-01-08 Method and apparatus for controlling power to an electrical load based on sensor data
US13/736,883 US8880204B2 (en) 2012-06-27 2013-01-08 Method and apparatus for monitoring and processing sensor data in an interfacing-device network
US13/736,869 US20140005810A1 (en) 2012-06-27 2013-01-08 Method and apparatus for monitoring and processing sensor data using a sensor-interfacing device
US13/736,869 2013-01-08
US13/736,879 2013-01-08

Publications (2)

Publication Number Publication Date
TW201404183A TW201404183A (en) 2014-01-16
TWI615037B true TWI615037B (en) 2018-02-11

Family

ID=49967262

Family Applications (2)

Application Number Title Priority Date Filing Date
TW102122982A TWI615037B (en) 2012-06-27 2013-06-27 Method and apparatus for controlling sensor devices
TW106127964A TWI654881B (en) 2012-06-27 2013-06-27 Inductor device control apparatus and a method

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW106127964A TWI654881B (en) 2012-06-27 2013-06-27 Inductor device control apparatus and a method

Country Status (2)

Country Link
CN (1) CN103543700B (en)
TW (2) TWI615037B (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101862965B1 (en) 2014-03-17 2018-05-31 미쓰비시덴키 가부시키가이샤 Management system, gateway apparatus, server apparatus, management method, gateway method and management process execution method
US10012963B2 (en) * 2014-07-15 2018-07-03 Throughtek Technology (Shenzhen) Co., Ltd. Smart household appliance, mobile communication device, system and method for controlling smart household appliance
KR20160012795A (en) * 2014-07-25 2016-02-03 엘지전자 주식회사 Air conditioning system
TWI510792B (en) * 2014-08-11 2015-12-01 Oriental Inst Technology Method and system for examining electrical appliance
EP3186658A1 (en) * 2014-10-31 2017-07-05 Siemens Schweiz AG Method, digital tool, device and system for detecting/recognizing in a radio range, in particular of an indoor area, repetitive motions, in particular rhythmic gestures, with at least one motional speed and each at least one repetition
US10162785B2 (en) 2015-05-21 2018-12-25 Acceltex Solutions Wireless electronic device controller
KR20170001254A (en) * 2015-06-26 2017-01-04 삼성전자주식회사 Peripheral device management system and method including node terminal apparatus and display apparatus
CN104992542A (en) * 2015-07-01 2015-10-21 慧锐通智能科技股份有限公司 Configuration method and system for intelligent home equipment
CN105301977A (en) * 2015-11-11 2016-02-03 小米科技有限责任公司 Electronic music realization method based on intelligent equipment and device thereof
US10313281B2 (en) 2016-01-04 2019-06-04 Rockwell Automation Technologies, Inc. Delivery of automated notifications by an industrial asset
CN107688325A (en) * 2016-08-05 2018-02-13 中国科学院软件研究所 A kind of industrial autoknowledge processing method towards real-time sensing environment
US10318570B2 (en) 2016-08-18 2019-06-11 Rockwell Automation Technologies, Inc. Multimodal search input for an industrial search platform
US20180052451A1 (en) * 2016-08-19 2018-02-22 Rockwell Automation Technologies, Inc. Remote industrial automation site operation in a cloud platform
US10401839B2 (en) 2016-09-26 2019-09-03 Rockwell Automation Technologies, Inc. Workflow tracking and identification using an industrial monitoring system
US10319128B2 (en) 2016-09-26 2019-06-11 Rockwell Automation Technologies, Inc. Augmented reality presentation of an industrial environment
US10388075B2 (en) 2016-11-08 2019-08-20 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
TWI659658B (en) * 2017-03-08 2019-05-11 安研科技股份有限公司 Monitoring system
US10445944B2 (en) 2017-11-13 2019-10-15 Rockwell Automation Technologies, Inc. Augmented reality safety automation zone system and method
TWI656447B (en) * 2018-04-13 2019-04-11 中華電信股份有限公司 Reality amplification method and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100150157A1 (en) * 2008-12-15 2010-06-17 Microsoft Corporation Peer to multi-peer routing
US20110178762A1 (en) * 2010-01-20 2011-07-21 Faro Technologies, Inc. Portable Articulated Arm Coordinate Measuring Machine with Multiple Communication Channels
US20120158161A1 (en) * 2010-12-20 2012-06-21 Alan Wade Cohn Defining and implementing sensor triggered response rules

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU6126701A (en) * 2000-08-07 2002-02-18 Pni Corp Method and apparatus for a distributed home-automation-control (hac) window
JP2007156779A (en) * 2005-12-05 2007-06-21 Hitachi Ltd Sensor network system, base station and relay method for sensing data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100150157A1 (en) * 2008-12-15 2010-06-17 Microsoft Corporation Peer to multi-peer routing
US20110178762A1 (en) * 2010-01-20 2011-07-21 Faro Technologies, Inc. Portable Articulated Arm Coordinate Measuring Machine with Multiple Communication Channels
US20120158161A1 (en) * 2010-12-20 2012-06-21 Alan Wade Cohn Defining and implementing sensor triggered response rules

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
I. Fette et al., "The WebSocket Protocol", rfc-6455, December 2011 *
J. Rosenberg et al., "Session Traversal Utilities for NAT (STUN)", rfc-5389, October 2008 *
S. Loreto et al., "Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP", rfc-6202, April 2011 *

Also Published As

Publication number Publication date
TW201743625A (en) 2017-12-16
TWI654881B (en) 2019-03-21
TW201404183A (en) 2014-01-16
CN103543700A (en) 2014-01-29
CN103543700B (en) 2016-08-17

Similar Documents

Publication Publication Date Title
US9172553B2 (en) Security system with networked touchscreen and gateway
US10448485B2 (en) System and method of autonomous restore point creation and restoration for luminaire controllers
US9047753B2 (en) Networked touchscreen with integrated interfaces
US9325516B2 (en) Power receptacle wireless access point devices for networked living and work spaces
US9532094B2 (en) Camera data access based on subscription status
US9306809B2 (en) Security system with networked touchscreen
US9456297B2 (en) Methods and apparatus for using smart environment devices via application program interfaces
EP2191351B1 (en) Networked touchscreen with integrated interfaces
EP2483788B1 (en) Integrated security system with parallel processing architecture
US20100138007A1 (en) Apparatus and method for integration and setup of home automation
US20090138958A1 (en) Takeover Processes in Security Network Integrated with Premise Security System
US8588990B2 (en) Communicating through a server between appliances and applications
US8649883B2 (en) Power distribution system and method
US9652976B2 (en) Mobile user interface for event notifications arising from smart-home hazard detection devices
US20180267702A1 (en) Networked touchscreen with integrated interfaces
US20040260407A1 (en) Home automation control architecture
JP6543282B2 (en) Method for managing a networked thermostat
US9800429B2 (en) Adaptive home and commercial automation devices, methods and systems based on the proximity of controlling elements
US9489062B2 (en) User interfaces for remote management and control of network-connected thermostats
CN1319341C (en) Network apparatus and program product
US10262210B2 (en) Method and system for encrypting network credentials using password provided by remote server to provisioning device
US10015825B2 (en) Smart-home device facilitating convenient setup of plural instances thereof in the smart home
US20140129006A1 (en) Smart gateway, smart home system and smart controlling method thereof
US10127802B2 (en) Integrated security system with parallel processing architecture
US20100023865A1 (en) Cross-Client Sensor User Interface in an Integrated Security Network