A network gateway is an internetworking system capable of joining together two networks that use difference base protocols. The typical network gateway is either a stand alone device or is designed directly into a device. Wireless gateways often are stand alone boxes that have an Ethernet cable and power cable attached for connectivity and power. As network gateways have continued to proliferate, they have changed and become more cost effective; they continue to appear in new applications. Designing and communicating with a network gateway can still, however, be a complicated process.
What is needed is a system and method for adding network gateway functionality that addresses these issues, and other issues that will become apparent while reading the following.
In the following detailed description of example embodiments of the invention, reference is made to specific examples by way of drawings and illustrations. These examples are described in sufficient detail to enable those skilled in the art to practice the invention, and serve to illustrate how the invention may be applied to various purposes or embodiments. Other embodiments of the invention exist and are within the scope of the invention, and logical, mechanical, electrical, and other changes may be made without departing from the subject or scope of the present invention. Features or limitations of various embodiments of the invention described herein, however essential to the example embodiments in which they are incorporated, do not limit the invention as a whole, and any reference to the invention, its elements, operation, and application do not limit the invention as a whole but serve only to define these example embodiments. The following detailed description does not, therefore, limit the scope of the invention, which is defined only by the appended claims.
A system 100 for controlling devices is shown in
In one embodiment, network connection 114 is a Wi-Fi connection to network 104. In another embodiment, network connection 114 is an Ethernet connection. In another embodiment, network connection 114 is a cellular connection.
In the example embodiment shown in
In one embodiment, network gateway 106 is a traditional gateway such as a Digi ConnectPort X2, manufactured by Digi International of Minnetonka, Minn. In another embodiment, network gateway 106 is implemented in software on a personal computer, and communicates with the second network 108 via a network adapter (such as the XStick USB Adapter manufactured by Digi International of Minnetonka, Minn.). In yet another embodiment, network gateway 106 is an embedded gateway as will be described below. In yet another embodiment, network gateway 106 is implemented in software on a personal computer, and communicates with device 110 via network connection 114 (termed a “virtual gateway”).
An example embodiment of system 100 is shown in
In one example embodiment, as is shown in
In the example shown in
In one embodiment, gateway functionality is distributed between module 206 and application 102. A low cost module 206 with reduced computational power can be designed by moving portions of the gateway functionality from module 206 to application 102. In one such embodiment, a distributed gateway application executing in either the cloud or in device 206 coordinates the gateway functions executed in application 102 with those executed in gateway module 126.
In the embodiment shown in
In one embodiment, network connection 114 is a Wi-Fi connection to network 104. In another embodiment, network connection 114 is an Ethernet connection. In another embodiment, network connection 114 is a cellular connection.
In the embodiment shown in
In one example embodiment, gateway module 206 is designed such that it can be embedded within another device such as a set top box, a gaming console, a PC, plug-in vehicle charging station or some other internet connected device. Once connected, gateway module 206 automatically connects to cloud device manager/gateway application 102 over internet 104.
Another example embodiment of the garage door opener application of
In one embodiment, device 200 is an internet-connected plug-in charging station. In one example embodiment, embedded gateway module 206 is added to the charging station and creates a mesh network 108 that is able to communicate with garage door opener 110 via radio module 120. Local control lines 210 can be used to control aspects of the charging station, aspects of the garage door control, or to control, for example, the garage lights. More importantly, in some example embodiments, local control lines 210 are used in by an application running on smartphone 112, to check the status not only of the garage door, but also the charging station.
As noted above, wireless gateways often are implemented as stand alone boxes that have an Ethernet cable and power cable attached to for connectivity and power. In one embodiment, gateway module 126 includes a reasonably high performance microprocessor with external flash and ram that is also connected to an RF subsection. In some such gateways, the gateways run an operating system like Linux, but also have the ability to run Python scripts so that customers can run their code on the gateway.
In one embodiment, an attempt was made to significantly reduce the cost of a next generation gateway. We found that the cost can be lowered by placing portions of the gateway application in a cloud application. In one such embodiment, a gateway module 206 is built on a small PCB that can be connected to Ethernet within the parent device 200. It receives its power from the parent device as well as provides I/O lines, ADC and standard communication interfaces (UART,SPI) for local parent device control from the cloud. In one embodiment, as is shown in
The approach described above reduces the cost of deploying gateways and changes the approach to their design and deployment. This approach allows for this type of gateway to be deployed without adding another stand-alone gateway in the home. In addition the module's particular gateway application can be distributed between the module and the device cloud, allowing for cheaper lower cost hardware to be used.
What has been described is an embedded gateway which provides easy connectivity to device cloud. By embedding this device and providing automatic connectivity to a device cloud, design in of a network gateway is simplified. The device cloud allows functions and features to be offloaded from the gateway. Gateway features could be Smart Energy Energy Service Interface (ESI), Home automation gateway, Smart Energy gateway, could be imbedded in a Smart Energy in home display.
The embedded approach of
In some embodiments, a device 106 or 206 automatically connects to the device cloud when connected. Also, by providing local communication and I/O line controls, gateway module 206 is able to directly control local hardware, not just the remote 802.15.4 devices. Finally, one can load different personas on the gateway to tune each module 206 for the task. In some embodiments, for example, there is a different 802.15.4/Zigbee profile for each of Smart Energy, Home automation, etc.
In one embodiment, distributed gateway application 134 of
In one embodiment, application 134 is designed to abstract out the underlying gateway hardware. In one such embodiment, application 134 communicates with a variety of gateway hardware devices using hardware application programming interfaces (APIs). In one such embodiment, a first API is designed to communicate with a traditional gateway via traditional gateway driver. Such a driver is used, for instance, to read and write from the Digi ConnectPort X2 described above.
In one such embodiment, a second API is designed to communicate with an embedded gateway such as is shown in
In one embodiment, each application 134 includes a conversion utility used to process data into a uniform format before passing the data on to the device manager application 102 executing in the cloud. One such embodiment is based on Digi's DIA, as detailed below. In another embodiment, application 134 includes the conversion utility used to process data into a uniform format before passing the data on to the device manager application 102 executing in the cloud. One such embodiment is based on Digi's XIG, as detailed below.
In some embodiments, data is formatted into channels before being sent to application 102. In some embodiments, channels are defined for both data and control packets. Other control and data transfer mechanisms can be used as well.
In some channel embodiments, data sent from application 102 to gateway modules 106 and 206 is formatted into channels. In one such embodiment, a channel for data to be sent from gateway module 106 or 206 may be formed from data read from device 110, or may be formed by combining data from two or more channels into a third channel and sending the third channel data to application 102. Similarly, data received at gateway modules 106 and 206 could be separated into two or more distinct channels before being sent to device 110 in order, for example, to control operation of device 110. In one embodiment, the iDigi DIA is used to manage the channel data. iDigi DIA is a channel database that receives sample data from device 110 on one or more channels, saves the channel data to a channel database and presents data from the channel database in the form of presentations. Each channel is an accessible discrete element in the channel database and can be access by presentations according to a set of permissions. In one embodiment, Digi's XBee Internet Gateway (XIG) is used to access channel data from, for instance, smartphone 112.
In one embodiment, as is shown in
In some embodiments, other message mechanism are used instead of channels, or in addition to channels, to transfer data and control information between an application operating on user device 112 and device 110.
Next, the automatic garage door opener example will be discussed in greater detail. An example smartphone enabled automatic garage door opener is illustrated in
In one embodiment, radio module 120 is an XBEE ZB radio module manufactured by Digi International of Minnetonka, Minn. The XBee ZB radio module speaks the ZigBee protocol. ZigBee is great for home automation projects. It's secure and inexpensive but most importantly it's a mesh network—a network that can extend its range using other radios intelligently and automatically. For example, if your garage is too far away from your gateway you can simply add another radio in the middle to facilitate the wireless connection.
In one embodiment, garage door opener 110 includes a door sensor 126 used to detect whether the door is open or closed. In one such embodiment, sensor 126 is a magnetic reed switch sensor 122; it will tell you when the door is fully closed.
One embodiment of a printed circuit board that can be used in circuit 122 is sold as Digi-Key kit #6811380-KIT-ND at digikey.com. For security the printed circuit board adds static protection on the sensor inputs, and a circuit that stops the garage door from being toggled in the event of a power outage. Assembly is simple: find an empty spot on the PCB and note its silkscreen label (e.g., capacitor C6). Locate each item in the materials list online and solder it in place, taking care to orient it correctly.
In a typical automatic garage door opener installation, two wires connect the door opener button to garage door opener unit 124. In one embodiment, two wires are run from a relay on circuit 122 to the two garage door opener button wires on unit 124. When the relay activates, it momentarily shorts the two wires together, simulating a button press.
Once circuit 124 is installed and connected to radio module 120, it is time to connect the circuit to internet 104. First, radio module 120 is connected through network 108 to a gateway 106. Then, we have to make gateway accessible over internet 104.
In one embodiment, gateway 106 is a Digi ConnectPort X2 ZigBee-to-Ethernet gateway. The ConnectPort X2 can be programmed using the Python language. In one embodiment, we use an open source Python application called the XBee Internet Gateway (XIG) to create the link between the garage door opener unit 124 and the internet.
In an alternate embodiment, one could connect an XBee to a personal computer acting as gateway 106 as noted above in order to make this link.
The Digi ConnectPort X2 gateway creates a connection from the gateway to a special free service called iDigi. This connection acts like a secure tunnel back to the gateway 106 in our home. Using the proper credentials, remote applications can talk to iDigi and pass information all the way to devices 110 on mesh network 108. So why use a dedicated gateway and not a PC? For the same reasons we use wi-fi routers instead of PCs set up for internet sharing: simplicity, reliability, cost, and efficient power consumption.
First, connect your ConnectPort X2 gateway 106 to your internet connection by plugging it into a spare Ethernet port on your switch or router. Open a web browser and go to idigi.com.
Click the Get Started Now button and create an account on the iDigi Developer Cloud (a free version of iDigi Device Cloud that allows up to 5 devices). Once logged into iDigi Manager Pro, go to the Devices page and click the Add (+) button. The application will look for the gateway 106 on your local network. Once gateway 106 is found, click on it to select it, and then click Add. After a minute, click Refresh and you'll see your gateway 106 listed as “Connected.” This means gateway 106 can talk to the world and the world (if it has the proper credentials) can speak to your gateway 106 and devices 110.
Power up your XBee Pulse I/O, right-click on ConnectPort X2 on the Devices list, then select Discover to add XBee radio node 120 to the list as well.
To control how gateway 106 speaks to the world, you need to load some extension software onto it. The XBee Internet Gateway (XIG) is a Python program that allows our mobile phone app to send remote commands to open and close the garage door. It also streams SSL-encrypted sensor information from the XBee Pulse I/O to the iDigi service, which allows our mobile app to know whether the door is open or shut. The XIG runs on Windows, Macintosh and Linux computers as well as the Digi ConnectPort X series of dedicated gateways.
Download XIG version 1.4.0 or newer from code.google.com/p/xig, and unpack the archive into a folder on your desktop.
Log into the iDigi Developer Cloud, go to the Devices page, double-click on your gateway, and select Python from the list of configuration sections. Click the Upload icon, browse to your unpacked XIG files, and upload all files except the software license and README file.
Once the upload completes, type xig.py into the Auto-start Command Line field and check the Enable checkbox. Close the configuration pane, right-click on the gateway, and select Administration->Reboot. Gateway 106 is configured.
An XBee Garage Door Application can be downloaded from the Android market, or a browser interface can be used from smartphone 112 to access data from device 110 and issue commands to device 110.
In one embodiment, a garage door is displayed on the screen of smartphone 112. If the door is closed, the corresponding garage door is closed. If the door is displayed open, then the corresponding garage door is open. In one embodiment, a swipe up on the closed garage door will send a command to unit 124 to open the garage door, while a swipe down on the open garage door will send a command to unit 124 to close the garage door. A similar swipe method can be used to open or close other doors.
The above described device manager system 100 significantly lowers the cost and difficulty of implementing internet-enabled gateway functionality in a 802.15.4/Zigbee deployment. The deployment can now be done based on known software modules.
The above described embedded gateway module 206 also reduces the cost of implementing gateway functionality in a 802.15.4/Zigbee deployment. By embedding this device and providing automatic connectivity to a device cloud, deployment can now be done without adding an additional box, and makes it easy to add smart energy services to existing products. Gateway module 206 also reduces certification and hardware design expenses because the RF is on the gateway module. The device cloud allows functions and features to be offloaded from the gateway. The above-described gateways can be used to build a Smart Energy Energy Service Interface (ESI), a home automation gateway, a Smart Energy gateway, or could be used to embed Smart Energy in a home display.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. The invention may be implemented in various modules and in hardware, software, and various combinations thereof, and any combination of the features described in the examples presented herein is explicitly contemplated as an additional example embodiment. This application is intended to cover any adaptations or variations of the example embodiments of the invention described herein. It is intended that this invention be limited only by the claims, and the full scope of equivalents thereof.