Integrated cloud system with lightweight gateway for premises automation

Information

  • Patent Grant
  • 11641391
  • Patent Number
    11,641,391
  • Date Filed
    Tuesday, November 19, 2019
    5 years ago
  • Date Issued
    Tuesday, May 2, 2023
    a year ago
Abstract
Systems and methods include a system comprising a cloud hub located in a premises. The cloud hub comprises adapters coupled to premises devices, and the cloud hub is configured as a gateway for the premises devices. A virtual gateway is located in a cloud server environment and coupled to the cloud hub. The virtual gateway is configured as a server-side abstraction of the cloud hub. The cloud hub and the virtual gateway are configured as an automation platform that maintains state data of the premises devices, controls interaction among the premises devices, and monitors and manages the premises devices. A security system coupled to the virtual gateway. The security system includes security system components.
Description
TECHNICAL FIELD

The embodiments described herein relate generally to networking and, more particularly, to premises automation systems and methods.


BACKGROUND

There is a need for systems and methods that integrate cloud services and internet-connected devices with a user interface and other components and functions of a service provider system. This integration would enable third party and/or other connected devices (e.g., smart door bells, door locks, garage door operators, cameras, thermostats, lighting systems, lighting devices, etc.), and third party services to control or trigger automations in the service provider system using components and functions of the service provider system. This would enable end-users to integrate and use their previously-standalone internet-connected devices with each other as well as with their service provider-based service.


INCORPORATION BY REFERENCE

Each patent, patent application, and/or publication mentioned in this specification is herein incorporated by reference in its entirety to the same extent as if each individual patent, patent application, and/or publication was specifically and individually indicated to be incorporated by reference.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of a system including a Cloud Hub (FlexCore) and


Virtual Gateway, also referred to herein as the Lightweight Gateway (LWG), under an embodiment.



FIG. 2 is a block diagram of a system including a Cloud Hub and Virtual Gateway showing the premises, service provider, and mobile environments, under an embodiment.



FIG. 3 is a flow diagram for Cloud Hub device installation, under an embodiment.



FIG. 4 is a block diagram showing communications of the LGW, under an embodiment.



FIG. 5 is a block diagram showing an object model of the LGW, under an embodiment.



FIG. 6 is a block diagram of the application architecture, under an embodiment.



FIG. 7 is a flow diagram for device state change, under an embodiment.



FIG. 8 is a flow diagram for media upload, under an embodiment.



FIG. 9 is a flow diagram for live video, under an embodiment.



FIG. 10 is a flow diagram for event trigger notification, under an embodiment.



FIG. 11 is a flow diagram for activation iHub, under an embodiment.



FIG. 12 is a flow diagram for activation LWG, under an embodiment.



FIG. 13 is a flow diagram for app sign-in (Web/Android app) iHub, under an embodiment.



FIG. 14 is a flow diagram for app sign-in (Web/Android app) LWG, under an embodiment.



FIG. 15 is a flow diagram for app session, device event (Web/Android app), under an embodiment.



FIG. 16 is a flow diagram for app sign-in (iOS) iHub, under an embodiment.



FIG. 17 is a flow diagram for app sign-in (iOS) LWG, under an embodiment.



FIG. 18 is a flow diagram for app session, device event (iOS app), under an embodiment.



FIG. 19 is a flow diagram for LWG remote arm, under an embodiment.



FIG. 20 is a flow diagram for iHub reboot, under an embodiment.



FIG. 21 is a flow diagram for iHub disconnect, under an embodiment.



FIG. 22 is a block diagram of the integrated security system, under an embodiment.



FIG. 23 is a block diagram of components of the integrated security system, under an embodiment.



FIG. 24 is a block diagram of the gateway including gateway software or applications, under an embodiment.



FIG. 25 is a block diagram of components of the gateway, under an embodiment.



FIG. 26 is a block diagram of IP device integration with a premise network, under an embodiment.



FIG. 27 is a block diagram of IP device integration with a premise network, under an alternative embodiment.



FIG. 28 is a block diagram of a touchscreen, under an embodiment.



FIG. 29 is an example screenshot of a networked security touchscreen, under an embodiment.



FIG. 30 is a block diagram of network or premise device integration with a premise network, under an embodiment.



FIG. 31 is a block diagram of network or premise device integration with a premise network, under an alternative embodiment.



FIG. 32 is a block diagram of the Integrated Cloud System (ICS) or platform, under an embodiment.



FIG. 33 is a flow diagram for Service Association, under an embodiment.



FIG. 34 is a flow diagram for Service Disassociation, under an embodiment.



FIG. 35 is a flow diagram for Card UI Interactions, under an embodiment.



FIG. 36 is an example rules interface for controlling triggers and actions involving third party devices integrated in the ICS, under an embodiment.



FIG. 37 is an example of a triggers portion of a rules interface for third party services integrated with the ICS, under an embodiment.



FIG. 38 is another example of an actions portion of a rules interface for integrated third party devices, under an embodiment.





DETAILED DESCRIPTION

Embodiments include a cloud hub located in a premises, and the cloud hub comprises adapters configured for coupling to premises devices. The cloud hub is configured as a gateway for the premises devices. The system includes a virtual gateway located in a cloud server environment and coupled to the cloud hub. The virtual gateway is configured as a server-side abstraction of the cloud hub. The cloud hub and the virtual gateway are configured as an automation platform that maintains state data of the premises devices, controls interaction among the premises devices, and monitors and manages the premises devices.


Embodiments include a system comprising a cloud hub located in a premises. The cloud hub comprises adapters coupled to premises devices, and the cloud hub is configured as a gateway for the premises devices. A virtual gateway is located in a cloud server environment and coupled to the cloud hub. The virtual gateway is configured as a server-side abstraction of the cloud hub. The cloud hub and the virtual gateway are configured as an automation platform that maintains state data of the premises devices, controls interaction among the premises devices, and monitors and manages the premises devices. A security system coupled to the virtual gateway. The security system includes security system components.



FIG. 1 is a block diagram of a system including a Cloud Hub and Virtual Gateway, also referred to herein as the Lightweight Gateway (LWG) or FlexCore, under an embodiment. The “Cloud Hub” is a dual purpose Z-Wave and Wi-Fi Access Point configured to enable full premises automation (e.g., Tier-1 sites). The Cloud Hub device couples or connects to the premises broadband connection and operates as a gateway for Z-Wave and camera traffic. Cloud Hub enables Z-Wave for premises and customer premises equipment (CPE) that do not currently support it, and provides a Wi-Fi sandbox for Direct Cameras. An example of a hardware platform configured as a Cloud Hub is the Sercomm NA301v2 device, but the embodiment is not so limited as numerous other devices can serve as the Cloud Hub. The detailed description herein includes aspects of the software and firmware of the Cloud Hub along with server and client application software.



FIG. 2 is a block diagram of a system including a Cloud Hub and Virtual Gateway showing the premises, service provider, and mobile environments, under an embodiment. The system of an embodiment includes the gateway (FlexCore) in the premises (e.g., home, office, etc.), and the gateway is coupled to a LWG in the operator (server/cloud) domain. The gateway includes one or more of a camera adapter to integrate premises cameras, an IP adapter to integrate premises IP devices, and a ZigBee protocol and hardware driver to integrate premises ZigBee devices. Components of the gateway of an embodiment are coupled to a radio frequency (RF) bridge as appropriate to a configuration of devices in the premises, and the RF bridge integrates additional premises devices (e.g., Z-Wave devices, proprietary devices, etc.) into the system.


The LWG and cloud-based infrastructure of an embodiment uses an existing service provider infrastructure, security, performance, and APIs, along with system components that are separated into modules executed on distributed in-premises systems. The LWG and cloud-based infrastructure includes a pluggable architecture that enables new device protocols and RF technologies to be added without the need to overhaul the core infrastructure. Use of a relatively small memory footprint on the CPE enables the infrastructure to execute on many devices, and this refactoring of local versus cloud services provides a virtual device (e.g., Internet of Things (IOT), etc.) gateway service that pushes as much as possible to the cloud while maintaining local performance and offline capabilities.


An embodiment includes a Lightweight Gateway (LWG) that is configured as the server-side abstraction for the Cloud Hub. The LWG is subordinate to the gateway object, and interacts with the server and the Cloud Hub device in much the same way that a RISSecurityPanel class does. As such, an embodiment re-factors the common code out of RISSecurityPanel into a class that both RISSecurityPanel and the Cloud Hub device can use. A new device definition is created for this type of device, and various changes to the StandardGateway class to control and manage the additional communication channel with the new device.


The Session Server configuration uses a gateway registry service to route incoming UDP packets from the CPE to the proper lightweight gateway instance via a one-to-one mapping of CPE-unique IDs to site IDs. With the addition of the Cloud Hub, a second CPE-unique ID is mapped to the same LWG instance as the primary security, monitoring and automation (SMA) client's CPE-unique ID. This is accomplished by leveraging the Device Registry, which maintains a mapping of CPE ID and device type to site ID. Further, the session server is modified to use this Device Registry to properly route income packets.


Regarding client application software or applications, the clients include UX additions to present the new Cloud Hub device. When the Cloud Hub is present, UX flow will potentially be different. For example, on a Cloud Hub system, Z-Wave devices are not added until the Cloud Hub is added. Also, deleting the Cloud Hub includes deleting the associated Z-Wave devices, and this uses special UX messaging. The activation app and the installer app will also need new flows for installing and managing these devices.


The Cloud Hub firmware of an example embodiment includes but is not limited to the following components: SMA Client: an always-on (i.e., always-TCP-connected) SMA client, supporting AES-256 encryption; ezwLib: port of the Icontrol embedded Z-Wave stack; Bootstrap Client for secure bootstrap of the master key, and then secure provisioning of the SMA Server connection information and initialization information; LED Driver to drive CPE LED that displays Server connectivity and Z-Wave status (CPE-dependent); Firmware Update Logic for fault-tolerant updates of the full CPE image (CPE-dependent); detailed/tunable error logging; Reset To Factory Default Logic for factory-default Z-Wave (erase node cache and security keys), WiFi (disable sandbox, reset SSID/PSK; CPE-dependent), and de-provision (erase SMA Server info).


In an example configuration, server-CPE communication is over SMAv1 protocol, except for bootstrapping and provisioning which uses the OpenHome “Off-Premise Bootstrap Procedure.” On the CPE, the OS and network layer (Wi-Fi sandbox, WPS, routing, etc.) are provided and managed by the CPE OEM (e.g., Sercomm). Wi-Fi provisioning and traffic is handled by the CPE OEM (e.g., Sercomm) without Cloud Hub intervention/signaling, except with respect to enabling/disabling and resetting to defaults.


The Cloud Hub device installation and bootstrap mechanism performs one or more of the following: associate the device with an existing site; securely deliver the SMA communication configuration, including master key, SMA server address, and network ports. An embodiment includes an off-premise bootstrapping procedure, also used for bootstrapping tunneling cameras, that includes a three-step process.



FIG. 3 is a flow diagram for Cloud Hub device installation, under an embodiment. During a first step, the Cloud Hub couples or connects to the Registry Gateway (e.g., via the pre-configured Registry Gateway URL) and retrieves its assigned siteID and the Credential Gateway URL. A second step includes the Cloud Hub retrieving its master key from the Credential Gateway using its siteID and Activation Key. A third step includes the Cloud Hub retrieving Session Gateway Information from the Credential Gateway. At the end of the Bootstrap phase, the Cloud Hub of an embodiment has obtained its master key and its Session Gateway address from the iControl Gateway. Each of these steps is described in detail below.


During normal operation, the CPE performs the first and third processes on every start-up/restart. The second process is followed only if there is no previously stored master key. Hence, security credentials can be re-bootstrapped by invalidating the existing master key.


The Cloud Hub uses the first step process or procedure at least to retrieve its SiteID and Credential Gateway URL.















Purpose
Retrieve Credential Gateway URL and siteID using Cloud Hub



Serial Number as input


Message Format
HTTPS GET /<Registry Gateway URL>/<Serial Number>



HTTP/1.1


Authentication
None


Mandatory Request
Host


Headers
<registryEntry serial=“<Serial Number>” href=“/<Registry



Gateway URL>/<Serial Number>”>



<functions>...</functions >


200 OK response
<siteId><siteID></siteId>



<gatewayUrl><Credential Gateway URL></gatewayUrl>



</registryEntry>


Error responses
Standard HTTP response codes (e.g., 404)


Example Request
https://adminsirius3.icontrol.com/rest/icontrol/registry/serial/00603



504026c



<registryEntry serial=“00:60:35:04:02:6c”



href=“/rest/icontrol/registry/serial/00603504026c”>



<functions count=“1”>



<function name=“delete”



action=“/rest/icontrol/registry/serial/00603504026c”


Example 200 OK
method=“DELETE”>


Response
</functions>



<siteId>00603504026c</siteId>



<gatewayUrl>http://gsess-sirius3.icontrol.com/gw</gatewayUrl>



</registryEntry>












Variable Name
Format
Description/Notes





Registry Gateway
URL
Pre-configured in Cloud Hub firmware


URL




Serial Number
12 byte hex string
Pre-configured in Cloud Hub firmware


siteID
12-20 digit alpha




numeric string



gatewayUrl
URL prefix
Prefix to use for Pending Master Key and


otherwise known as
protocol:host[:port]/p
Connect Info requests.


CredentialGatewayU
ath



RL









The Cloud Hub uses the second step process or procedure at least to retrieve its Pending Master Key. If the Master Key is already established from a previous successful Retreieve Credital procedure, this step is optional.















Purpose
Retrieve device-specific Master Key using its siteID, serial



number and Activation Key as inputs


Message Format
HTTPS POST/<



CredentialGatewayURL>/GatewayService/<siteID>/PendingDevi



ceKey HTTP/1.1


Authentication
None


Mandatory Request
Host, Content-Length, Content-Type (application/x-www-form-


Headers
urlencoded )


POST body
serial=<Serial Number>&activationkey=<ActivationKey>


200 OK response
<pendingPaidKey method=“server” expires=“<pending master key


with pending master
expiration epoch millisecs>” ts=“<current epoch millisecs>”


key
key=“<master key>” partner=“icontrol”/>


200 OK response
Gateway responds with a method=“retry” if the Cloud Hub is not


with retry
yet activated within the system. Response includes timeout for



retry.



<PendingPaidKey method=“retry” expires=“<retry epoch



millisecs>” ts=“<current epoch millisecs>” partner=“icontrol”/>


Other HTTP
Standard HTTP error response codes for example 5xx indicate a


responses
temporary server issue and Cloud Hub devices should perform an



automatic retry in randomized 10 minute backoff


Example POST body
serial=555500000010&activationkey=AABB12345678


Example 200 OK
<pendingPaidKey method=“server” expires=“1308892493528”


with pending key
ts=“1308849293540” key=“398341159498190458”


Response
partner=“icontrol”/>


Example 200 OK
<pendingPaidKey method=“retry” expires=“1308849242148”


response with retry
ts=“1308849122148” partner=“icontrol”/>












Variable Name
Format
Description/Notes





CredentialGatewayU
Hostname[port]
Retrieved via Step 1 - Retrieve


RL

Gateway URL and SiteID


siteID
12 byte hexadecimal string
Retrieved via Step 1 - Retrieve




Gateway URL and SiteID


ActivationKey
10+ digit alpha numeric
Pre-configured in Cloud Hub,



string
generated by manufacturer and




printed on device


‘method’ (in 200 OK
String
“server” or “retry”


body)




‘key’ (in 200 OK
Alphanumeric string
Pending key returned by Gateway in


body)

200 OK body


‘ts’ (in 200 OK body)
Numeric string
Gateway's timestamp in UTC time


‘expires’ (in 200 OK
Numeric string
UTC time when the current pending


body)

key expires


Pending Key
Alphanumeric string
Initial key retrieved from Gateway




that is not yet confirmed with the




Gateway.


SharedSecret or
Alphanumeric string
Pending key becomes


master key

<SharedSecret> after successful




connection to Gateway (see below)









During Cloud Hub activation, the Gateway responds to a Cloud Hub's request for Credential with 200 OK containing the PendingPaidKey XML body (with method=“server”) with a pending key field. The pending key field becomes active once the Cloud Hub connects to the Gateway over the SMA channel and is authenticated by using the pending key to encrypt the initial SMA exchange. Once authenticated (via a successful SMA session with the Gateway), the key is no longer pending and instead becomes active, or otherwise known as the Cloud Hub's<SharedSecret> or master key. The active master key (“<SharedSecret>”) will not automatically expire; however, the Gateway may update a Cloud Hub's<SharedSecret>. Once a pending key becomes active, subsequent requests for the PendingDeviceKey will receive method=“retry” responses unless a new activation process is initiated (this can be done by administrators and installers via the iControl admin and portal applications).


If the Cloud Hub does not connect to the server over the SMA channel and get authenticated using the key by the “expires” time specified in the PendingPaidKey XML body, then the pending key will expire and no longer be valid.


While Cloud Hub activation is underway, each request for the PendingPaidKey will receive a different key in the response, causing the previous pending key to be replaced with the new one. Upon a factory reset, the device will forget its key and return to the bootstrap process of polling for a PendingDeviceKey.


The Cloud Hub uses the third step process or procedure at least to retrieve Session Gateway Info, which includes SMA Gateway address.















Purpose
Retrieve SMA Gateway hostname and port from Credential Gateway


Message Format
HTTPS GET /<gatewayUrl>/GatewayService/<siteID>/connectInfo



HTTP/1.1


Authentication
None


Mandatory
Host


Request Headers




<connectInfo>



    <session host=<Session Gateway host> port=[port] /><ris



eventPort1=‘[port]’ eventPort2=‘[port]’ controlPort1=‘[port]’



controlPort2=‘[port]”/>


200 OK response
    <xmpp host=<XMPP Gateway host> port [port] />



(ignored)



</connectInfo>


Error responses
Standard HTTP response codes (e.g., 404)



<connectInfo>



<session host=‘gsess-aristotleqapicontrol.com’ port=‘443’/><ris



eventPort1=‘11083’ eventPort2=‘11083’ controlPort1=‘11084’



controlPort2=‘11084’/>


Example 200 OK
<xmpp host=‘gsess-aristotleqapicontrol.com’ port=‘5222’/><media


Response
url=‘https://media-



aristotleqap.icontrol.com/gw/GatewayService’/></connectInfo>












Variable Name
Format
Description/Notes





gatewayUrl
https://hostname[:port]/path
Retrieved Via Step 1 - Retrieve




Gateway URL and SiteID


siteID
12-20 char alpha numeric string
Retrieved Via Step 1 - Retrieve




Gateway URL and SiteID


XMPP Gateway
Hostname and port
These variables should be


host:port
IPAddress and port
ignored by the Cloud Hub.


Session Gateway
Hostname
Host and command port to use


host

for SMA communication with




the Gateway.


session:port
port
This port variable should be




ignored by the Cloud Hub.




ports on Session Gateway host




to which SMA async events


ris:eventPort1/2 port

should be sent


ris:controlPort1/2 port

ports on Session Gateway host




for establishing the SMA control




channel









The Cloud Hub of an embodiment is a broadband-connected device, and it attempts to maintain an always-on TCP/IP connection with the server. Therefore, there is no need for a shoulder-tap mechanism, as is provided via SMS on typical tier-1 systems. No “wake-up” message is used as the Cloud Hub is effectively always awake. With conventional Tier-1 systems, the server tears down the TCP connection after several minutes of inactivity; for Cloud Hub, the TCP connection should stay up for as long as possible, with periodic server-originated SMA heartbeat messages (SMA Request Type 0), so that the CPE can supervise the connection as being truly active.


Incoming messages (e.g., UDP) to the session server and the Device Registry from the CPE are routed to the LWG instance associated with a given site ID. In a conventional current pre-CloudHub configuration, the session server uses the Gateway Registry, which is a one to one mapping of CPE-unique IDs to site IDs for this purpose. With the addition of the Cloud Hub, a second CPE-unique ID is introduced that is mapped to the same site ID (LWG instance) as the primary SMA client's CPE-unique ID. This is accomplished by leveraging the Device Registry service, which maintains a mapping of CPE ID and device type to site ID. The session server of an embodiment, upon receipt of a UDP packet, looks up or identifies the received packet's CPE-unique ID in the Gateway Registry and, if a corresponding site ID is found, routes the packet to the associated LWG instance. If a corresponding site ID is not found, the session server looks up the received CPE-unique ID with a general Cloud Hub device type ID and, if a corresponding site ID is found, routes the packet to the associated LWG instance.


The LGW includes use of message tunneling over REST. The Cloud Hub, UDP and TCP messages coming from the CPE and received by the session server are sent to the correct LWG via two REST endpoints. This enables the receiving LWGW instance to run on a session server other than the one at which the message was received.


In an embodiment, when a UDP SMA message arrives at a session server, if the LWG corresponding to the CPE-unique ID message is not already running on the given session server, then the session server starts a new LWG instance there, and if the corresponding LWGW is currently running on another session server, it will be gracefully shut down. In this way, the LWG is configured to move from one session server to another.


In alternative embodiments, the security panel messages continue to use the mechanism described herein (LWG migration), however, the Cloud Hub network traffic employs a mechanism similar to that used by Tunneling Cameras. More specifically:


1) Incoming UDP message to session server #1: session server #1 checks if LWG is running on session server #1.






    • If so, using a LocalRestClient, pass UDP message through to the LWG via a rest endpoint that calls through to the handleAsyncMessage method of the RIS device.

    • If not, check an LWG routing cache to see which session server is hosting the LWG.

    • If a routing entry is found, use AMQPRestClient to pass the UDP message through to the specific session server hosting the LWG via the same rest endpoint that calls through to the handleAsyncMessage method of the RIS device.

    • If no routing entry is found, or the session server returns 404 (e.g., stale routing entry), then the session server sends out a broadcast request using the AMQPRestClient to ask all session servers “who has this LWG”.

    • If a session server responds to the broadcast request, send the async event to that session server as described herein.

    • If no session server responds to the broadcast request, start the LWG on this session server (session server #1).


      2) Incoming TCP message to session server #1: session server #1 checks if LWG is running on session server #1.

    • Use process described in 1 above to determine which session server is hosting the LWG and pass the TCP message through accordingly, but using a different rest endpoint than UDP message handling. In the rest endpoint call, the name of the session server with the TCP connection is sent along with the request.

    • When the LWG receives TCP messages through the rest endpoint, it keeps track of the name of the session server with the TCP connection. The tunnel camera does this using a variable on the camera device and the cloud hub device could do the same.


      3) Sending a command from LWG over TCP connection.

    • When the LWG sends a command over the TCP connection, it sends a command via the AMQPRestClient to the session server hosting the TCP connection. It has this name saved from when it received the first TCP message for the given connection.

    • If the TCP session server hostname is not known, or responds with a 404 (e.g., TCP connection no longer there), then the LWG sends out a broadcast request using the AMQPRestClient to ask all session servers “who has this TCP connection”.

    • If a session server responds to the broadcast request, send the command to that session server as described herein.

    • If no session server responds to the broadcast request, then the LWG queues the command for a short time period (e.g., existing RIS device functionality).





The CloudHub firmware update of an embodiment is accomplished over an HTTPS connection from the CloudHub to a secure server, to download an entire bundled CPE image. This single image includes the CloudHub updatable firmware, including: OS image and drivers; SMA Client, which includes code for bootstrapping, AES-256 encryption, LED driver, firmware update logic, etc.; ezwLib Z-Wave stack.


A firmware update is initiated on the server by sending SMAv1 System Command (command type 31) with Sub-Command “Upgrade Client Firmware” (system command type 3). This command simply provides a URL pointing to the new firmware image. This will be an HTTPS URL for secure transfer of the image. When the Cloud Hub receives this command, it downloads the image from a secure server via HTTPS, verifies a digest checksum, and flashes the new image.


Progress of the image download is communicated by the CloudHub by sending async event “Firmware upgrade % completed” (CPE Report Type 12); flashing progress is communicated by the CloudHub setting/clearing system status “Firmware Update Start” (Miscellaneous System Status 15).


Flashing a new firmware image does not factory-default the device, and existing configuration, provisioning information, and encryption keys are retained. CloudHub of an embodiment is configured to use either a dual-image scheme or re-flashing bootloader, so that a power-cycle during image flashing will not brick CloudHub.


The SMA Client is configured to flash the Z-Wave chip firmware, when directed to do so via SMAv1 System Command (command type 31) with Sub-Command “Upgrade Client Firmware” (system command type 3), specifying a Z-Wave-specific filename.


SMAv1 security for tier-1 panel communication is enhanced by the out-of-band SMS channel from the server to the CPE. The cellular network is a more restricted private network relative to a broadband network, and this is advantageous for re-keying the master key, when needed. Since CloudHub of an embodiment is configured as an always-on TCP/IP connected device, another process is used in which a REST endpoint is created that uses an SMA set config command to “clear” the current master key and restart. Upon restart, when the CPE discovers it has no master key, it performs the bootstrap as described herein to obtain a new master key.


The Lightweight Gateway (LWG) is a general term for the gateway state machine that runs on the server, as described herein. There is also a gateway state machine that runs in the home and this is commonly referred to as the iHub, although that code can run on other CPE hardware. The gateway state machine is configured to maintain track of the state of CPE devices such as security panels and cameras. The gateway monitors and manages these devices, and also runs the rules engine and exports the gateway core API which includes all endpoints that begin with the prefix “/rest/[partner]/nw/[siteId]”.


The Lightweight Gateway is used for example when there is no conventional gateway in the home. In this configuration, devices like the security panel and cameras talk directly to the server either using the cellular network or using the premises broadband network.


The Lightweight Gateway of an embodiment communicates with a variety of security panels and protocols. The security panels include the Honeywell QC3/Lynx and QC5/Touch, which use a proprietary RIS/ECP protocol (Honeywell). The security panels also include DSC SCW and PowerSeries, which use the iControl SMA V1 protocol. The LWG also communicates or integrates with the 2 Gig Telular panel, which uses the iControl SMA V1 protocol and supports ZWave devices like switches, dimmers, thermostats and locks. In this configuration, the 2 Gig panel performs the role of the zwave device manager.


The LWG also communicates or integrates with the Honeywell TSS panel, which uses the iControl SMA V2 protocol and allows for complete remote panel programming via SMA. The security panels to which the LWG communicates also include 3GUC panels, which use SMA V1 protocol and can connect to SimonXT and other panels.


The LGW of an embodiment supports an XMPP Tunnel Camera (e.g., OpenHome). This camera couples or connects to the server via broadband using the corresponding protocol tunneled over XMPP.



FIG. 4 is a block diagram showing communications of the LGW, under an embodiment. FIG. 5 is a block diagram showing an object model of the LGW, under an embodiment.


Regarding the system architecture, the LWG runs on a Session Server, as described herein. The session server sits on the Web Tier, at the edge of the data center. Other servers on the web tier include Apache servers and the Video Relay server, but are not so limited.


The LGW objects are hosted on the Session Server. They receive inbound communications from their corresponding security panel via the Panel Service Provider (i.e. Honeywell). The inbound communication of an embodiment is UDP packets from a dedicated TCP/IP port. The outbound communications are packaged into binary SMS messages and delivered to the security panel through third-party communication services, but are not so limited.


The App Tier includes servers like the web portal and the gateway app server. App tier servers have access to the persistence tier where the Database and NFS filesystem can be found.


The Web Tier of an embodiment does not have direct access to the persistence tier, but is not so limited. As a result, for NFS and Database access, the LWG invokes APIs on the gateway app server. The LWG uses the REST API on the gateway app server as well as the legacy GwSessionService (gwsess.war). Most of these requests are made using http, however, REST API requests can also be invoked using the AMQP transport layer (AMQPRestClient) in which case these requests are routed through a work queue on the RabbitMQ Broker.


Regarding asynchronous architecture, a production session server of an embodiment includes 26 GB of memory, 2 CPUs, and is sized for 200K LWGs, but is not so limited. Each LWG uses approximately 100 KB of memory but is not so limited.


The LWGs running on a session server share the same virtual machine (e.g., Java), so the LWG code is configured to be high asynchronous so as to avoid blocking shared resources or using too many threads. An embodiment includes shared network thread pools. These thread pools dispatch tasks for handling incoming network activity (e.g., UDP and TCP message processing, API Requests, etc).


Embodiments include GlobalScheduler thread pools. In this configuration there is a thread pool for non-blocking activity (tick pool), for external blocking requests (sync pool), and for camera operations (camera pool).


Because a large number of LWGs share the same memory, use is made of the StringCache when an object has a String member variable and that String is not likely to be unique. The StringCache is a shared lookup table of commonly used strings. When a code uses the StringCache then it has an int memory variable rather than a String, and this saves the LWG large amounts of memory.


The Session server keeps track of all the LWGs it is running using the /data/ic/logs/session serialized files. Every time a new LWG is started or stopped on the Session Server, these serialized files are updated accordingly. When the Session Server starts up after stopping (both gracefully and ungracefully), these serialized files tell it which LWGs to start.


An LWG can move from one Session Server to another. The LWG of an embodiment is assigned to primary/secondary Session Server combination, but is not so limited. This is determined by the LWG group in which the site resides. Each LWG group corresponds to a single primary Session Server and a single secondary Session Server. The LWG group also corresponds to a dedicated port on the load balancer. This dedicated port is configured to send all traffic to the primary Session Server when it is up, and to the secondary Session Server if it is down (active/standby configuration). If traffic destined for a given LWG comes in to a Session Server (either primary or secondary), the Session Server will check if the LWG is already running on that server. If it is not, then the Session Server will start the LWG and then pass to it the traffic.


When a LWG starts up on a Session Server, it first sends a GatewayConnect request for the given LWG site to the Gateway App server. The same GatewayConnect request is also used when an iHub connects to a Session Server. The GatewayConnect request includes the hostname of the Session Server. The Gateway App server writes the Session Server hostname to the database so that it knows to which Session Server a given Gateway is connected. This is used for routing REST API passthrough requests, for example. When the Gateway app processes the GatewayConnect request, it checks which Session Server the given site was last connected to and, if its different from the new session server, then the Gateway App server sends a disconnect request to the last session server.


When a Session server receives a disconnect request for a given site, if the site is an iHub then the Session server will disconnect that iHub if its still connected (it should not be). If the site is a LWG then the session server will shut down that LWG gracefully, allowing the LWG to perform a final sync (sending any recent events to the database for persistence) before removing the LWG from memory.


So, when a LWG starts up on a Session Server, the GatewayConnect request ensures that the LWG is no longer running on another Session Server. If the load balancer decides that the primary Session Server for a given port is down, it sends requests to the secondary Session Server. If the LWG is not already running on the secondary Session Server, the secondary Session Server starts the LWG, ensuring that it is not running anywhere else.


After the GatewayConnect request is completed, the LWG state machine is started up and it performs a “boot” Gateway sync. The “boot” Gateway Sync is a request made to the Gateway app server for a complete configuration and state snapshot of the given site. The Gateway app server reads the configuration and state from the DB and returns it to the LWG. The LWG is then able to start up and resume the state and configuration that it had when last run.


Alternatively to the “boot” Gateway Sync, there is a startup optimization that the LWG supports in which the contents of the “boot” Gateway Sync are written by the LWG to the NFS file system (using the Gateway app server's GetResourceFile, PutResourceFile, DeleteResourceFile apis) when the LWG is shut down gracefully. When the LWG starts up, it will first check for this file before performing the “boot” Gateway Sync. If the file is found then the “boot” Gateway Sync is skipped.


An embodiment performs traffic routing via broker. The Session Server includes an instance of the REST Server Framework, which includes the AMQP work and broadcast queue support. The tunnel camera feature makes extensive use of AMQP Rest Client and Rest Server messaging for announcing incoming camera connections, finding the Session Server with a given camera connected to it, sending camera requests and responses across different session servers (for example, when the Camera is connected to a different session server from its LWG). The Rest API endpoints are able to route requests to the LWG.



FIG. 6 is a block diagram of the application architecture, under an embodiment. Following are detailed descriptions of use case flows teaching the interaction of elements of the application architecture.



FIG. 7 is a flow diagram for device state change, under an embodiment. This flow shows the signal and data flow that results when a device state changes.

    • 1. iHub→Session Server
    • 2. Session Server→Gateway Device State/Config
    • 3. Gateway Device State/Config→DB
    • 4. Gateway Device State/Config→Event Logging
    • 5. Event Logging→DB
    • 6. Event Logging→Broker (if user app is logged in to this site)



FIG. 8 is a flow diagram for media upload, under an embodiment. This flow shows the signal and data flow that results when media is uploaded to the server.

    • 1. iHub→Camera
    • 2. Camera→iHub/Registry Web
    • 3. iHub/Registry Web→Media Upload
    • 4. Media Upload→File System (local file system)
    • 5. Media Upload→Broker
    • 6. Broker→Media Upload (for processing)
    • 7. Media Upload→File System (network file system)
    • 8. Media Upload→Event Logging
    • 9. Event Logging→DB
    • 10. Event Logging→Broker (if user app is logged in to this site)



FIG. 9 is a flow diagram for live video, under an embodiment. This flow shows the signal and data flow that results when a client application session accesses live video using the Relay Server.

    • 1. Subscriber→Portal/Mobile/Admin Web (live video request)
    • 2. Portal/Mobile/Admin Web→Customer Portal (live video request)
    • 3. Customer Portal→Relay Server
    • 4. Customer Portal→Gateway Device State/Config
    • 5. Gateway Device State/Config→Session Server
    • 6. Session Server→iHub
    • 7. iHub→Camera
    • 8. iHub→Relay Server
    • 9. Customer Portal→Portal/Mobile/Admin Web (live video response)
    • 10. Portal/Mobile/Admin Web→Subscriber (live video response)
    • 11. Subscriber→Relay
    • 12. Relay→iHub
    • 13. iHub→Camera



FIG. 10 is a flow diagram for event trigger notification, under an embodiment. This flow shows the signal and data flow that results when a device event triggers a notification to be sent to the customer.

    • 1. iHub→Session Server
    • 2. Session Server→Gateway Device State/Config
    • 3. Gateway Device State/Config→DB
    • 4. Gateway Device State/Config→Broker (if notification to be sent)
    • 5. Broker→Notification
    • 6. Notification→DB
    • 7. Notification→SMTP (if email notification)
    • 8. Notification→Open Market (if SMS notification)



FIG. 11 is a flow diagram for activation iHub, under an embodiment. This flow shows the signal and data flow that results when an iHub or ngHub is activated.

    • 1. Admin/Ops→Portal/Mobile/Admin Web (create site)
    • 2. Portal/Mobile/Admin Web→Installer Portal (create site)
    • 3. Installer Portal→DB (create site)
    • 4. iHub→iHub/Registry Web (request: get cert)
    • 5. iHub/Registry Web→Gateway Device State/Config (request: get cert)
    • 6. Gateway Device State/Config→DB (save cert)
    • 7. Gateway Device State/Config→iHub/Registry Web (response: get cert)
    • 8. iHub/Registry Web→iHub (response: get cert)
    • 9. iHub→Session Server
    • 10. Session Server→Gateway Device State/Config (authenticate)
    • 11. Gateway Device State/Config→DB
    • 12. Installer Portal→DB (finalize site creation, set owner)



FIG. 12 is a flow diagram for activation LWG, under an embodiment. This flow shows the signal and data flow that results when a cellular-only security panel is activated.

    • 1. Admin/Ops→Portal/Mobile/Admin Web (create site)
    • 2. Portal/Mobile/Admin Web→Installer Portal (create site)
    • 3. Installer Portal→DSC C24/Alarmnet (get SIM status)
    • 4. Installer Portal→DB (create site)
    • 5. Installer Portal→Session Server (start LWG)
    • 6. Session Server→Lightweight Gateway (start LWG)
    • 7. Installer Portal→Session Server (communication test)
    • 8. Session Server→Lightweight Gateway (communication test)
    • 9. Lightweight Gateway→SMS
    • 10. SMS→SMPP
    • 11. CPE Device→Session Server (UDP event)
    • 12. Session Server→Lightweight Gateway
    • 13. Lightweight Gateway→Gateway Device State/Config
    • 14. Gateway Device State/Config→DB
    • 15. Installer Portal→DB (finalize site creation, set owner)



FIG. 13 is a flow diagram for app sign-in (Web/Android app) iHub, under an embodiment. This flow shows the signal and data flow that results when a customer (subscriber) with an iHub or ngHub signs in to the Android Application. The flow is largely the same for the Web Portal.

    • 1. User→Portal/Mobile/Admin Web (authentication, get site config)
    • 2. Portal/Mobile/Admin Web→Mobile Portal (authentication, get site config)
    • 3. Mobile Portal→DB (authentication, get site config)
    • 4. Mobile Portal→Broker (add event listener for site)
    • 5. Mobile Portal→User (initial view data)
    • 6. Mobile Portal→Session Server (client heartbeat)
    • 7. Session Server→iHub (client heartbeat)
    • 8. iHub→Session Server (sync)
    • 9. Session Server→Gateway Device State/Config (sync)
    • 10. Gateway Device State/Config→DB
    • 11. Gateway Device State/Config→Broker (publish to listeners)
    • 12. Broker→Mobile Portal (publish to listeners)
    • 13. Mobile Portal→Portal/Mobile/Admin Web (update view data)
    • 14. Portal/Mobile/Admin Web→User (update view data)



FIG. 14 is a flow diagram for app sign-in (Web/Android app) LWG, under an embodiment. This flow shows the signal and data flow that results when a customer with a cellular-only panel (LWG) signs in to the Android Application. The flow is largely the same for the Web Portal.

    • 1. User→Portal/Mobile/Admin Web (authentication, get site config)
    • 2. Portal/Mobile/Admin Web→Mobile Portal (authentication, get site config)
    • 3. Mobile Portal→DB (authentication, get site config)
    • 4. Mobile Portal→Broker (add event listener for site)
    • 5. Mobile Portal→User (initial view data)
    • 6. Mobile Portal→Session Server (client heartbeat)
    • 7. Session Server→Lightweight Gateway (client heartbeat)
    • 8. Lightweight Gateway→SMS (request TCP connection from panel)
    • 9. SMS→SMPP
    • 10. Lightweight Gateway→Session Server (sync)
    • 11. Session Server→Gateway Device State/Config (sync)
    • 12. Gateway Device State/Config→DB
    • 13. Gateway Device State/Config→Broker (publish to listeners)
    • 14. Broker→Mobile Portal (publish to listeners)
    • 15. Mobile Portal→Portal/Mobile/Admin Web (update view data)
    • 16. Portal/Mobile/Admin Web→User (update view data)



FIG. 15 is a flow diagram for app session, device event (Web/Android app), under an embodiment. This flow shows the signal and data flow that results when a customer is already signed in to the Android Application and a device event occurs. The flow is largely the same for the Web Portal.

    • 1. Lightweight Gateway/iHub→Session Server (sync)
    • 2. Session Server→Gateway Device State/Config (sync)
    • 3. Gateway Device State/Config→DB
    • 4. Gateway Device State/Config→Event Logging
    • 5. Event Logging→DB
    • 6. Event Logging→Broker (publish to listeners)
    • 7. Broker→Mobile Portal (publish to listeners)
    • 8. Mobile Portal→Portal/Mobile/Admin Web (update view data)
    • 9. Portal/Mobile/Admin Web→User (update view data)



FIG. 16 is a flow diagram for app sign-in (iOS) iHub, under an embodiment. This flow shows the signal and data flow that results when a customer with an iHub or ngHub signs in to the iOS Application.

    • 1. User→Portal/Mobile/Admin Web (authentication, get site config)
    • 2. Portal/Mobile/Admin Web→Application Interface (authentication, get site config)
    • 3. Application Interface→DB (authentication, get site config)
    • 4. Application Interface→Session Server (client heartbeat)
    • 5. Session Server→iHub (client heartbeat)
    • 6. User→Portal/Mobile/Admin Web (request: get current state, deltas)
    • 7. Portal/Mobile/Admin Web→Application Interface (request: get current state, deltas)
    • 8. Application Interface→Session Server (request: get current state, deltas)
    • 9. Session Server→iHub (request: get current state, deltas)
    • 10. iHub→Session Server (response: get current state, deltas)
    • 11. Session Server→Application Interface (response: get current state, deltas)
    • 12. Application Interface→Portal/Mobile/Admin Web (response: get current state, deltas)
    • 13. Portal/Mobile/Admin Web→User (response: get current state, deltas)



FIG. 17 is a flow diagram for app sign-in (iOS) LWG, under an embodiment. This flow shows the signal and data flow that results when a customer with a cellular-only panel (LWG) signs in to the iOS Application.

    • 1. User→Portal/Mobile/Admin Web (authentication, get site config)
    • 2. Portal/Mobile/Admin Web→Application Interface (authentication, get site config)
    • 3. Application Interface→DB (authentication, get site config)
    • 4. Application Interface→Session Server (client heartbeat)
    • 5. Session Server→Lightweight Gateway (client heartbeat)
    • 6. Lightweight Gateway→SMS (request TCP connection from panel)
    • 7. SMS→SMPP
    • 8. User→Portal/Mobile/Admin Web (request: get current state, deltas)
    • 9. Portal/Mobile/Admin Web→Application Interface (request: get current state, deltas)
    • 10. Application Interface→Session Server (request: get current state, deltas)
    • 11. Session Server→Lightweight Gateway (request: get current state, deltas)
    • 12. Lightweight Gateway→Session Server (response: get current state, deltas)
    • 13. Session Server→Application Interface (response: get current state, deltas)
    • 14. Application Interface→Portal/Mobile/Admin Web (response: get current state, deltas)
    • 15. Portal/Mobile/Admin Web→User (response: get current state, deltas)



FIG. 18 is a flow diagram for app session, device event (iOS app), under an embodiment. This flow shows the signal and data flow that results when a customer is already signed in to the iOS Application and a device event occurs.

    • 1. User→Portal/Mobile/Admin Web (request: get current state, deltas)
    • 2. Portal/Mobile/Admin Web→Application Interface (request: get current state, deltas)
    • 3. Application Interface→Session Server (request: get current state, deltas)
    • 4. Session Server→iHub/Lightweight Gateway (request: get current state, deltas)
    • 5. iHub/Lightweight Gateway→Session Server (response: get current state, deltas)
    • 6. Session Server→Application Interface (response: get current state, deltas)
    • 7. Application Interface→Portal/Mobile/Admin Web (response: get current state, deltas)
    • 8. Portal/Mobile/Admin Web→User (response: get current state, deltas)



FIG. 19 is a flow diagram for LWG remote arm, under an embodiment. This flow shows the signal and data flow that results when a LWG remotely arms a cellular-only panel.

    • 1. User→Portal/Mobile/Admin Web (request: arm panel)
    • 2. Portal/Mobile/Admin Web→Application Interface (request: arm panel)
    • 3. Application Interface→Session Server (request: arm panel)
    • 4. Session Server→Lightweight Gateway (request: arm panel)
    • 5. Lightweight Gateway→CPE Device (send command over TCP connection to device)
    • 6. CPE Device→Session Server (UDP arm state change event)
    • 7. Session Server→Lightweight Gateway (UDP arm state change event)
    • 8. Lightweight Gateway→Session Server (response: arm panel)
    • 9. Session Server→Application Interface (response: arm panel)
    • 10. Application Interface→Portal/Mobile/Admin Web (response: arm panel)
    • 11. Portal/Mobile/Admin Web→User (response: arm panel)



FIG. 20 is a flow diagram for iHub reboot, under an embodiment. This flow shows the signal and data flow that results when an iHub or ngHub reboots (includes references to the above flows).

    • 1. iHub→iHub/Registry Web (request: get server info)
    • 2. iHub/Registry Web→Gateway Registry (request: get server info)
    • 3. Registry→DB (request: get server info)
    • 4. Registry→iHub/Registry Web (response: get server info)
    • 5. iHub/Registry Web→iHub (response: get server info)
    • 6. iHub→iHub/Registry Web (request: get connect info)
    • 7. iHub/Registry Web→Gateway Device State/Config (request: get connect info)
    • 8. Gateway Device State/Config→iHub/Registry Web (response: get connect info)
    • 9. iHub/Registry Web→iHub (response: get connect info)
    • 10. iHub→Session Server
    • 11. Session Server→Gateway Device State/Config (authenticate request)
    • 12. Gateway Device State/Config→DB
    • 13. Gateway Device State/Config→Session Server (authenticate response)



FIG. 21 is a flow diagram for iHub disconnect, under an embodiment. This flow shows the signal and data flow that results when an iHub or ngHub disconnects from the server (includes references to the above flows).

    • 1. Session Server→Gateway Device State/Config (disconnect)
    • 2. Gateway Device State/Config→DB


The system of embodiments including the Cloud Hub and Virtual Gateway as described in detail herein includes one or more components of the “integrated security system” described in detail herein and in the Related Applications, which are incorporated by reference herein. An example of the “integrated security system” is available as one or more of the numerous systems or platforms available from iControl Networks, Inc., Redwood City, Calif. The system of an embodiment described herein incorporates one or more components of the “integrated security system”. The system of an embodiment described herein is coupled to one or more components of the “integrated security system”. The system of an embodiment described herein integrates with one or more components of the “integrated security system”.


More particularly, the methods and processes of the integrated security system, and hence the full functionality, can be implemented in the system described herein including the Cloud Hub and Virtual Gateway. Therefore, embodiments of the systems described herein integrate broadband and mobile access and control with conventional security systems and premise devices to provide a tri-mode security network (broadband, cellular/GSM, POTS access) that enables users to remotely stay connected to their premises. The integrated security system, while delivering remote premise monitoring and control functionality to conventional monitored premise protection, complements existing premise protection equipment. The integrated security system integrates into the premise network and couples wirelessly with the conventional security panel, enabling broadband access to premise security systems. Automation devices (cameras, lamp modules, thermostats, etc.) can be added, enabling users to remotely see live video and/or pictures and control home devices via their personal web portal or webpage, mobile phone, and/or other remote client device. Users can also receive notifications via email or text message when happenings occur, or do not occur, in their home.


In accordance with the embodiments described herein, a wireless system (e.g., radio frequency (RF)) is provided that enables a security provider or consumer to extend the capabilities of an existing RF-capable security system or a non-RF-capable security system that has been upgraded to support RF capabilities. The system includes an RF-capable Gateway device (physically located within RF range of the RF-capable security system) and associated software operating on the Gateway device. The system also includes a web server, application server, and remote database providing a persistent store for information related to the system.


The security systems of an embodiment, referred to herein as the iControl security system or integrated security system, extend the value of traditional home security by adding broadband access and the advantages of remote home monitoring and home control through the formation of a security network including components of the integrated security system integrated with a conventional premise security system and a premise local area network (LAN). With the integrated security system, conventional home security sensors, cameras, touchscreen keypads, lighting controls, and/or Internet Protocol (IP) devices in the home (or business) become connected devices that are accessible anywhere in the world from a web browser, mobile phone or through content-enabled touchscreens. The integrated security system experience allows security operators to both extend the value proposition of their monitored security systems and reach new consumers that include broadband users interested in staying connected to their family, home and property when they are away from home.


The integrated security system of an embodiment includes security servers (also referred to herein as iConnect servers or security network servers) and an iHub gateway (also referred to herein as the gateway, the iHub, or the iHub client) that couples or integrates into a home network (e.g., LAN) and communicates directly with the home security panel, in both wired and wireless installations. The security system of an embodiment automatically discovers the security system components (e.g., sensors, etc.) belonging to the security system and connected to a control panel of the security system and provides consumers with full two-way access via web and mobile portals. The gateway supports various wireless protocols and can interconnect with a wide range of control panels offered by security system providers. Service providers and users can then extend the system's capabilities with the additional IP cameras, lighting modules or security devices such as interactive touchscreen keypads. The integrated security system adds an enhanced value to these security systems by enabling consumers to stay connected through email and SMS alerts, photo push, event-based video capture and rule-based monitoring and notifications. This solution extends the reach of home security to households with broadband access.


The integrated security system builds upon the foundation afforded by traditional security systems by layering broadband and mobile access, IP cameras, interactive touchscreens, and an open approach to home automation on top of traditional security system configurations. The integrated security system is easily installed and managed by the security operator, and simplifies the traditional security installation process, as described below.


The integrated security system provides an open systems solution to the home security market. As such, the foundation of the integrated security system customer premises equipment (CPE) approach has been to abstract devices, and allows applications to manipulate and manage multiple devices from any vendor. The integrated security system DeviceConnect technology that enables this capability supports protocols, devices, and panels from GE Security and Honeywell, as well as consumer devices using Z-Wave, IP cameras (e.g., Ethernet, wifi, and Homeplug), and IP touchscreens. The DeviceConnect is a device abstraction layer that enables any device or protocol layer to interoperate with integrated security system components. This architecture enables the addition of new devices supporting any of these interfaces, as well as add entirely new protocols.


The benefit of DeviceConnect is that it provides supplier flexibility. The same consistent touchscreen, web, and mobile user experience operate unchanged on whatever security equipment selected by a security system provider, with the system provider's choice of IP cameras, backend data center and central station software.


The integrated security system provides a complete system that integrates or layers on top of a conventional host security system available from a security system provider. The security system provider therefore can select different components or configurations to offer (e.g., CDMA, GPRS, no cellular, etc.) as well as have iControl modify the integrated security system configuration for the system provider's specific needs (e.g., change the functionality of the web or mobile portal, add a GE or Honeywell-compatible TouchScreen, etc.).


The integrated security system integrates with the security system provider infrastructure for central station reporting directly via Broadband and GPRS alarm transmissions. Traditional dial-up reporting is supported via the standard panel connectivity. Additionally, the integrated security system provides interfaces for advanced functionality to the CMS, including enhanced alarm events, system installation optimizations, system test verification, video verification, 2-way voice over IP and GSM.


The integrated security system is an IP centric system that includes broadband connectivity so that the gateway augments the existing security system with broadband and GPRS connectivity. If broadband is down or unavailable GPRS may be used, for example. The integrated security system supports GPRS connectivity using an optional wireless package that includes a GPRS modem in the gateway. The integrated security system treats the GPRS connection as a higher cost though flexible option for data transfers. In an embodiment the GPRS connection is only used to route alarm events (e.g., for cost), however the gateway can be configured (e.g., through the iConnect server interface) to act as a primary channel and pass any or all events over GPRS. Consequently, the integrated security system does not interfere with the current plain old telephone service (POTS) security panel interface. Alarm events can still be routed through POTS; however the gateway also allows such events to be routed through a broadband or GPRS connection as well. The integrated security system provides a web application interface to the CSR tool suite as well as XML, web services interfaces for programmatic integration between the security system provider's existing call center products. The integrated security system includes, for example, APIs that allow the security system provider to integrate components of the integrated security system into a custom call center interface. The APIs include XML web service APIs for integration of existing security system provider call center applications with the integrated security system service. All functionality available in the CSR Web application is provided with these API sets. The Java and XML-based APIs of the integrated security system support provisioning, billing, system administration, CSR, central station, portal user interfaces, and content management functions, to name a few. The integrated security system can provide a customized interface to the security system provider's billing system, or alternatively can provide security system developers with APIs and support in the integration effort.


The integrated security system provides or includes business component interfaces for provisioning, administration, and customer care to name a few. Standard templates and examples are provided with a defined customer professional services engagement to help integrate OSS/BSS systems of a Service Provider with the integrated security system.


The integrated security system components support and allow for the integration of customer account creation and deletion with a security system. The iConnect APIs provides access to the provisioning and account management system in iConnect and provide full support for account creation, provisioning, and deletion. Depending on the requirements of the security system provider, the iConnect APIs can be used to completely customize any aspect of the integrated security system backend operational system.


The integrated security system includes a gateway that supports the following standards-based interfaces, to name a few: Ethernet IP communications via Ethernet ports on the gateway, and standard XML/TCP/IP protocols and ports are employed over secured SSL sessions; USB 2.0 via ports on the gateway; 802.11b/g/n IP communications; GSM/GPRS RF WAN communications; CDMA 1×RTT RF WAN communications (optional, can also support EVDO and 3G technologies).


The gateway supports the following proprietary interfaces, to name a few: interfaces including Dialog RF network (319.5 MHz) and RS485 Superbus 2000 wired interface; RF mesh network (908 MHz); and interfaces including RF network (345 MHz) and RS485/RS232bus wired interfaces.


Regarding security for the IP communications (e.g., authentication, authorization, encryption, anti-spoofing, etc), the integrated security system uses SSL to encrypt all IP traffic, using server and client-certificates for authentication, as well as authentication in the data sent over the SSL-encrypted channel. For encryption, integrated security system issues public/private key pairs at the time/place of manufacture, and certificates are not stored in any online storage in an embodiment.


The integrated security system does not need any special rules at the customer premise and/or at the security system provider central station because the integrated security system makes outgoing connections using TCP over the standard HTTP and HTTPS ports. Provided outbound TCP connections are allowed then no special requirements on the firewalls are necessary.



FIG. 22 is a block diagram of the integrated security system 100, under an embodiment. The integrated security system 100 of an embodiment includes the gateway 102 and the security servers 104 coupled to the conventional home security system 110. At a customer's home or business, the gateway 102 connects and manages the diverse variety of home security and self-monitoring devices. The gateway 102 communicates with the iConnect Servers 104 located in the service provider's data center 106 (or hosted in integrated security system data center), with the communication taking place via a communication network 108 or other network (e.g., cellular network, internet, etc.). These servers 104 manage the system integrations necessary to deliver the integrated system service described herein. The combination of the gateway 102 and the iConnect servers 104 enable a wide variety of remote client devices 120 (e.g., PCs, mobile phones and PDAs) allowing users to remotely stay in touch with their home, business and family. In addition, the technology allows home security and self-monitoring information, as well as relevant third party content such as traffic and weather, to be presented in intuitive ways within the home, such as on advanced touchscreen keypads.


The integrated security system service (also referred to as iControl service) can be managed by a service provider via browser-based Maintenance and Service Management applications that are provided with the iConnect Servers. Or, if desired, the service can be more tightly integrated with existing OSS/BSS and service delivery systems via the iConnect web services-based XML APIs.


The integrated security system service can also coordinate the sending of alarms to the home security Central Monitoring Station (CMS) 199. Alarms are passed to the CMS 199 using standard protocols such as Contact ID or SIA and can be generated from the home security panel location as well as by iConnect server 104 conditions (such as lack of communications with the integrated security system). In addition, the link between the security servers 104 and CMS 199 provides tighter integration between home security and self-monitoring devices and the gateway 102. Such integration enables advanced security capabilities such as the ability for CMS personnel to view photos taken at the time a burglary alarm was triggered. For maximum security, the gateway 102 and iConnect servers 104 support the use of a mobile network (both GPRS and CDMA options are available) as a backup to the primary broadband connection.


The integrated security system service is delivered by hosted servers running software components that communicate with a variety of client types while interacting with other systems. FIG. 23 is a block diagram of components of the integrated security system 100, under an embodiment. Following is a more detailed description of the components.


The iConnect servers 104 support a diverse collection of clients 120 ranging from mobile devices, to PCs, to in-home security devices, to a service provider's internal systems. Most clients 120 are used by end-users, but there are also a number of clients 120 that are used to operate the service.


Clients 120 used by end-users of the integrated security system 100 include, but are not limited to, the following:

    • Clients based on gateway client applications 202 (e.g., a processor-based device running the gateway technology that manages home security and automation devices).
    • A web browser 204 accessing a Web Portal application, performing end-user configuration and customization of the integrated security system service as well as monitoring of in-home device status, viewing photos and video, etc. Device and user management can also be performed by this portal application.
    • A mobile device 206 (e.g., PDA, mobile phone, etc.) accessing the integrated security system Mobile Portal. This type of client 206 is used by end-users to view system status and perform operations on devices (e.g., turning on a lamp, arming a security panel, etc.) rather than for system configuration tasks such as adding a new device or user.
    • PC or browser-based “widget” containers 208 that present integrated security system service content, as well as other third-party content, in simple, targeted ways (e.g. a widget that resides on a PC desktop and shows live video from a single in-home camera). “Widget” as used herein means applications or programs in the system.
    • Touchscreen home security keypads 208 and advanced in-home devices that present a variety of content widgets via an intuitive touchscreen user interface.
    • Notification recipients 210 (e.g., cell phones that receive SMS-based notifications when certain events occur (or don't occur), email clients that receive an email message with similar information, etc.).
    • Custom-built clients (not shown) that access the iConnect web services XML API to interact with users' home security and self-monitoring information in new and unique ways. Such clients could include new types of mobile devices, or complex applications where integrated security system content is integrated into a broader set of application features.


In addition to the end-user clients, the iConnect servers 104 support PC browser-based Service Management clients that manage the ongoing operation of the overall service. These clients run applications that handle tasks such as provisioning, service monitoring, customer support and reporting.


There are numerous types of server components of the iConnect servers 104 of an embodiment including, but not limited to, the following: Business Components which manage information about all of the home security and self-monitoring devices; End-User Application Components which display that information for users and access the Business Components via published XML APIs; and Service Management Application Components which enable operators to administer the service (these components also access the Business Components via the XML APIs, and also via published SNMP MIBs).


The server components provide access to, and management of, the objects associated with an integrated security system installation. The top-level object is the “network.” It is a location where a gateway 102 is located, and is also commonly referred to as a site or premises; the premises can include any type of structure (e.g., home, office, warehouse, etc.) at which a gateway 102 is located. Users can only access the networks to which they have been granted permission. Within a network, every object monitored by the gateway 102 is called a device. Devices include the sensors, cameras, home security panels and automation devices, as well as the controller or processor-based device running the gateway applications.


Various types of interactions are possible between the objects in a system. Automations define actions that occur as a result of a change in state of a device. For example, take a picture with the front entry camera when the front door sensor changes to “open”. Notifications are messages sent to users to indicate that something has occurred, such as the front door going to “open” state, or has not occurred (referred to as an iWatch notification). Schedules define changes in device states that are to take place at predefined days and times. For example, set the security panel to “Armed” mode every weeknight at 11:00 pm.


The iConnect Business Components are responsible for orchestrating all of the low-level service management activities for the integrated security system service. They define all of the users and devices associated with a network (site), analyze how the devices interact, and trigger associated actions (such as sending notifications to users). All changes in device states are monitored and logged. The Business Components also manage all interactions with external systems as required, including sending alarms and other related self-monitoring data to the home security Central Monitoring System (CMS) 199. The Business Components are implemented as portable Java J2EE Servlets, but are not so limited.


The following iConnect Business Components manage the main elements of the integrated security system service, but the embodiment is not so limited:

    • A Registry Manager 220 defines and manages users and networks. This component is responsible for the creation, modification and termination of users and networks. It is also where a user's access to networks is defined.
    • A Network Manager 222 defines and manages security and self-monitoring devices that are deployed on a network (site). This component handles the creation, modification, deletion and configuration of the devices, as well as the creation of automations, schedules and notification rules associated with those devices.
    • A Data Manager 224 manages access to current and logged state data for an existing network and its devices. This component specifically does not provide any access to network management capabilities, such as adding new devices to a network, which are handled exclusively by the Network Manager 222.
    • To achieve optimal performance for all types of queries, data for current device states is stored separately from historical state data (a.k.a. “logs”) in the database. A Log Data Manager 226 performs ongoing transfers of current device state data to the historical data log tables.


Additional iConnect Business Components handle direct communications with certain clients and other systems, for example:

    • An iHub Manager 228 directly manages all communications with gateway clients, including receiving information about device state changes, changing the configuration of devices, and pushing new versions of the gateway client to the hardware it is running on.
    • A Notification Manager 230 is responsible for sending all notifications to clients via SMS (mobile phone messages), email (via a relay server like an SMTP email server), etc.
    • An Alarm and CMS Manager 232 sends critical server-generated alarm events to the home security Central Monitoring Station (CMS) and manages all other communications of integrated security system service data to and from the CMS.
    • The Element Management System (EMS) 234 is an iControl Business Component that manages all activities associated with service installation, scaling and monitoring, and filters and packages service operations data for use by service management applications. The SNMP MIBs published by the EMS can also be incorporated into any third party monitoring system if desired.


The iConnect Business Components store information about the objects that they manage in the iControl Service Database 240 and in the iControl Content Store 242. The iControl Content Store is used to store media objects like video, photos and widget content, while the Service Database stores information about users, networks, and devices. Database interaction is performed via a JDBC interface. For security purposes, the Business Components manage all data storage and retrieval.


The iControl Business Components provide web services-based APIs that application components use to access the Business Components' capabilities. Functions of application components include presenting integrated security system service data to end-users, performing administrative duties, and integrating with external systems and back-office applications.


The primary published APIs for the iConnect Business Components include, but are not limited to, the following:

    • A Registry Manager API 252 provides access to the Registry Manager Business Component's functionality, allowing management of networks and users.
    • A Network Manager API 254 provides access to the Network Manager Business Component's functionality, allowing management of devices on a network.
    • A Data Manager API 256 provides access to the Data Manager Business Component's functionality, such as setting and retrieving (current and historical) data about device states.
    • A Provisioning API 258 provides a simple way to create new networks and configure initial default properties.


Each API of an embodiment includes two modes of access: Java API or XML API. The XML APIs are published as web services so that they can be easily accessed by applications or servers over a network. The Java APIs are a programmer-friendly wrapper for the XML APIs. Application components and integrations written in Java should generally use the Java APIs rather than the XML APIs directly.


The iConnect Business Components also have an XML-based interface 260 for quickly adding support for new devices to the integrated security system. This interface 260, referred to as DeviceConnect 260, is a flexible, standards-based mechanism for defining the properties of new devices and how they can be managed. Although the format is flexible enough to allow the addition of any type of future device, pre-defined XML profiles are currently available for adding common types of devices such as sensors (SensorConnect), home security panels (PanelConnect) and IP cameras (CameraConnect).


The iConnect End-User Application Components deliver the user interfaces that run on the different types of clients supported by the integrated security system service. The components are written in portable Java J2EE technology (e.g., as Java Servlets, as JavaServer Pages (JSPs), etc.) and they all interact with the iControl Business Components via the published APIs.


The following End-User Application Components generate CSS-based HTML/JavaScript that is displayed on the target client. These applications can be dynamically branded with partner-specific logos and URL links (such as Customer Support, etc.). The End-User Application Components of an embodiment include, but are not limited to, the following:

    • An iControl Activation Application 270 that delivers the first application that a user sees when they set up the integrated security system service. This wizard-based web browser application securely associates a new user with a purchased gateway and the other devices included with it as a kit (if any). It primarily uses functionality published by the Provisioning API.
    • An iControl Web Portal Application 272 runs on PC browsers and delivers the web-based interface to the integrated security system service. This application allows users to manage their networks (e.g. add devices and create automations) as well as to view/change device states, and manage pictures and videos. Because of the wide scope of capabilities of this application, it uses three different Business Component APIs that include the Registry Manager API, Network Manager API, and Data Manager API, but the embodiment is not so limited.
    • An iControl Mobile Portal 274 is a small-footprint web-based interface that runs on mobile phones and PDAs. This interface is optimized for remote viewing of device states and pictures/videos rather than network management. As such, its interaction with the Business Components is primarily via the Data Manager API.
    • Custom portals and targeted client applications can be provided that leverage the same Business Component APIs used by the above applications.
    • A Content Manager Application Component 276 delivers content to a variety of clients. It sends multimedia-rich user interface components to widget container clients (both PC and browser-based), as well as to advanced touchscreen keypad clients. In addition to providing content directly to end-user devices, the Content Manager 276 provides widget-based user interface components to satisfy requests from other Application Components such as the iControl Web 272 and Mobile 274 portals.


A number of Application Components are responsible for overall management of the service. These pre-defined applications, referred to as Service Management Application Components, are configured to offer off-the-shelf solutions for production management of the integrated security system service including provisioning, overall service monitoring, customer support, and reporting, for example. The Service Management Application Components of an embodiment include, but are not limited to, the following:

    • A Service Management Application 280 allows service administrators to perform activities associated with service installation, scaling and monitoring/alerting. This application interacts heavily with the Element Management System (EMS) Business Component to execute its functionality, and also retrieves its monitoring data from that component via protocols such as SNMP MIBs.
    • A Kitting Application 282 is used by employees performing service provisioning tasks. This application allows home security and self-monitoring devices to be associated with gateways during the warehouse kitting process.
    • A CSR Application and Report Generator 284 is used by personnel supporting the integrated security system service, such as CSRs resolving end-user issues and employees enquiring about overall service usage. Pushes of new gateway firmware to deployed gateways is also managed by this application.


The iConnect servers 104 also support custom-built integrations with a service provider's existing OSS/BSS, CSR and service delivery systems 290. Such systems can access the iConnect web services XML API to transfer data to and from the iConnect servers 104. These types of integrations can compliment or replace the PC browser-based Service Management applications, depending on service provider needs.


As described above, the integrated security system of an embodiment includes a gateway, or iHub. The gateway of an embodiment includes a device that is deployed in the home or business and couples or connects the various third-party cameras, home security panels, sensors and devices to the iConnect server over a WAN connection as described in detail herein. The gateway couples to the home network and communicates directly with the home security panel in both wired and wireless sensor installations. The gateway is configured to be low-cost, reliable and thin so that it complements the integrated security system network-based architecture.


The gateway supports various wireless protocols and can interconnect with a wide range of home security control panels. Service providers and users can then extend the system's capabilities by adding IP cameras, lighting modules and additional security devices. The gateway is configurable to be integrated into many consumer appliances, including set-top boxes, routers and security panels. The small and efficient footprint of the gateway enables this portability and versatility, thereby simplifying and reducing the overall cost of the deployment.



FIG. 24 is a block diagram of the gateway 102 including gateway software or applications, under an embodiment. The gateway software architecture is relatively thin and efficient, thereby simplifying its integration into other consumer appliances such as set-top boxes, routers, touch screens and security panels. The software architecture also provides a high degree of security against unauthorized access. This section describes the various key components of the gateway software architecture.


The gateway application layer 302 is the main program that orchestrates the operations performed by the gateway. The Security Engine 304 provides robust protection against intentional and unintentional intrusion into the integrated security system network from the outside world (both from inside the premises as well as from the WAN). The Security Engine 304 of an embodiment comprises one or more sub-modules or components that perform functions including, but not limited to, the following:

    • Encryption including 128-bit SSL encryption for gateway and iConnect server communication to protect user data privacy and provide secure communication.
    • Bi-directional authentication between the gateway and iConnect server in order to prevent unauthorized spoofing and attacks. Data sent from the iConnect server to the gateway application (or vice versa) is digitally signed as an additional layer of security. Digital signing provides both authentication and validation that the data has not been altered in transit.
    • Camera SSL encapsulation because picture and video traffic offered by off-the-shelf networked IP cameras is not secure when traveling over the Internet. The gateway provides for 128-bit SSL encapsulation of the user picture and video data sent over the internet for complete user security and privacy.
    • 802.11b/g/n with WPA-2 security to ensure that wireless camera communications always takes place using the strongest available protection.
    • A gateway-enabled device is assigned a unique activation key for activation with an iConnect server. This ensures that only valid gateway-enabled devices can be activated for use with the specific instance of iConnect server in use. Attempts to activate gateway-enabled devices by brute force are detected by the Security Engine. Partners deploying gateway-enabled devices have the knowledge that only a gateway with the correct serial number and activation key can be activated for use with an iConnect server. Stolen devices, devices attempting to masquerade as gateway-enabled devices, and malicious outsiders (or insiders as knowledgeable but nefarious customers) cannot effect other customers' gateway-enabled devices.


As standards evolve, and new encryption and authentication methods are proven to be useful, and older mechanisms proven to be breakable, the security manager can be upgraded “over the air” to provide new and better security for communications between the iConnect server and the gateway application, and locally at the premises to remove any risk of eavesdropping on camera communications.


A Remote Firmware Download module 306 allows for seamless and secure updates to the gateway firmware through the iControl Maintenance Application on the server 104, providing a transparent, hassle-free mechanism for the service provider to deploy new features and bug fixes to the installed user base. The firmware download mechanism is tolerant of connection loss, power interruption and user interventions (both intentional and unintentional). Such robustness reduces down time and customer support issues. Gateway firmware can be remotely download either for one gateway at a time, a group of gateways, or in batches.


The Automations engine 308 manages the user-defined rules of interaction between the different devices (e.g. when door opens turn on the light). Though the automation rules are programmed and reside at the portal/server level, they are cached at the gateway level in order to provide short latency between device triggers and actions.


DeviceConnect 310 includes definitions of all supported devices (e.g., cameras, security panels, sensors, etc.) using a standardized plug-in architecture. The DeviceConnect module 310 offers an interface that can be used to quickly add support for any new device as well as enabling interoperability between devices that use different technologies/protocols. For common device types, pre-defined sub-modules have been defined, making supporting new devices of these types even easier. SensorConnect 312 is provided for adding new sensors, CameraConnect 316 for adding IP cameras, and PanelConnect 314 for adding home security panels.


The Schedules engine 318 is responsible for executing the user defined schedules (e.g., take a picture every five minutes; every day at 8 am set temperature to 65 degrees Fahrenheit, etc.). Though the schedules are programmed and reside at the iConnect server level they are sent to the scheduler within the gateway application. The Schedules Engine 318 then interfaces with SensorConnect 312 to ensure that scheduled events occur at precisely the desired time.


The Device Management module 320 is in charge of all discovery, installation and configuration of both wired and wireless IP devices (e.g., cameras, etc.) coupled or connected to the system. Networked IP devices, such as those used in the integrated security system, require user configuration of many IP and security parameters—to simplify the user experience and reduce the customer support burden, the device management module of an embodiment handles the details of this configuration. The device management module also manages the video routing module described below.


The video routing engine 322 is responsible for delivering seamless video streams to the user with zero-configuration. Through a multi-step, staged approach the video routing engine uses a combination of UPnP port-forwarding, relay server routing and STUN/TURN peer-to-peer routing.



FIG. 25 is a block diagram of components of the gateway 102, under an embodiment. Depending on the specific set of functionality desired by the service provider deploying the integrated security system service, the gateway 102 can use any of a number of processors 402, due to the small footprint of the gateway application firmware. In an embodiment, the gateway could include the Broadcom BCM5354 as the processor for example. In addition, the gateway 102 includes memory (e.g., FLASH 404, RAM 406, etc.) and any number of input/output (I/O) ports 408.


Referring to the WAN portion 410 of the gateway 102, the gateway 102 of an embodiment can communicate with the iConnect server using a number of communication types and/or protocols, for example Broadband 412, GPRS 414 and/or Public Switched Telephone Network (PTSN) 416 to name a few. In general, broadband communication 412 is the primary means of connection between the gateway 102 and the iConnect server 104 and the GPRS/CDMA 414 and/or PSTN 416 interfaces acts as backup for fault tolerance in case the user's broadband connection fails for whatever reason, but the embodiment is not so limited.


Referring to the LAN portion 420 of the gateway 102, various protocols and physical transceivers can be used to communicate to off-the-shelf sensors and cameras. The gateway 102 is protocol-agnostic and technology-agnostic and as such can easily support almost any device networking protocol. The gateway 102 can, for example, support GE and Honeywell security RF protocols 422, Z-Wave 424, serial (RS232 and RS485) 426 for direct connection to security panels as well as WiFi 428 (802.11b/g) for communication to WiFi cameras.


The integrated security system includes couplings or connections among a variety of IP devices or components, and the device management module is in charge of the discovery, installation and configuration of the IP devices coupled or connected to the system, as described above. The integrated security system of an embodiment uses a “sandbox” network to discover and manage all IP devices coupled or connected as components of the system. The IP devices of an embodiment include wired devices, wireless devices, cameras, interactive touchscreens, and security panels to name a few. These devices can be wired via ethernet cable or Wifi devices, all of which are secured within the sandbox network, as described below. The “sandbox” network is described in detail below.



FIG. 26 is a block diagram 500 of network or premise device integration with a premise network 250, under an embodiment. In an embodiment, network devices 255-257 are coupled to the gateway 102 using a secure network coupling or connection such as SSL over an encrypted 802.11 link (utilizing for example WPA-2 security for the wireless encryption). The network coupling or connection between the gateway 102 and the network devices 255-257 is a private coupling or connection in that it is segregated from any other network couplings or connections. The gateway 102 is coupled to the premise router/firewall 252 via a coupling with a premise LAN 250. The premise router/firewall 252 is coupled to a broadband modem 251, and the broadband modem 251 is coupled to a WAN 200 or other network outside the premise. The gateway 102 thus enables or forms a separate wireless network, or sub-network, that includes some number of devices and is coupled or connected to the LAN 250 of the host premises. The gateway sub-network can include, but is not limited to, any number of other devices like WiFi IP cameras, security panels (e.g., IP-enabled), and security touchscreens, to name a few. The gateway 102 manages or controls the sub-network separately from the LAN 250 and transfers data and information between components of the sub-network and the LAN 250/WAN 200, but is not so limited. Additionally, other network devices 254 can be coupled to the LAN 250 without being coupled to the gateway 102.



FIG. 27 is a block diagram 600 of network or premise device integration with a premise network 250, under an alternative embodiment. The network or premise devices 255-257 are coupled to the gateway 102. The network coupling or connection between the gateway 102 and the network devices 255-257 is a private coupling or connection in that it is segregated from any other network couplings or connections. The gateway 102 is coupled or connected between the premise router/firewall 252 and the broadband modem 251. The broadband modem 251 is coupled to a WAN 200 or other network outside the premise, while the premise router/firewall 252 is coupled to a premise LAN 250. As a result of its location between the broadband modem 251 and the premise router/firewall 252, the gateway 102 can be configured or function as the premise router routing specified data between the outside network (e.g., WAN 200) and the premise router/firewall 252 of the LAN 250. As described above, the gateway 102 in this configuration enables or forms a separate wireless network, or sub-network, that includes the network or premise devices 255-257 and is coupled or connected between the LAN 250 of the host premises and the WAN 200. The gateway sub-network can include, but is not limited to, any number of network or premise devices 255-257 like WiFi IP cameras, security panels (e.g., IP-enabled), and security touchscreens, to name a few. The gateway 102 manages or controls the sub-network separately from the LAN 250 and transfers data and information between components of the sub-network and the LAN 250/WAN 200, but is not so limited. Additionally, other network devices 254 can be coupled to the LAN 250 without being coupled to the gateway 102.


The examples described above with reference to FIGS. 5 and 6 are presented only as examples of IP device integration. The integrated security system is not limited to the type, number and/or combination of IP devices shown and described in these examples, and any type, number and/or combination of IP devices is contemplated within the scope of this disclosure as capable of being integrated with the premise network.


The integrated security system of an embodiment includes a touchscreen (also referred to as the iControl touchscreen or integrated security system touchscreen), as described above, which provides core security keypad functionality, content management and presentation, and embedded systems design. The networked security touchscreen system of an embodiment enables a consumer or security provider to easily and automatically install, configure and manage the security system and touchscreen located at a customer premise. Using this system the customer may access and control the local security system, local IP devices such as cameras, local sensors and control devices (such as lighting controls or pipe freeze sensors), as well as the local security system panel and associated security sensors (such as door/window, motion, and smoke detectors). The customer premise may be a home, business, and/or other location equipped with a wired or wireless broadband IP connection.


The system of an embodiment includes a touchscreen with a configurable software user interface and/or a gateway device (e.g., iHub) that couples or connects to a premise security panel through a wired or wireless connection, and a remote server that provides access to content and information from the premises devices to a user when they are remote from the home. The touchscreen supports broadband and/or WAN wireless connectivity. In this embodiment, the touchscreen incorporates an IP broadband connection (e.g., Wifi radio, Ethernet port, etc.), and/or a cellular radio (e.g., GPRS/GSM, CDMA, WiMax, etc.). The touchscreen described herein can be used as one or more of a security system interface panel and a network user interface (UI) that provides an interface to interact with a network (e.g., LAN, WAN, internet, etc.).


The touchscreen of an embodiment provides an integrated touchscreen and security panel as an all-in-one device. Once integrated using the touchscreen, the touchscreen and a security panel of a premise security system become physically co-located in one device, and the functionality of both may even be co-resident on the same CPU and memory (though this is not required).


The touchscreen of an embodiment also provides an integrated IP video and touchscreen UI. As such, the touchscreen supports one or more standard video CODECs/players (e.g., H.264, Flash Video, MOV, MPEG4, M-JPEG, etc.). The touchscreen UI then provides a mechanism (such as a camera or video widget) to play video. In an embodiment the video is streamed live from an IP video camera. In other embodiments the video comprises video clips or photos sent from an IP camera or from a remote location.


The touchscreen of an embodiment provides a configurable user interface system that includes a configuration supporting use as a security touchscreen. In this embodiment, the touchscreen utilizes a modular user interface that allows components to be modified easily by a service provider, an installer, or even the end user. Examples of such a modular approach include using Flash widgets, HTML-based widgets, or other downloadable code modules such that the user interface of the touchscreen can be updated and modified while the application is running. In an embodiment the touchscreen user interface modules can be downloaded over the internet. For example, a new security configuration widget can be downloaded from a standard web server, and the touchscreen then loads such configuration app into memory, and inserts it in place of the old security configuration widget. The touchscreen of an embodiment is configured to provide a self-install user interface.


Embodiments of the networked security touchscreen system described herein include a touchscreen device with a user interface that includes a security toolbar providing one or more functions including arm, disarm, panic, medic, and alert. The touchscreen therefore includes at least one screen having a separate region of the screen dedicated to a security toolbar. The security toolbar of an embodiment is present in the dedicated region at all times that the screen is active.


The touchscreen of an embodiment includes a home screen having a separate region of the screen allocated to managing home-based functions. The home-based functions of an embodiment include managing, viewing, and/or controlling IP video cameras. In this embodiment, regions of the home screen are allocated in the form of widget icons; these widget icons (e.g. for cameras, thermostats, lighting, etc) provide functionality for managing home systems. So, for example, a displayed camera icon, when selected, launches a Camera Widget, and the Camera widget in turn provides access to video from one or more cameras, as well as providing the user with relevant camera controls (take a picture, focus the camera, etc.)


The touchscreen of an embodiment includes a home screen having a separate region of the screen allocated to managing, viewing, and/or controlling internet-based content or applications. For example, the Widget Manager UI presents a region of the home screen (up to and including the entire home screen) where internet widgets icons such as weather, sports, etc. may be accessed). Each of these icons may be selected to launch their respective content services.


The touchscreen of an embodiment is integrated into a premise network using the gateway, as described above. The gateway as described herein functions to enable a separate wireless network, or sub-network, that is coupled, connected, or integrated with another network (e.g., WAN, LAN of the host premises, etc.). The sub-network enabled by the gateway optimizes the installation process for IP devices, like the touchscreen, that couple or connect to the sub-network by segregating these IP devices from other such devices on the network. This segregation of the IP devices of the sub-network further enables separate security and privacy policies to be implemented for these IP devices so that, where the IP devices are dedicated to specific functions (e.g., security), the security and privacy policies can be tailored specifically for the specific functions. Furthermore, the gateway and the sub-network it forms enables the segregation of data traffic, resulting in faster and more efficient data flow between components of the host network, components of the sub-network, and between components of the sub-network and components of the network.


The touchscreen of an embodiment includes a core functional embedded system that includes an embedded operating system, required hardware drivers, and an open system interface to name a few. The core functional embedded system can be provided by or as a component of a conventional security system (e.g., security system available from GE Security). These core functional units are used with components of the integrated security system as described herein. Note that portions of the touchscreen description below may include reference to a host premise security system (e.g., GE security system), but these references are included only as an example and do not limit the touchscreen to integration with any particular security system.


As an example, regarding the core functional embedded system, a reduced memory footprint version of embedded Linux forms the core operating system in an embodiment, and provides basic TCP/IP stack and memory management functions, along with a basic set of low-level graphics primitives. A set of device drivers is also provided or included that offer low-level hardware and network interfaces. In addition to the standard drivers, an interface to the RS 485 bus is included that couples or connects to the security system panel (e.g., GE Concord panel). The interface may, for example, implement the Superbus 2000 protocol, which can then be utilized by the more comprehensive transaction-level security functions implemented in PanelConnect technology (e.g SetAlarmLevel (int level, int partition, char *accessCode)). Power control drivers are also provided.



FIG. 28 is a block diagram of a touchscreen 700 of the integrated security system, under an embodiment. The touchscreen 700 generally includes an application/presentation layer 702 with a resident application 704, and a core engine 706. The touchscreen 700 also includes one or more of the following, but is not so limited: applications of premium services 710, widgets 712, a caching proxy 714, network security 716, network interface 718, security object 720, applications supporting devices 722, PanelConnect API 724, a gateway interface 726, and one or more ports 728.


More specifically, the touchscreen, when configured as a home security device, includes but is not limited to the following application or software modules: RS 485 and/or RS-232 bus security protocols to conventional home security system panel (e.g., GE Concord panel); functional home security classes and interfaces (e.g. Panel ARM state, Sensor status, etc.); Application/Presentation layer or engine; Resident Application; Consumer Home Security Application; installer home security application; core engine; and System bootloader/Software Updater. The core Application engine and system bootloader can also be used to support other advanced content and applications. This provides a seamless interaction between the premise security application and other optional services such as weather widgets or IP cameras.


An alternative configuration of the touchscreen includes a first Application engine for premise security and a second Application engine for all other applications. The integrated security system application engine supports content standards such as HTML, XML, Flash, etc. and enables a rich consumer experience for all ‘widgets’, whether security-based or not. The touchscreen thus provides service providers the ability to use web content creation and management tools to build and download any ‘widgets’ regardless of their functionality.


As discussed above, although the Security Applications have specific low-level functional requirements in order to interface with the premise security system, these applications make use of the same fundamental application facilities as any other ‘widget’, application facilities that include graphical layout, interactivity, application handoff, screen management, and network interfaces, to name a few.


Content management in the touchscreen provides the ability to leverage conventional web development tools, performance optimized for an embedded system, service provider control of accessible content, content reliability in a consumer device, and consistency between ‘widgets’ and seamless widget operational environment. In an embodiment of the integrated security system, widgets are created by web developers and hosted on the integrated security system Content Manager (and stored in the Content Store database). In this embodiment the server component caches the widgets and offers them to consumers through the web-based integrated security system provisioning system. The servers interact with the advanced touchscreen using HTTPS interfaces controlled by the core engine and dynamically download widgets and updates as needed to be cached on the touchscreen. In other embodiments widgets can be accessed directly over a network such as the Internet without needing to go through the iControl Content Manager


Referring to FIG. 28, the touchscreen system is built on a tiered architecture, with defined interfaces between the Application/Presentation Layer (the Application Engine) on the top, the Core Engine in the middle, and the security panel and gateway APIs at the lower level. The architecture is configured to provide maximum flexibility and ease of maintenance.


The application engine of the touchscreen provides the presentation and interactivity capabilities for all applications (widgets) that run on the touchscreen, including both core security function widgets and third party content widgets. FIG. 29 is an example screenshot 800 of a networked security touchscreen, under an embodiment. This example screenshot 800 includes three interfaces or user interface (UI) components 802-806, but is not so limited. A first UI 802 of the touchscreen includes icons by which a user controls or accesses functions and/or components of the security system (e.g., “Main”, “Panic”, “Medic”, “Fire”, state of the premise alarm system (e.g., disarmed, armed, etc.), etc.); the first UI 802, which is also referred to herein as a security interface, is always presented on the touchscreen. A second UI 804 of the touchscreen includes icons by which a user selects or interacts with services and other network content (e.g., clock, calendar, weather, stocks, news, sports, photos, maps, music, etc.) that is accessible via the touchscreen. The second UI 804 is also referred to herein as a network interface or content interface. A third UI 806 of the touchscreen includes icons by which a user selects or interacts with additional services or componets (e.g., intercom control, security, cameras coupled to the system in particular regions (e.g., front door, baby, etc.) available via the touchscreen.


A component of the application engine is the Presentation Engine, which includes a set of libraries that implement the standards-based widget content (e.g., XML, HTML, JavaScript, Flash) layout and interactivity. This engine provides the widget with interfaces to dynamically load both graphics and application logic from third parties, support high level data description language as well as standard graphic formats. The set of web content-based functionality available to a widget developer is extended by specific touchscreen functions implemented as local web services by the Core Engine.


The resident application of the touchscreen is the master service that controls the interaction of all widgets in the system, and enforces the business and security rules required by the service provider. For example, the resident application determines the priority of widgets, thereby enabling a home security widget to override resource requests from a less critical widget (e.g. a weather widget). The resident application also monitors widget behavior, and responds to client or server requests for cache updates.


The core engine of the touchscreen manages interaction with other components of the integrated security system, and provides an interface through which the resident application and authorized widgets can get information about the home security system, set alarms, install sensors, etc. At the lower level, the Core Engine's main interactions are through the PanelConnect API, which handles all communication with the security panel, and the gateway Interface, which handles communication with the gateway. In an embodiment, both the iHub Interface and PanelConnect API are resident and operating on the touchscreen. In another embodiment, the PanelConnect API runs on the gateway or other device that provides security system interaction and is accessed by the touchscreen through a web services interface.


The Core Engine also handles application and service level persistent and cached memory functions, as well as the dynamic provisioning of content and widgets, including but not limited to: flash memory management, local widget and content caching, widget version management (download, cache flush new/old content versions), as well as the caching and synchronization of user preferences. As a portion of these services the Core engine incorporates the bootloader functionality that is responsible for maintaining a consistent software image on the touchscreen, and acts as the client agent for all software updates. The bootloader is configured to ensure full update redundancy so that unsuccessful downloads cannot corrupt the integrated security system.


Video management is provided as a set of web services by the Core Engine. Video management includes the retrieval and playback of local video feeds as well as remote control and management of cameras (all through iControl CameraConnect technology).


Both the high level application layer and the mid-level core engine of the touchscreen can make calls to the network. Any call to the network made by the application layer is automatically handed off to a local caching proxy, which determines whether the request should be handled locally. Many of the requests from the application layer are web services API requests, although such requests could be satisfied by the iControl servers, they are handled directly by the touchscreen and the gateway. Requests that get through the caching proxy are checked against a white list of acceptable sites, and, if they match, are sent off through the network interface to the gateway. Included in the Network Subsystem is a set of network services including HTTP, HTTPS, and server-level authentication functions to manage the secure client-server interface. Storage and management of certificates is incorporated as a part of the network services layer.


Server components of the integrated security system servers support interactive content services on the touchscreen. These server components include, but are not limited to the content manager, registry manager, network manager, and global registry, each of which is described herein.


The Content Manager oversees aspects of handling widget data and raw content on the touchscreen. Once created and validated by the service provider, widgets are ‘ingested’ to the Content Manager, and then become available as downloadable services through the integrated security system Content Management APIs. The Content manager maintains versions and timestamp information, and connects to the raw data contained in the backend Content Store database. When a widget is updated (or new content becomes available) all clients registering interest in a widget are systematically updated as needed (a process that can be configured at an account, locale, or system-wide level).


The Registry Manager handles user data, and provisioning accounts, including information about widgets the user has decided to install, and the user preferences for these widgets.


The Network Manager handles getting and setting state for all devices on the integrated security system network (e.g., sensors, panels, cameras, etc.). The Network manager synchronizes with the gateway, the advanced touchscreen, and the subscriber database.


The Global Registry is a primary starting point server for all client services, and is a logical referral service that abstracts specific server locations/addresses from clients (touchscreen, gateway 102, desktop widgets, etc.). This approach enables easy scaling/migration of server farms.


The touchscreen of an embodiment operates wirelessly with a premise security system. The touchscreen of an embodiment incorporates an RF transceiver component that either communicates directly with the sensors and/or security panel over the panel's proprietary RF frequency, or the touchscreen communicates wirelessly to the gateway over 802.11, Ethernet, or other IP-based communications channel, as described in detail herein. In the latter case the gateway implements the PanelConnect interface and communicates directly to the security panel and/or sensors over wireless or wired networks as described in detail above.


The touchscreen of an embodiment is configured to operate with multiple security systems through the use of an abstracted security system interface. In this embodiment, the PanelConnect API can be configured to support a plurality of proprietary security system interfaces, either simultaneously or individually as described herein. In one embodiment of this approach, the touchscreen incorporates multiple physical interfaces to security panels (e.g. GE Security RS-485, Honeywell RF, etc.) in addition to the PanelConnect API implemented to support multiple security interfaces. The change needed to support this in PanelConnect is a configuration parameter specifying the panel type connection that is being utilized.


So for example, the setARMState( ) function is called with an additional parameter (e.g., Armstate=setARMState(type=“ARM STAY|ARM AWAY|DISARM”, Parameters=“ExitDelay=30|Lights=OFF”, panelType=“GE Concord4 RS485”)). The ‘panelType’ parameter is used by the setARMState function (and in practice by all of the PanelConnect functions) to select an algorithm appropriate to the specific panel out of a plurality of alogorithms.


The touchscreen of an embodiment is self-installable. Consequently, the touchscreen provides a ‘wizard’ approach similar to that used in traditional computer installations (e.g. InstallShield). The wizard can be resident on the touchscreen, accessible through a web interface, or both. In one embodiment of a touchscreen self-installation process, the service provider can associate devices (sensors, touchscreens, security panels, lighting controls, etc.) remotely using a web-based administrator interface.


The touchscreen of an embodiment includes a battery backup system for a security touchscreen. The touchscreen incorporates a standard Li-ion or other battery and charging circuitry to allow continued operation in the event of a power outage. In an embodiment the battery is physically located and connected within the touchscreen enclosure. In another embodiment the battery is located as a part of the power transformer, or in between the power transformer and the touchscreen.


The example configurations of the integrated security system described above with reference to FIGS. 5 and 6 include a gateway that is a separate device, and the touchscreen couples to the gateway. However, in an alternative embodiment, the gateway device and its functionality can be incorporated into the touchscreen so that the device management module, which is now a component of or included in the touchscreen, is in charge of the discovery, installation and configuration of the IP devices coupled or connected to the system, as described above. The integrated security system with the integrated touchscreen/gateway uses the same “sandbox” network to discover and manage all IP devices coupled or connected as components of the system.


The touchscreen of this alternative embodiment integrates the components of the gateway with the components of the touchscreen as described herein. More specifically, the touchscreen of this alternative embodiment includes software or applications described above with reference to FIG. 3. In this alternative embodiment, the touchscreen includes the gateway application layer 302 as the main program that orchestrates the operations performed by the gateway. A Security Engine 304 of the touchscreen provides robust protection against intentional and unintentional intrusion into the integrated security system network from the outside world (both from inside the premises as well as from the WAN). The Security Engine 304 of an embodiment comprises one or more sub-modules or components that perform functions including, but not limited to, the following:

    • Encryption including 128-bit SSL encryption for gateway and iConnect server communication to protect user data privacy and provide secure communication.
    • Bi-directional authentication between the touchscreen and iConnect server in order to prevent unauthorized spoofing and attacks. Data sent from the iConnect server to the gateway application (or vice versa) is digitally signed as an additional layer of security. Digital signing provides both authentication and validation that the data has not been altered in transit.
    • Camera SSL encapsulation because picture and video traffic offered by off-the-shelf networked IP cameras is not secure when traveling over the Internet. The touchscreen provides for 128-bit SSL encapsulation of the user picture and video data sent over the internet for complete user security and privacy.
    • 802.11b/g/n with WPA-2 security to ensure that wireless camera communications always takes place using the strongest available protection.
    • A touchscreen-enabled device is assigned a unique activation key for activation with an iConnect server. This ensures that only valid gateway-enabled devices can be activated for use with the specific instance of iConnect server in use. Attempts to activate gateway-enabled devices by brute force are detected by the Security Engine. Partners deploying touchscreen-enabled devices have the knowledge that only a gateway with the correct serial number and activation key can be activated for use with an iConnect server. Stolen devices, devices attempting to masquerade as gateway-enabled devices, and malicious outsiders (or insiders as knowledgeable but nefarious customers) cannot effect other customers' gateway-enabled devices.


As standards evolve, and new encryption and authentication methods are proven to be useful, and older mechanisms proven to be breakable, the security manager can be upgraded “over the air” to provide new and better security for communications between the iConnect server and the gateway application, and locally at the premises to remove any risk of eavesdropping on camera communications.


A Remote Firmware Download module 306 of the touchscreen allows for seamless and secure updates to the gateway firmware through the iControl Maintenance Application on the server 104, providing a transparent, hassle-free mechanism for the service provider to deploy new features and bug fixes to the installed user base. The firmware download mechanism is tolerant of connection loss, power interruption and user interventions (both intentional and unintentional). Such robustness reduces down time and customer support issues. Touchscreen firmware can be remotely download either for one touchscreen at a time, a group of touchscreen, or in batches.


The Automations engine 308 of the touchscreen manages the user-defined rules of interaction between the different devices (e.g. when door opens turn on the light). Though the automation rules are programmed and reside at the portal/server level, they are cached at the gateway level in order to provide short latency between device triggers and actions.


DeviceConnect 310 of the touchscreen touchscreen includes definitions of all supported devices (e.g., cameras, security panels, sensors, etc.) using a standardized plug-in architecture. The DeviceConnect module 310 offers an interface that can be used to quickly add support for any new device as well as enabling interoperability between devices that use different technologies/protocols. For common device types, pre-defined sub-modules have been defined, making supporting new devices of these types even easier. SensorConnect 312 is provided for adding new sensors, CameraConnect 316 for adding IP cameras, and PanelConnect 314 for adding home security panels.


The Schedules engine 318 of the touchscreen is responsible for executing the user defined schedules (e.g., take a picture every five minutes; every day at 8 am set temperature to 65 degrees Fahrenheit, etc.). Though the schedules are programmed and reside at the iConnect server level they are sent to the scheduler within the gateway application of the touchscreen. The Schedules Engine 318 then interfaces with SensorConnect 312 to ensure that scheduled events occur at precisely the desired time.


The Device Management module 320 of the touchscreen is in charge of all discovery, installation and configuration of both wired and wireless IP devices (e.g., cameras, etc.) coupled or connected to the system. Networked IP devices, such as those used in the integrated security system, require user configuration of many IP and security parameters, and the device management module of an embodiment handles the details of this configuration. The device management module also manages the video routing module described below.


The video routing engine 322 of the touchscreen is responsible for delivering seamless video streams to the user with zero-configuration. Through a multi-step, staged approach the video routing engine uses a combination of UPnP port-forwarding, relay server routing and STUN/TURN peer-to-peer routing. The video routing engine is described in detail in the Related Applications.



FIG. 30 is a block diagram 900 of network or premise device integration with a premise network 250, under an embodiment. In an embodiment, network devices 255, 256, 957 are coupled to the touchscreen 902 using a secure network connection such as SSL over an encrypted 802.11 link (utilizing for example WPA-2 security for the wireless encryption), and the touchscreen 902 coupled to the premise router/firewall 252 via a coupling with a premise LAN 250. The premise router/firewall 252 is coupled to a broadband modem 251, and the broadband modem 251 is coupled to a WAN 200 or other network outside the premise. The touchscreen 902 thus enables or forms a separate wireless network, or sub-network, that includes some number of devices and is coupled or connected to the LAN 250 of the host premises. The touchscreen sub-network can include, but is not limited to, any number of other devices like WiFi IP cameras, security panels (e.g., IP-enabled), and IP devices, to name a few. The touchscreen 902 manages or controls the sub-network separately from the LAN 250 and transfers data and information between components of the sub-network and the LAN 250/WAN 200, but is not so limited. Additionally, other network devices 254 can be coupled to the LAN 250 without being coupled to the touchscreen 902.



FIG. 31 is a block diagram 1000 of network or premise device integration with a premise network 250, under an alternative embodiment. The network or premise devices 255, 256, 1057 are coupled to the touchscreen 1002, and the touchscreen 1002 is coupled or connected between the premise router/firewall 252 and the broadband modem 251. The broadband modem 251 is coupled to a WAN 200 or other network outside the premise, while the premise router/firewall 252 is coupled to a premise LAN 250. As a result of its location between the broadband modem 251 and the premise router/firewall 252, the touchscreen 1002 can be configured or function as the premise router routing specified data between the outside network (e.g., WAN 200) and the premise router/firewall 252 of the LAN 250. As described above, the touchscreen 1002 in this configuration enables or forms a separate wireless network, or sub-network, that includes the network or premise devices 255, 156, 1057 and is coupled or connected between the LAN 250 of the host premises and the WAN 200. The touchscreen sub-network can include, but is not limited to, any number of network or premise devices 255, 256, 1057 like WiFi IP cameras, security panels (e.g., IP-enabled), and security touchscreens, to name a few. The touchscreen 1002 manages or controls the sub-network separately from the LAN 250 and transfers data and information between components of the sub-network and the LAN 250/WAN 200, but is not so limited. Additionally, other network devices 254 can be coupled to the LAN 250 without being coupled to the touchscreen 1002.


The gateway of an embodiment, whether a stand-along component or integrated with a touchscreen, enables couplings or connections and thus the flow or integration of information between various components of the host premises and various types and/or combinations of IP devices, where the components of the host premises include a network (e.g., LAN) and/or a security system or subsystem to name a few. Consequently, the gateway controls the association between and the flow of information or data between the components of the host premises. For example, the gateway of an embodiment forms a sub-network coupled to another network (e.g., WAN, LAN, etc.), with the sub-network including IP devices. The gateway further enables the association of the IP devices of the sub-network with appropriate systems on the premises (e.g., security system, etc.). Therefore, for example, the gateway can form a sub-network of IP devices configured for security functions, and associate the sub-network only with the premises security system, thereby segregating the IP devices dedicated to security from other IP devices that may be coupled to another network on the premises.


The gateway of an embodiment, as described herein, enables couplings or connections and thus the flow of information between various components of the host premises and various types and/or combinations of IP devices, where the components of the host premises include a network, a security system or subsystem to name a few. Consequently, the gateway controls the association between and the flow of information or data between the components of the host premises. For example, the gateway of an embodiment forms a sub-network coupled to another network (e.g., WAN, LAN, etc.), with the sub-network including IP devices. The gateway further enables the association of the IP devices of the sub-network with appropriate systems on the premises (e.g., security system, etc.). Therefore, for example, the gateway can form a sub-network of IP devices configured for security functions, and associate the sub-network only with the premises security system, thereby segregating the IP devices dedicated to security from other IP devices that may be coupled to another network on the premises.


The system of an embodiment including the Cloud Hub and Virtual Gateway as described in detail herein includes one or more components of the “integrated cloud system (ICS)” described in detail herein. The system of an embodiment described herein incorporates one or more components of the “ICS”. The system of an embodiment described herein is coupled to one or more components of the “ICS”. The system of an embodiment described herein integrates with one or more components of the “ICS”.



FIG. 32 is a block diagram of the integrated cloud system or platform, under an embodiment. The integrated cloud system (ICS) of an embodiment comprises cloud-based components that include a Cloud Integration Service/Server (CIS) coupled to a system server (e.g., “Icontrol Server”, also referred to herein as the service provider server) via an internal event bus. The CIS, system server, and event bus are implemented by the service provider in data centers of the service provider's customers, but are not so limited.


The system server is coupled to customer-premises equipment (CPE) at corresponding subscriber premises of numerous subscribers. The CPE includes one or more of security panels, security systems, gateways, hubs, touchscreens, and Wi-Fi access points that operate as a gateway to the system servers and ICS. The CPE is described in detail in the Related Applications incorporated by reference herein.


The CIS is coupled to a partner's production server (“partner server”) via a Cloud Integration Adapter (CIA). The partner server interacts with their products/services that their users wish to integrate into their ICS platform. The Cloud Integration Adapter provides the system server and CIS with REST endpoints to call for checking the health of the adapter, associating with adapter cloud devices, and processing events coming from the CIS. Furthermore, the Cloud Integration Adapter is responsible for sending events to the CIS as acknowledgement of incoming system events, and as an endpoint for Adapter managed cloud device events to be reported into the system servers.


The ICS of an embodiment effects integration of cloud services and internet-connected devices with the user interface, Rules Engine and other components and functions of the service provider system. This integration enables third party and/or other connected devices (e.g., smart door bells (e.g, Doorbot, etc.), door locks, garage door operators (e.g., Chamberlain, etc.), cameras (e.g., Dropcam, etc.), thermostats (e.g., Nest, etc.), lighting systems (e.g., Philips Hue, etc.), lighting devices, lawn irrigation systems (e.g., Rachio, etc.), plant sensors, pet feeders, weather stations, rain sensors, pool controls, air quality sensors, music systems, remote controllers, internet user interfaces, connected systems, connected vehicles, etc.), and third party services (e.g weather forecasting services and applications (e.g., Accuweather, etc.), family networking services and applications, partner or third party services, Accuweather, MSO digital assets such as voicemail, etc.), to control or trigger automations in the service provider system using the user interface, Rules Engine and other components and functions of the service provider system. This enables end-users to integrate and use their previously-standalone internet-connected devices with each other as well as with their service provider-based service.


The ICS of an embodiment as described in detail herein includes one or more components of the “integrated security system” described in detail in the Related Applications, which are incorporated by reference herein. An example of the “integrated security system” is available as one or more of the numerous systems or platforms available from iControl Networks, Inc., Redwood City, Calif. The ICS of an embodiment incorporates one or more components of the “integrated security system”. The ICS of an embodiment is coupled to one or more components of the “integrated security system”. The ICS of an embodiment integrates with one or more components of the “integrated security system”.


The system server includes or hosts a partner proxy and an integration REST application programming interface (API). The integration REST API is coupled to the CIS. The partner proxy is coupled to a corresponding partner server, and is also coupled to a Card UI (“REST Client”). The partner proxy is configured to proxy API calls from the Partner's Card UI (REST client) to the Partner Server and appends the appropriate OAuth Token for a given user. This enables all client UIs to be enabled after a single OAuth pairing is completed (i.e., if one user authorizes Partner's product, all users and clients on the same account will have it auto-enabled and populated). This also improves security by not storing the user's credentials on the Partner's server in the client UI. The Card UI of an example embodiment is an HTML5-based user interface card developed by the Partner, or service provider, that is embedded into the service provider user interface (e.g., mobile app, web portal).


The ICS of an embodiment includes Cloud Actions and Triggers (CAT), which enable third party connected devices and services to trigger automations in the service provider system, thereby enabling end-users to integrate and use their previously-standalone internet connected devices with their service provider-based service.


Devices and services that are hosted outside of the automation platform or network are referred to as ‘cloud objects’ and provide numerous use cases when integrated with the system of an embodiment. The description that follows includes details of aspects of the system including but not limited to server infrastructure required to support external cloud objects, data format definitions for actions and triggers across the event bus, the process of onboarding external cloud objects, integration of cloud objects with the CPE rules engine, common OAuth2 Support for Cloud Services, and card UI/SDK Support for Cloud Objects.


The CAT of an embodiment integrates partner services into the ICS platform including support for rules on the CPE and partner-specific user interfaces based on the Card UI. The system of an embodiment includes a web API for the CIS for which partners develop Integration Adapters (also referred to as “adapters”) responsible for the translation of service provider events and operations into partner proprietary calls. Partners also develop Cards with the Card SDK in order to get branded partner specific user interfaces. The partners of an embodiment host their Integration Adapters in their environments, however in an alternative embodiment the adapters are hosed by the ICS described herein.


While the rules engine of an embodiment is included and running on CPE, the embodiments herein are not so limited. In an alternative embodiment the rules engine is included and running on a system server or other component of the ICS platform.


In another alternative embodiment the rules engine is distributed between the CPE and ICS platform so that a set of rules is included and running on the CPE while another set of rules is included and running on the ICS platform. For example, rules controlling actions and triggers limited to local devices in the premises, and not using any data or information from a device or service outside the premises, are included and running on the CPE. Likewise, rules controlling actions and triggers involving device(s) in the premises, and also involving device(s) or service(s) outside the premises, are included and running on the CPE.


The CAT includes but is not limited to use cases comprising Service Association, Cloud Object Creation, Service Disassociation, Cloud Object Synchronization, Card UI Interactions, Rule Authoring, and Rule Execution. Each of the use cases is described in detail herein.


Upon startup, the Partner's Cloud Integration Adapter uses username, password and partnerKey to authenticate with the CIS. The username, password and partnerKey are provided by the service provider. The Partner's Event Callback URL and Health Check URL are defined initially as part of the partner onboarding process. The CIS provides two URLs for the partner to optionally update the two URLs at runtime.


The Register Event callback URI allows partner to update the Event Callback URL at runtime.

    • /cloudIntegration/[partnerName]/eventCallback/registerEventCallback?partner


      Endpoint
    • Url=[partnerUrl]


      Descripti
    • Update the eventCallback URL for a partner
    • on
    • Method POST
      • x-login—username of the integration user
    • Header x-password—password of the integration user
      • x-partnerKey—unique key issued by Service provider to the partner
    • URL partnerName: The unique name of the partner provided by Service provider paramete
    • rs partnerUrl: The updated Event Callback URL
    • Result HTTP response 200 if successful


An example payload includes but is not limited to the following:
















curl -k -L -v -H “X-login: <username>” -H “X-password: test” -H “x-partnerKey: key” -



X POST



“https://<server>/cloudIntegration/icontrol/cloudIntegrations/rachio/eventCallback/regist



erEventCallback?partnerUrl=https://rachioAdapter/updatedEventCallbackUrl”









The Register Health Check Callback URI allows partner to update the Health Check URL at runtime.


Endpo/cloudIntegration/[partnerName]/healthCheckCallback/registerHealthCheckCallb






    • int ack?partnerHealthCheckUrl=[partnerHealthCheckUrl]


      Descri

    • Update healthCheckCallback URL for partner


      ption


      Metho

    • POST

    • d
      • x-login—username of the integration userx-password—password of the

    • Heade
      • integration userx-partnerKey—A unique key issued by Service provider to the

    • r
      • partner

    • URL
      • partnerName: The unique name of the partnerpartner

    • param
      • HealthCheckUrl: The updated health check URL

    • eters

    • Result HTTP response 200 if successful





An example payload includes but is not limited to the following:
















curl -k -L -v -H “Content-Type: text/xml ” -H “X-login:



<username>” -H “X-password: test” -H “x-partnerKey: key” -X POST



https://<server>/cloudIntegration/icontrol/cloudIntegrations/rachio/healthCheckCallback/



registerHealthCheckCallback?partnerHealthCheckUrl=https://rachioAdapter/updatedHeal



thcheckcallback.









For both the Event Callback Registration and Health Check Callback Registration, the CIS responds with a HTTP 200 if the POST is accepted. Appropriate HTTP error code will be returned for error conditions.


The Health Check Callback service implemented by the Partner supports HTTP GET operations, and responds with HTTP 200 to indicate all systems are functioning properly. Any other response will be considered an indication that the adapter is not available. The CIS of an embodiment periodically checks availability of the Integration Adapter, and the periodicity is configurable.


The cloud integration user lifecycle of an embodiment embodies the core user experiences from a technical viewpoint (i.e., technical use cases). The following user lifecycle use cases are described in detail herein: Service Association (User Onboarding); Updating new user product(s)/service(s) on the Partner's server; Product/Service status updates; Controlling user's product(s)/service(s) from the service provider platform; User Offboarding of one or more product(s)/service(s).


Service Association (User Onboarding) is initiated by the user via a service provider user interface when the user selects a Partner device type from the list of devices available to pair to the user's Service provider system. FIG. 33 is a flow diagram for Service Association, under an embodiment. Service Association (Partner Onboarding) is initiated by a Card UI of an embodiment when the user selects a partner from a partner list. The list of all possible partners and their custom (partner specific) cards are built into each release of the Card UI (they are not dynamically downloaded from a server). However the list of enabled partners (and related metadata) is dynamically retrieved from Service provider server via an API.


Once the user selects a partner service for association, three-legged OAuth2 begins. A browser control is created, has its context populated with information identifying the user, and calls Service provider OAUTH Redirect servlet, which in turn opens the OAuth2 landing page URL with the required parameters (response_type, client_id and token). This page, served by the partner's web server, collects the user's ID and password and successfully authenticates.


After the user is authenticated, the partner server issues an HTTP 302 redirect to the Service provider OAuth Callback servlet located in the portal server and includes an authorization code as well as the rest of the original browser context. The OAuth Callback servlet contacts the partner's service to exchange the authorization code for an access token which it stores in the database.


Then, the OAuth Callback servlet will call the ‘Associate Account URL’ provided by the partner. The access token for the user account is attached to the request as the Authorization header to identify the user. The response to the call will include the user's account id in the partner system and a list of cloud devices owned by the user. After successful account association, HTTP 200 is returned to the browser indicating the completion of the service association process.


The service provider OAUTH callback URL has the following format, but is not so limited: https://<servername>/oauth/oauthPartner/<partnerName>. It is recommended that a service provider deployment registers this URL in the partner's system. As an alternate (less secure) option, this URL can be passed to the partner system as a parameter in the first leg of the OAUTH process.


The system of an embodiment includes Cloud Object Synchronization as described herein. After a service has been associated for a user/account, the system server has the list of cloud devices owned by the user. If the user adds/removes a device in the partner's system, partner server calls the Service provider Cloud Integration Service API to inform Service provider regarding the change. Conversely, if user removes a cloud device association in Service provider Card UI, an event will be sent to the partner's system via the ‘Event Callback URL’.


After completing user authentication, the OAuth token for the user account is attached to a request to associate the account (Associate Account in FIG. 2). The Partner Server's response to the call will include the user's Account ID in the Partner's system and a list of cloud-enabled devices owned by the user in that account. After successful account association, HTTP 200 is returned to the browser indicating the completion of the service association process. After a service has been associated for a user/account, the Service provider server will have the list of cloud devices owned by the user.


Account association with the CIS is the process by which the system server creates the relationship between the Service provider user and partner cloud devices. The Cloud Integration Service sends, via HTTP POST, a JSON Object containing the OAuth Access Token.


An example Associate Account Request follows but the embodiment is not so limited:















URL
The ‘Associate Account URL’ provided



by the partner in the Cloud



Integration Submission Form.


Description
Get the user's account/device info from the partner.


Method
POST


Header
Authorization - ‘Bearer xxxxx’ where xxxxx



is the user's access token.


URL
customerName: The name of the Service provider server.


parameters









When an account association request is received by the Cloud Integration Adapter, it responds with a JSON message in the following format:



















Associate Account Response




{




 “virtualDevice.siteId”:“acc_1234”,




 “virtualDevice.instanceIds”:[




  {




   “id”:“device-inst001”,




   “name”:“Front Sprinkler”




  },




  {




   “id”:“device-inst002”,




   “name”:“Backyard Sprinkler”




  }




 ]




}











Where:
















Field Name
Description









virtualDevice.siteId
The user ID in the Partner's




system. This will be the global




identifier used by Service provider




to refer to the Partner's




primary user.



virtualDevice.instanceIds
A list (JSON Array) of devices




the Partner or user wishes




Service provider to interact with.



id
The Device ID in the Partner's system.



name
A friendly display name for this device.










A HTTP 200 is expected along with this data. Error codes should include an HTTP 500 for errors, and an HTTP 401 for improper OAuth token.


Updating status of partner product (events) involves user's interacting with the Partner's product/service through a Partner client (e.g., Partner mobile app) or the user may interact with the device locally and change its state, mode, or otherwise affect the product/service's status. Events received from the Partner's Cloud Integration Adapter can be treated as a trigger for a rule in the Service provider system (e.g., when the backyard sprinkler system is running, lock the pet door).


An example payload description follows but the embodiment is not so limited:

    • Endp
      • /cloudIntegration/[partnerName]/events/submitCloudEvent
    • oint
    • Descr
      • Submit partner events to Service provider server.
    • iption
    • Meth
      • POST
    • od
      • x-login—username of the integration user.x-password—password of the
    • Heade
      • integration user.x-partnerKey—A unique key issued by Service provider to the
    • r
      • partner
    • URL
      • partnerName: The unique name of the partner.externalAccountId: The user's
    • param
      • account ID in the partner system.
    • eters
    • Events originated from the partner system in IcEvent(s) JSON format.Example:{“icEvent”:[{“metaData”:[{“name”:“virtualDevice.siteId”,“value”: “acc_1234”},{“name”:“virtualDevice.instanceId”,“value”:“rachio-inst001 “},{” name”:“virtualDevice.providerId”,“value”:“rachio”}],“mediaType”:“s prinkler/on”,“ts”:1409675025053,“value”:“true”}]}
    • Fields:
      • mediaType: The event mediaTypes defined as part of the cloud object
    • Body definition and approved by Service provider.
      • ts: The time when the event happened (in milliseconds).
    • Event metadata:
      • virtualDevice.providerId: The name of the partner. Also referred to as Integration ID in the Card SDK.
      • virtualDevice.siteId: The user's account ID in the partner system.
      • virtualDevice.instanceId: The device ID in the partner system.


        Result HTTP response 200 if successful.


In controlling a partner product via the rules engine (actions) of an embodiment, the CIS uses the partner's Event Callback URL to submit action events to partner's system. Typically, an action event asks to the partner's system to perform a specific function. The partner submits the result of the action back to Service provider in the form of an event.


Payload Description


UR






    • The Event Callback URL for the partner


      L


      Des


      crip Submit action events to partner server.


      tion


      Met

    • POST


      hod

    • Authorization—The value is ‘Bearer xxxxxx’ with xxxxxx being the user's OAUTH


      Hea

    • access token.externalAccountId: The user's account ID in the partner system (to be


      der

    • added on Padre release).


      UR

    • L


      par

    • None.


      am


      eter

    • s

    • Action events originated from the Service provider system in IcEvent JSON format.

    • Example event sent to Rachio:

    • {“icEvent”:[{“ts”:1409675025053,“instanceId”:“181964.0”,“mediaType”:“virtualDe vice/pending”,“id”:“1430834677258”,“instanceName”:“Bedroom”,“value”: null,“cont ext”:[ ],“metaData”:“name”:“virtualDevice.instanceId”,“value”:“rachio-inst001”},{“name”:“virtualDevice.siteId”,“value”:“acc_1234”},{“name”:“virtualDev ice.providerId”,“value”:“rachio”},{“name”:“functionMediaType”,“value”:“sprinkler/schedulePause”},{“requestMessageId”},{“value”:“1430489036”}]}]}

    • Fields:
      • id: The event ID generated by Service provider server.
      • mediaType: All action events have ‘virtualDevice/pending’ as the event media type. The actual action is represented as ‘sprinkler/schedulePause’ in

    • Bo
      • metadata.

    • dy
      • ts: The time when the event happened (in milliseconds).
      • instanceId: The ID of the device in Service provider system.

    • Event metadata:
      • virtualDevice.providerId: The name of the partner. Also referred to as Integration ID in the Card SDK.
      • virtualDevice.siteId: The user's account ID in the partner system.
      • virtualDevice.instanceId: The device ID in the partner system.
      • functionMediaType: Identifies the action called by Service provider. The list of all possible function media types are defined at the time of partner onboarding.
      • requestMessageId: The ID of the action request. Partner should used the this ID when sending success/failure response.

    • Upon receiving the action event, partner should send success/failure response as event to Service provider server.

    • Successful response:
      • {“icEvent”:[{“metaData”:[{“name”:“virtualDevice.siteId”,“value”:“acc_1234” },{“na

    • Act
      • me”:“virtualDevice.instanceId”,“value”:“rachio-

    • ion
      • inst001”},{“name”:“virtualDevice.providerId”,“value”:“rachio”},{“name”:“request

    • Eve
      • MessageId”,“value”:“1430489036”}],“mediaType”:“virtualDevice/success”,“ts”:140

    • nt
      • 9675025053,“value”:“true”}]}

    • Res

    • pon
      • Failure Response:

    • se
      • {“icEvent”:[{“metaData”:[{“name”:“virtualDevice.siteId”,“value”:“acc_1234”},{“na me”:“virtualDevice.instanceId”,“value”:“rachio-inst001”},{“name”:“virtualDevice.providerId”,“value”:“rachio”},{“name”:“request MessageId”,“value”:“1430489036”}],“mediaType”:“virtualDevice/failed”,“ts”:14096 75025053,“errorCode”:“500”,“value”:“true”}]}





Event disposition is determined by the functionMediaType in the metaData array. In the above example, the functionMediaType has the value of device/schedulePause, but depending on the function, there may be a parameter or value in order to effect the desired control.



FIG. 34 is a flow diagram for Service Disassociation, under an embodiment. If the user adds/removes a device in the Partner's system, the Partner Server calls the CIS API to inform Service provider about the change. A Cloud Service can be disassociated from an Service provider user through an API invocation on the Service provider server. This removes the cloud account and its associated Cloud devices from the Service provider server. A SMAP message is sent to the CPE to update its Cloud Object inventory, and the CIS calls the partner's ‘Event Callback URL’ to inform the Partner that the user has disassociated.
















Payload Description



 URL   The Event Callback URL for the partner



      Notify Partner Server that a user has “deleted” or removed one of their



Description



      partner products from being controlled by the Service provider system.



 Method  POST



  URL



      None



Parameters



      {



       “icEvent”:[



        {



         “metaData”:[



          {



           “name”:“virtualDevice.siteId”,



           “value”:“rachio-account-id-0001”,



          },



          {



           “name”:“virtualDevice.instanceId”,



           “value”:“rachio-userinst-0001”,



          },



          {



Body         “name”:“virtualDevice.providerId”,



           “value”:“rachio”,



          },



         ],



         “id”:“1409865500000”,



         “mediaType”:“virtualDevice/remove”,



         “ts”:1409865500000,



         “href”:“sites/1/network/instances/181002.0”,



         “siteId”:“1”,



         “deviceId”:“1002”,



         “instanceId”:“181002.0”,



        }



       ]



      }









Event metadata includes but is not limited to: virtualDevice.providerId (e.g., name of the partner, also referred to as Integration ID in the Card SDK); virtualDevice.siteId (e.g., user's account ID in the partner system); virtualDevice.instanceId (e.g., device ID in the partner system). Fields include but are not limited to: mediaType (e.g., all remove events will have a mediaType of ‘virtualDevice/remove’); is (e.g., time when the event happened (in milliseconds)); instanceId (e.g., ID of the device in Service provider system); id (e.g., event ID generated by Service provider server).



FIG. 35 is a flow diagram for Card UI Interactions, under an embodiment. The Card UIs that interact with the Cloud Objects will not depend on data stored in Service provider servers. Instead the cards will interact through the Partner Proxy Service, which handles authentication and logging, to make calls to the partner server. For example, a Nest card that needs to show a list of thermostats will get the list of thermostats and their metadata indirectly from Nest (through the Partner Proxy Service) instead of leveraging the Cloud Object data stored in our database. This is done primarily due to the desire to have the Card UI authors, which are expected to be the partners themselves, use their own APIs for easier development. Note that it does provide the possibility for the two data sets (the Cloud Objects in our database and the list of devices provided by the partner's server) to get out of sync if bugs exist in the integrations. Normally changes should be synchronized as described above in Cloud Object Synchronization and the two data sets should be equivalent.


Cards will be oblivious to authentication with the Partner Server (except for service association where the authentication data is stored in our server). Invocations to the Partner Proxy Service cause it to attempt a ‘pass-through’ invocation on the Partner Server using the authentication credentials stored in the database. If the Partner Server responds with a 401 authentication failure, the Partner Proxy Service will attempt to refresh the token and re-attempt the invocation to the Partner Server with the updated token as shown in the diagram above. Authentication credentials are not made available to the Cards, so they perform authenticated requests through the Partner Proxy Service.


The system of an embodiment includes files that form the Cloud Integration Metadata. As an example, an embodiment includes Cloud Integration Descriptor (CID) and Rules Template files that make up the Cloud Integration Metadata that defines a cloud integration.


The CID describes the capabilities of the devices and/or services provided by the Partner Provider Plugin including attributes, actions, events, and their associated parameters. This descriptor is used by the server to provide REST API access to the capabilities provided by the cloud service, but is not so limited.


An example CID XSD of an embodiment is as follows, but the embodiment is not so limited.
















CID XSD



 <xs:complexType name=“cloudObject”>



  <xs:complexContent>



   <xs:sequence>



    <xs:element name=“name” type=“xs:token”/>



    <xs:element name=“metaData” type=“metaData” minOccurs=“0”



maxOccurs=“64”/>



    <xs:element name=“point” type=“point” minOccurs=“0” maxOccurs=“64”/>



    <xs:element name=“function” type=“function” minOccurs=“0”



maxOccurs=“64”/>



   </xs:sequence>



   <xs:attribute name=“id” type=“xs:string” use=“required”/>



   <xs:attribute name=“mediaType” type=“xs:token” use=“optional”/>



   <xs:attribute name=“href” type=“xs:anyURI”/>



   <xs:attribute name=“tags” type=“xs:token”/>



   <xs:attribute name=“status” type=“cloudObjectStatus”/>



  </xs:complexContent>



 </xs:complexType>



 <xs:complexType name=“metaData”>



  <xs:attribute name=“name” type=“xs:string”/>



  <xs:attribute name=“value” type=“xs:string”/>



  <xs:attribute name=“mediaType” type=“xs:token”/>



 </xs:complexType>



 <xs:complexType name=“point”>



  <xs:attribute name=“mediaType” type=“xs:token” use=“required”/>



  <xs:attribute name=“name” type=“xs:string”/>



  <xs:attribute name=“href” type=“xs:anyURI”/>



  <xs:attribute name=“value” type=“xs:string”/>



  <xs:attribute name=“ts” type=“xsiong”/>



  <xs:attribute name=“readOnly” type=“xs:boolean” use=“required”/>



 </xs:complexType>



 <xs:complexType name=“function”>



  <xs:sequence>



   <xs:element name=“input” type=“input” minOccurs=“0”



maxOccurs=“unbounded”/>



  </xs:sequence>



  <xs:attribute name=“mediaType” type=“xs:token” use=“required”/>



  <xs:attribute name=“name” type=“xs:token”/>



  <xs:attribute name=“href” type=“xs:anyURI”/>



  <xs:attribute name=“description” type=“xs:string”/>



 </xs:complexType>



 <xs:simpleType name=“cloudObjectStatus”>



  <xs:restriction base=“xs:token”>



   <xs:enumeration value=“ok”/>



   <xs:enumeration value=“offline”/>



   <xs:enumeration value=“unknown”/>



   <xs:enumeration value=“missing”/>



   <xs:enumeration value=“searching”/>



   <xs:enumeration value=“configuration_failure”/>



   <xs:enumeration value=“upgrading”/>



   <xs:enumeration value=“configuring”/>



  </xs:restriction>



 </xs:simpleType>









An example CID of an embodiment is as follows, but the embodiment is not so limited.
















Example CID



<Nest id=“Nest343234345” mediaType=“cloud/nest” tags=“thermostat” status=“ok”>



 <name>My Nest</name>



 <metadata name=“manufacturer” mediaType=“cloud/nest/manufacturer”



value=“Nest”/>



 <metadata name=“model” mediaType=“cloud/nest/model” value=“M1”/>



 <point name=“temperature” mediaType=“cloud/nest/temperature” value=“2800”



ts=“23434535464557” readOnly=“false”/>



 <point name=“coolSetpoint” mediaType=“cloud/nest/coolSetpoint” value=“2400”



ts=“23434535464557” readOnly=“false”/>



 <point name=“heatSetpoint” mediaType=“cloud/nest/heatSetpoint” value=“2000”



ts=“23434535464557” readOnly=“false”/>



 <function name=“resetSetpoints” mediaType=“cloud/nest/reset” description=“reset



heat/cool setpoint to factory default”/>



</Nest>









An example Rules XSD Changes of an embodiment is as follows, but the embodiment is not so limited.
















Rules XSD Changes



 <!--



  - Subclass of trigger for Cloud commands.



  -->



 <xsd:complexType name=“cloudTrigger”>



  <xsd:complexContent>



   <xsd:extension base=“trigger”>



    <xsd:sequence>



     <!-- - The specific cloud object ID. -->



     <xsd:element name=“cloudObjectID” type=“xsd:string” minOccurs=“1”



maxOccurs=“1”/>



     <!-- the evaluation mechanism to apply to this trigger -->



     <xsd:choice>



      <xsd:element name=“simpleEval”



type=“cloudSimpleTriggerEvaluation”/>



      <xsd:element name=“comparisonEval”



type=“cloudComparisonTriggerEvaluation”/>



     </xsd:choice>



    </xsd:sequence>



   </xsd:extension>



  </xsd:complexContent>



 </xsd:complexType>



 <xsd:element name=“cloudTrigger” type=“cloudTrigger”



substitutionGroup=“trigger”/>



 <!-- simple cloud trigger evaluation (just an event, no args) -->



 <xsd:complexType name=“cloudSimpleTriggerEvaluation”>



  <xsd:sequence>



   <xsd:element name=“eventName” type=“xsd:string”/>



  </xsd:sequence>



 </xsd:complexType>



 <!-- cloud trigger evaluation that compares a value -->



 <xsd:complexType name=“cloudComparisonTriggerEvaluation”>



  <xsd:sequence>



   <xsd:element name=“attributeName” type=“xsd:string”/>



   <xsd:element name=“comparisonMethod” type=“comparisonMethodEnum”/>



   <xsd:element name=“comparisonValue” type=“xsd:double”/>



  </xsd:sequence>



 </xsd:complexType>



 <!-- comparison methods -->



 <xsd:simpleType name=“comparisonMethodEnum”>



  <xsd:restriction base=“xsd:string”>



   <!-- equality -->



   <xsd:enumeration value=“eq”/>



   <!-- less than -->



   <xsd:enumeration value=“lt”/>



   <!-- less than or equal -->



   <xsd:enumeration value=“le”/>



   <!-- greater than-->



   <xsd:enumeration value=“gt”/>



   <!-- greater than or equal -->



   <xsd:enumeration value=“ge”/>



  </xsd:restriction>



 </xsd:simpleType>









An example Master Action List Changes of an embodiment is as follows, but the embodiment is not so limited.
















Master Action List Changes



 <a:action actionID=“137”>



  <a:description>Invoke a Cloud Action</a:description>



  <a:parameterDef>



   <a:key>cloudObjectID</a:key>



   <a:type>string</a:type>



  </a:parameterDef>



  <a:parameterDef>



   <a:key>cloudActionID</a:key>



   <a:type>string</a:type>



  </a:parameterDef>



  <a:parameterDef>



   <a:key>parameters</a:key>



   <a:type>string</a:type> <!-- a JSONArray of



   JSONObjects that contain



name/value/type triplets (type is optional) -->



  </a:parameterDef>



  <!-- does this type make sense? -->



  <a:type>workflow</a:type>



  <a:target>ruleAction_invokeCloud</a:target>



 </a:action>









An example Rule XML Examples of an embodiment is as follows, but the embodiment is not so limited.
















Rule XML Examples



<rule ruleID=“1002351”>



 <triggerList>



  <cloudTrigger>



   <description>Cloud Trigger</description>



   <category>cloud</category>



   <!-- just points to the global service, not to any particular instance -->



   <cloudObjectID>AccuWeather</cloudObjectID>



   <!-- it is assumed here that when the AccuWeather account is connected



    that it is already filtering based on the user's location / zipcode -->



   <simpleEval>



    <eventName>tornadoWarning</eventName>



   </simpleEval>



  </cloudTrigger>



 </triggerList>



 <action>



  <actionID>70</actionID>



  <parameter>



   <key>lightID</key>



   <value>3781220513309696</value>



  </parameter>



  <parameter>



   <key>level</key>



   <value>100</value>



  </parameter>



 </action>



 <description>Turn on kitchen light when Tornado Warning</description>



</rule>



<rule ruleID=“1008603”>



 <triggerList>



  <zoneTrigger>



   <description>Zone Trigger</description>



   <category>sensor</category>



   <zoneState>open</zoneState>



   <zoneID>18</zoneID>



  </zoneTrigger>



 </triggerList>



 <action>



  <actionID>137</actionID>



  <parameter>



   <key>cloudObjectID</key>



   <value>nest.1</value> <!-- device 1 under the nest service associated with this



account -->



  </parameter>



  <parameter>



   <key>cloudActionID</key>



   <value>configureThermostat</value>



  </parameter>



  <parameter>



   <key>parameters</key>



   <value>[ { “name”: “heatSetPoint”, “value”: “2200”, “type”: “nest/temperature”



}, { “name”: “coolSetPoint”, “value”: “2700” } ] </value>



  </parameter>



 </action>



 <description>Zone 1 Open Configure Nest Thermostat</description>



</rule>









In order to provide a dynamic list of available actions and triggers during rule authoring, templates describing the available functionality must be provided with the Cloud Integration Metadata. Some examples of trigger and action templates (e.g., Rachio Smart Sprinkler Controller trigger and action template, AccuWeather weather service trigger template, etc.) of an embodiment are as follows, but the embodiment is not so limited.
















Example Rule Templates



<rules-core:triggerTemplates



    xmlns:rules-core=“rules-core”



xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”



    xsi:schemaLocation=“rules-core ../../../../rules-core/src/main/resources/rules-



core.xsd”>



    <rules-core:triggerTemplate id=“203”



    description=“{STR.RULES.TEMPLATES.TRIGGER.DESC.INSTANCE.RAC



HIO}”



        cvTriggerType=“cloudTrigger” cvCategory=“cloud”



    excludeActionIds=“10:11:15:16:17:18:100:101:103:120:121:122:135:136:137:



138:139”>



        <rules-core:inputs>



            <rules-core:input hidden=“false”



    description=“{STR.RULES.TEMPLATES.TRIGGER.TARGETVALUES.DES



C.RACHIO}”



                name=“targetValues” pattern=“eq”>



                <option



    description=“{STR.RULES.TEMPLATES.TRIGGER.TARGETVALUES.OPT



ION.DESC.RACHIO.ON}”



                    value=“1” />



                <option



    description=“{STR.RULES.TEMPLATES.TRIGGER.TARGETVALUES.OPT



ION.DESC.RACHIO.OFF}”



                    value=“0” />



            </rules-core:input>



            <rules-core:input hidden=“true” name=“type” value=“event”



/>



            <rules-core:input hidden=“false” name=“instanceIds” />



            <rules-core:input hidden=“true” name=“tags” value=“rachio”



/>



            <rules-core:input hidden=“true” name=“mediaTypes”



                value=“sprinkler/on” />



        </rules-core:inputs>



    </rules-core:triggerTemplate>



</rules-core:triggerTemplates>



<rules-core:triggerTemplates



    xmlns:rules-core=“rules-core”



xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”



    xsi:schemaLocation=“rules-core ../../../../rules-core/src/main/resources/rules-



core.xsd”>



    <rules-core:triggerTemplate id=“200”



    description=“{STR.RULES.TEMPLATES.TRIGGER.DESC.INSTANCE.ACC



UWEATHER}”



        cvTriggerType=“cloudTrigger” cvCategory=“cloud”



excludeActionIds=“10:11:15:16:17:18:135:136”>



        <rules-core:inputs>



            <rules-core:input hidden=“false”



    description=“{STR.RULES.TEMPLATES.TRIGGER.TARGETVALUES.DES



C.ACCUWEATHER}”



                name=“targetValues” pattern=“gt”>



                <option



    description=“{STR.RULES.TEMPLATES.TRIGGER.TARGETVALUES.OPT



ION.DESC.ACCUWEATHER.TEMPERATURE.GT}”



                    value=“temperatureGt” />



            </rules-core:input>



            <rules-core:input hidden=“true” name=“type“value=“event”



/>



            <rules-core:input hidden=“false” name=“instanceIds” />



            <rules-core:input hidden=“true” name=“tags”



value=“accuWeather” />



            <rules-core:input hidden=“true” name=“mediaTypes”



                value=“weather/temperature” />



        </rules-core:inputs>



    </rules-core:triggerTemplate>



</rules-core:triggerTemplates>



<rules-core:actionTemplates xmlns:rules-core=“rules-core”



    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”



    xsi:schemaLocation=“rules-core ../../../../rules-core/src/main/resources/rules-



core.xsd”>



    <rules-core:actionTemplate id=“137”



    description=“{STR.RULES.TEMPLATES.ACTION.DESC.RACHIO.OFF}”



cvActionId=“137”



        cvType=“workflow”>



        <rules-core:inputs>



            <rules-core:input hidden=“false” description=“Which Rachio



Object”



                name=“instanceIds” cvKey=“cloudObjectID”



cvType=“cloudObjectID”



                cvRequired=“true“/>



            <rules-core:input name=“mediaType”



value=“sprinkler/scheduleStop” />



        </rules-core:inputs>



    </rules-core:actionTemplate>



</rules-core:actionTemplates>










Sample curl commands of Rachio cloud rule follows.


curl -k -v -L -H “Content-Type:application/json”-H “X-login:insight”-H “X-password:test”-H “X-AppKey: defaultKey”-X PUT


“https://10.0.12.102/rest/icontrol/sites/420/rules”-d ‘{“description”:“Rachio turns ON,


Turn on


Light”,“executionSource”:“client”,“enabled”:true,“valid”:true,“default”:false,“conditional s”:{“conditional”:[{“triggers”:{“trigger”:[{“description”:“Rachio is


ON”,“id”:“0”,“templateId”:“203”,“targetValues”:“1”,“type”:“event”,“mediaTypes”:“sprin kler/systemOn”,“instances”:“181002.0”,“targetComparisonTypes”:“eq”}]},“actions”:{“ac tion”:[{“id”:“0”,“templateId”:“70”,“inputs”:“level=0&”,“instanceIds”:“13000d6f00020a5 d9a.1.0”}]}}]}}’


User should pass targetComparisonTypes whenever there is a pattern present in cloudTrigger. In above case targetComparisonTypes is “eq” and targetValues is “1”.


Both these values should be fetched from the triggerTemplate.


Sample curl commands of AccuWeather cloud rule follows.


curl-k -v -L -H “Content-Type:application/json”-H “X-login:insight”-H “X-password:test”-H “X-AppKey: defaultKey”-X PUT


“https://10.0.12.102/rest/icontrol/sites/420/rules”-d ‘{“description”:“Outside temperature is less than 100, Turn on


light”,“executionSource”:“client”,“enabled”:true,“valid”:true,“default”:false,“conditionals”:{“conditional”:[{“triggers”:{“trigger”:[{“description”:“Outside temperature is greater than 60 degrees, turn on


light”,“id”:“0”,“templateId”:“200”,“targetValues”:“70”,“type”:“event”,“mediaTypes”:“we ather/temperature”,“instances”:“181001.0”,“targetComparisonTypes”:“gt”}]},“actions”:{“action”:[{“id”:“0”,“templateId”:“70”,“inputs”:“level=0&”,“instanceIds”:“13000d6f00020a 5d9a.1.0”}]}}]}}’


In above case targetComparisonTypes is “gt” and targetValues is “70”. Here targetComparisonTypes should be fetched from triggerTemplate and user should pass user defined value in targetValues.


SMAP Protocol Changes


SMAP is updated to allow server to send external events to CPE and CPE send external action event to server.
















<xsd:complexType name=“cloudEvent”>



  <xsd:complexContent>



   <xsd:extension base=“smap:baseMessage”>



    <xsd:sequence>



     <xsd:element name=“metaData” type=“smap:eventMetaData”



maxOccurs=“32” minOccurs=“0”>



      <xsd:annotation>



       <xsd:documentation>Additional information about the event



itself</xsd:documentation>



      </xsd:annotation>



     </xsd:element>



     <xsd:element name=“context” type=“smap:eventContext” maxOccurs=“32”



minOccurs=“0”>



      <xsd:annotation>



       <xsd:documentation>Information about other aspects of the system at



the time of the event</xsd:documentation>



       </xsd:annotation>



     </xsd:element>



    </xsd:sequence>



    <xsd:attribute name=“id” type=“xsd:token”/>



    <xsd:attribute name=“cloudObjectId” type=“xsd:token”/>



    <xsd:attribute name=“mediaType” type=“xsd:token” use=“required”/>



    <xsd:attribute name=“ts” type=“xsd:long” use=“required”/>



    <xsd:attribute name=“href” type=“xsd:anyURI”/>



    <xsd:attribute name=“errorCode” type=“xsd:token”/>



    <xsd:attribute name=“value” type=“xsd:string”/>



   </xsd:extension>



  </xsd:complexContent>



 </xsd:complexType>



 <xsd:complexType name=“eventContext”>



  <xsd:attribute name=“mediaType” type=“xsd:token” use=“required”/>



  <xsd:attribute name=“value” type=“xsd:string” use=“required”/>



  <xsd:attribute name=“href” type=“xsd:anyURI”/>



 </xsd:complexType>



 <xsd:complexType name=“eventMetaData”>



  <xsd:attribute name=” name” type=“xsd:token” use=“required”/>



  <xsd:attribute name=“value” type=“xsd:string” use=“required”/>



 </xsd:complexType>



 <xsd:complexType name=“cloudActionEvent”>



  <xsd:complexContent>



   <xsd:extension base=“smap:baseMessage”>



    <xsd:sequence>



     <xsd:element name=“ruleId” type=“xsd:long” minOccurs=“0”



maxOccurs=“1”>



      <xsd:annotation>



       <xsd:documentation>Id of the rule that triggered this action, if



applicable.</xsd:documentation>



      </xsd:annotation>



     </xsd:element>



     <xsd:element name=“eventId” type=“xsd:string” minOccurs=“0”



maxOccurs=“1”>



      <xsd:annotation>



       <xsd:documentation>The id of the event that triggered the



rule.</xsd:documentation>



      </xsd:annotation>



     </xsd:element>



     <xsd:element name=“cloudObjectId” type=“xsd:token” minOccurs=“1”



maxOccurs=“1”/>



     <xsd:element name=“actionMediaType” type=“xsd:token” minOccurs=“1”



maxOccurs=“1”/>



     <xsd:element name=“actionHrer type=“xsd:anyURI” minOccurs=“0”



maxOccurs=“1”/>



     <xsd:element name=“actionInput” type=“smapinput” minOccurs=“0”



maxOccurs=“32”/>



    </xsd:sequence>



   </xsd:extension>



  </xsd:complexContent>



 </xsd:complexType>



 <xsd:complexType name=“input”>



  <xsd:attribute name=“name” type=“xsd:token” use=“required”/>



  <xsd:attribute name=“mediaType” type=“xsd:token” use=“optional”/>



  <xsd:attribute name=“value” type=“xsd:string” use=“required”/>



 </xsd:complexType>









The ICS of an embodiment effects ICS platform integration with third party system and device functionality (e.g., Philips Hue lights, Chamberlain garage door openers, Nest thermostats, Dropcam cameras, Doorbot doorbell cameras, etc.), as described in detail herein. Using the same processes, other server-to-server (cloud) services (e.g., Accuweather, MSO digital assets such as voicemail, etc.) are also integrated into the ICS platform.


Cloud Actions and Triggers of an embodiment enable cloud services and internet-connected devices to leverage the user interface, Rules Engine and other functions of the service provider system. This allows third party devices (e.g., smart door bells, door locks, garage door operators, cameras, thermostats, lighting systems, lighting devices, lawn irrigation systems, plant sensors, pet feeders, weather stations, rain sensors, pool controls, air quality sensors, music systems, remote controllers, internet user interfaces, connected systems, connected vehicles, etc.), third party services (e.g., weather forecasting services and applications, family networking services and applications, etc.), and others to trigger automations in the service provider system using the Rules Engine. This enables end-users to integrate and use their previously-standalone internet connected devices with their service provider-based service.



FIG. 36 is an example rules interface for controlling triggers and actions involving third party devices integrated in the CAT, under an embodiment. FIG. 37 is an example of a triggers portion of a rules interface for third party services integrated with the CAT, under an embodiment. FIG. 38 is another example of an actions portion of a rules interface for integrated third party devices, under an embodiment. The rules automation actions and triggers of an embodiment include monitor/control functionality enabled via proprietary UIs, and with cards in the Card UI as described herein.


Embodiments include a system comprising a cloud hub located in a premises. The cloud hub comprises a plurality of adapters coupled to a plurality of premises devices. The cloud hub is configured as a gateway for the premises devices. The system includes a virtual gateway located in a cloud server environment and coupled to the cloud hub. The virtual gateway is configured as a server-side abstraction of the cloud hub. The cloud hub and the virtual gateway are configured as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices.


Embodiments include a system comprising: a cloud hub located in a premises, wherein the cloud hub comprises a plurality of adapters coupled to a plurality of premises devices, wherein the cloud hub is configured as a gateway for the premises devices; a virtual gateway located in a cloud server environment and coupled to the cloud hub, wherein the virtual gateway is configured as a server-side abstraction of the cloud hub, wherein the cloud hub and the virtual gateway are configured as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices.


The plurality of adapters includes an internet protocol (IP) adapter.


The IP adapter is coupled to a premises device including at least one IP device.


The plurality of adapters includes a radio adapter.


The radio adapter is configured to use a communication protocol of a premises device coupled to the radio adapter.


The radio adapter includes a wireless radio adapter.


The radio adapter is coupled to a premises device including at least one Zigbee device.


The plurality of adapters includes a camera adapter.


The camera adapter is coupled to a premises device including at least one camera device.


The at least one camera device includes a tunnel camera.


The plurality of adapters include a Wi-Fi adapter.


The cloud hub is coupled to a radio frequency (RF) bridge in the premises.


The RF bridge is coupled to at least one additional premises device.


The at least one additional premises device includes at least one Z-Wave device.


The cloud server environment includes a session server, wherein the virtual gateway is an instance of a plurality of virtual gateways running on the session server.


The cloud server environment includes at least one of a registry gateway and a session gateway, wherein the at least one the registry gateway and a session gateway are coupled to the session server.


The registry gateway is configured to identify the virtual gateway from the plurality of virtual gateways and route incoming data from the cloud hub to the virtual gateway.


The routing of incoming data includes a mapping of premises device identification (ID) and device type to site ID corresponding to the premises.


The premises device ID corresponds to at least one of the plurality of premises devices.


The site ID is assigned to the cloud hub.


The cloud hub is configured to communicate with the registry gateway and receive the site ID.


The cloud hub is configured to communicate with the registry gateway and receive a network address of the credential gateway.


The cloud server environment includes a credential gateway, wherein the cloud hub is configured to communicate with the credential gateway and, using the site ID, receive a key.


The cloud hub is configured to receive session server data from the credential gateway, wherein the session server data includes a session server address.


The virtual gateway comprises a first gateway state machine running on the session server.


The cloud hub comprises a processor running a second gateway state machine.


At least one of the first gateway state machine and the second gateway state machine maintains track of a state of the plurality of premises devices.


At least one of the first gateway state machine and the second gateway state machine monitors and manages the plurality of premises devices.


The first gateway state machine and the second gateway state machine maintain track of a state of the plurality of premises devices.


The first gateway state machine and the second gateway state machine monitor and manage the plurality of premises devices.


The system includes at least one premises device of the plurality of premises devices configured to communicate with the virtual gateway over a cellular coupling.


Inbound communications to the virtual gateway comprise packet communications.


Outbound communications from the virtual gateway comprise short message service (SMS) messages.


The cloud hub is configured to maintain a persistent connection with the cloud server environment.


The cloud hub is coupled to the cloud server environment using a broadband coupling.


The cloud hub is coupled to the cloud server environment using a cellular coupling.


The system includes a remote device coupled to the cloud server environment, wherein the remote device receives state data of the plurality of premises devices and provides control data to the plurality of premises devices.


The remote device is coupled to the cloud server via at least one of a mobile portal and a web portal.


The plurality of premises devices includes at least one of a sensor, a detector, a camera, an input/output (I/O) device, a touchscreen controller, a video camera, an input/output (I/O) device, an actuator, and a device controller that controls an attached device.


Embodiments include a method comprising configuring a cloud hub to include a plurality of adapters. The plurality of adapters is coupled to a plurality of premises devices. The cloud hub is located in a premises and configured as a gateway for the premises devices. The method includes configuring a cloud server environment to include a virtual gateway. The virtual gateway is coupled to the cloud hub and configured as a server-side abstraction of the cloud hub. The method includes configuring the cloud hub and the virtual gateway as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices.


Embodiments include a method comprising: configuring a cloud hub to include a plurality of adapters, wherein the plurality of adapters is coupled to a plurality of premises devices, wherein the cloud hub is located in a premises and configured as a gateway for the premises devices; configuring a cloud server environment to include a virtual gateway, wherein the virtual gateway is coupled to the cloud hub and configured as a server-side abstraction of the cloud hub; configuring the cloud hub and the virtual gateway as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices.


The plurality of adapters includes an internet protocol (IP) adapter.


The IP adapter is coupled to a premises device including at least one IP device.


The plurality of adapters includes a radio adapter.


The method includes configuring the radio adapter to use a communication protocol of a premises device coupled to the radio adapter.


The radio adapter includes a wireless radio adapter.


The radio adapter is coupled to a premises device including at least one Zigbee device.


The plurality of adapters includes a camera adapter.


The camera adapter is coupled to a premises device including at least one camera device.


The at least one camera device includes a tunnel camera.


The plurality of adapters include a Wi-Fi adapter.


The cloud hub is coupled to a radio frequency (RF) bridge in the premises.


The RF bridge is coupled to at least one additional premises device.


The at least one additional premises device includes at least one Z-Wave device.


The method includes configuring the cloud server environment to include a session server, wherein the virtual gateway is an instance of a plurality of virtual gateways running on the session server.


The method includes configuring the cloud server environment to include at least one of a registry gateway and a session gateway, wherein the at least one of the registry gateway and the session gateway are coupled to the session server.


The method includes configuring the registry gateway to identify the virtual gateway from the plurality of virtual gateways and route incoming data from the cloud hub to the virtual gateway.


The method includes configuring the routing of incoming data to include a mapping of premises device identification (ID) and device type to site ID corresponding to the premises.


The premises device ID corresponds to at least one of the plurality of premises devices.


The site ID is assigned to the cloud hub.


The method includes configuring the cloud hub to communicate with the registry gateway and receive the site ID.


The method includes configuring the cloud hub to communicate with the registry gateway and receive a network address of the credential gateway.


The method includes configuring the cloud server environment to include a credential gateway, and configuring the cloud hub to communicate with the credential gateway and, using the site ID, receive a key.


The method includes configuring the cloud hub to receive session server data from the credential gateway, wherein the session server data includes a session server address.


The method includes configuring the virtual gateway to include a first gateway state machine running on the session server.


The method includes configuring the cloud hub to include a processor running a second gateway state machine.


The method includes configuring at least one of the first gateway state machine and the second gateway state machine to maintain track of a state of the plurality of premises devices.


The method includes configuring at least one of the first gateway state machine and the second gateway state machine to monitor and manage the plurality of premises devices.


The method includes configuring the first gateway state machine and the second gateway state machine to maintain track of a state of the plurality of premises devices.


The method includes configuring the first gateway state machine and the second gateway state machine to monitor and manage the plurality of premises devices.


The method includes configuring at least one premises device of the plurality of premises devices to communicate with the virtual gateway over a cellular coupling.


The method includes configuring inbound communications to the virtual gateway to include packet communications.


The method includes configuring outbound communications from the virtual gateway to include short message service (SMS) messages.


The method includes configuring the cloud hub to maintain a persistent connection with the cloud server environment.


The cloud hub is coupled to the cloud server environment using a broadband coupling.


The cloud hub is coupled to the cloud server environment using a cellular coupling.


The method includes a remote device coupled to the cloud server environment, wherein the remote device receives state data of the plurality of premises devices and provides control data to the plurality of premises devices.


The remote device is coupled to the cloud server via at least one of a mobile portal and a web portal.


The plurality of premises devices includes at least one of a sensor, a detector, a camera, an input/output (I/O) device, a touchscreen controller, a video camera, an input/output (I/O) device, an actuator, and a device controller that controls an attached device.


Embodiments include a system comprising a cloud hub located in a premises. The cloud hub comprises a plurality of adapters coupled to a plurality of premises devices. The cloud hub is configured as a gateway for the premises devices. The system includes a virtual gateway located in a cloud server environment and coupled to the cloud hub. The virtual gateway is configured as a server-side abstraction of the cloud hub. The cloud hub and the virtual gateway are configured as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices. The system includes a security system coupled to the virtual gateway. The security system includes a plurality of security system components.


Embodiments include a system comprising: a cloud hub located in a premises, wherein the cloud hub comprises a plurality of adapters coupled to a plurality of premises devices, wherein the cloud hub is configured as a gateway for the premises devices; a virtual gateway located in a cloud server environment and coupled to the cloud hub, wherein the virtual gateway is configured as a server-side abstraction of the cloud hub, wherein the cloud hub and the virtual gateway are configured as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices; a security system coupled to the virtual gateway, wherein the security system includes a plurality of security system components.


The plurality of adapters includes an internet protocol (IP) adapter.


The IP adapter is coupled to a premises device including at least one IP device.


The plurality of adapters includes a radio adapter.


The radio adapter is configured to use a communication protocol of a premises device coupled to the radio adapter.


The radio adapter includes a wireless radio adapter.


The radio adapter is coupled to a premises device including at least one Zigbee device.


The plurality of adapters includes a camera adapter.


The camera adapter is coupled to a premises device including at least one camera device.


The at least one camera device includes a tunnel camera.


The plurality of adapters include a Wi-Fi adapter.


The cloud hub is coupled to a radio frequency (RF) bridge in the premises.


The RF bridge is coupled to at least one additional premises device.


The at least one additional premises device includes at least one Z-Wave device.


The cloud server environment includes a session server, wherein the virtual gateway is an instance of a plurality of virtual gateways running on the session server.


The cloud server environment includes at least one of a registry gateway and a session gateway, wherein the at least one the registry gateway and a session gateway are coupled to the session server.


The registry gateway is configured to identify the virtual gateway from the plurality of virtual gateways and route incoming data from the cloud hub to the virtual gateway.


The routing of incoming data includes a mapping of premises device identification (ID) and device type to site ID corresponding to the premises.


The premises device ID corresponds to at least one of the plurality of premises devices.


The site ID is assigned to the cloud hub.


The cloud hub is configured to communicate with the registry gateway and receive the site ID.


The cloud hub is configured to communicate with the registry gateway and receive a network address of the credential gateway.


The cloud server environment includes a credential gateway, wherein the cloud hub is configured to communicate with the credential gateway and, using the site ID, receive a key.


The cloud hub is configured to receive session server data from the credential gateway, wherein the session server data includes a session server address.


The virtual gateway comprises a first gateway state machine running on the session server.


The cloud hub comprises a processor running a second gateway state machine.


At least one of the first gateway state machine and the second gateway state machine maintains track of a state of the plurality of premises devices.


A least one of the first gateway state machine and the second gateway state machine monitors and manages the plurality of premises devices.


The first gateway state machine and the second gateway state machine maintain track of a state of the plurality of premises devices.


The first gateway state machine and the second gateway state machine monitor and manage the plurality of premises devices.


The system includes at least one premises device of the plurality of premises devices configured to communicate with the virtual gateway over a cellular coupling.


Inbound communications to the virtual gateway comprise packet communications.


Outbound communications from the virtual gateway comprise short message service (SMS) messages.


The cloud hub is configured to maintain a persistent connection with the cloud server environment.


The cloud hub is coupled to the cloud server environment using a broadband coupling.


The cloud hub is coupled to the cloud server environment using a cellular coupling.


The system includes a remote device coupled to the cloud server environment, wherein the remote device receives state data of the plurality of premises devices and provides control data to the plurality of premises devices.


The remote device is coupled to the cloud server via at least one of a mobile portal and a web portal.


The plurality of premises devices includes at least one of a sensor, a detector, a camera, an input/output (I/O) device, a touchscreen controller, a video camera, an input/output (I/O) device, an actuator, and a device controller that controls an attached device.


At least one of the cloud hub and the virtual gateway is configured to maintain state data of the security system, and control interaction among the plurality of premises devices and the security system.


The security system is coupled to the virtual gateway using at least one of a broadband coupling and a cellular coupling.


The security system is coupled to the virtual gateway using a broadband coupling.


The cloud hub is coupled to the gateway using a cellular coupling.


The cloud server environment includes a security server.


The plurality of security system components includes at least one of a sensor, a detector, a camera, an input/output (I/O) device, and a touchscreen.


The plurality of security system components includes at least one of an Internet Protocol (IP) device, a video camera, an input/output (I/O) device, an actuator, and a device controller that controls an attached device.


Embodiments include a method comprising configuring a cloud hub to include a plurality of adapters. The plurality of adapters is coupled to a plurality of premises devices. The cloud hub is located in a premises and configured as a gateway for the premises devices. The method includes configuring a cloud server environment to include a virtual gateway. The virtual gateway is coupled to the cloud hub and configured as a server-side abstraction of the cloud hub. The method includes configuring the cloud hub and the virtual gateway as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices. The method includes configuring a coupling between the virtual gateway and a security system in the premises, wherein the security system includes a plurality of security system components.


Embodiments include a method comprising: configuring a cloud hub to include a plurality of adapters, wherein the plurality of adapters is coupled to a plurality of premises devices, wherein the cloud hub is located in a premises and configured as a gateway for the premises devices; configuring a cloud server environment to include a virtual gateway, wherein the virtual gateway is coupled to the cloud hub and configured as a server-side abstraction of the cloud hub; configuring the cloud hub and the virtual gateway as an automation platform that maintains state data of the plurality of premises devices, controls interaction among the plurality of premises devices, and monitors and manages the plurality of premises devices; configuring a coupling between the virtual gateway and a security system in the premises, wherein the security system includes a plurality of security system components.


The plurality of adapters includes an internet protocol (IP) adapter.


The IP adapter is coupled to a premises device including at least one IP device.


The plurality of adapters includes a radio adapter.


The method includes configuring the radio adapter to use a communication protocol of a premises device coupled to the radio adapter.


The radio adapter includes a wireless radio adapter.


The radio adapter is coupled to a premises device including at least one Zigbee device.


The plurality of adapters includes a camera adapter.


The camera adapter is coupled to a premises device including at least one camera device.


The at least one camera device includes a tunnel camera.


The plurality of adapters include a Wi-Fi adapter.


The cloud hub is coupled to a radio frequency (RF) bridge in the premises.


The RF bridge is coupled to at least one additional premises device.


The at least one additional premises device includes at least one Z-Wave device.


The method includes configuring the cloud server environment to include a session server, wherein the virtual gateway is an instance of a plurality of virtual gateways running on the session server.


The method includes configuring the cloud server environment to include at least one of a registry gateway and a session gateway, wherein the at least one the registry gateway and a session gateway are coupled to the session server.


The method includes configuring the registry gateway to identify the virtual gateway from the plurality of virtual gateways and route incoming data from the cloud hub to the virtual gateway.


The method includes configuring the routing of incoming data to include a mapping of premises device identification (ID) and device type to site ID corresponding to the premises.


The premises device ID corresponds to at least one of the plurality of premises devices.


The site ID is assigned to the cloud hub.


The method includes configuring the cloud hub to communicate with the registry gateway and receive the site ID.


The method includes configuring the cloud hub to communicate with the registry gateway and receive a network address of the credential gateway.


The method includes configuring the cloud server environment to include a credential gateway, and configuring the cloud hub to communicate with the credential gateway and, using the site ID, receive a key.


The method includes configuring the cloud hub to receive session server data from the credential gateway, wherein the session server data includes a session server address.


The method includes configuring the virtual gateway to comprise a first gateway state machine running on the session server.


The method includes configuring the cloud hub to include a processor running a second gateway state machine.


The method includes configuring at least one of the first gateway state machine and the second gateway state machine to maintain track of a state of the plurality of premises devices.


The method includes configuring at least one of the first gateway state machine and the second gateway state machine to monitor and manage the plurality of premises devices.


The method includes configuring the first gateway state machine and the second gateway state machine to maintain track of a state of the plurality of premises devices.


The method includes configuring the first gateway state machine and the second gateway state machine to monitor and manage the plurality of premises devices.


The method includes configuring at least one premises device of the plurality of premises devices to communicate with the virtual gateway over a cellular coupling.


The method includes configuring inbound communications to the virtual gateway to include packet communications.


The method includes configuring outbound communications from the virtual gateway to include short message service (SMS) messages.


The method includes configuring the cloud hub to maintain a persistent connection with the cloud server environment.


The method includes configuring the cloud hub to couple to the cloud server environment using a broadband coupling.


The method includes configuring the cloud hub to couple to the cloud server environment using a cellular coupling.


The method includes configuring the cloud server environment to couple to a remote device, wherein the remote device receives state data of the plurality of premises devices and provides control data to the plurality of premises devices.


The remote device is coupled to the cloud server via at least one of a mobile portal and a web portal.


The plurality of premises devices includes at least one of a sensor, a detector, a camera, an input/output (I/O) device, a touchscreen controller, a video camera, an input/output (I/O) device, an actuator, and a device controller that controls an attached device.


The method includes configuring at least one of the cloud hub and the virtual gateway to maintain state data of the security system, and control interaction among the plurality of premises devices and the security system.


The security system is coupled to the virtual gateway using at least one of a broadband coupling and a cellular coupling.


The security system is coupled to the virtual gateway using a broadband coupling.


The method includes configuring the cloud hub to couple to the gateway using a cellular coupling.


The method includes configuring the cloud server environment to include a security server.


The plurality of security system components includes at least one of a sensor, a detector, a camera, an input/output (I/O) device, and a touchscreen.


The plurality of security system components includes at least one of an Internet Protocol (IP) device, a video camera, an input/output (I/O) device, an actuator, and a device controller that controls an attached device.


As described above, computer networks suitable for use with the embodiments described herein include local area networks (LAN), wide area networks (WAN), Internet, or other connection services and network variations such as the world wide web, the public internet, a private internet, a private computer network, a public network, a mobile network, a cellular network, a value-added network, and the like. Computing devices coupled or connected to the network may be any microprocessor controlled device that permits access to the network, including terminal devices, such as personal computers, workstations, servers, mini computers, main-frame computers, laptop computers, mobile computers, palm top computers, hand held computers, mobile phones, TV set-top boxes, or combinations thereof. The computer network may include one of more LANs, WANs, Internets, and computers. The computers may serve as servers, clients, or a combination thereof.


The system can be a component of a single system, multiple systems, and/or geographically separate systems. The system can also be a subcomponent or subsystem of a single system, multiple systems, and/or geographically separate systems. The system can be coupled to one or more other components (not shown) of a host system or a system coupled to the host system.


One or more components of the system and/or a corresponding system or application to which the system is coupled or connected includes and/or runs under and/or in association with a processing system. The processing system includes any collection of processor-based devices or computing devices operating together, or components of processing systems or devices, as is known in the art. For example, the processing system can include one or more of a portable computer, portable communication device operating in a communication network, and/or a network server. The portable computer can be any of a number and/or combination of devices selected from among personal computers, personal digital assistants, portable computing devices, and portable communication devices, but is not so limited. The processing system can include components within a larger computer system.


The processing system of an embodiment includes at least one processor and at least one memory device or subsystem. The processing system can also include or be coupled to at least one database. The term “processor” as generally used herein refers to any logic processing unit, such as one or more central processing units (CPUs), digital signal processors (DSPs), application-specific integrated circuits (ASIC), etc. The processor and memory can be monolithically integrated onto a single chip, distributed among a number of chips or components, and/or provided by some combination of algorithms. The methods described herein can be implemented in one or more of software algorithm(s), programs, firmware, hardware, components, circuitry, in any combination.


The components of any system that includes the system herein can be located together or in separate locations. Communication paths couple the components and include any medium for communicating or transferring files among the components. The communication paths include wireless connections, wired connections, and hybrid wireless/wired connections. The communication paths also include couplings or connections to networks including local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), proprietary networks, interoffice or backend networks, and the Internet. Furthermore, the communication paths include removable fixed mediums like floppy disks, hard disk drives, and CD-ROM disks, as well as flash RAM, Universal Serial Bus (USB) connections, RS-232 connections, telephone lines, buses, and electronic mail messages.


Aspects of the systems and methods described herein may be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (PLDs), such as field programmable gate arrays (FPGAs), programmable array logic (PAL) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits (ASICs). Some other possibilities for implementing aspects of the systems and methods include: microcontrollers with memory (such as electronically erasable programmable read only memory (EEPROM)), embedded microprocessors, firmware, software, etc. Furthermore, aspects of the systems and methods may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. Of course the underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (MOSFET) technologies like complementary metal-oxide semiconductor (CMOS), bipolar technologies like emitter-coupled logic (ECL), polymer technologies (e.g., silicon-conjugated polymer and metal-conjugated polymer-metal structures), mixed analog and digital, etc.


It should be noted that any system, method, and/or other components disclosed herein may be described using computer aided design tools and expressed (or represented), as data and/or instructions embodied in various computer-readable media, in terms of their behavioral, register transfer, logic component, transistor, layout geometries, and/or other characteristics. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) and carrier waves that may be used to transfer such formatted data and/or instructions through wireless, optical, or wired signaling media or any combination thereof. Examples of transfers of such formatted data and/or instructions by carrier waves include, but are not limited to, transfers (uploads, downloads, e-mail, etc.) over the Internet and/or other computer networks via one or more data transfer protocols (e.g., HTTP, FTP, SMTP, etc.). When received within a computer system via one or more computer-readable media, such data and/or instruction-based expressions of the above described components may be processed by a processing entity (e.g., one or more processors) within the computer system in conjunction with execution of one or more other computer programs.


Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of “including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words “herein,” “hereunder,” “above,” “below,” and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. When the word “or” is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.


The above description of embodiments of the systems and methods is not intended to be exhaustive or to limit the systems and methods to the precise forms disclosed. While specific embodiments of, and examples for, the systems and methods are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the systems and methods, as those skilled in the relevant art will recognize. The teachings of the systems and methods provided herein can be applied to other systems and methods, not only for the systems and methods described above.


The elements and acts of the various embodiments described above can be combined to provide further embodiments. These and other changes can be made to the systems and methods in light of the above detailed description.

Claims
  • 1. A method comprising: receiving, by a first session server of a plurality of session servers located external to a premises, wherein each session server of the plurality of session servers is configured to host one or more virtual gateways, and from a premises management system located at the premises, a message indicating state data associated with the premises management system;determining, by the first session server and based on the message, a second session server of the plurality of session servers hosting a first virtual gateway associated with the premises management system and a third session server of the plurality of session servers hosting a second virtual gateway associated with the first premises management system;causing, by the first session server, shutdown of the second virtual gateway on the third session server; androuting, by the first session server and to the second session server, the message.
  • 2. The method of claim 1, wherein the determining the second session server comprises: determining, based on the message, that the first session server does not comprise a virtual gateway associated with the premises management system.
  • 3. The method of claim 1, further comprising: causing, by the first session server and based on the first message, execution of the first virtual gateway on the second session server.
  • 4. The method of claim 1, wherein the determining the second session server comprises: broadcasting, by the first session server and to the other session servers of the plurality of session servers, a request for a return response indicating that the respective session server comprises a virtual gateway associated with the premises management system; andreceiving, by the first session server and from the second session server, a return response indicating that the second session server comprises the first virtual gateway.
  • 5. The method of claim 1, further comprising: receiving, by the first session server and from a second premises device associated with a second premises management system located at a second premises, a second message indicating state data associated with the second premises management system;determining, by the first session server and based on the second message, that no other session servers of the plurality of session servers comprise a virtual gateway associated with the second premises management system; andcausing, by the first session server and based on the second message, execution of a third virtual gateway, associated with the second premises management system, on the first session server.
  • 6. The method of claim 1, wherein the first virtual gateway comprises a gateway state machine associated with the premises management system.
  • 7. The method of claim 6, wherein the gateway state machine is configured to store the message to maintain state data associated with the premises management system.
  • 8. The method of claim 1, wherein the first virtual gateway is configured to: transmit, to a computing device located external to the premises, the state data; andreceive, from the computing device, control data for the premises management system.
  • 9. The method of claim 1, wherein the message comprises a User Datagram Protocol (UDP) message.
  • 10. The method of claim 1, wherein the first session server and the premises management system are configured to communicate via a persistent network connection between the first session server and the premises management system.
  • 11. The method of claim 10, wherein the persistent network connection comprises a Transmission Control Protocol (TCP) connection.
  • 12. The method of claim 1, wherein the receiving the message comprises: receiving, via at least one of a security panel located at the premises or a network device located at the premises, the message.
  • 13. The method of claim 1, wherein the state data is associated with at least one of a sensor, a detector, a camera, a touchscreen controller, a video camera, an input/output (I/O) device, an actuator, a device controller, a premises gateway, a network device, a network router, or a security panel.
  • 14. A first session server device comprising: one or more processors; andmemory storing instructions that, when executed by the one or more processors, cause the first session server device to: receive, from a premises management system located at a premises, a message indicating state data associated with the premises management system;determine, based on the message, a second session server of a plurality of session servers located external to the premises, wherein each session server of the plurality of session servers is configured to host one or more virtual gateways, the second session server hosting a first virtual gateway associated with the premises management system;determine, based on the first message, a third session server of the plurality of session servers hosting a second virtual gateway associated with the premises management system;cause, by the first session server device, shutdown of the second virtual gateway on the third session server; androute, to the second session server, the message.
  • 15. The device of claim 14, wherein the device comprises multiple session servers of the plurality of session servers.
  • 16. The device of claim 14, wherein the instructions, when executed by the one or more processors, further cause the device to: determine the first session server by determining, based on the message, that the device does not comprise a virtual gateway associated with the premises management system.
  • 17. The device of claim 14, wherein the instructions, when executed by the one or more processors, further cause the device to: cause, based on the message, execution of the first virtual gateway on the first session server.
  • 18. The device of claim 14, wherein the instructions, when executed by the one or more processors, further cause the device to: determine the second session server by: broadcasting, to the plurality of session servers, a request for a return response indicating that the respective session server comprises a virtual gateway associated with the premises management system; andreceiving, from the second session server, a return response indicating that the second session server comprises the first virtual gateway.
  • 19. The device of claim 14, wherein the instructions, when executed by the one or more processors, further cause the device to: receive, from a second premises management system located at a second premises, a second message indicating state data associated with the second premises management system;determine, based on the second message, that no other session servers of the plurality of session servers comprise a virtual gateway associated with the second premises management system; andcause, based on the second message, execution of a third virtual gateway, associated with the second premises management system, on the device.
  • 20. A system comprising: a plurality of premises devices associated with a premises management system located at a premises; anda first session server of a plurality of session servers, wherein the plurality of session servers are located external to the premises and wherein each one of the plurality of session servers is configured to host one or more virtual gateways, wherein the first session server is configured to: receive, from a premises device of the plurality of premises devices, a message indicating state data associated with the premises management system;determine, based on the message, a second session server of the plurality of session servers hosting a first virtual gateway of the one or more virtual gateways that is associated with the premises management system;determine, based on the first message, a third session server of the plurality of session servers hosting a second virtual gateway associated with the premises management system;cause, by the first session server, shutdown of the second virtual gateway on the third session server; androute, to the second session server, the message.
  • 21. The system of claim 20, wherein the first session server is further configured to: determine the second session server by determining, based on the message, that the first session server does not comprise a virtual gateway associated with the premises management system.
  • 22. The system of claim 20, wherein the first session server is further configured to: cause, based on the message, execution of the first virtual gateway on the second session server.
  • 23. The system of claim 20, wherein the first session server is further configured to: determine the second session server by: broadcasting, to the other session servers of the plurality of session servers, a request for a return response indicating that the respective session server comprises a virtual gateway associated with the premises management system; andreceiving, from the second session server, a return response indicating that the second session server comprises the first virtual gateway.
  • 24. The system of claim 20, wherein the first session server is further configured to: receive, from a second premises device associated with a second premises management system located at a second premises, a second message indicating state data associated with the second premises management system;determine, based on the second message, that no other session servers of the plurality of session servers comprise a virtual gateway associated with the second premises management system; andcause, based on the second message, execution of a third virtual gateway, associated with the second premises management system, on the first session server.
  • 25. The system of claim 20, wherein the first virtual gateway comprises a gateway state machine associated with the premises management system.
  • 26. The system of claim 25, wherein the gateway state machine is configured to store the message to maintain state data associated with the premises management system.
  • 27. The system of claim 20, wherein the first virtual gateway is configured to: transmit, to a computing device located external to the premises, the state data; andreceive, from the computing device, control data for the premises management system.
  • 28. A non-transitory computer-readable medium storing instructions that, when executed, cause: receiving, by a first session server of a plurality of session servers located external to a premises, wherein each session server of the plurality of session servers is configured to host one or more virtual gateways, and from a premises management system located at the premises, a message indicating state data associated with the premises management system;determining, by the first session server and based on the message, a second session server of the plurality of session servers hosting a first virtual gateway associated with the premises management system;determining, by the first session server and based on the first message, a third session server of the plurality of session servers hosting a second virtual gateway associated with the premises management system;causing, by the first session server, shutdown of the second virtual gateway on the third session server; androuting, by the first session server and to the second session server, the message.
  • 29. The non-transitory computer-readable medium of claim 28, wherein the determining the second session server comprises: determining, based on the message, that the first session server does not comprise a virtual gateway associated with the premises management system.
  • 30. The non-transitory computer-readable medium of claim 28, wherein the determining the second session server comprises: broadcasting, by the first session server and to the other session servers of the plurality of session servers, a request for a return response indicating that the respective session server comprises a virtual gateway associated with the premises management system; andreceiving, by the first session server and from the second session server, a return response indicating that the second session server comprises the first virtual gateway.
  • 31. The non-transitory computer-readable medium of claim 28, wherein the instructions, when executed, further cause: causing, by the first session server and based on the message, execution of the first virtual gateway on the second session server.
  • 32. The non-transitory computer-readable medium of claim 28, wherein the instructions, when executed, further cause: receiving, by the first session server and from a second premises device associated with a second premises management system located at a second premises, a second message indicating state data associated with the second premises management system;determining, by the first session server and based on the second message, that no other session servers of the plurality of session servers comprise a virtual gateway associated with the second premises management system; andcausing, by the first session server and based on the second message, execution of a third virtual gateway, associated with the second premises management system, on the first session server.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of United States (U.S.) patent application Ser. No. 15/198,855, filed on Jun. 30, 2016, now U.S. Pat. No. 10,530,839. This application claims the benefit of U.S. Patent Application No. 62/186,925, filed Jun. 30, 2015. This application claims the benefit of U.S. Patent Application No. 62/186,974, filed Jun. 30, 2015. This application claims the benefit of U.S. Patent Application No. 62/186,696, filed Jun. 30, 2015. This application claims the benefit of U.S. Patent Application No. 62/186,825, filed Jun. 30, 2015. This application claims the benefit of U.S. Patent Application No. 62/186,857, filed Jun. 30, 2015. This application is a divisional application of U.S. patent application Ser. No. 15/198,531, filed Jun. 30, 2016, now U.S. Pat. No. 11,190,578. This application is a continuation in part application of U.S. patent application Ser. No. 15/196,646, filed Jun. 29, 2016, now abandoned. This application is a continuation in part application of U.S. patent application Ser. No. 12/189,780, filed Aug. 11, 2008, now abandoned. This application is a continuation in part application of U.S. patent application Ser. No. 13/531,757, filed Jun. 25, 2012, now abandoned. This application is a continuation in part application of U.S. patent application Ser. No. 12/197,958, filed Aug. 25, 2008, now U.S. Pat. No. 10,721,087. This application is a continuation in part application of U.S. patent application Ser. No. 13/334,998, filed Dec. 22, 2011, now U.S. Pat. No. 9,531,593. This application is a continuation in part application of U.S. patent application Ser. No. 12/539,537, filed Aug. 11, 2009, now U.S. Pat. No. 10,156,959. This application is a continuation in part application of U.S. patent application Ser. No. 14/645,808, filed Mar. 12, 2015, now U.S. Pat. No. 10,127,801. This application is a continuation in part application of U.S. patent application Ser. No. 13/104,932, filed May 10, 2011, now abandoned. This application is a continuation in part application of U.S. patent application Ser. No. 13/929,568, filed Jun. 27, 2013, now U.S. Pat. No. 10,444,964. This application is a continuation in part application of U.S. patent application Ser. No. 14/628,651, filed Feb. 23, 2015, now U.S. Pat. No. 10,091,014. This application is a continuation in part application of U.S. patent application Ser. No. 13/718,851, filed Dec. 18, 2012, now U.S. Pat. No. 10,156,831. This application is a continuation in part application of U.S. patent application Ser. No. 12/972,740, filed Dec. 20, 2010, now U.S. Pat. No. 9,729,342. This application is a continuation in part application of U.S. patent application Ser. No. 13/954,553, filed Jul. 30, 2013, now U.S. Pat. No. 11,582,065. This application is a continuation in part application of U.S. patent application Ser. No. 14/943,162, filed Nov. 17, 2015, now U.S. Pat. No. 10,062,245. This application is a continuation in part application of U.S. patent application Ser. No. 15/177,915, filed Jun. 9, 2016, now U.S. Pat. No. 11,316,958.

US Referenced Citations (2407)
Number Name Date Kind
686838 Richard Nov 1901 A
1738540 Replogle et al. Dec 1929 A
3803576 Dobrzanski et al. Apr 1974 A
3852541 Altenberger Dec 1974 A
4006460 Hewitt et al. Feb 1977 A
4141006 Braxton Feb 1979 A
4206449 Apsell et al. Jun 1980 A
4257038 Rounds et al. Mar 1981 A
4286331 Anderson et al. Aug 1981 A
4304970 Fahey et al. Dec 1981 A
4351023 Richer Sep 1982 A
4363031 Reinowitz Dec 1982 A
4459582 Sheahan et al. Jul 1984 A
4520503 Kirst et al. May 1985 A
4559526 Tani et al. Dec 1985 A
4559527 Kirby Dec 1985 A
4567557 Burns Jan 1986 A
4574305 Campbell et al. Mar 1986 A
4581606 Mallory Apr 1986 A
4591834 Kyle May 1986 A
D284084 Ferrara, Jr. Jun 1986 S
4641127 Hogan et al. Feb 1987 A
4652859 Van Wienen Mar 1987 A
4670739 Kelly, Jr. Jun 1987 A
4683460 Nakatsugawa Jul 1987 A
4694282 Tamura et al. Sep 1987 A
4716973 Cobern Jan 1988 A
4730184 Bach Mar 1988 A
4754261 Marino Jun 1988 A
4755792 Pezzolo et al. Jul 1988 A
4779007 Schlanger et al. Oct 1988 A
4801924 Burgmann et al. Jan 1989 A
4812820 Chatwin Mar 1989 A
4818970 Natale et al. Apr 1989 A
4833339 Luchaco et al. May 1989 A
4833449 Gaffigan May 1989 A
4855713 Brunius Aug 1989 A
4860185 Brewer et al. Aug 1989 A
4887064 Drori et al. Dec 1989 A
4897630 Nykerk Jan 1990 A
4918623 Lockitt et al. Apr 1990 A
4918717 Bissonnette et al. Apr 1990 A
4951029 Severson Aug 1990 A
4959713 Morotomi et al. Sep 1990 A
4962473 Crain Oct 1990 A
4980666 Hwang Dec 1990 A
4993059 Smith et al. Feb 1991 A
4994787 Kratt et al. Feb 1991 A
4996646 Farrington Feb 1991 A
5023901 Sloan et al. Jun 1991 A
5083106 Kostusiak et al. Jan 1992 A
5086385 Launey et al. Feb 1992 A
5091780 Pomerleau Feb 1992 A
5109278 Erickson et al. Apr 1992 A
5132968 Cephus Jul 1992 A
5134644 Garton et al. Jul 1992 A
5159315 Schultz et al. Oct 1992 A
5160879 Tortola et al. Nov 1992 A
5164703 Rickman Nov 1992 A
5164979 Choi Nov 1992 A
D337569 Kando Jul 1993 S
5227776 Starefoss Jul 1993 A
5237305 Ishikuro et al. Aug 1993 A
5245694 Zwern Sep 1993 A
5280527 Gullman et al. Jan 1994 A
5283816 Gomez Diaz Feb 1994 A
5299971 Hart Apr 1994 A
5319394 Dukek Jun 1994 A
5319698 Glidewell et al. Jun 1994 A
5334974 Simms et al. Aug 1994 A
5400011 Sutton Mar 1995 A
5400246 Wilson et al. Mar 1995 A
5406260 Cummings et al. Apr 1995 A
5410343 Coddington et al. Apr 1995 A
5412708 Katz May 1995 A
5414409 Voosen et al. May 1995 A
5414833 Hershey et al. May 1995 A
5428293 Sinclair et al. Jun 1995 A
5438607 Przygoda et al. Aug 1995 A
5446445 Bloomfield et al. Aug 1995 A
5448290 Vanzeeland Sep 1995 A
5452344 Larson Sep 1995 A
5465081 Todd Nov 1995 A
5471194 Guscott Nov 1995 A
5481312 Cash et al. Jan 1996 A
5483224 Rankin et al. Jan 1996 A
5486812 Todd Jan 1996 A
5499014 Greenwaldt Mar 1996 A
5499196 Pacheco Mar 1996 A
5510975 Ziegler, Jr. Apr 1996 A
5519878 Dolin, Jr. May 1996 A
RE35268 Frolov et al. Jun 1996 E
5525966 Parish Jun 1996 A
5526428 Arnold Jun 1996 A
5534845 Issa et al. Jul 1996 A
5541585 Duhame et al. Jul 1996 A
5543778 Stouffer Aug 1996 A
5546072 Creuseremee et al. Aug 1996 A
5546074 Bernal et al. Aug 1996 A
5546447 Skarbo et al. Aug 1996 A
5548646 Aziz et al. Aug 1996 A
5550984 Gelb Aug 1996 A
5557254 Johnson et al. Sep 1996 A
5565843 Meyvis Oct 1996 A
5570079 Dockery Oct 1996 A
5572438 Ehlers et al. Nov 1996 A
5578989 Pedtke Nov 1996 A
5579197 Mengelt et al. Nov 1996 A
5579221 Mun Nov 1996 A
D377034 Matsushita Dec 1996 S
5586254 Kondo et al. Dec 1996 A
5587705 Morris Dec 1996 A
5598086 Somerville Jan 1997 A
5602918 Chen et al. Feb 1997 A
5604493 Behlke Feb 1997 A
5606615 Lapointe et al. Feb 1997 A
5621662 Humphries et al. Apr 1997 A
5623601 Vu Apr 1997 A
5625338 Pildner et al. Apr 1997 A
5625410 Washino et al. Apr 1997 A
5629687 Sutton et al. May 1997 A
5630216 Mcewan May 1997 A
5631630 Mcsweeney May 1997 A
5638046 Malinowski Jun 1997 A
5650773 Chiarello Jul 1997 A
5651070 Blunt Jul 1997 A
5652567 Traxler Jul 1997 A
5654694 Newham Aug 1997 A
5675321 Mcbride Oct 1997 A
5680131 Utz Oct 1997 A
5682133 Johnson et al. Oct 1997 A
5686885 Bergman Nov 1997 A
5686896 Bergman Nov 1997 A
5689235 Sugimoto et al. Nov 1997 A
5689708 Regnier et al. Nov 1997 A
5691697 Carvalho et al. Nov 1997 A
5694335 Hollenberg Dec 1997 A
5694595 Jacobs et al. Dec 1997 A
5696486 Poliquin et al. Dec 1997 A
5696898 Baker et al. Dec 1997 A
D389501 Mascarenas et al. Jan 1998 S
5706191 Bassett et al. Jan 1998 A
5712679 Coles Jan 1998 A
5714933 Le Van Suu Feb 1998 A
5715394 Jabs Feb 1998 A
5717378 Malvaso et al. Feb 1998 A
5717379 Peters Feb 1998 A
5717578 Afzal Feb 1998 A
5719551 Flick Feb 1998 A
5726912 Krall et al. Mar 1998 A
5731756 Roddy Mar 1998 A
5736927 Stebbins et al. Apr 1998 A
5737391 Dame et al. Apr 1998 A
5748084 Isikoff May 1998 A
5748089 Sizemore May 1998 A
5757616 May et al. May 1998 A
5761206 Kackman Jun 1998 A
5774051 Kostusiak Jun 1998 A
5777551 Hess Jul 1998 A
5777837 Eckel et al. Jul 1998 A
5784461 Shaffer et al. Jul 1998 A
5784463 Chen et al. Jul 1998 A
5790531 Ellebracht et al. Aug 1998 A
5793028 Wagener et al. Aug 1998 A
5793763 Mayes et al. Aug 1998 A
5794128 Brockel et al. Aug 1998 A
5796401 Winer Aug 1998 A
5798701 Bernal et al. Aug 1998 A
5801618 Jenkins Sep 1998 A
5805056 Mueller et al. Sep 1998 A
5805064 Yorkey Sep 1998 A
5809013 Kackman Sep 1998 A
5809265 Blair et al. Sep 1998 A
5812054 Cohen Sep 1998 A
5819124 Somner et al. Oct 1998 A
5821937 Tonelli Oct 1998 A
5838226 Houggy et al. Nov 1998 A
5844599 Hildin Dec 1998 A
5845070 Koichiro Dec 1998 A
5845081 Rangarajan et al. Dec 1998 A
5854588 Dockery Dec 1998 A
5859966 Hayman et al. Jan 1999 A
5861804 Fansa et al. Jan 1999 A
5864614 Farris et al. Jan 1999 A
5867484 Shaunfield Feb 1999 A
5867495 Elliott et al. Feb 1999 A
5874952 Morgan Feb 1999 A
5875395 Holmes Feb 1999 A
5877696 Powell Mar 1999 A
5877957 Bennett Mar 1999 A
5880775 Ross Mar 1999 A
5881226 Veneklase Mar 1999 A
5886894 Rakoff Mar 1999 A
5892442 Ozery Apr 1999 A
5898831 Hall et al. Apr 1999 A
5905438 Weiss et al. May 1999 A
5907279 Bruins et al. May 1999 A
5909183 Borgstahl et al. Jun 1999 A
5914655 Clifton et al. Jun 1999 A
5924069 Kowalkowski et al. Jul 1999 A
5926209 Glatt Jul 1999 A
5933098 Haxton Aug 1999 A
5940387 Humpleman Aug 1999 A
5943394 Ader et al. Aug 1999 A
5952815 Rouillard et al. Sep 1999 A
5955946 Beheshti et al. Sep 1999 A
5958053 Denker Sep 1999 A
5959528 Right et al. Sep 1999 A
5959529 Kail, IV Sep 1999 A
5963916 Kaplan Oct 1999 A
5967975 Ridgeway Oct 1999 A
5974547 Klimenko Oct 1999 A
D416910 Vasquez Nov 1999 S
5982418 Ely Nov 1999 A
5991795 Howard et al. Nov 1999 A
5995838 Oda et al. Nov 1999 A
6002430 Mccall et al. Dec 1999 A
6009320 Dudley Dec 1999 A
6011321 Stancu et al. Jan 2000 A
6011921 Takahashi et al. Jan 2000 A
6032036 Maystre et al. Feb 2000 A
6037991 Thro et al. Mar 2000 A
6038289 Sands Mar 2000 A
6040770 Britton Mar 2000 A
6049272 Lee et al. Apr 2000 A
6049273 Hess Apr 2000 A
6049598 Peters et al. Apr 2000 A
6052052 Delmonaco Apr 2000 A
6058115 Sawyer et al. May 2000 A
6060994 Chen May 2000 A
6067346 Akhteruzzaman May 2000 A
6067440 Diefes May 2000 A
6069655 Seeley et al. May 2000 A
6078253 Fowler Jun 2000 A
6078257 Ferraro Jun 2000 A
6078649 Small et al. Jun 2000 A
6085030 Whitehead et al. Jul 2000 A
6085238 Yuasa et al. Jul 2000 A
6091771 Seeley et al. Jul 2000 A
6094134 Cohen Jul 2000 A
6097429 Seeley et al. Aug 2000 A
6104785 Chen Aug 2000 A
6107918 Klein et al. Aug 2000 A
6107930 Behlke et al. Aug 2000 A
6108034 Kim Aug 2000 A
6112015 Planas et al. Aug 2000 A
6112237 Donaldson et al. Aug 2000 A
6117182 Alpert et al. Sep 2000 A
6124882 Voois et al. Sep 2000 A
6128653 Del et al. Oct 2000 A
6134303 Chen Oct 2000 A
6134591 Nickles Oct 2000 A
6138249 Nolet Oct 2000 A
6139177 Venkatraman et al. Oct 2000 A
6140987 Stein et al. Oct 2000 A
6144993 Fukunaga et al. Nov 2000 A
6154133 Ross et al. Nov 2000 A
6157649 Peirce et al. Dec 2000 A
6157943 Meyer Dec 2000 A
6161182 Nadooshan Dec 2000 A
6167186 Kawasaki et al. Dec 2000 A
6167253 Farris et al. Dec 2000 A
6181341 Shinagawa Jan 2001 B1
6192282 Smith et al. Feb 2001 B1
6192418 Hale et al. Feb 2001 B1
6198475 Kunimatsu et al. Mar 2001 B1
6198479 Humpleman et al. Mar 2001 B1
6208247 Agre et al. Mar 2001 B1
6208952 Goertzel et al. Mar 2001 B1
6209011 Vong et al. Mar 2001 B1
6211783 Wang Apr 2001 B1
6215404 Morales Apr 2001 B1
6218938 Lin Apr 2001 B1
6219677 Howard Apr 2001 B1
6226031 Barraclough et al. May 2001 B1
6229429 Horon May 2001 B1
6230271 Wadlow et al. May 2001 B1
6239892 Davidson May 2001 B1
6243683 Peters Jun 2001 B1
6246320 Monroe Jun 2001 B1
6252883 Schweickart et al. Jun 2001 B1
6268789 Diamant et al. Jul 2001 B1
6271752 Vaios Aug 2001 B1
6275227 DeStefano Aug 2001 B1
6281790 Kimmel et al. Aug 2001 B1
6282569 Wallis et al. Aug 2001 B1
6286038 Reichmeyer et al. Sep 2001 B1
6288716 Humpleman et al. Sep 2001 B1
6289382 Bowman-Amuah Sep 2001 B1
6292766 Mattos et al. Sep 2001 B1
6292827 Raz Sep 2001 B1
6295346 Markowitz et al. Sep 2001 B1
6314425 Serbinis et al. Nov 2001 B1
6320506 Ferraro Nov 2001 B1
6323897 Kogane et al. Nov 2001 B1
D451529 Vasquez Dec 2001 S
6327044 Shima Dec 2001 B1
6331122 Wu Dec 2001 B1
6332193 Glass et al. Dec 2001 B1
6341274 Leon Jan 2002 B1
6347393 Alpert et al. Feb 2002 B1
6351213 Hirsch et al. Feb 2002 B1
6351271 Mainwaring et al. Feb 2002 B1
6351595 Kim Feb 2002 B1
6351829 Dupont et al. Feb 2002 B1
6353853 Gravlin Mar 2002 B1
6353891 Borella et al. Mar 2002 B1
6359560 Budge et al. Mar 2002 B1
6363417 Howard et al. Mar 2002 B1
6363422 Hunter et al. Mar 2002 B1
6366211 Parker Apr 2002 B1
6369695 Horon Apr 2002 B2
6369705 Kennedy Apr 2002 B1
6370436 Howard et al. Apr 2002 B1
6374079 Hsu Apr 2002 B1
6377861 York Apr 2002 B1
6378109 Young et al. Apr 2002 B1
6385772 Courtney May 2002 B1
6392538 Shere May 2002 B1
6396531 Gerszberg et al. May 2002 B1
6400265 Saylor et al. Jun 2002 B1
6405348 Fallah-Tehrani et al. Jun 2002 B1
6411802 Cardina et al. Jun 2002 B1
D460472 Wang Jul 2002 S
6418037 Zhang Jul 2002 B1
6421080 Lambert Jul 2002 B1
6430629 Smyers Aug 2002 B1
6433683 Robinson Aug 2002 B1
6434604 Harada et al. Aug 2002 B1
6434700 Alonso et al. Aug 2002 B1
6437692 Petite et al. Aug 2002 B1
6441723 Mansfield et al. Aug 2002 B1
6441731 Hess Aug 2002 B1
6442241 Tsumpes Aug 2002 B1
6445291 Addy et al. Sep 2002 B2
6446111 Lowery Sep 2002 B1
6446192 Narasimhan et al. Sep 2002 B1
6452490 Garland et al. Sep 2002 B1
6452923 Gerszberg et al. Sep 2002 B1
6452924 Golden et al. Sep 2002 B1
6453687 Sharood et al. Sep 2002 B2
D464328 Vasquez et al. Oct 2002 S
D464948 Vasquez et al. Oct 2002 S
6462507 Fisher, Jr. Oct 2002 B2
6462663 Wilson et al. Oct 2002 B1
6467084 Howard et al. Oct 2002 B1
6476858 Ramirez et al. Nov 2002 B1
6480901 Weber et al. Nov 2002 B1
6493020 Stevenson et al. Dec 2002 B1
6496927 Mcgrane et al. Dec 2002 B1
6499131 Savithri et al. Dec 2002 B1
6504479 Lemons et al. Jan 2003 B1
6507589 Ramasubramani et al. Jan 2003 B1
6508709 Karmarkar Jan 2003 B1
6515968 Combar et al. Feb 2003 B1
6526581 Edson Feb 2003 B1
6529230 Chong Mar 2003 B1
6529589 Nelson et al. Mar 2003 B1
6529723 Bentley Mar 2003 B1
6535110 Arora et al. Mar 2003 B1
6542075 Barker et al. Apr 2003 B2
6542992 Peirce et al. Apr 2003 B1
6549130 Joao Apr 2003 B1
6552647 Thiessen et al. Apr 2003 B1
6553336 Johnson et al. Apr 2003 B1
6559769 Anthony et al. May 2003 B2
6563800 Salo et al. May 2003 B1
6563910 Menard et al. May 2003 B2
6567122 Anderson et al. May 2003 B1
6567502 Zellner et al. May 2003 B2
6574234 Myer et al. Jun 2003 B1
6580424 Krumm Jun 2003 B1
6580950 Johnson et al. Jun 2003 B1
6587046 Joao Jul 2003 B2
6587235 Chaudhuri et al. Jul 2003 B1
6587455 Ray et al. Jul 2003 B1
6587736 Howard et al. Jul 2003 B2
6587739 Abrams et al. Jul 2003 B1
6591094 Bentley Jul 2003 B1
6593856 Madau Jul 2003 B1
6597703 Li et al. Jul 2003 B1
6601086 Howard et al. Jul 2003 B1
6603488 Humpleman et al. Aug 2003 B2
6609127 Lee et al. Aug 2003 B1
6611206 Eshelman et al. Aug 2003 B2
6615088 Myer et al. Sep 2003 B1
6621827 Rezvani et al. Sep 2003 B1
6624750 Marman et al. Sep 2003 B1
6631416 Bendinelli et al. Oct 2003 B2
6636893 Fong Oct 2003 B1
6643355 Tsumpes Nov 2003 B1
6643652 Helgeson et al. Nov 2003 B2
6643669 Novak et al. Nov 2003 B1
6643795 Sicola et al. Nov 2003 B1
6648682 Wu Nov 2003 B1
6658091 Naidoo et al. Dec 2003 B1
6661340 Saylor et al. Dec 2003 B1
6662340 Rawat et al. Dec 2003 B2
6665004 Paff Dec 2003 B1
6667688 Menard et al. Dec 2003 B1
6674767 Kadyk et al. Jan 2004 B1
6675365 Elzinga Jan 2004 B2
6680730 Shields et al. Jan 2004 B1
6686838 Rezvani et al. Feb 2004 B1
6690411 Naidoo et al. Feb 2004 B2
6690719 Raphaeli et al. Feb 2004 B1
6693530 Dowens et al. Feb 2004 B1
6693545 Brown et al. Feb 2004 B2
6697103 Fernandez et al. Feb 2004 B1
6704786 Gupta et al. Mar 2004 B1
6716101 Meadows et al. Apr 2004 B1
6720990 Walker et al. Apr 2004 B1
6721689 Markle et al. Apr 2004 B2
6721740 Skinner et al. Apr 2004 B1
6721747 Lipkin Apr 2004 B2
6721802 Wright et al. Apr 2004 B1
6727811 Fendis Apr 2004 B1
6728233 Park et al. Apr 2004 B1
6728688 Hirsch et al. Apr 2004 B1
6738824 Blair May 2004 B1
6741171 Palka et al. May 2004 B2
6741977 Nagaya et al. May 2004 B1
6754717 Day et al. Jun 2004 B1
6756896 Ford Jun 2004 B2
6756998 Bilger Jun 2004 B1
6759956 Menard et al. Jul 2004 B2
6762686 Tabe Jul 2004 B1
6766353 Lin et al. Jul 2004 B1
6771181 Hughen, Jr. Aug 2004 B1
6778085 Faulkner et al. Aug 2004 B2
6779019 Mousseau et al. Aug 2004 B1
6781509 Oppedahl et al. Aug 2004 B1
6785542 Blight et al. Aug 2004 B1
6789147 Kessler et al. Sep 2004 B1
6795322 Aihara et al. Sep 2004 B2
6795863 Doty, Jr. Sep 2004 B1
6798344 Faulkner et al. Sep 2004 B2
6804638 Fiedler Oct 2004 B2
6810409 Fry et al. Oct 2004 B1
6810420 Buse et al. Oct 2004 B1
6823223 Gonzales et al. Nov 2004 B2
6826173 Kung et al. Nov 2004 B1
6826233 Hajime Nov 2004 B1
6829478 Layton et al. Dec 2004 B1
6834208 Gonzales et al. Dec 2004 B2
6836214 Choi Dec 2004 B2
6850252 Hoffberg Feb 2005 B1
6856236 Christensen et al. Feb 2005 B2
6857026 Cain Feb 2005 B1
6859831 Gelvin et al. Feb 2005 B1
6865690 Kocin Mar 2005 B2
6871193 Campbell et al. Mar 2005 B1
6873256 Lemelson et al. Mar 2005 B2
6885362 Suomela Apr 2005 B2
D504889 Andre et al. May 2005 S
6891838 Petite et al. May 2005 B1
6912429 Bilger Jun 2005 B1
6914533 Petite Jul 2005 B2
6918112 Bourke-Dunphy et al. Jul 2005 B2
6920502 Araujo et al. Jul 2005 B2
6920615 Campbell et al. Jul 2005 B1
6922701 Ananian et al. Jul 2005 B1
6928148 Simon et al. Aug 2005 B2
6930598 Weiss Aug 2005 B2
6930599 Naidoo et al. Aug 2005 B2
6930730 Maxson et al. Aug 2005 B2
6931445 Davis Aug 2005 B2
6941258 Van et al. Sep 2005 B2
6943681 Rezvani et al. Sep 2005 B2
6956477 Chun Oct 2005 B2
6957186 Guheen et al. Oct 2005 B1
6957275 Sekiguchi Oct 2005 B1
6959341 Leung Oct 2005 B1
6959393 Hollis et al. Oct 2005 B2
6963908 Lynch et al. Nov 2005 B1
6963981 Bailey et al. Nov 2005 B1
6965294 Elliott et al. Nov 2005 B1
6965313 Saylor et al. Nov 2005 B1
6970183 Monroe Nov 2005 B1
6971063 Rappaport et al. Nov 2005 B1
6971076 Chen Nov 2005 B2
6972676 Kimmel et al. Dec 2005 B1
6975220 Foodman et al. Dec 2005 B1
6977485 Wei Dec 2005 B1
6983432 Hayes Jan 2006 B2
6990591 Pearson Jan 2006 B1
6993658 Engberg et al. Jan 2006 B1
6999562 Winick Feb 2006 B2
6999992 Deen et al. Feb 2006 B1
7015806 Naidoo et al. Mar 2006 B2
7016970 Harumoto et al. Mar 2006 B2
7019639 Stilp Mar 2006 B2
7020697 Goodman et al. Mar 2006 B1
7020701 Gelvin et al. Mar 2006 B1
7023913 Monroe Apr 2006 B1
7023914 Furukawa et al. Apr 2006 B2
7023975 Mansfield et al. Apr 2006 B2
7024676 Klopfenstein Apr 2006 B1
7028328 Kogane et al. Apr 2006 B2
7030752 Tyroler Apr 2006 B2
7032002 Rezvani et al. Apr 2006 B1
7034681 Yamamoto et al. Apr 2006 B2
7035907 Decasper et al. Apr 2006 B1
7039391 Rezvani et al. May 2006 B2
7042880 Voit et al. May 2006 B1
7043537 Pratt May 2006 B1
7047088 Nakamura et al. May 2006 B2
7047092 Wimsatt May 2006 B2
7047180 Mathews et al. May 2006 B1
7050388 Kim et al. May 2006 B2
7053764 Stilp May 2006 B2
7053765 Clark May 2006 B1
7068164 Duncan et al. Jun 2006 B1
7072934 Helgeson et al. Jul 2006 B2
7073140 Li et al. Jul 2006 B1
7075429 Marshall Jul 2006 B2
7079020 Stilp Jul 2006 B2
7080046 Rezvani et al. Jul 2006 B1
7081813 Winick et al. Jul 2006 B2
7082460 Hansen et al. Jul 2006 B2
7084756 Stilp Aug 2006 B2
7085814 Gandhi et al. Aug 2006 B1
7085937 Rezvani et al. Aug 2006 B1
7086018 Noriyuki Aug 2006 B2
7099944 Anschutz et al. Aug 2006 B1
7099994 Thayer et al. Aug 2006 B2
7103152 Naidoo et al. Sep 2006 B2
7106176 La et al. Sep 2006 B2
7107322 Freeny, Jr. Sep 2006 B1
7110774 Davis et al. Sep 2006 B1
7111072 Matthews Sep 2006 B1
7113090 Saylor et al. Sep 2006 B1
7113099 Tyroler et al. Sep 2006 B2
7114554 Bergman et al. Oct 2006 B2
7119609 Naidoo et al. Oct 2006 B2
7119674 Sefton Oct 2006 B2
7120139 Kung et al. Oct 2006 B1
7120232 Naidoo et al. Oct 2006 B2
7120233 Naidoo et al. Oct 2006 B2
7126473 Powell Oct 2006 B1
7130383 Naidoo et al. Oct 2006 B2
7130585 Ollis et al. Oct 2006 B1
7134138 Scherr Nov 2006 B2
7136711 Duncan et al. Nov 2006 B1
7142503 Grant et al. Nov 2006 B1
7145898 Elliott Dec 2006 B1
7147147 Enright et al. Dec 2006 B1
7148810 Bhat Dec 2006 B2
7149798 Rezvani et al. Dec 2006 B2
7149814 Neufeld et al. Dec 2006 B2
7158026 Feldkamp et al. Jan 2007 B2
7158776 Estes et al. Jan 2007 B1
7158920 Yoichiro Jan 2007 B2
7164883 Rappaport et al. Jan 2007 B2
7164907 Cochran et al. Jan 2007 B2
7166987 Lee et al. Jan 2007 B2
7171466 Van Der Meulen Jan 2007 B2
7171686 Jansen et al. Jan 2007 B1
7174018 Patil et al. Feb 2007 B1
7174564 Weatherspoon et al. Feb 2007 B1
7180889 Kung et al. Feb 2007 B1
7181207 Chow et al. Feb 2007 B1
7181716 Dahroug Feb 2007 B1
7183907 Simon et al. Feb 2007 B2
7184428 Gerszberg et al. Feb 2007 B1
7184848 Krzyzanowski et al. Feb 2007 B2
7187279 Chung Mar 2007 B2
7187986 Johnson et al. Mar 2007 B2
7194003 Danner et al. Mar 2007 B2
7194446 Bromley et al. Mar 2007 B1
7197125 Prasad et al. Mar 2007 B1
7203486 Patel Apr 2007 B2
7209945 Hicks et al. Apr 2007 B2
7212570 Akiyama et al. May 2007 B2
7213061 Hite et al. May 2007 B1
7218217 Adonailo et al. May 2007 B2
7222359 Freund et al. May 2007 B2
7229012 Enright et al. Jun 2007 B1
7237267 Rayes et al. Jun 2007 B2
7240327 Singh et al. Jul 2007 B2
7246044 Imamura et al. Jul 2007 B2
7248150 Mackjust et al. Jul 2007 B2
7248161 Spoltore et al. Jul 2007 B2
7249177 Miller Jul 2007 B1
7249317 Nakagawa et al. Jul 2007 B1
7250854 Rezvani et al. Jul 2007 B2
7250859 Martin et al. Jul 2007 B2
7254779 Rezvani et al. Aug 2007 B1
7254833 Cornelius et al. Aug 2007 B1
7262690 Heaton et al. Aug 2007 B2
7277010 Joao Oct 2007 B2
7292142 Simon et al. Nov 2007 B2
7293083 Ranous et al. Nov 2007 B1
7298253 Petricoin et al. Nov 2007 B2
7305461 Ullman Dec 2007 B2
7310115 Tanimoto Dec 2007 B2
7313102 Stephenson et al. Dec 2007 B2
7313231 Reid Dec 2007 B2
D558460 Yu et al. Jan 2008 S
D558756 Andre et al. Jan 2008 S
7315886 Meenan et al. Jan 2008 B1
7337217 Wang Feb 2008 B2
7337473 Chang et al. Feb 2008 B2
7339895 Ozaki et al. Mar 2008 B2
7340314 Duncan et al. Mar 2008 B1
7343619 Ofek et al. Mar 2008 B2
7345580 Akamatsu et al. Mar 2008 B2
7346338 Calhoun et al. Mar 2008 B1
7349682 Bennett et al. Mar 2008 B1
7349761 Cruse Mar 2008 B1
7349967 Wang Mar 2008 B2
7356372 Duncan et al. Apr 2008 B1
7359843 Keller et al. Apr 2008 B1
7362221 Katz Apr 2008 B2
7367045 Ofek et al. Apr 2008 B2
7370115 Bae et al. May 2008 B2
7383339 Meenan et al. Jun 2008 B1
7383522 Murgai et al. Jun 2008 B2
7391298 Campbell et al. Jun 2008 B1
7403838 Deen et al. Jul 2008 B2
7409045 Naidoo et al. Aug 2008 B2
7409451 Meenan et al. Aug 2008 B1
7412447 Hilbert et al. Aug 2008 B2
7425101 Cheng Sep 2008 B2
7428585 Owens et al. Sep 2008 B1
7430614 Shen et al. Sep 2008 B2
7437753 Nahum Oct 2008 B2
7440434 Chaskar et al. Oct 2008 B2
7440767 Ballay et al. Oct 2008 B2
7447775 Zhu et al. Nov 2008 B1
7454731 Oh et al. Nov 2008 B2
7457869 Kernan Nov 2008 B2
7466223 Sefton Dec 2008 B2
7469139 Van De Groenendaal Dec 2008 B2
7469294 Luo et al. Dec 2008 B1
7469381 Ording Dec 2008 B2
7469391 Carrere et al. Dec 2008 B2
D584738 Kim et al. Jan 2009 S
D585399 Hwang Jan 2009 S
7477629 Tsirtsis et al. Jan 2009 B2
7479949 Jobs et al. Jan 2009 B2
7480713 Ullman Jan 2009 B2
7480724 Zimler et al. Jan 2009 B2
7483958 Elabbady et al. Jan 2009 B1
7490350 Murotake et al. Feb 2009 B1
7493651 Vaenskae et al. Feb 2009 B2
7498695 Gaudreau et al. Mar 2009 B2
7502672 Kolls Mar 2009 B1
7506052 Qian et al. Mar 2009 B2
7509687 Ofek et al. Mar 2009 B2
7511614 Stilp et al. Mar 2009 B2
7512965 Amdur et al. Mar 2009 B1
7526539 Hsu Apr 2009 B1
7526762 Astala et al. Apr 2009 B1
7528723 Fast et al. May 2009 B2
7542721 Bonner et al. Jun 2009 B1
7549134 Li et al. Jun 2009 B1
7551071 Bennett et al. Jun 2009 B2
7554934 Abraham et al. Jun 2009 B2
7558379 Winick Jul 2009 B2
7558862 Tyukasz et al. Jul 2009 B1
7558903 Kinstler Jul 2009 B2
7562323 Bai et al. Jul 2009 B1
7564855 Georgiou Jul 2009 B1
7568018 Hove et al. Jul 2009 B1
7571459 Ganesh et al. Aug 2009 B2
7577420 Srinivasan et al. Aug 2009 B2
7583191 Zinser Sep 2009 B2
7584263 Hicks et al. Sep 2009 B1
7587464 Moorer et al. Sep 2009 B2
7590953 Chang Sep 2009 B2
7595816 Enright et al. Sep 2009 B1
7596622 Owen et al. Sep 2009 B2
D602014 Andre et al. Oct 2009 S
D602015 Andre et al. Oct 2009 S
D602017 Andre et al. Oct 2009 S
D602486 Andre et al. Oct 2009 S
D602487 Maskatia Oct 2009 S
7606767 Couper et al. Oct 2009 B1
7610555 Klein et al. Oct 2009 B2
7610559 Humpleman et al. Oct 2009 B1
7619512 Trundle et al. Nov 2009 B2
7620427 Shanahan Nov 2009 B2
7627665 Barker et al. Dec 2009 B2
7633385 Cohn et al. Dec 2009 B2
7634519 Creamer et al. Dec 2009 B2
7639157 Whitley et al. Dec 2009 B1
7651530 Winick Jan 2010 B2
7653911 Doshi et al. Jan 2010 B2
7671729 Hershkovitz et al. Mar 2010 B2
7679503 Mason et al. Mar 2010 B2
7681201 Dale et al. Mar 2010 B2
7684418 Scott et al. Mar 2010 B2
7696873 Sharma et al. Apr 2010 B2
7697028 Johnson Apr 2010 B1
7701970 Krits et al. Apr 2010 B2
7702421 Sullivan et al. Apr 2010 B2
7702782 Pai Apr 2010 B1
D615083 Andre et al. May 2010 S
7711796 Gutt et al. May 2010 B2
7720654 Hollis May 2010 B2
7730223 Bavor et al. Jun 2010 B1
7733371 Monroe Jun 2010 B1
7734020 Elliot et al. Jun 2010 B2
7734286 Almeda et al. Jun 2010 B2
7734906 Orlando et al. Jun 2010 B2
7739596 Clarke-Martin et al. Jun 2010 B2
7739658 Watson et al. Jun 2010 B2
7747975 Dinter et al. Jun 2010 B2
7751409 Carolan Jul 2010 B1
7755472 Grossman Jul 2010 B2
7755506 Clegg et al. Jul 2010 B1
7756928 Meenan et al. Jul 2010 B1
7761275 Chopra et al. Jul 2010 B2
7787863 Van De Groenendaal Aug 2010 B2
7804760 Schmukler et al. Sep 2010 B2
D624896 Park et al. Oct 2010 S
D626437 Lee et al. Nov 2010 S
7825793 Spillman et al. Nov 2010 B1
7827252 Hopmann et al. Nov 2010 B2
7844699 Horrocks et al. Nov 2010 B1
7847675 Thyen et al. Dec 2010 B1
7855635 Cohn et al. Dec 2010 B2
7859404 Chul et al. Dec 2010 B2
7882466 Yoichiro Feb 2011 B2
7882537 Okajo et al. Feb 2011 B2
7884855 Ortiz Feb 2011 B2
7890612 Todd et al. Feb 2011 B2
7890915 Celik et al. Feb 2011 B2
7899732 Van et al. Mar 2011 B2
7904074 Karaoguz et al. Mar 2011 B2
7904187 Hoffberg et al. Mar 2011 B2
7911341 Raji et al. Mar 2011 B2
D636769 Wood et al. Apr 2011 S
7921686 Bagepalli et al. Apr 2011 B2
7928840 Kim et al. Apr 2011 B2
7930365 Dixit et al. Apr 2011 B2
D637596 Akana et al. May 2011 S
7949960 Roessler et al. May 2011 B2
D639805 Song et al. Jun 2011 S
D640663 Arnholt et al. Jun 2011 S
7956736 Cohn et al. Jun 2011 B2
7957326 Christie, IV Jun 2011 B1
7970863 Fontaine Jun 2011 B1
D641018 Lee et al. Jul 2011 S
7974235 Ghozati et al. Jul 2011 B2
D642563 Akana et al. Aug 2011 S
8001219 Moorer et al. Aug 2011 B2
D645015 Lee et al. Sep 2011 S
D645435 Kim et al. Sep 2011 S
D645833 Seflic et al. Sep 2011 S
8022833 Cho Sep 2011 B2
8028041 Olliphant et al. Sep 2011 B2
8032881 Holmberg et al. Oct 2011 B2
8042049 Killian et al. Oct 2011 B2
8046411 Hayashi et al. Oct 2011 B2
8069194 Manber et al. Nov 2011 B1
D650381 Park et al. Dec 2011 S
8073931 Dawes et al. Dec 2011 B2
8086702 Baum et al. Dec 2011 B2
8086703 Baum et al. Dec 2011 B2
D654460 Kim et al. Feb 2012 S
D654497 Lee Feb 2012 S
8122131 Baum et al. Feb 2012 B2
8125184 Raji et al. Feb 2012 B2
D656137 Chung et al. Mar 2012 S
8140658 Gelvin et al. Mar 2012 B1
8144836 Naidoo et al. Mar 2012 B2
8149849 Osborn et al. Apr 2012 B2
8159519 Kurtz et al. Apr 2012 B2
8159945 Muro et al. Apr 2012 B2
8160425 Kisliakov Apr 2012 B2
8196064 Krzyzanowski et al. Jun 2012 B2
8200827 Hunyady et al. Jun 2012 B1
8205181 Singla et al. Jun 2012 B1
8209400 Baum et al. Jun 2012 B2
D663298 Song et al. Jul 2012 S
D664540 Kim et al. Jul 2012 S
8214494 Slavin Jul 2012 B1
8214496 Gutt et al. Jul 2012 B2
8219254 O'Connor Jul 2012 B2
8229812 Raleigh Jul 2012 B2
8230466 Cockrell et al. Jul 2012 B2
D664954 Kim et al. Aug 2012 S
D666198 Van et al. Aug 2012 S
8239477 Sharma et al. Aug 2012 B2
8244550 Sim et al. Aug 2012 B2
D667395 Lee Sep 2012 S
D667396 Koh Sep 2012 S
D667397 Koh Sep 2012 S
D667398 Koh Sep 2012 S
D667399 Koh Sep 2012 S
8269376 Elberbaum Sep 2012 B1
8269623 Addy Sep 2012 B2
8271629 Winters et al. Sep 2012 B1
8271881 Moorer et al. Sep 2012 B2
8272053 Markham et al. Sep 2012 B2
8275830 Raleigh Sep 2012 B2
D668650 Han Oct 2012 S
D668651 Kim et al. Oct 2012 S
D668652 Kim et al. Oct 2012 S
D669469 Kang Oct 2012 S
D670692 Akana et al. Nov 2012 S
D671514 Kim et al. Nov 2012 S
8311526 Forstall et al. Nov 2012 B2
D671938 Hsu et al. Dec 2012 S
D672344 Li Dec 2012 S
D672345 Li Dec 2012 S
D672739 Sin Dec 2012 S
D672768 Huang et al. Dec 2012 S
8335842 Raji et al. Dec 2012 B2
8335854 Eldering Dec 2012 B2
8336010 Chang et al. Dec 2012 B1
D673561 Hyun et al. Jan 2013 S
D673948 Andre et al. Jan 2013 S
D673950 Li et al. Jan 2013 S
D674369 Jaewoong Jan 2013 S
D675203 Yang Jan 2013 S
8350694 Trundle et al. Jan 2013 B1
8363791 Gupta et al. Jan 2013 B2
D675588 Park Feb 2013 S
D675612 Andre et al. Feb 2013 S
D676443 Canizares et al. Feb 2013 S
D676819 Choi Feb 2013 S
8373313 Garcia et al. Feb 2013 B2
D677255 McManigal et al. Mar 2013 S
D677640 Kim et al. Mar 2013 S
D677659 Akana et al. Mar 2013 S
D677660 Groene et al. Mar 2013 S
D678271 Chiu Mar 2013 S
D678272 Groene et al. Mar 2013 S
D678877 Groene et al. Mar 2013 S
8396766 Enright et al. Mar 2013 B1
8400767 Yeom et al. Mar 2013 B2
D679706 Tang et al. Apr 2013 S
D680151 Katori Apr 2013 S
D680524 Feng et al. Apr 2013 S
D681032 Akana et al. Apr 2013 S
8413204 White et al. Apr 2013 B2
D681583 Park May 2013 S
D681591 Sung May 2013 S
D681632 Akana et al. May 2013 S
D682239 Yeh et al. May 2013 S
8451986 Cohn et al. May 2013 B2
D684553 Kim et al. Jun 2013 S
D684968 Smith et al. Jun 2013 S
8456293 Trundle et al. Jun 2013 B1
8473619 Baum et al. Jun 2013 B2
D685778 Fahrendorff et al. Jul 2013 S
D685783 Bryan et al. Jul 2013 S
8478450 Lu et al. Jul 2013 B2
8478844 Baum et al. Jul 2013 B2
8478871 Gutt et al. Jul 2013 B2
8483853 Lambourne Jul 2013 B1
8493202 Trundle et al. Jul 2013 B1
8499038 Vucurevich Jul 2013 B1
8520068 Naidoo et al. Aug 2013 B2
8520072 Slavin et al. Aug 2013 B1
8525664 Hadizad et al. Sep 2013 B2
8543665 Ansari et al. Sep 2013 B2
D692042 Dawes et al. Oct 2013 S
8554478 Hartman Oct 2013 B2
8560041 Flaherty et al. Oct 2013 B2
8570993 Austin et al. Oct 2013 B2
8584199 Chen et al. Nov 2013 B1
8595377 Apgar et al. Nov 2013 B1
D695735 Kitchen et al. Dec 2013 S
8599018 Kellen et al. Dec 2013 B2
8612591 Dawes et al. Dec 2013 B2
8619136 Howarter et al. Dec 2013 B2
8634533 Strasters Jan 2014 B2
8635350 Gutt et al. Jan 2014 B2
8635499 Cohn et al. Jan 2014 B2
8638211 Cohn et al. Jan 2014 B2
8649386 Ansari et al. Feb 2014 B2
8650320 Merrick et al. Feb 2014 B1
8666560 Lu et al. Mar 2014 B2
8675071 Slavin et al. Mar 2014 B1
8700769 Alexander et al. Apr 2014 B2
8704821 Kulkarni et al. Apr 2014 B2
8713132 Baum et al. Apr 2014 B2
8723671 Foisy et al. May 2014 B2
8730834 Marusca et al. May 2014 B2
8738765 Wyatt et al. May 2014 B2
8812654 Gelvin et al. Aug 2014 B2
8817809 Gage Aug 2014 B2
8819178 Baum et al. Aug 2014 B2
8825871 Baum et al. Sep 2014 B2
8832244 Gelvin et al. Sep 2014 B2
8836467 Cohn et al. Sep 2014 B1
8885552 Bedingfield et al. Nov 2014 B2
8902740 Hicks, III Dec 2014 B2
8914526 Lindquist et al. Dec 2014 B1
8914837 Ahmed et al. Dec 2014 B2
8935236 Morita et al. Jan 2015 B2
8937539 Sharma et al. Jan 2015 B2
8937658 Hicks et al. Jan 2015 B2
8953479 Hall et al. Feb 2015 B2
8953749 Naidoo et al. Feb 2015 B2
8963713 Dawes et al. Feb 2015 B2
8976763 Shrestha et al. Mar 2015 B2
8983534 Patel Mar 2015 B2
8988217 Piccolo, III Mar 2015 B2
8988221 Raji et al. Mar 2015 B2
8989922 Jones et al. Mar 2015 B2
8996665 Baum et al. Mar 2015 B2
9047753 Dawes et al. Jun 2015 B2
9059863 Baum et al. Jun 2015 B2
9064394 Trundle Jun 2015 B1
9094407 Matthieu et al. Jul 2015 B1
9100446 Cohn et al. Aug 2015 B2
9141276 Dawes et al. Sep 2015 B2
9144143 Raji et al. Sep 2015 B2
9146548 Chambers et al. Sep 2015 B2
9147337 Cohn et al. Sep 2015 B2
9160784 Jeong et al. Oct 2015 B2
9170707 Laska et al. Oct 2015 B1
9172532 Fuller et al. Oct 2015 B1
9172533 Fielder Oct 2015 B2
9172553 Dawes et al. Oct 2015 B2
9172605 Hardy et al. Oct 2015 B2
9189934 Jentoft et al. Nov 2015 B2
9191228 Fulker et al. Nov 2015 B2
9202362 Hyland et al. Dec 2015 B2
9246921 Vlaminck et al. Jan 2016 B1
9286772 Shapiro et al. Mar 2016 B2
9287727 Egan et al. Mar 2016 B1
9300921 Naidoo et al. Mar 2016 B2
9306809 Dawes et al. Apr 2016 B2
9310864 Klein et al. Apr 2016 B1
9373014 Mehranfar Jun 2016 B1
9412248 Cohn et al. Aug 2016 B1
9426720 Cohn et al. Aug 2016 B2
9450776 Baum et al. Sep 2016 B2
9462041 Hagins et al. Oct 2016 B1
9510065 Cohn et al. Nov 2016 B2
9529344 Hagins et al. Dec 2016 B1
9531593 Baum et al. Dec 2016 B2
9553738 Meenan et al. Jan 2017 B2
9600945 Naidoo et al. Mar 2017 B2
9609003 Chmielewski et al. Mar 2017 B1
9613524 Lamb et al. Apr 2017 B1
9621408 Gutt et al. Apr 2017 B2
9674199 Vlaminck et al. Jun 2017 B2
9721461 Zeng et al. Aug 2017 B2
9729342 Cohn et al. Aug 2017 B2
9779595 Thibault Oct 2017 B2
9805587 Lamb Oct 2017 B2
9819911 Krishna et al. Nov 2017 B2
9824234 Cho et al. Nov 2017 B2
9843458 Cronin Dec 2017 B2
9876651 Cho et al. Jan 2018 B2
9882985 Esam et al. Jan 2018 B1
9978238 Fadell et al. May 2018 B2
9979625 McLaughlin et al. May 2018 B2
10002507 Wilson et al. Jun 2018 B2
10025473 Sarao et al. Jul 2018 B2
10051078 Burd et al. Aug 2018 B2
10062245 Fulker et al. Aug 2018 B2
10062273 Raji et al. Aug 2018 B2
10078958 Cohn et al. Sep 2018 B2
10079839 Bryan et al. Sep 2018 B1
10120354 Rolston et al. Nov 2018 B1
10127801 Raji et al. Nov 2018 B2
10140840 Cohn et al. Nov 2018 B2
10142392 Raji et al. Nov 2018 B2
10142394 Chmielewski et al. Nov 2018 B2
10156831 Raji et al. Dec 2018 B2
10156959 Fulker et al. Dec 2018 B2
10223903 Raji et al. Mar 2019 B2
10225314 Raji et al. Mar 2019 B2
10237237 Dawes et al. Mar 2019 B2
10237757 Raleigh et al. Mar 2019 B2
10257474 Nadathur et al. Apr 2019 B2
10264138 Raleigh et al. Apr 2019 B2
10313303 Baum et al. Jun 2019 B2
10339791 Baum et al. Jul 2019 B2
10348575 Sundermeyer et al. Jul 2019 B2
10354517 King Jul 2019 B1
10380871 Sundermeyer et al. Aug 2019 B2
10380873 Halverson Aug 2019 B1
10430887 Parker et al. Oct 2019 B1
10530839 Kitchen Jan 2020 B2
10616244 Bryan et al. Apr 2020 B2
10687270 Ishii Jun 2020 B2
10691295 Fulker et al. Jun 2020 B2
10692356 Sundermeyer et al. Jun 2020 B2
10782681 Slavin Sep 2020 B1
10868712 Hutz Dec 2020 B1
20010016501 King Aug 2001 A1
20010022836 Bremer et al. Sep 2001 A1
20010025349 Sharood et al. Sep 2001 A1
20010029585 Simon et al. Oct 2001 A1
20010030597 Inoue et al. Oct 2001 A1
20010034209 Tong et al. Oct 2001 A1
20010034754 Elwahab et al. Oct 2001 A1
20010034759 Chiles et al. Oct 2001 A1
20010036192 Chiles et al. Nov 2001 A1
20010042137 Ota et al. Nov 2001 A1
20010044835 Schober et al. Nov 2001 A1
20010046366 Susskind Nov 2001 A1
20010047474 Takagi et al. Nov 2001 A1
20010048030 Sharood et al. Dec 2001 A1
20010053207 Jeon et al. Dec 2001 A1
20010054115 Ferguson et al. Dec 2001 A1
20020000913 Hamamoto et al. Jan 2002 A1
20020003575 Marchese Jan 2002 A1
20020004828 Davis et al. Jan 2002 A1
20020005894 Foodman et al. Jan 2002 A1
20020016639 Smith et al. Feb 2002 A1
20020018057 Sano Feb 2002 A1
20020018478 Takeyama et al. Feb 2002 A1
20020019751 Rothschild et al. Feb 2002 A1
20020026476 Miyazaki et al. Feb 2002 A1
20020026531 Keane et al. Feb 2002 A1
20020027504 Davis et al. Mar 2002 A1
20020028696 Hirayama et al. Mar 2002 A1
20020029276 Bendinelli et al. Mar 2002 A1
20020031120 Rakib Mar 2002 A1
20020032853 Preston et al. Mar 2002 A1
20020035633 Bose et al. Mar 2002 A1
20020037004 Bossemeyer et al. Mar 2002 A1
20020038380 Brawn et al. Mar 2002 A1
20020046280 Fujita Apr 2002 A1
20020046301 Shannon et al. Apr 2002 A1
20020052719 Alexander et al. May 2002 A1
20020052913 Yamada et al. May 2002 A1
20020055977 Nishi May 2002 A1
20020059078 Valdes et al. May 2002 A1
20020059148 Rosenhaft et al. May 2002 A1
20020059637 Rakib May 2002 A1
20020068558 Janik Jun 2002 A1
20020068984 Alexander et al. Jun 2002 A1
20020072868 Bartone et al. Jun 2002 A1
20020075153 Dahl Jun 2002 A1
20020077077 Rezvani et al. Jun 2002 A1
20020080771 Krumel Jun 2002 A1
20020083342 Webb et al. Jun 2002 A1
20020085488 Kobayashi Jul 2002 A1
20020091815 Anderson et al. Jul 2002 A1
20020095490 Barker et al. Jul 2002 A1
20020099809 Lee Jul 2002 A1
20020099829 Richards et al. Jul 2002 A1
20020099854 Jorgensen Jul 2002 A1
20020101858 Stuart et al. Aug 2002 A1
20020103898 Moyer et al. Aug 2002 A1
20020103927 Parent Aug 2002 A1
20020107910 Zhao Aug 2002 A1
20020109580 Shreve et al. Aug 2002 A1
20020111698 Graziano et al. Aug 2002 A1
20020112051 Ullman Aug 2002 A1
20020112182 Chang et al. Aug 2002 A1
20020114439 Dunlap Aug 2002 A1
20020116117 Martens et al. Aug 2002 A1
20020118107 Yamamoto et al. Aug 2002 A1
20020118796 Menard et al. Aug 2002 A1
20020119800 Jaggers et al. Aug 2002 A1
20020120696 Mousseau et al. Aug 2002 A1
20020120698 Tamargo Aug 2002 A1
20020120790 Schwalb Aug 2002 A1
20020126009 Oyagi et al. Sep 2002 A1
20020128728 Murakami et al. Sep 2002 A1
20020131404 Mehta et al. Sep 2002 A1
20020133539 Monday Sep 2002 A1
20020133578 Wu Sep 2002 A1
20020143805 Hayes et al. Oct 2002 A1
20020143923 Alexander Oct 2002 A1
20020147982 Naidoo et al. Oct 2002 A1
20020150086 Bailey et al. Oct 2002 A1
20020152298 Kikta et al. Oct 2002 A1
20020152432 Fleming Oct 2002 A1
20020156564 Preston et al. Oct 2002 A1
20020156899 Sekiguchi Oct 2002 A1
20020161885 Childers et al. Oct 2002 A1
20020163534 Choi et al. Nov 2002 A1
20020163997 Bergman et al. Nov 2002 A1
20020164953 Curtis Nov 2002 A1
20020164997 Parry Nov 2002 A1
20020165006 Haller et al. Nov 2002 A1
20020166125 Fulmer Nov 2002 A1
20020174367 Kimmel et al. Nov 2002 A1
20020174434 Lee et al. Nov 2002 A1
20020177428 Menard et al. Nov 2002 A1
20020177482 Cheong et al. Nov 2002 A1
20020178100 Koveos Nov 2002 A1
20020178211 Singhal et al. Nov 2002 A1
20020180579 Nagaoka et al. Dec 2002 A1
20020184301 Parent Dec 2002 A1
20020184527 Chun et al. Dec 2002 A1
20020186683 Buck et al. Dec 2002 A1
20020188723 Choi et al. Dec 2002 A1
20020191636 Hallenbeck Dec 2002 A1
20030001883 Wang Jan 2003 A1
20030004088 Ushio et al. Jan 2003 A1
20030005030 Sutton et al. Jan 2003 A1
20030006879 Kang et al. Jan 2003 A1
20030009552 Benfield et al. Jan 2003 A1
20030009553 Benfield et al. Jan 2003 A1
20030010243 Roller Jan 2003 A1
20030023839 Burkhardt et al. Jan 2003 A1
20030025599 Monroe Feb 2003 A1
20030028294 Yanagi Feb 2003 A1
20030028398 Yamashita et al. Feb 2003 A1
20030030548 Kovacs et al. Feb 2003 A1
20030031165 O'Brien Feb 2003 A1
20030038730 Imafuku et al. Feb 2003 A1
20030038849 Craven et al. Feb 2003 A1
20030039242 Moore Feb 2003 A1
20030040813 Gonzales et al. Feb 2003 A1
20030041137 Horie et al. Feb 2003 A1
20030041167 French et al. Feb 2003 A1
20030046557 Miller et al. Mar 2003 A1
20030050731 Rosenblum Mar 2003 A1
20030050737 Robert Mar 2003 A1
20030051009 Shah et al. Mar 2003 A1
20030051026 Carter et al. Mar 2003 A1
20030052905 Gordon et al. Mar 2003 A1
20030052923 Porter Mar 2003 A1
20030056012 Modeste et al. Mar 2003 A1
20030056014 Verberkt et al. Mar 2003 A1
20030060900 Lo et al. Mar 2003 A1
20030061344 Monroe Mar 2003 A1
20030061615 Van Der Meulen Mar 2003 A1
20030061621 Petty et al. Mar 2003 A1
20030062997 Naidoo et al. Apr 2003 A1
20030065407 Johnson et al. Apr 2003 A1
20030065757 Mentze et al. Apr 2003 A1
20030065784 Herrod Apr 2003 A1
20030065791 Garg et al. Apr 2003 A1
20030067923 Ju et al. Apr 2003 A1
20030069854 Hsu et al. Apr 2003 A1
20030069948 Ma et al. Apr 2003 A1
20030071724 D Amico Apr 2003 A1
20030071840 Huang et al. Apr 2003 A1
20030073406 Benjamin et al. Apr 2003 A1
20030074090 Becka et al. Apr 2003 A1
20030081768 Caminschi May 2003 A1
20030084165 Kjellberg et al. May 2003 A1
20030090473 Joshi May 2003 A1
20030096590 Satoh May 2003 A1
20030101243 Donahue et al. May 2003 A1
20030101459 Edson May 2003 A1
20030103088 Dresti et al. Jun 2003 A1
20030105850 Lean et al. Jun 2003 A1
20030110262 Hasan et al. Jun 2003 A1
20030110302 Hodges et al. Jun 2003 A1
20030112866 Yu et al. Jun 2003 A1
20030113100 Hecht et al. Jun 2003 A1
20030115345 Chien et al. Jun 2003 A1
20030123419 Rangnekar et al. Jul 2003 A1
20030123634 Chee Jul 2003 A1
20030126236 Marl et al. Jul 2003 A1
20030128114 Quigley Jul 2003 A1
20030128115 Giacopelli et al. Jul 2003 A1
20030132018 Okita et al. Jul 2003 A1
20030134590 Suda et al. Jul 2003 A1
20030137426 Anthony et al. Jul 2003 A1
20030137991 Doshi et al. Jul 2003 A1
20030147534 Ablay et al. Aug 2003 A1
20030149671 Yamamoto et al. Aug 2003 A1
20030153325 Veerepalli et al. Aug 2003 A1
20030155757 Larsen et al. Aug 2003 A1
20030158609 Chiu Aug 2003 A1
20030158635 Pillar et al. Aug 2003 A1
20030159135 Hiller et al. Aug 2003 A1
20030169728 Choi Sep 2003 A1
20030172145 Nguyen Sep 2003 A1
20030174154 Yukie et al. Sep 2003 A1
20030174648 Wang et al. Sep 2003 A1
20030174717 Zabarski et al. Sep 2003 A1
20030177236 Goto et al. Sep 2003 A1
20030182396 Reich et al. Sep 2003 A1
20030182640 Alani et al. Sep 2003 A1
20030184436 Seales et al. Oct 2003 A1
20030187920 Redkar Oct 2003 A1
20030187938 Mousseau et al. Oct 2003 A1
20030189509 Hayes et al. Oct 2003 A1
20030193991 Lansford Oct 2003 A1
20030196115 Karp Oct 2003 A1
20030197847 Shinoda Oct 2003 A1
20030198938 Murray et al. Oct 2003 A1
20030200285 Hansen et al. Oct 2003 A1
20030200325 Krishnaswamy et al. Oct 2003 A1
20030201889 Zulkowski Oct 2003 A1
20030208610 Rochetti et al. Nov 2003 A1
20030210126 Kanazawa Nov 2003 A1
20030214775 Fukuta et al. Nov 2003 A1
20030216143 Roese et al. Nov 2003 A1
20030217110 Weiss Nov 2003 A1
20030217136 Cho et al. Nov 2003 A1
20030225883 Greaves et al. Dec 2003 A1
20030227382 Breed Dec 2003 A1
20030227439 Lee et al. Dec 2003 A1
20030229779 Morais et al. Dec 2003 A1
20030230934 Cordelli et al. Dec 2003 A1
20030233155 Slemmer et al. Dec 2003 A1
20030233332 Keeler et al. Dec 2003 A1
20030233549 Hatakeyama et al. Dec 2003 A1
20030233583 Carley Dec 2003 A1
20030233594 Earl Dec 2003 A1
20030234725 Lemelson et al. Dec 2003 A1
20030236841 Epshteyn Dec 2003 A1
20040003051 Krzyzanowski et al. Jan 2004 A1
20040003241 Sengodan et al. Jan 2004 A1
20040005039 White et al. Jan 2004 A1
20040008724 Devine et al. Jan 2004 A1
20040015572 Kang Jan 2004 A1
20040024851 Naidoo et al. Feb 2004 A1
20040034697 Fairhurst et al. Feb 2004 A1
20040034798 Yamada et al. Feb 2004 A1
20040036615 Candela Feb 2004 A1
20040037295 Tanaka et al. Feb 2004 A1
20040039459 Daugherty et al. Feb 2004 A1
20040041910 Naidoo et al. Mar 2004 A1
20040049321 Lehr et al. Mar 2004 A1
20040054789 Breh et al. Mar 2004 A1
20040056665 Iwanaga et al. Mar 2004 A1
20040064351 Mikurak Apr 2004 A1
20040068657 Alexander et al. Apr 2004 A1
20040068668 Lor et al. Apr 2004 A1
20040075738 Burke et al. Apr 2004 A1
20040078825 Murphy Apr 2004 A1
20040083015 Patwari Apr 2004 A1
20040086088 Naidoo et al. May 2004 A1
20040086090 Naidoo et al. May 2004 A1
20040086093 Schranz May 2004 A1
20040093492 Daude et al. May 2004 A1
20040095943 Korotin May 2004 A1
20040102859 Bennett May 2004 A1
20040103308 Paller May 2004 A1
20040107027 Boudrieau Jun 2004 A1
20040107299 Lee et al. Jun 2004 A1
20040111294 McNally et al. Jun 2004 A1
20040113770 Falk et al. Jun 2004 A1
20040113778 Script et al. Jun 2004 A1
20040113937 Sawdey et al. Jun 2004 A1
20040117068 Lee Jun 2004 A1
20040117330 Ehlers et al. Jun 2004 A1
20040117462 Bodin et al. Jun 2004 A1
20040117465 Bodin et al. Jun 2004 A1
20040123149 Tyroler Jun 2004 A1
20040125146 Gerlach et al. Jul 2004 A1
20040125782 Chang Jul 2004 A1
20040133689 Vasisht Jul 2004 A1
20040136386 Miller et al. Jul 2004 A1
20040137915 Diener et al. Jul 2004 A1
20040139227 Takeda Jul 2004 A1
20040143428 Rappaport et al. Jul 2004 A1
20040143602 Ruiz et al. Jul 2004 A1
20040143749 Tajalli et al. Jul 2004 A1
20040153171 Brandt et al. Aug 2004 A1
20040155757 Litwin et al. Aug 2004 A1
20040160309 Stilp Aug 2004 A1
20040162902 Davis Aug 2004 A1
20040163073 Krzyzanowski et al. Aug 2004 A1
20040163118 Mottur Aug 2004 A1
20040163705 Uhler Aug 2004 A1
20040169288 Hsieh et al. Sep 2004 A1
20040170120 Reunamaki et al. Sep 2004 A1
20040170155 Omar et al. Sep 2004 A1
20040172396 Vanska et al. Sep 2004 A1
20040172657 Phillips et al. Sep 2004 A1
20040177163 Casey et al. Sep 2004 A1
20040181693 Milliot et al. Sep 2004 A1
20040183756 Freitas et al. Sep 2004 A1
20040189460 Heaton et al. Sep 2004 A1
20040189471 Ciarcia et al. Sep 2004 A1
20040189871 Kurosawa et al. Sep 2004 A1
20040196844 Hagino Oct 2004 A1
20040198386 Dupray Oct 2004 A1
20040199645 Rouhi Oct 2004 A1
20040201472 Mcgunn et al. Oct 2004 A1
20040202351 Park et al. Oct 2004 A1
20040212494 Stilp Oct 2004 A1
20040212497 Stilp Oct 2004 A1
20040212500 Stilp Oct 2004 A1
20040212503 Stilp Oct 2004 A1
20040212687 Patwari Oct 2004 A1
20040213150 Krause et al. Oct 2004 A1
20040215694 Podolsky Oct 2004 A1
20040215700 Shenfield et al. Oct 2004 A1
20040215750 Stilp Oct 2004 A1
20040215955 Tamai et al. Oct 2004 A1
20040218591 Ogawa et al. Nov 2004 A1
20040220830 Moreton et al. Nov 2004 A1
20040223605 Donnelly Nov 2004 A1
20040225516 Bruskotter et al. Nov 2004 A1
20040225719 Kisley et al. Nov 2004 A1
20040225878 Costa-Requena et al. Nov 2004 A1
20040229569 Franz Nov 2004 A1
20040243714 Wynn et al. Dec 2004 A1
20040243835 Terzis et al. Dec 2004 A1
20040243996 Sheehy et al. Dec 2004 A1
20040246339 Ooshima et al. Dec 2004 A1
20040249613 Sprogis et al. Dec 2004 A1
20040249922 Hackman et al. Dec 2004 A1
20040253926 Gross Dec 2004 A1
20040257433 Lia et al. Dec 2004 A1
20040258032 Kawamura Dec 2004 A1
20040260407 Wimsatt Dec 2004 A1
20040260427 Wimsatt Dec 2004 A1
20040260527 Stanculescu Dec 2004 A1
20040263314 Dorai et al. Dec 2004 A1
20040263625 Ishigami et al. Dec 2004 A1
20040263626 Piccionelli Dec 2004 A1
20040266493 Bahl et al. Dec 2004 A1
20040267385 Lingemann Dec 2004 A1
20040267937 Klemets Dec 2004 A1
20040268298 Miller et al. Dec 2004 A1
20050002335 Adamczyk et al. Jan 2005 A1
20050002408 Lee Jan 2005 A1
20050002417 Kelly et al. Jan 2005 A1
20050007967 Keskar et al. Jan 2005 A1
20050010866 Humpleman et al. Jan 2005 A1
20050015458 La Jan 2005 A1
20050015805 Ryuichi Jan 2005 A1
20050021309 Alexander et al. Jan 2005 A1
20050021626 Prajapat et al. Jan 2005 A1
20050022210 Zintel et al. Jan 2005 A1
20050023858 Bingle et al. Feb 2005 A1
20050024203 Wolfe Feb 2005 A1
20050030928 Virtanen et al. Feb 2005 A1
20050031108 Eshun et al. Feb 2005 A1
20050033513 Gasbarro Feb 2005 A1
20050038325 Moll Feb 2005 A1
20050038326 Mathur Feb 2005 A1
20050044061 Klemow Feb 2005 A1
20050048957 Casey et al. Mar 2005 A1
20050049746 Rosenblum Mar 2005 A1
20050050214 Nishiyama et al. Mar 2005 A1
20050052831 Chen Mar 2005 A1
20050055575 Evans et al. Mar 2005 A1
20050055716 Louie et al. Mar 2005 A1
20050057361 Giraldo et al. Mar 2005 A1
20050060163 Barsness et al. Mar 2005 A1
20050060411 Coulombe et al. Mar 2005 A1
20050066045 Johnson et al. Mar 2005 A1
20050066912 Korbitz et al. Mar 2005 A1
20050069098 Kalervo et al. Mar 2005 A1
20050071483 Motoyama Mar 2005 A1
20050075764 Horst et al. Apr 2005 A1
20050079855 Jethi et al. Apr 2005 A1
20050079863 Macaluso Apr 2005 A1
20050081161 Macinnes et al. Apr 2005 A1
20050086093 Hammad et al. Apr 2005 A1
20050086126 Patterson Apr 2005 A1
20050086211 Mayer Apr 2005 A1
20050086366 Luebke et al. Apr 2005 A1
20050088983 Wesslen et al. Apr 2005 A1
20050089023 Barkley et al. Apr 2005 A1
20050090915 Geiwitz Apr 2005 A1
20050091435 Han et al. Apr 2005 A1
20050091696 Wolfe et al. Apr 2005 A1
20050096753 Arling et al. May 2005 A1
20050097478 Killian et al. May 2005 A1
20050101314 Levi May 2005 A1
20050102152 Hodges May 2005 A1
20050102497 Buer May 2005 A1
20050105530 Kono May 2005 A1
20050108091 Sotak et al. May 2005 A1
20050108369 Sather et al. May 2005 A1
20050111660 Hosoda May 2005 A1
20050114432 Hodges et al. May 2005 A1
20050114528 Suito May 2005 A1
20050114900 Ladd et al. May 2005 A1
20050117602 Carrigan et al. Jun 2005 A1
20050117732 Arpin Jun 2005 A1
20050119767 Kiwimagi et al. Jun 2005 A1
20050119913 Hornreich et al. Jun 2005 A1
20050120082 Hesselink et al. Jun 2005 A1
20050125083 Kiko Jun 2005 A1
20050128068 Winick et al. Jun 2005 A1
20050128083 Puzio et al. Jun 2005 A1
20050128093 Genova et al. Jun 2005 A1
20050128314 Toshiki Jun 2005 A1
20050144044 Godschall et al. Jun 2005 A1
20050144312 Kadyk et al. Jun 2005 A1
20050144645 Casey et al. Jun 2005 A1
20050148356 Ferguson et al. Jul 2005 A1
20050149639 Vrielink et al. Jul 2005 A1
20050149746 Lu et al. Jul 2005 A1
20050154494 Ahmed Jul 2005 A1
20050154774 Giaffreda et al. Jul 2005 A1
20050155757 Paton Jul 2005 A1
20050156568 Yueh Jul 2005 A1
20050156737 Al-Khateeb Jul 2005 A1
20050159823 Hayes et al. Jul 2005 A1
20050159911 Funk et al. Jul 2005 A1
20050169288 Kamiwada et al. Aug 2005 A1
20050174229 Feldkamp et al. Aug 2005 A1
20050177515 Kalavade et al. Aug 2005 A1
20050179531 Tabe Aug 2005 A1
20050182681 Bruskotter et al. Aug 2005 A1
20050184865 Han Aug 2005 A1
20050185618 Friday et al. Aug 2005 A1
20050187677 Walker Aug 2005 A1
20050188315 Campbell et al. Aug 2005 A1
20050197847 Smith Sep 2005 A1
20050198216 Behera et al. Sep 2005 A1
20050200474 Behnke Sep 2005 A1
20050204076 Cumpson et al. Sep 2005 A1
20050207429 Akita et al. Sep 2005 A1
20050210532 Winick Sep 2005 A1
20050216302 Raji et al. Sep 2005 A1
20050216580 Raji et al. Sep 2005 A1
20050220123 Wybenga et al. Oct 2005 A1
20050222820 Chung Oct 2005 A1
20050222933 Wesby Oct 2005 A1
20050229016 Addy Oct 2005 A1
20050231349 Bhat Oct 2005 A1
20050232242 Karaoguz et al. Oct 2005 A1
20050232284 Karaoguz et al. Oct 2005 A1
20050234568 Chung et al. Oct 2005 A1
20050237182 Wang Oct 2005 A1
20050246119 Koodali Nov 2005 A1
20050246408 Chung Nov 2005 A1
20050249199 Albert et al. Nov 2005 A1
20050253706 Spoltore et al. Nov 2005 A1
20050253709 Baker Nov 2005 A1
20050256608 King et al. Nov 2005 A1
20050257013 Ma Nov 2005 A1
20050257260 Lenoir et al. Nov 2005 A1
20050259673 Lu et al. Nov 2005 A1
20050260973 Van De Groenendaal Nov 2005 A1
20050262241 Gubbi et al. Nov 2005 A1
20050266826 Vlad Dec 2005 A1
20050267605 Lee et al. Dec 2005 A1
20050270151 Winick Dec 2005 A1
20050273831 Slomovich et al. Dec 2005 A1
20050276389 Hinkson et al. Dec 2005 A1
20050277434 Tuomi et al. Dec 2005 A1
20050280964 Richmond et al. Dec 2005 A1
20050281196 Tornetta et al. Dec 2005 A1
20050282557 Mikko et al. Dec 2005 A1
20050283823 Okajo et al. Dec 2005 A1
20050285934 Carter Dec 2005 A1
20050285941 Haigh et al. Dec 2005 A1
20050286518 Park et al. Dec 2005 A1
20060007005 Yui et al. Jan 2006 A1
20060009863 Lingemann Jan 2006 A1
20060010078 Rezvani et al. Jan 2006 A1
20060015943 Mahieu Jan 2006 A1
20060018328 Mody et al. Jan 2006 A1
20060018479 Chen Jan 2006 A1
20060022816 Yukawa Feb 2006 A1
20060023847 Tyroler et al. Feb 2006 A1
20060025132 Karaoguz et al. Feb 2006 A1
20060026017 Walker Feb 2006 A1
20060026301 Maeda et al. Feb 2006 A1
20060031436 Sakata et al. Feb 2006 A1
20060031852 Chu et al. Feb 2006 A1
20060036750 Ladd et al. Feb 2006 A1
20060041655 Holloway et al. Feb 2006 A1
20060045074 Lee Mar 2006 A1
20060050692 Petrescu et al. Mar 2006 A1
20060050862 Shen et al. Mar 2006 A1
20060051122 Kawazu et al. Mar 2006 A1
20060052884 Staples et al. Mar 2006 A1
20060053447 Krzyzanowski et al. Mar 2006 A1
20060053459 Simerly et al. Mar 2006 A1
20060053491 Khuti et al. Mar 2006 A1
20060058923 Kruk et al. Mar 2006 A1
20060063534 Kokkonen et al. Mar 2006 A1
20060064305 Alonso Mar 2006 A1
20060064478 Sirkin Mar 2006 A1
20060067344 Sakurai Mar 2006 A1
20060067356 Kim et al. Mar 2006 A1
20060067484 Elliot et al. Mar 2006 A1
20060072470 Moore et al. Apr 2006 A1
20060075235 Renkis Apr 2006 A1
20060077254 Shu et al. Apr 2006 A1
20060078344 Kawazu et al. Apr 2006 A1
20060080380 Aizu et al. Apr 2006 A1
20060080465 Conzola et al. Apr 2006 A1
20060088092 Chen et al. Apr 2006 A1
20060092010 Simon et al. May 2006 A1
20060092011 Simon et al. May 2006 A1
20060093365 Dybsetter et al. May 2006 A1
20060094400 Beachem et al. May 2006 A1
20060101062 Godman et al. May 2006 A1
20060103510 Chen et al. May 2006 A1
20060103520 Clark May 2006 A1
20060104312 Friar May 2006 A1
20060105713 Zheng et al. May 2006 A1
20060106933 Huang et al. May 2006 A1
20060109113 Reyes et al. May 2006 A1
20060109860 Matsunaga et al. May 2006 A1
20060109966 Sasakura et al. May 2006 A1
20060111095 Weigand May 2006 A1
20060114842 Miyamoto et al. Jun 2006 A1
20060121924 Rengaraju et al. Jun 2006 A1
20060123212 Yagawa Jun 2006 A1
20060129837 Im et al. Jun 2006 A1
20060130004 Hughes et al. Jun 2006 A1
20060132302 Stilp Jun 2006 A1
20060133412 Callaghan Jun 2006 A1
20060136558 Sheehan et al. Jun 2006 A1
20060142880 Deen et al. Jun 2006 A1
20060142968 Han et al. Jun 2006 A1
20060142978 Suenbuel et al. Jun 2006 A1
20060143268 Chatani Jun 2006 A1
20060145842 Stilp Jul 2006 A1
20060154642 Scannell Jul 2006 A1
20060155851 Ma et al. Jul 2006 A1
20060159032 Ukrainetz et al. Jul 2006 A1
20060161270 Luskin et al. Jul 2006 A1
20060161662 Ng et al. Jul 2006 A1
20060161960 Benoit Jul 2006 A1
20060167784 Hoffberg Jul 2006 A1
20060167919 Hsieh Jul 2006 A1
20060168013 Wilson et al. Jul 2006 A1
20060168095 Sharma et al. Jul 2006 A1
20060168178 Hwang et al. Jul 2006 A1
20060168190 Johan et al. Jul 2006 A1
20060171307 Gopalakrishnan et al. Aug 2006 A1
20060176146 Krishan et al. Aug 2006 A1
20060176167 Dohrmann Aug 2006 A1
20060181406 Petite et al. Aug 2006 A1
20060182100 Li et al. Aug 2006 A1
20060183460 Srinivasan et al. Aug 2006 A1
20060187900 Akbar Aug 2006 A1
20060189311 Cromer et al. Aug 2006 A1
20060190458 Mishina et al. Aug 2006 A1
20060190529 Morozumi et al. Aug 2006 A1
20060197660 Luebke et al. Sep 2006 A1
20060200845 Foster et al. Sep 2006 A1
20060206220 Amundson Sep 2006 A1
20060206246 Walker Sep 2006 A1
20060208872 Yu et al. Sep 2006 A1
20060208880 Funk et al. Sep 2006 A1
20060209857 Hicks Sep 2006 A1
20060215650 Wollmershauser et al. Sep 2006 A1
20060217115 Cassett et al. Sep 2006 A1
20060218244 Rasmussen et al. Sep 2006 A1
20060218593 Afshary et al. Sep 2006 A1
20060220830 Bennett et al. Oct 2006 A1
20060221184 Vallone et al. Oct 2006 A1
20060222153 Tarkoff et al. Oct 2006 A1
20060226972 Smith Oct 2006 A1
20060229746 Ollis et al. Oct 2006 A1
20060230270 Goffin Oct 2006 A1
20060233372 Shaheen et al. Oct 2006 A1
20060235963 Wetherly et al. Oct 2006 A1
20060236050 Sugimoto et al. Oct 2006 A1
20060238372 Jung et al. Oct 2006 A1
20060238617 Tamir Oct 2006 A1
20060242395 Fausak Oct 2006 A1
20060244589 Schranz Nov 2006 A1
20060245369 Schimmelpfeng et al. Nov 2006 A1
20060246886 Benco et al. Nov 2006 A1
20060246919 Park et al. Nov 2006 A1
20060250235 Astrin Nov 2006 A1
20060250578 Pohl et al. Nov 2006 A1
20060251255 Batta Nov 2006 A1
20060258342 Fok et al. Nov 2006 A1
20060259951 Forssell et al. Nov 2006 A1
20060265489 Moore Nov 2006 A1
20060271695 Lavian Nov 2006 A1
20060274764 Mah et al. Dec 2006 A1
20060281435 Shearer et al. Dec 2006 A1
20060282886 Gaug Dec 2006 A1
20060288288 Girgensohn et al. Dec 2006 A1
20060291507 Sarosi et al. Dec 2006 A1
20060293100 Walter Dec 2006 A1
20060294565 Walter Dec 2006 A1
20070001818 Small et al. Jan 2007 A1
20070002833 Bajic Jan 2007 A1
20070005736 Hansen et al. Jan 2007 A1
20070005957 Sahita et al. Jan 2007 A1
20070006177 Aiber et al. Jan 2007 A1
20070008099 Kimmel et al. Jan 2007 A1
20070014248 Fowlow Jan 2007 A1
20070043478 Ehlers et al. Feb 2007 A1
20070043954 Fox Feb 2007 A1
20070046462 Fancella Mar 2007 A1
20070047585 Gillespie et al. Mar 2007 A1
20070052675 Chang Mar 2007 A1
20070055770 Karmakar et al. Mar 2007 A1
20070058627 Smith et al. Mar 2007 A1
20070061018 Callaghan et al. Mar 2007 A1
20070061020 Bovee et al. Mar 2007 A1
20070061266 Moore et al. Mar 2007 A1
20070061430 Kim Mar 2007 A1
20070061878 Hagiu et al. Mar 2007 A1
20070063836 Hayden et al. Mar 2007 A1
20070063866 Webb Mar 2007 A1
20070064714 Bl et al. Mar 2007 A1
20070067780 Kumar et al. Mar 2007 A1
20070079012 Walker Apr 2007 A1
20070079151 Connor et al. Apr 2007 A1
20070079385 Williams et al. Apr 2007 A1
20070083668 Kelsey et al. Apr 2007 A1
20070090944 Du Breuil Apr 2007 A1
20070094716 Farino et al. Apr 2007 A1
20070096981 Abraham May 2007 A1
20070101345 Takagi May 2007 A1
20070103433 Katz May 2007 A1
20070105072 Koljonen May 2007 A1
20070106124 Kuriyama et al. May 2007 A1
20070106536 Moore May 2007 A1
20070106547 Agrawal May 2007 A1
20070109975 Reckamp et al. May 2007 A1
20070116020 Cheever et al. May 2007 A1
20070117464 Freeman May 2007 A1
20070118609 Mullan et al. May 2007 A1
20070127510 Bossemeyer et al. Jun 2007 A1
20070130286 Hopmann et al. Jun 2007 A1
20070132576 Kolavennu et al. Jun 2007 A1
20070136759 Zhang et al. Jun 2007 A1
20070140267 Yang Jun 2007 A1
20070142022 Madonna et al. Jun 2007 A1
20070142044 Fitzgerald et al. Jun 2007 A1
20070143400 Kelley et al. Jun 2007 A1
20070143440 Reckamp et al. Jun 2007 A1
20070146127 Stilp et al. Jun 2007 A1
20070146484 Horton et al. Jun 2007 A1
20070147419 Tsujimoto et al. Jun 2007 A1
20070150616 Baek et al. Jun 2007 A1
20070154010 Wong Jul 2007 A1
20070155325 Bambic et al. Jul 2007 A1
20070155423 Carmody et al. Jul 2007 A1
20070156689 Meek et al. Jul 2007 A1
20070160017 Meier et al. Jul 2007 A1
20070161372 Rogalski et al. Jul 2007 A1
20070162228 Mitchell Jul 2007 A1
20070162680 Mitchell Jul 2007 A1
20070164779 Weston et al. Jul 2007 A1
20070168860 Takayama et al. Jul 2007 A1
20070176766 Cheng Aug 2007 A1
20070182543 Luo Aug 2007 A1
20070182819 Monroe Aug 2007 A1
20070183345 Fahim et al. Aug 2007 A1
20070185989 Corbett et al. Aug 2007 A1
20070192486 Wilson et al. Aug 2007 A1
20070192863 Kapoor et al. Aug 2007 A1
20070197236 Ahn et al. Aug 2007 A1
20070198698 Boyd et al. Aug 2007 A1
20070200658 Yang Aug 2007 A1
20070208521 Petite et al. Sep 2007 A1
20070214262 Buchbinder et al. Sep 2007 A1
20070214264 Koister Sep 2007 A1
20070216764 Kwak Sep 2007 A1
20070216783 Ortiz et al. Sep 2007 A1
20070218895 Saito et al. Sep 2007 A1
20070223465 Wang et al. Sep 2007 A1
20070223500 Lee et al. Sep 2007 A1
20070226182 Sobotka et al. Sep 2007 A1
20070230415 Malik Oct 2007 A1
20070230744 Dronge Oct 2007 A1
20070245223 Siedzik et al. Oct 2007 A1
20070253361 Pristas et al. Nov 2007 A1
20070255856 Reckamp et al. Nov 2007 A1
20070256105 Tabe Nov 2007 A1
20070257986 Ivanov et al. Nov 2007 A1
20070260713 Moorer et al. Nov 2007 A1
20070262857 Jackson Nov 2007 A1
20070263782 Stock et al. Nov 2007 A1
20070265866 Fehling et al. Nov 2007 A1
20070271398 Manchester et al. Nov 2007 A1
20070275703 Lim et al. Nov 2007 A1
20070277111 Bennett et al. Nov 2007 A1
20070282665 Buehler et al. Dec 2007 A1
20070283001 Spiess et al. Dec 2007 A1
20070283004 Buehler Dec 2007 A1
20070286210 Gutt et al. Dec 2007 A1
20070286369 Gutt et al. Dec 2007 A1
20070287405 Radtke Dec 2007 A1
20070288849 Moorer et al. Dec 2007 A1
20070288858 Pereira Dec 2007 A1
20070290830 Gurley Dec 2007 A1
20070291118 Shu et al. Dec 2007 A1
20070296814 Cooper et al. Dec 2007 A1
20070298772 Owens et al. Dec 2007 A1
20080001734 Stilp et al. Jan 2008 A1
20080013531 Elliott et al. Jan 2008 A1
20080013957 Akers et al. Jan 2008 A1
20080025487 Johan et al. Jan 2008 A1
20080027587 Nickerson et al. Jan 2008 A1
20080034379 Dale et al. Feb 2008 A1
20080040272 Eskin Feb 2008 A1
20080042826 Hevia et al. Feb 2008 A1
20080043107 Coogan et al. Feb 2008 A1
20080046593 Ando et al. Feb 2008 A1
20080048861 Naidoo et al. Feb 2008 A1
20080048975 Leibow Feb 2008 A1
20080052348 Adler et al. Feb 2008 A1
20080056212 Karaoguz et al. Mar 2008 A1
20080056261 Osborn Mar 2008 A1
20080059533 Krikorian Mar 2008 A1
20080059622 Hite et al. Mar 2008 A1
20080065681 Fontijn et al. Mar 2008 A1
20080065685 Frank Mar 2008 A1
20080069121 Adamson et al. Mar 2008 A1
20080072244 Eker et al. Mar 2008 A1
20080074258 Bennett et al. Mar 2008 A1
20080074993 Vainola Mar 2008 A1
20080082186 Hood et al. Apr 2008 A1
20080084294 Zhiying et al. Apr 2008 A1
20080084296 Kutzik et al. Apr 2008 A1
20080086564 Putman et al. Apr 2008 A1
20080091793 Diroo et al. Apr 2008 A1
20080094204 Kogan et al. Apr 2008 A1
20080095339 Elliott et al. Apr 2008 A1
20080100705 Kister et al. May 2008 A1
20080102845 Zhao May 2008 A1
20080103608 Gough et al. May 2008 A1
20080104215 Excoffier et al. May 2008 A1
20080104516 Lee May 2008 A1
20080109302 Salokannel et al. May 2008 A1
20080109650 Shim et al. May 2008 A1
20080112340 Luebke May 2008 A1
20080112405 Cholas et al. May 2008 A1
20080117029 Dohrmann et al. May 2008 A1
20080117201 Martinez et al. May 2008 A1
20080117922 Cockrell et al. May 2008 A1
20080120405 Son et al. May 2008 A1
20080122575 Lavian et al. May 2008 A1
20080126535 Zhu et al. May 2008 A1
20080128444 Schininger et al. Jun 2008 A1
20080129484 Dahl et al. Jun 2008 A1
20080129821 Howarter et al. Jun 2008 A1
20080130949 Ivanov et al. Jun 2008 A1
20080133725 Shaouy Jun 2008 A1
20080134165 Anderson et al. Jun 2008 A1
20080134343 Pennington et al. Jun 2008 A1
20080137572 Park et al. Jun 2008 A1
20080140868 Kalayjian et al. Jun 2008 A1
20080141303 Walker et al. Jun 2008 A1
20080141341 Vinogradov et al. Jun 2008 A1
20080144884 Habibi Jun 2008 A1
20080147834 Quinn et al. Jun 2008 A1
20080151037 Kumarasamy et al. Jun 2008 A1
20080155080 Marlow et al. Jun 2008 A1
20080155470 Khedouri et al. Jun 2008 A1
20080162637 Adamczyk et al. Jul 2008 A1
20080163355 Chu Jul 2008 A1
20080165787 Xu et al. Jul 2008 A1
20080168404 Ording Jul 2008 A1
20080170511 Shorty et al. Jul 2008 A1
20080180240 Raji et al. Jul 2008 A1
20080181239 Wood et al. Jul 2008 A1
20080183483 Hart Jul 2008 A1
20080183842 Raji et al. Jul 2008 A1
20080189609 Larson et al. Aug 2008 A1
20080201468 Titus Aug 2008 A1
20080201723 Bottaro et al. Aug 2008 A1
20080204190 Cohn et al. Aug 2008 A1
20080204219 Cohn et al. Aug 2008 A1
20080208399 Pham Aug 2008 A1
20080209505 Ghai et al. Aug 2008 A1
20080209506 Ghai et al. Aug 2008 A1
20080215450 Gates et al. Sep 2008 A1
20080215613 Grasso Sep 2008 A1
20080219239 Bell et al. Sep 2008 A1
20080221715 Krzyzanowski et al. Sep 2008 A1
20080227460 David et al. Sep 2008 A1
20080229415 Kapoor et al. Sep 2008 A1
20080235326 Parsi et al. Sep 2008 A1
20080235600 Harper et al. Sep 2008 A1
20080239075 Mehrotra et al. Oct 2008 A1
20080240372 Stephan Oct 2008 A1
20080240696 Kucharyson Oct 2008 A1
20080253391 Krits et al. Oct 2008 A1
20080259818 Balassanian Oct 2008 A1
20080261540 Rohani et al. Oct 2008 A1
20080262990 Kapoor et al. Oct 2008 A1
20080262991 Kapoor et al. Oct 2008 A1
20080263150 Childers et al. Oct 2008 A1
20080266080 Leung et al. Oct 2008 A1
20080266257 Chiang Oct 2008 A1
20080271150 Boerger et al. Oct 2008 A1
20080284580 Babich et al. Nov 2008 A1
20080284587 Saigh et al. Nov 2008 A1
20080284592 Collins et al. Nov 2008 A1
20080288639 Ruppert et al. Nov 2008 A1
20080294588 Morris et al. Nov 2008 A1
20080295172 Bohacek Nov 2008 A1
20080297599 Donovan et al. Dec 2008 A1
20080303903 Bentley et al. Dec 2008 A1
20080313316 Hite et al. Dec 2008 A1
20080316024 Chantelou et al. Dec 2008 A1
20090003252 Salomone et al. Jan 2009 A1
20090003820 Law et al. Jan 2009 A1
20090007596 Goldstein et al. Jan 2009 A1
20090013210 McIntosh et al. Jan 2009 A1
20090018850 Abhyanker Jan 2009 A1
20090019141 Bush et al. Jan 2009 A1
20090022362 Gagvani et al. Jan 2009 A1
20090024493 Huang et al. Jan 2009 A1
20090036142 Yan Feb 2009 A1
20090036159 Chen Feb 2009 A1
20090041467 Carleton et al. Feb 2009 A1
20090042649 Hsieh et al. Feb 2009 A1
20090046664 Aso Feb 2009 A1
20090049094 Howell et al. Feb 2009 A1
20090049488 Stransky Feb 2009 A1
20090051769 Kuo et al. Feb 2009 A1
20090055760 Whatcott et al. Feb 2009 A1
20090057427 Geadelmann et al. Mar 2009 A1
20090063582 Anna et al. Mar 2009 A1
20090066534 Sivakkolundhu Mar 2009 A1
20090066788 Baum et al. Mar 2009 A1
20090066789 Baum et al. Mar 2009 A1
20090067395 Curtis et al. Mar 2009 A1
20090067441 Ansari et al. Mar 2009 A1
20090070436 Dawes et al. Mar 2009 A1
20090070473 Baum et al. Mar 2009 A1
20090070477 Baum et al. Mar 2009 A1
20090070681 Dawes et al. Mar 2009 A1
20090070682 Dawes et al. Mar 2009 A1
20090070692 Dawes et al. Mar 2009 A1
20090072988 Haywood Mar 2009 A1
20090074184 Baum et al. Mar 2009 A1
20090076211 Yang et al. Mar 2009 A1
20090076879 Sparks et al. Mar 2009 A1
20090077167 Baum et al. Mar 2009 A1
20090077622 Baum et al. Mar 2009 A1
20090077623 Baum et al. Mar 2009 A1
20090077624 Baum et al. Mar 2009 A1
20090079547 Oksanen et al. Mar 2009 A1
20090083167 Subbloie Mar 2009 A1
20090086660 Sood et al. Apr 2009 A1
20090086740 Al-Bakri et al. Apr 2009 A1
20090089822 Wada Apr 2009 A1
20090092283 Whillock et al. Apr 2009 A1
20090094671 Kurapati et al. Apr 2009 A1
20090100176 Hicks, III et al. Apr 2009 A1
20090100329 Espinoza Apr 2009 A1
20090100460 Hicks et al. Apr 2009 A1
20090100492 Hicks et al. Apr 2009 A1
20090113344 Nesse et al. Apr 2009 A1
20090119397 Neerdaels May 2009 A1
20090125708 Woodring et al. May 2009 A1
20090128365 Laskin May 2009 A1
20090134998 Baum et al. May 2009 A1
20090138600 Baum et al. May 2009 A1
20090138958 Baum et al. May 2009 A1
20090144237 Branam et al. Jun 2009 A1
20090146846 Grossman Jun 2009 A1
20090158189 Itani Jun 2009 A1
20090158292 Rattner et al. Jun 2009 A1
20090161609 Bergstrom Jun 2009 A1
20090165114 Baum et al. Jun 2009 A1
20090172443 Rothman et al. Jul 2009 A1
20090177298 McFarland et al. Jul 2009 A1
20090177906 Paniagua et al. Jul 2009 A1
20090180430 Fadell Jul 2009 A1
20090182868 McFate et al. Jul 2009 A1
20090187297 Kish et al. Jul 2009 A1
20090189981 Siann et al. Jul 2009 A1
20090193373 Abbaspour et al. Jul 2009 A1
20090197539 Shiba Aug 2009 A1
20090202250 Dizechi et al. Aug 2009 A1
20090204693 Andreev et al. Aug 2009 A1
20090221368 Yen et al. Sep 2009 A1
20090224875 Rabinowitz et al. Sep 2009 A1
20090228445 Gangal Sep 2009 A1
20090240353 Songkakul et al. Sep 2009 A1
20090240730 Wood Sep 2009 A1
20090240787 Denny Sep 2009 A1
20090240814 Brubacher et al. Sep 2009 A1
20090240946 Yeap et al. Sep 2009 A1
20090254960 Yarom et al. Oct 2009 A1
20090256708 Hsiao et al. Oct 2009 A1
20090259515 Belimpasakis et al. Oct 2009 A1
20090260052 Bathula et al. Oct 2009 A1
20090260083 Szeto et al. Oct 2009 A1
20090260430 Zamfes Oct 2009 A1
20090265042 Mollenkopf et al. Oct 2009 A1
20090265193 Collins et al. Oct 2009 A1
20090270090 Kawamura Oct 2009 A1
20090271042 Voysey Oct 2009 A1
20090289787 Dawson et al. Nov 2009 A1
20090289788 Leblond Nov 2009 A1
20090292909 Feder et al. Nov 2009 A1
20090303100 Zemany Dec 2009 A1
20090307255 Park Dec 2009 A1
20090307307 Tatsuya Dec 2009 A1
20090313693 Rogers Dec 2009 A1
20090316671 Rolf et al. Dec 2009 A1
20090319361 Paul Dec 2009 A1
20090322510 Berger et al. Dec 2009 A1
20090324010 Hou Dec 2009 A1
20090327483 Thompson et al. Dec 2009 A1
20090327510 Edelman et al. Dec 2009 A1
20100000791 Alberty Jan 2010 A1
20100001812 Kausch Jan 2010 A1
20100004949 O'Brien Jan 2010 A1
20100008274 Kneckt et al. Jan 2010 A1
20100009758 Twitchell, Jr. Jan 2010 A1
20100011298 Campbell et al. Jan 2010 A1
20100013917 Hanna et al. Jan 2010 A1
20100023865 Fulker et al. Jan 2010 A1
20100026481 Oh et al. Feb 2010 A1
20100026487 Hershkovitz Feb 2010 A1
20100030578 Siddique et al. Feb 2010 A1
20100030810 Marr Feb 2010 A1
20100039958 Ge et al. Feb 2010 A1
20100041380 Hewes et al. Feb 2010 A1
20100042954 Rosenblatt et al. Feb 2010 A1
20100052612 Raji et al. Mar 2010 A1
20100066530 Cohn et al. Mar 2010 A1
20100067371 Gogic et al. Mar 2010 A1
20100070618 Kim et al. Mar 2010 A1
20100071053 Ansari et al. Mar 2010 A1
20100074112 Derr et al. Mar 2010 A1
20100077111 Holmes et al. Mar 2010 A1
20100077347 Kirtane et al. Mar 2010 A1
20100082744 Raji et al. Apr 2010 A1
20100095111 Gutt et al. Apr 2010 A1
20100095369 Gutt Apr 2010 A1
20100100269 Ekhaguere et al. Apr 2010 A1
20100102951 Rutledge Apr 2010 A1
20100121521 Kiribayashi May 2010 A1
20100122091 Huang et al. May 2010 A1
20100138758 Mizumori et al. Jun 2010 A1
20100138764 Hatambeiki et al. Jun 2010 A1
20100141762 Siann et al. Jun 2010 A1
20100145485 Duchene et al. Jun 2010 A1
20100150170 Lee et al. Jun 2010 A1
20100153853 Dawes et al. Jun 2010 A1
20100159898 Krzyzanowski et al. Jun 2010 A1
20100159967 Pounds et al. Jun 2010 A1
20100164736 Byers et al. Jul 2010 A1
20100165897 Sood Jul 2010 A1
20100174643 Schaefer et al. Jul 2010 A1
20100177749 Essinger et al. Jul 2010 A1
20100177750 Essinger et al. Jul 2010 A1
20100185857 Neitzel et al. Jul 2010 A1
20100191352 Quail Jul 2010 A1
20100197219 Issa et al. Aug 2010 A1
20100204839 Behm et al. Aug 2010 A1
20100210240 Mahaffey et al. Aug 2010 A1
20100212012 Touboul et al. Aug 2010 A1
20100217837 Ansari et al. Aug 2010 A1
20100218104 Lewis Aug 2010 A1
20100222069 Abraham et al. Sep 2010 A1
20100238286 Boghossian et al. Sep 2010 A1
20100241711 Ansari et al. Sep 2010 A1
20100241748 Ansari et al. Sep 2010 A1
20100245107 Fulker et al. Sep 2010 A1
20100248681 Phills Sep 2010 A1
20100267390 Lin et al. Oct 2010 A1
20100274366 Fata et al. Oct 2010 A1
20100275018 Pedersen Oct 2010 A1
20100277300 Cohn et al. Nov 2010 A1
20100277302 Cohn et al. Nov 2010 A1
20100277315 Cohn et al. Nov 2010 A1
20100279649 Thomas Nov 2010 A1
20100280635 Cohn et al. Nov 2010 A1
20100280637 Cohn et al. Nov 2010 A1
20100281135 Cohn et al. Nov 2010 A1
20100281161 Cohn et al. Nov 2010 A1
20100281312 Cohn et al. Nov 2010 A1
20100298024 Choi Nov 2010 A1
20100308990 Simon et al. Dec 2010 A1
20100321151 Matsuura et al. Dec 2010 A1
20100325107 Kenton et al. Dec 2010 A1
20100332164 Aisa et al. Dec 2010 A1
20110000521 Tachibana Jan 2011 A1
20110018998 Guzik Jan 2011 A1
20110029875 Milch Feb 2011 A1
20110030056 Tokunaga Feb 2011 A1
20110037593 Foisy et al. Feb 2011 A1
20110040415 Nickerson et al. Feb 2011 A1
20110040877 Foisy Feb 2011 A1
20110046792 Imes et al. Feb 2011 A1
20110051638 Jeon et al. Mar 2011 A1
20110058034 Grass Mar 2011 A1
20110061011 Hoguet Mar 2011 A1
20110068921 Shafer Mar 2011 A1
20110080267 Clare et al. Apr 2011 A1
20110087988 Ray et al. Apr 2011 A1
20110093799 Hatambeiki et al. Apr 2011 A1
20110096678 Ketonen Apr 2011 A1
20110102588 Trundle et al. May 2011 A1
20110107436 Cholas et al. May 2011 A1
20110125333 Gray May 2011 A1
20110125846 Ham et al. May 2011 A1
20110128378 Raji Jun 2011 A1
20110130112 Saigh et al. Jun 2011 A1
20110131226 Chandra et al. Jun 2011 A1
20110148572 Ku Jun 2011 A1
20110156914 Sheharri et al. Jun 2011 A1
20110169637 Siegler et al. Jul 2011 A1
20110187497 Chin Aug 2011 A1
20110197327 Mcelroy et al. Aug 2011 A1
20110200052 Mungo et al. Aug 2011 A1
20110208359 Duchene et al. Aug 2011 A1
20110212706 Uusilehto Sep 2011 A1
20110213869 Korsunsky et al. Sep 2011 A1
20110214157 Korsunsky et al. Sep 2011 A1
20110218777 Chen et al. Sep 2011 A1
20110219035 Korsunsky et al. Sep 2011 A1
20110230139 Nakahara Sep 2011 A1
20110230160 Felgate Sep 2011 A1
20110231510 Korsunsky et al. Sep 2011 A1
20110231564 Korsunsky et al. Sep 2011 A1
20110234392 Cohn et al. Sep 2011 A1
20110238855 Korsunsky et al. Sep 2011 A1
20110246762 Adams et al. Oct 2011 A1
20110257953 Li et al. Oct 2011 A1
20110261195 Martin et al. Oct 2011 A1
20110276699 Pedersen Nov 2011 A1
20110283006 Ramamurthy Nov 2011 A1
20110286437 Austin et al. Nov 2011 A1
20110289517 Sather et al. Nov 2011 A1
20110299546 Prodan et al. Dec 2011 A1
20110302497 Garrett et al. Dec 2011 A1
20110309929 Myers Dec 2011 A1
20110314515 Hernoud et al. Dec 2011 A1
20120001436 Sami et al. Jan 2012 A1
20120014363 Hassan et al. Jan 2012 A1
20120016607 Cottrell et al. Jan 2012 A1
20120017268 Dispensa Jan 2012 A9
20120020060 Myer et al. Jan 2012 A1
20120023151 Bennett et al. Jan 2012 A1
20120030130 Smith et al. Feb 2012 A1
20120062026 Raji et al. Mar 2012 A1
20120062370 Feldstein et al. Mar 2012 A1
20120066608 Sundermeyer et al. Mar 2012 A1
20120066632 Sundermeyer et al. Mar 2012 A1
20120075469 Oskin et al. Mar 2012 A1
20120081842 Ewing et al. Apr 2012 A1
20120084184 Raleigh et al. Apr 2012 A1
20120086552 Fast et al. Apr 2012 A1
20120143383 Cooperrider et al. Jun 2012 A1
20120150966 Fan et al. Jun 2012 A1
20120154126 Cohn et al. Jun 2012 A1
20120154138 Cohn et al. Jun 2012 A1
20120172027 Partheesh et al. Jul 2012 A1
20120182245 Hutton Jul 2012 A1
20120209951 Enns Aug 2012 A1
20120214502 Qiang Aug 2012 A1
20120232788 Diao Sep 2012 A1
20120240185 Kapoor et al. Sep 2012 A1
20120242788 Chuang et al. Sep 2012 A1
20120257061 Edwards et al. Oct 2012 A1
20120259722 Mikurak Oct 2012 A1
20120260184 Dawes et al. Oct 2012 A1
20120265892 Ma et al. Oct 2012 A1
20120269199 Chan et al. Oct 2012 A1
20120278877 Baum et al. Nov 2012 A1
20120280790 Gerhardt et al. Nov 2012 A1
20120290740 Tewari et al. Nov 2012 A1
20120296486 Marriam et al. Nov 2012 A1
20120307646 Xia et al. Dec 2012 A1
20120309354 Du Dec 2012 A1
20120313781 Barker et al. Dec 2012 A1
20120314901 Hanson et al. Dec 2012 A1
20120315848 Smith et al. Dec 2012 A1
20120324566 Baum et al. Dec 2012 A1
20120327242 Barley et al. Dec 2012 A1
20120331109 Baum et al. Dec 2012 A1
20130002880 Levinson et al. Jan 2013 A1
20130007871 Meenan et al. Jan 2013 A1
20130038730 Peterson et al. Feb 2013 A1
20130038800 Yoo Feb 2013 A1
20130047123 May et al. Feb 2013 A1
20130057695 Huisking Mar 2013 A1
20130062951 Raji et al. Mar 2013 A1
20130073746 Singh et al. Mar 2013 A1
20130082835 Shapiro et al. Apr 2013 A1
20130082836 Watts Apr 2013 A1
20130085615 Barker Apr 2013 A1
20130085620 Lu et al. Apr 2013 A1
20130086618 Klein et al. Apr 2013 A1
20130091213 Diab et al. Apr 2013 A1
20130094538 Wang Apr 2013 A1
20130103207 Ruff et al. Apr 2013 A1
20130111576 Devine et al. May 2013 A1
20130115972 Ziskind et al. May 2013 A1
20130120131 Hicks, III May 2013 A1
20130120134 Hicks, III May 2013 A1
20130125157 Sharif-Ahmadi et al. May 2013 A1
20130136102 Macwan et al. May 2013 A1
20130147799 Hoguet Jun 2013 A1
20130154822 Kumar et al. Jun 2013 A1
20130155229 Thornton et al. Jun 2013 A1
20130163491 Singh et al. Jun 2013 A1
20130163757 Bellovin et al. Jun 2013 A1
20130173797 Poirer Jul 2013 A1
20130174239 Kim et al. Jul 2013 A1
20130183924 Saigh et al. Jul 2013 A1
20130184874 Frader-Thompson et al. Jul 2013 A1
20130185026 Vanker et al. Jul 2013 A1
20130191755 Balog et al. Jul 2013 A1
20130205016 Dupre et al. Aug 2013 A1
20130218959 Sa et al. Aug 2013 A1
20130222133 Schultz et al. Aug 2013 A1
20130223279 Tinnakornsrisuphap et al. Aug 2013 A1
20130245837 Grohman Sep 2013 A1
20130257611 Lamb et al. Oct 2013 A1
20130258119 Kim et al. Oct 2013 A1
20130261821 Lu et al. Oct 2013 A1
20130266193 Tiwari et al. Oct 2013 A1
20130271270 Jamadagni et al. Oct 2013 A1
20130286942 Bonar et al. Oct 2013 A1
20130311146 Miller et al. Nov 2013 A1
20130314542 Jackson Nov 2013 A1
20130318231 Raji et al. Nov 2013 A1
20130318443 Bachman et al. Nov 2013 A1
20130325935 Kiley et al. Dec 2013 A1
20130331109 Dhillon et al. Dec 2013 A1
20130344875 Chowdhury Dec 2013 A1
20140006660 Frei et al. Jan 2014 A1
20140024361 Poon et al. Jan 2014 A1
20140032034 Raptopoulos et al. Jan 2014 A1
20140035726 Schoner et al. Feb 2014 A1
20140053246 Huang et al. Feb 2014 A1
20140068486 Sellers et al. Mar 2014 A1
20140075464 Mccrea Mar 2014 A1
20140095630 Wohlert et al. Apr 2014 A1
20140098247 Rao et al. Apr 2014 A1
20140108151 Bookstaff Apr 2014 A1
20140109130 Sugimoto et al. Apr 2014 A1
20140112405 Jafarian et al. Apr 2014 A1
20140126425 Burd et al. May 2014 A1
20140136242 Weekes et al. May 2014 A1
20140136847 Huang May 2014 A1
20140136936 Patel et al. May 2014 A1
20140140575 Wolf May 2014 A1
20140143695 Sundermeyer et al. May 2014 A1
20140143851 Baum et al. May 2014 A1
20140143854 Lopez et al. May 2014 A1
20140146171 Brady et al. May 2014 A1
20140153695 Yanagisawa et al. Jun 2014 A1
20140167928 Burd et al. Jun 2014 A1
20140172957 Baum et al. Jun 2014 A1
20140176797 Silva et al. Jun 2014 A1
20140180968 Song et al. Jun 2014 A1
20140188290 Steinberg et al. Jul 2014 A1
20140188729 Hong Jul 2014 A1
20140201291 Russell Jul 2014 A1
20140208214 Stern Jul 2014 A1
20140218517 Kim et al. Aug 2014 A1
20140232861 Naidoo et al. Aug 2014 A1
20140233951 Cook Aug 2014 A1
20140236325 Sasaki et al. Aug 2014 A1
20140245014 Tuck et al. Aug 2014 A1
20140245160 Bauer et al. Aug 2014 A1
20140254896 Zhou et al. Sep 2014 A1
20140266678 Shapiro et al. Sep 2014 A1
20140266736 Cretu-Petra Sep 2014 A1
20140278281 Vaynriber et al. Sep 2014 A1
20140282048 Shapiro et al. Sep 2014 A1
20140282934 Miasnik et al. Sep 2014 A1
20140289384 Kao et al. Sep 2014 A1
20140289388 Ghosh et al. Sep 2014 A1
20140293046 Nl Oct 2014 A1
20140298467 Bhagwat et al. Oct 2014 A1
20140316616 Kugelmass Oct 2014 A1
20140317660 Cheung et al. Oct 2014 A1
20140319232 Gourlay et al. Oct 2014 A1
20140328161 Haddad Nov 2014 A1
20140340216 Puskarich Nov 2014 A1
20140355588 Cho et al. Dec 2014 A1
20140359101 Dawes et al. Dec 2014 A1
20140359524 Sasaki et al. Dec 2014 A1
20140368331 Cohn et al. Dec 2014 A1
20140369584 Fan et al. Dec 2014 A1
20140372599 Gutt et al. Dec 2014 A1
20140372811 Cohn et al. Dec 2014 A1
20140378110 Chingon et al. Dec 2014 A1
20150009325 Kardashov Jan 2015 A1
20150019714 Shaashua et al. Jan 2015 A1
20150022666 Kay et al. Jan 2015 A1
20150026796 Man et al. Jan 2015 A1
20150054947 Dawes Feb 2015 A1
20150058250 Stanzione et al. Feb 2015 A1
20150074206 Baldwin Mar 2015 A1
20150074259 Ansari Mar 2015 A1
20150077553 Dawes Mar 2015 A1
20150082414 Dawes Mar 2015 A1
20150088982 Johnson et al. Mar 2015 A1
20150097680 Fadell et al. Apr 2015 A1
20150097949 Ure et al. Apr 2015 A1
20150097961 Ure et al. Apr 2015 A1
20150100167 Sloo et al. Apr 2015 A1
20150106721 Cha et al. Apr 2015 A1
20150116108 Fadell et al. Apr 2015 A1
20150140954 Maier et al. May 2015 A1
20150142991 Zaloom May 2015 A1
20150161875 Cohn et al. Jun 2015 A1
20150170447 Buzhardt Jun 2015 A1
20150192940 Silva et al. Jul 2015 A1
20150193127 Chai et al. Jul 2015 A1
20150205297 Stevens et al. Jul 2015 A1
20150205465 Robison et al. Jul 2015 A1
20150222517 McLaughlin et al. Aug 2015 A1
20150222601 Metz et al. Aug 2015 A1
20150227118 Wong Aug 2015 A1
20150256355 Pera et al. Sep 2015 A1
20150261427 Sasaki Sep 2015 A1
20150266577 Jones et al. Sep 2015 A1
20150287310 Deiiuliis et al. Oct 2015 A1
20150304804 Lotito Oct 2015 A1
20150319006 Plummer et al. Nov 2015 A1
20150319046 Plummer et al. Nov 2015 A1
20150325106 Dawes et al. Nov 2015 A1
20150331662 Lambourne Nov 2015 A1
20150334087 Dawes Nov 2015 A1
20150348554 Orr et al. Dec 2015 A1
20150350031 Burks et al. Dec 2015 A1
20150350735 Crone Dec 2015 A1
20150358359 Ghai et al. Dec 2015 A1
20150365217 Scholten Dec 2015 A1
20150365933 Lee et al. Dec 2015 A1
20150371512 Bennett et al. Dec 2015 A1
20150373149 Lyons Dec 2015 A1
20150379355 Kanga et al. Dec 2015 A1
20160004820 Moore Jan 2016 A1
20160012715 Raji et al. Jan 2016 A1
20160019763 Raji et al. Jan 2016 A1
20160019778 Raji et al. Jan 2016 A1
20160023475 Bevier et al. Jan 2016 A1
20160027295 Raji et al. Jan 2016 A1
20160036944 Kitchen et al. Feb 2016 A1
20160037389 Tagg et al. Feb 2016 A1
20160042637 Cahill Feb 2016 A1
20160055573 Chen et al. Feb 2016 A1
20160062624 Sundermeyer et al. Mar 2016 A1
20160063642 Luciani et al. Mar 2016 A1
20160065413 Sundermeyer et al. Mar 2016 A1
20160065414 Sundermeyer et al. Mar 2016 A1
20160065653 Chen et al. Mar 2016 A1
20160068264 Ganesh et al. Mar 2016 A1
20160077935 Zheng et al. Mar 2016 A1
20160080365 Baker et al. Mar 2016 A1
20160087933 Johnson et al. Mar 2016 A1
20160094421 Bali et al. Mar 2016 A1
20160100348 Cohn et al. Apr 2016 A1
20160107749 Mucci Apr 2016 A1
20160116914 Mucci Apr 2016 A1
20160127641 Gove May 2016 A1
20160147919 Yabe et al. May 2016 A1
20160156941 Alao et al. Jun 2016 A9
20160161277 Park et al. Jun 2016 A1
20160163185 Ramasubbu et al. Jun 2016 A1
20160164923 Dawes Jun 2016 A1
20160171853 Naidoo et al. Jun 2016 A1
20160180719 WOUHAYBl et al. Jun 2016 A1
20160183073 Saito et al. Jun 2016 A1
20160187995 Rosewall Jun 2016 A1
20160189509 Malhotra et al. Jun 2016 A1
20160189524 Poder et al. Jun 2016 A1
20160189527 Peterson et al. Jun 2016 A1
20160189549 Marcus Jun 2016 A1
20160191265 Cohn et al. Jun 2016 A1
20160191621 Oh et al. Jun 2016 A1
20160192461 Minsky Jun 2016 A1
20160196734 Hicks, III Jul 2016 A1
20160202695 Deroos et al. Jul 2016 A1
20160209072 Golden et al. Jul 2016 A1
20160225240 Voddhi et al. Aug 2016 A1
20160226732 Kim et al. Aug 2016 A1
20160231916 Dawes Aug 2016 A1
20160232780 Cohn et al. Aug 2016 A1
20160234075 Sirpal et al. Aug 2016 A1
20160241633 Overby, Jr. Aug 2016 A1
20160260135 Zomet et al. Sep 2016 A1
20160261932 Fadell et al. Sep 2016 A1
20160266579 Chen et al. Sep 2016 A1
20160267751 Fulker et al. Sep 2016 A1
20160269191 Cronin Sep 2016 A1
20160274759 Dawes Sep 2016 A1
20160363337 Steinberg et al. Dec 2016 A1
20160364089 Blackman et al. Dec 2016 A1
20160371961 Narang et al. Dec 2016 A1
20160371967 Narang et al. Dec 2016 A1
20160373453 Ruffner et al. Dec 2016 A1
20160378109 Raffa et al. Dec 2016 A1
20170004714 Rhee Jan 2017 A1
20170005818 Gould Jan 2017 A1
20170006107 Dawes et al. Jan 2017 A1
20170019644 K et al. Jan 2017 A1
20170026440 Cockrell et al. Jan 2017 A1
20170039413 Nadler Feb 2017 A1
20170052513 Raji et al. Feb 2017 A1
20170054570 Hagins et al. Feb 2017 A1
20170054571 Kitchen et al. Feb 2017 A1
20170054594 Decenzo et al. Feb 2017 A1
20170063967 Kitchen et al. Mar 2017 A1
20170063968 Kitchen et al. Mar 2017 A1
20170068419 Sundermeyer et al. Mar 2017 A1
20170070361 Sundermeyer et al. Mar 2017 A1
20170070563 Sundermeyer et al. Mar 2017 A1
20170078298 Vlaminck et al. Mar 2017 A1
20170092138 Trundle et al. Mar 2017 A1
20170103646 Naidoo et al. Apr 2017 A1
20170109999 Cohn et al. Apr 2017 A1
20170111227 Papageorgiou Apr 2017 A1
20170118037 Kitchen et al. Apr 2017 A1
20170124987 Kim et al. May 2017 A1
20170127124 Wilson et al. May 2017 A9
20170154507 Dawes et al. Jun 2017 A1
20170155545 Baum et al. Jun 2017 A1
20170180198 Baum et al. Jun 2017 A1
20170180306 Gutt et al. Jun 2017 A1
20170185277 Sundermeyer et al. Jun 2017 A1
20170185278 Sundermeyer et al. Jun 2017 A1
20170185281 Park et al. Jun 2017 A1
20170187993 Martch et al. Jun 2017 A1
20170192402 Karp et al. Jul 2017 A1
20170225336 Deyle et al. Aug 2017 A1
20170227965 Decenzo et al. Aug 2017 A1
20170244573 Baum et al. Aug 2017 A1
20170255452 Barnes et al. Sep 2017 A1
20170257257 Dawes Sep 2017 A1
20170278407 Lemmey et al. Sep 2017 A1
20170279629 Raji Sep 2017 A1
20170289323 Gelvin et al. Oct 2017 A1
20170289360 Baum et al. Oct 2017 A1
20170301216 Cohn et al. Oct 2017 A1
20170302469 Cohn et al. Oct 2017 A1
20170303257 Yamada et al. Oct 2017 A1
20170310500 Dawes Oct 2017 A1
20170330466 Demetriades et al. Nov 2017 A1
20170331781 Gutt et al. Nov 2017 A1
20170332055 Henderson Nov 2017 A1
20170337806 Cohn et al. Nov 2017 A1
20170353324 Baum et al. Dec 2017 A1
20180004377 Kitchen et al. Jan 2018 A1
20180012460 Heitz, III et al. Jan 2018 A1
20180019890 Dawes Jan 2018 A1
20180027517 Noonan Jan 2018 A9
20180045159 Patel Feb 2018 A1
20180054774 Cohn et al. Feb 2018 A1
20180063248 Dawes et al. Mar 2018 A1
20180063259 Connelly et al. Mar 2018 A1
20180069862 Cholas Mar 2018 A1
20180069932 Tiwari et al. Mar 2018 A1
20180082575 El-Mankabady Mar 2018 A1
20180083831 Baum et al. Mar 2018 A1
20180092046 Egan et al. Mar 2018 A1
20180095155 Soni et al. Apr 2018 A1
20180096568 Cohn et al. Apr 2018 A1
20180107196 Bian et al. Apr 2018 A1
20180152342 Karaoguz et al. May 2018 A1
20180183668 Caldwell et al. Jun 2018 A1
20180191720 Dawes Jul 2018 A1
20180191740 Decenzo et al. Jul 2018 A1
20180191741 Dawes et al. Jul 2018 A1
20180191742 Dawes Jul 2018 A1
20180191807 Dawes Jul 2018 A1
20180197387 Dawes Jul 2018 A1
20180198688 Dawes Jul 2018 A1
20180198755 Domangue et al. Jul 2018 A1
20180198756 Dawes Jul 2018 A1
20180198788 Helen et al. Jul 2018 A1
20180198802 Dawes Jul 2018 A1
20180198841 Chmielewski et al. Jul 2018 A1
20180278701 Diem Sep 2018 A1
20180307223 Peeiers et al. Oct 2018 A1
20180322759 Devdas Nov 2018 A1
20190014413 Kallai et al. Jan 2019 A1
20190041547 Rolf et al. Feb 2019 A1
20190058720 Lindquist et al. Feb 2019 A1
20190073193 Krispin Mar 2019 A1
20190073534 Dvir et al. Mar 2019 A1
20190103030 Banga et al. Apr 2019 A1
20190176985 Mucci Jun 2019 A1
20190197256 Lehnhardt et al. Jun 2019 A1
20190204836 Rezvani Jul 2019 A1
20190239008 Lambourne Aug 2019 A1
20190245798 Short et al. Aug 2019 A1
20190265694 Chen et al. Aug 2019 A1
20190347924 Trundle et al. Nov 2019 A1
20190386892 Sundermeyer et al. Dec 2019 A1
20190391545 Trundle et al. Dec 2019 A1
20200014675 Helms et al. Jan 2020 A1
20200026285 Perrone Jan 2020 A1
20200029339 Suzuki Jan 2020 A1
20200032887 Mcburney et al. Jan 2020 A1
20200036635 Ohuchi Jan 2020 A1
20200076858 Apsangi et al. Mar 2020 A1
20200094963 Myslinski Mar 2020 A1
20200127891 Johnson et al. Apr 2020 A9
20200137125 Patnala et al. Apr 2020 A1
20200142574 Sundermeyer et al. May 2020 A1
20200159399 Sundermeyer et al. May 2020 A1
20200162890 Spencer et al. May 2020 A1
20200186612 Saint Clair Jun 2020 A1
20200196213 Cheng et al. Jun 2020 A1
20200257721 Mckinnon et al. Aug 2020 A1
20200273277 Kerning et al. Aug 2020 A1
20200279626 Ansari et al. Sep 2020 A1
20200322577 Raffa et al. Oct 2020 A1
20200328880 Bolotin et al. Oct 2020 A1
20200328887 Kostiainen et al. Oct 2020 A1
20200333780 Kerzner Oct 2020 A1
20200342742 Sundermeyer et al. Oct 2020 A1
20200380851 Farrand et al. Dec 2020 A1
20210029547 Beachem et al. Jan 2021 A1
20210053136 Rappl et al. Feb 2021 A1
20210081553 Lemmey et al. Mar 2021 A1
20210099753 Connelly et al. Apr 2021 A1
20210153001 Eisner May 2021 A1
20210180815 Shamoon et al. Jun 2021 A1
20210250726 Jones Aug 2021 A1
20210326451 Mariano Oct 2021 A1
20210335123 Trundle et al. Oct 2021 A1
20220021552 Ansari et al. Jan 2022 A1
20220027051 Kant et al. Jan 2022 A1
20220029994 Choyi et al. Jan 2022 A1
20220038440 Boynton et al. Feb 2022 A1
20220159334 Wang et al. May 2022 A1
Foreign Referenced Citations (146)
Number Date Country
2005223267 Dec 2010 AU
2010297957 May 2012 AU
2011250886 Jan 2013 AU
2013284428 Feb 2015 AU
2011305163 Dec 2016 AU
2017201365 Mar 2017 AU
2017201585 Mar 2017 AU
1008939 Oct 1996 BE
2203813 Jun 1996 CA
2174482 Oct 1997 CA
2346638 Apr 2000 CA
2389958 Mar 2003 CA
2878117 Jan 2014 CA
2559842 May 2014 CA
2992429 Dec 2016 CA
2976682 Feb 2018 CA
2976802 Feb 2018 CA
102834818 Dec 2012 CN
102985915 Mar 2013 CN
WO2015176775 Nov 2015 DE
0295146 Dec 1988 EP
0308046 Mar 1989 EP
0591585 Apr 1994 EP
1117214 Jul 2001 EP
1119837 Aug 2001 EP
0978111 Nov 2001 EP
1738540 Jan 2007 EP
1881716 Jan 2008 EP
2112784 Oct 2009 EP
2188794 May 2010 EP
2191351 Jun 2010 EP
2327063 Jun 2011 EP
2483788 Aug 2012 EP
2569712 Mar 2013 EP
2619686 Jul 2013 EP
2868039 May 2015 EP
3031206 Jun 2016 EP
3285238 Feb 2018 EP
3308222 Apr 2018 EP
2584217 Jan 1987 FR
2661023 Oct 1991 FR
2793334 Nov 2000 FR
2222288 Feb 1990 GB
2273593 Jun 1994 GB
2286423 Aug 1995 GB
2291554 Jan 1996 GB
2319373 May 1998 GB
2320644 Jun 1998 GB
2324630 Oct 1998 GB
2325548 Nov 1998 GB
2335523 Sep 1999 GB
2349293 Oct 2000 GB
2370400 Jun 2002 GB
2442628 Apr 2008 GB
2442633 Apr 2008 GB
2442640 Apr 2008 GB
2428821 Jun 2008 GB
452015 Nov 2015 IN
042016 Jan 2016 IN
63-033088 Feb 1988 JP
05-167712 Jul 1993 JP
06-339183 Dec 1993 JP
08-227491 Sep 1996 JP
10-004451 Jan 1998 JP
2000-006343 Jan 2000 JP
2000-023146 Jan 2000 JP
2000-278671 Oct 2000 JP
2001-006088 Jan 2001 JP
2001-006343 Jan 2001 JP
2001-069209 Mar 2001 JP
2002-055895 Feb 2002 JP
2002-185629 Jun 2002 JP
2003-085258 Mar 2003 JP
2003-141659 May 2003 JP
2003-281647 Oct 2003 JP
2004-192659 Jul 2004 JP
2006-094394 Apr 2006 JP
2007-529826 Oct 2007 JP
2009-213107 Sep 2009 JP
2010-140091 Jun 2010 JP
10-2005-0051577 Jun 2005 KR
10-2006-0021605 Mar 2006 KR
10-0771941 Oct 2007 KR
340934 Sep 1998 TW
I239176 Sep 2005 TW
201101243 Jan 2011 TW
201102976 Jan 2011 TW
201102978 Jan 2011 TW
201117141 May 2011 TW
I480839 Apr 2015 TW
I480840 Apr 2015 TW
I509579 Nov 2015 TW
I517106 Jan 2016 TW
8907855 Aug 1989 WO
8911187 Nov 1989 WO
9403881 Feb 1994 WO
9513944 May 1995 WO
9636301 Nov 1996 WO
9713230 Apr 1997 WO
9825243 Jun 1998 WO
9849663 Nov 1998 WO
9852343 Nov 1998 WO
9859256 Dec 1998 WO
9934339 Jul 1999 WO
0021053 Apr 2000 WO
0036812 Jun 2000 WO
0072598 Nov 2000 WO
0111586 Feb 2001 WO
0152478 Jul 2001 WO
0171489 Sep 2001 WO
0186622 Nov 2001 WO
0199078 Dec 2001 WO
0211444 Feb 2002 WO
0221300 Mar 2002 WO
0297584 Dec 2002 WO
2002100083 Dec 2002 WO
2003026305 Mar 2003 WO
0340839 May 2003 WO
2004004222 Jan 2004 WO
2004098127 Nov 2004 WO
2004107710 Dec 2004 WO
2005091218 Sep 2005 WO
2007038872 Apr 2007 WO
2007124453 Nov 2007 WO
2008056320 May 2008 WO
2009006670 Jan 2009 WO
2009023647 Feb 2009 WO
2009029590 Mar 2009 WO
2009029597 Mar 2009 WO
2009064795 May 2009 WO
2009145747 Dec 2009 WO
2010019624 Feb 2010 WO
2010025468 Mar 2010 WO
2010127009 Nov 2010 WO
2010127194 Nov 2010 WO
2010127200 Nov 2010 WO
2010127203 Nov 2010 WO
2011038409 Mar 2011 WO
2011063354 May 2011 WO
2011143273 Nov 2011 WO
2012040653 Mar 2012 WO
2014004911 Jan 2014 WO
2015021469 Feb 2015 WO
2015134520 Sep 2015 WO
2016201033 Dec 2016 WO
201302668 Jun 2014 ZA
Non-Patent Literature Citations (308)
Entry
“Associate”. Merriaim-Webster.com Dictionary, Merriam-Webster, https://web.archive.org/web/20061209213742/https://www.merriam-webster.com/dictionary/associate. Dec. 9, 2006.
“Indicate”. Merriam-Webster.com Dictionary, Merriam-Webster, https://web.archive.org/web/20061209080613/https://www.merriam-webster.com/dictionary/indicate. Dec. 9, 2006.
US Patent Application filed Oct. 12, 2020, entitled “Integrated Security System With Parallel Processing Architecture”, U.S. Appl. No. 17/068,584.
US Patent Application filed Nov. 10, 2020, entitled “Integrated Cloud System for Premises Automation”, U.S. Appl. No. 17/094,120.
US Patent Application filed Nov. 25, 2020, entitled “Premises Management Networking”, U.S. Appl. No. 17/105,235.
US Patent Application filed Dec. 9, 2020, entitled “Integrated Security System With Parallel Processing Architecture”, U.S. Appl. No. 17/115,936.
Wang et al, “A Large Scale Video Surveillance System with Heterogeneous Information Fusion and Visualization for Wide Area Monitoring,” 2012 Eighth International Conference on Intelligent Information Hiding and Multimedia Signal Processing, Piraeus, 2012, pp. 178-181.
International Search Report for Application No. PCT/US2014/050548, dated Mar. 18, 2015, 4 pages.
J. David Eisenberg, SVG Essentials: Producing Scalable Vector Graphics with XML. O'Reilly & Associates, Inc., Sebastopol, CA 2002.
Lagotek Wireless Home Automation System, May 2006 [retrieved on Aug. 22, 2012].
Network Working Group, Request for Comments H.SchuIzrinne Apr. 1998.
Non-Final Office Action dated Apr. 4, 2013 for U.S. Appl. No. 12/197,931, filed Aug. 25, 2008.
Non-Final Office Action dated Mar. 4, 2013 for U.S. Appl. No. 13/400,477, filed Feb. 20, 2012.
Non-Final Office Action dated May 5, 2010 for U.S. Appl. No. 12/189,780, filed Aug. 11, 2008.
Non-Final Office Action dated May 5, 2010 for U.S. Appl. No. 12/189,785, filed Aug. 11, 2008.
Non-Final Office Action dated Feb. 7, 2012 for U.S. Appl. No. 12/637,671, filed Dec. 14, 2009.
Non-Final Office Action dated Feb. 7, 2013 for U.S. Appl. No. 12/970,313, filed Dec. 16, 2010.
Non-Final Office Action dated Feb. 8, 2012 for U.S. Appl. No. 12/630,092, filed Dec. 3, 2009.
Non-Final Office Action dated Apr. 9, 2012 for U.S. Appl. No. 12/771,624, filed Apr. 30, 2010.
Non-Final Office Action dated Dec. 9, 2008 for U.S. Appl. No. 11/084,232, filed Mar. 16, 2005.
Non-Final Office Action dated Aug. 10, 2012 for U.S. Appl. No. 12/771,471, filed Apr. 30, 2010.
Non-Final Office Action dated Oct. 11, 2012 for U.S. Appl. No. 12/019,568, filed Jan. 24, 2008.
Non-Final Office Action dated Apr. 12, 2012 for U.S. Appl. No. 12/770,365, filed Apr. 29, 2010.
Non-Final Office Action dated Jul. 12, 2012 for U.S. Appl. No. 12/691,992, filed Jan. 22, 2010.
Non-Final Office Action dated Oct. 12, 2012 for U.S. Appl. No. 12/630,092, filed Dec. 3, 2009.
Non-Final Office Action dated Sep. 12, 2012 for U.S. Appl. No. 12/952,080, filed Nov. 22, 2010.
Non-Final Office Action dated Jul. 13, 2010 for U.S. Appl. No. 12/019,568, filed Jan. 24, 2008.
Non-Final Office Action dated Nov. 14, 2012 for U.S. Appl. No. 13/531,757, filed Jun. 25, 2012.
Non-Final Office Action dated Sep. 14, 2010 for U.S. Appl. No. 11/084,232, filed Mar. 16, 2005.
Non-Final Office Action dated Sep. 16, 2011 for U.S. Appl. No. 12/539,537, filed Aug. 11, 2009.
Non-Final Office Action dated Sep. 17, 2012 for U.S. Appl. No. 12/189,780, filed Aug. 11, 2008.
Non-Final Office Action dated Aug. 18, 2011 for U.S. Appl. No. 12/197,958, filed Aug. 25, 2008.
Non-Final Office Action dated Feb. 18, 2011 for U.S. Appl. No. 12/630,092, filed Dec. 3, 2009.
Non-Final Office Action dated Jan. 18, 2012 for U.S. Appl. No. 12/771,071, filed Apr. 30, 2010.
Non-Final Office Action dated Jul. 21, 2010 for U.S. Appl. No. 12/630,092, filed Dec. 3, 2009.
Non-Final Office Action dated Dec. 22, 2010 for U.S. Appl. No. 12/197,931, filed Aug. 25, 2008.
Non-Final Office Action dated Jul. 22, 2013 for U.S. Appl. No. 12/630,092, filed Dec. 3, 2009.
Non-Final Office Action dated Jan. 26, 2012 for U.S. Appl. No. 12/019,568, filed Jan. 24, 2008.
Non-Final Office Action dated Nov. 26, 2010 for U.S. Appl. No. 12/197,958, filed Aug. 25, 2008.
Non-Final Office Action dated Jun. 27, 2013 for U.S. Appl. No. 12/019,568, filed Jan. 24, 2008.
Non-Final Office Action dated Dec. 30, 2009 for U.S. Appl. No. 11/084,232, filed Mar. 16, 2005.
Non-Final Office Action dated May 30, 2008 for U.S. Appl. No. 11/084,232, filed Mar. 16, 2005.
Non-Final Office Action dated Apr. 13, 2010 for U.S. Appl. No. 11/761,745, filed Jun. 12, 2007.
Non-Final Office Action dated Feb. 21, 2013 for U.S. Appl. No. 12/771,372, filed Apr. 30, 2010.
Non-Final Office Action dated Jan. 5, 2010 for U.S. Appl. No. 12/019,554, filed Jan. 24, 2008.
Non-Final Office Action dated May 23, 2013 for U.S. Appl. No. 13/104,932, filed May 10, 2011.
Non-Final Office Action dated May 23, 2013 for U.S. Appl. No. 13/104,936, filed May 10, 2011.
Notice of Allowance dated May 14, 2013 for U.S. Appl. No. 12/637,671, filed Dec. 14, 2009.
Notice of Allowance dated Oct. 25, 2012 for U.S. Appl. No. 11/084,232, filed Mar. 16, 2005.
PCT Application filed on Jun. 9, 2016, entitled “Virtual Device Systems and Methods”, PCT/US2016/036674.
PCT Application filed on Jun. 29, 2016, entitled “Integrated Cloud System for Premises Automation”, PCT/US2016/040046.
PCT Application filed on Jun. 30, 2016, entitled “Integrated Cloud System with Lightweight Gateway for Premises Automation”, PCT/US2016/040451.
PCT Application filed on Jul. 7, 2016, entitled “Automation System User Interface with Three-Dimensional Display”, PCT/US2016/041353.
PCT Application filed on Aug. 16, 2016, entitled “Automation System User Interface”, PCT/US2016/047172.
PCT Application filed on Aug. 17, 2016, entitled “Automation System User Interface”, PCT/US2016/047262.
PCT Application filed on Oct. 13, 2016, entitled “Coordinated Control of Connected Devices in a Premise”, PCT/US2016/056842.
PCT Application filed on Nov. 17, 2016, entitled “Mobile Premises Automation Platform”, PCT/US2016/062519.
Requirement for Restriction/Election dated Jan. 22, 2013 for U.S. Appl. No. 13/104,932, filed May 10, 2011.
Requirement for Restriction/Election dated Jan. 22, 2013 for U.S. Appl. No. 13/104,936, filed May 10, 2011.
Requirement for Restriction/Election dated Oct. 24, 2012 for U.S. Appl. No. 12/750,470, filed Mar. 30, 2010.
Security For The Future, Introducing 5804B0—Advanced two-way wireless remote technology, Advertisement, ADEMCO Group, Syosset, NY, ciica 1997.
Security For The Future, Introducing 5804BO—Advanced two-way wireless remote technology, Advertisement, ADEMCO Group, Syosset, NY, circa 1997.
Shang, Wei-Lai, “Study on Application Embedded Intelligent Area System”, Journal of Anyang Institute of Technology, Dec. 2010, vol. 9, No. 6, pp. 56-57 and 65.
Shang, Wei-lai, Study on Application of Embedded Intelligent Area System, Journal of Anyang Institute of Technology, vol. 9, No. 6, pp. 56-57 and 65.
South African Patent App. No. 2013/02668, corresponds to WO2012/040653.
Supplemental European Search Report for Application No. EP05725743.8 dated Sep. 14, 2010, 2 pages.
Supplementary European Search Report for Application No. EP10819658, dated Mar. 10, 2015, 2 pages.
Supplementary European Search Report for Application No. EP11827671, dated Mar. 10, 2015, 2 pages.
Supplementary Partial European Search Report for Application No. EP09807196, dated Nov. 17, 2014, 5 pages.
Supplementary European Search Report for Application No. EP2191351, dated Jun. 23, 2014, 2 pages.
Supplementary Non-Final Office Action dated Oct. 28, 2010 for U.S. Appl. No. 12/630,092, filed Dec. 3, 2009.
Topalis E., et al., “A Generic Network Management Architecture Targeted to Support Home Automation Networks and Home Internet Connectivity, Consumer Electronics, IEEE Transactions,” 2000, vol. 46 (1), pp. 44-51.
US Patent Application filed Jan. 3, 2019, entitled “Methods and Systems for Data Communication”, U.S. Appl. No. 16/239,114.
US Patent Application filed Jan. 22, 2019, entitled “Data Model for Home Automation”, U.S. Appl. No. 16/254,535.
US Patent Application filed Jan. 22, 2019, entitled “Premises System Automation”, U.S. Appl. No. 16/254,480.
US Patent Application filed Jan. 23, 2020, entitled “Forming a Security Network Including Integrated Security System Components and Network Dev”, U.S. Appl. No. 16/750,976.
US Patent Application filed Jan. 25, 2019, entitled Communication Protocols in Integrated Systems, U.S. Appl. No. 16/257,706.
US Patent Application filed Jan. 28, 2019, entitled “Automation System User Interface With Three-Dimensional Display”, U.S. Appl. No. 16/258,858.
US Patent Application filed Feb. 6, 2020, entitled “Activation of Gateway Device”, U.S. Appl. No. 16/784,159.
US Patent Application filed Mar. 2, 2017, entitled “Generating Risk Profile Using Data of Home Monitoring and Security System”, U.S. Appl. No. 15/447,982.
US Patent Application filed Mar. 2, 2020, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 16/807,100.
US Patent Application filed Mar. 2, 2020, entitled “Coordinated Control of Connected Devices in a Premise”, U.S. Appl. No. 16/807,028.
US Patent Application filed Mar. 7, 2014, entitled “Activation of Gateway Device”, U.S. Appl. No. 14/201,162.
US Patent Application filed Mar. 7, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/200,921.
US Patent Application filed Mar. 7, 2014, entitled “Device Integration Framework”, U.S. Appl. No. 14/201,227.
US Patent Application filed Mar. 7, 2014, entitled “Integrated Security and Control System With Geofencing”, U.S. Appl. No. 14/201,189.
US Patent Application filed Mar. 7, 2014, entitled “Security System Integrated With Social Media Platform”, U.S. Appl. No. 14/201,133.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/202,573.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/202,592.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/202,627.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/202,685.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/203,077.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/203,084.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/203,128.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/203,141.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 14/203,219.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols Over Internet Protocol (IP) Networks”, U.S. Appl. No. 14/202,505.
US Patent Application filed Mar. 10, 2014, entitled “Communication Protocols Over Internet Protocol (IP) Networks”, U.S. Appl. No. 14/202,579.
US Patent Application filed Mar. 11, 2020, entitled “Management of a Security System at a Premises”, U.S. Appl. No. 16/816,134.
US Patent Application filed Mar. 18, 2019, entitled “Server-Based Notification of Alarm Event Subsequent to Communication Failure With Armed Security System”, U.S. Appl. No. 16/356,742.
US Patent Application filed Mar. 20, 2020, entitled “Security, Monitoring and Automation Controller Access and Use of Legacy Security Control Panel Information”, U.S. Appl. No. 16/825,099.
US Patent Application filed Apr. 17, 2020, entitled “Method and System for Providing Alternate Network Access”, U.S. Appl. No. 16/852,072.
US Patent Application filed Apr. 17, 2020, entitled “Networked Touchscreen With Integrated Interfaces”, U.S. Appl. No. 16/852,058.
US Patent Application filed Apr. 23, 2019, entitled “Control System User Interface”, U.S. Appl. No. 16/391,625.
US Patent Application filed Apr. 26, 2019, entitled “Custom Content for Premises Management”, U.S. Appl. No. 16/396,368.
US patent application filed May 2, 2018, entitled “Automation System With Mobile Interface”, U.S. Appl. No. 15/969,514.
“File”, The Authoritative Dictionary of IEEE Standard Terms. 7th ed. 2000, pp. 453.
US Patent Application filed May 19, 2020, entitled “User Interface in a Premises Network”, U.S. Appl. No. 16/878,099.
US Patent Application filed May 26, 2020, entitled “Premises Management Configuration and Control”, U.S. Appl. No. 16/882,876.
US Patent Application filed Jun. 10, 2020, entitled “Method and System for Communicating With and Controlling an Alarm System From a Remote Server”, U.S. Appl. No. 16/898,146.
US Patent Application filed Jun. 24, 2020, entitled “Method and System for Processing Security Event Data”, U.S. Appl. No. 16/910,967.
“Dragging” The Authoritative Dictionary of IEEE Standard Terms. 7th ed. 2000, p. 337.
“Application” The Authoritative Dictionary of IEEE Standard Terms. 7th ed. 2000.
“Icon”, Newton's Telecom Dictionary, 21st ed., Mar. 2005.
“Modular programming”, The Authoritative Dictionary of IEEE Standard Terms. 7th ed. 2000.
6270 Touch Screen Keypad Notes, Honeywell, Sep. 2006.
Alarm.com—Interactive Security Systems, Elders [retrieved on Nov. 4, 2003], 1 page.
Alarm.com—Interactive Security Systems, Frequently Asked Questions [retrieved on Nov. 4, 2003], 3 pages.
Alarm.com—Interactive Security Systems, Overview [retrieved on Nov. 4, 2003], 2 pages.
Alarm.com—Interactive Security Systems, Product Advantages [retrieved on Nov. 4, 2003], 3 pages.
AU application filed on Feb. 28, 2017, entitled “Control System User Interface”, 2017201365.
AU application filed on Mar. 8, 2017, entitled “Integrated Security Network with Security Alarm Signaling System”, 2017201585.
CA application filed on Aug. 15, 2017, entitled “Automation System User Interface”, 2976682.
CA application filed on Aug. 16, 2017, entitled “Automation System User Interface”, 2976802.
Condry M et al., Open Service Gateway architecture overview, Industrial Electronics Society, 1999, IECON '99 Proceedings, The 25th Annual Conference of the IEEE, San Jose, CA, USA, Nov. 29-Dec. 3, 1999, Piscataway, NJ, USA, IEEE, US, vol. 2, Nov. 29, 1999 (Nov. 29, 1999), pp. 735-742, XP010366642.
Control Panel Standard—Features for False Alarm Reduction, The Security Industry Association, SIA 2009, pp. 1-48.
CorAccess Systems, Companion 6 User Guide, Jun. 17, 2002.
Diaz, Redondo R P et al., Enhancing Residential Gateways: OSGI Service Composition, IEEE Transactions on Consumer Electronics, IEEE Service Center, New York, NY, US, vol. 53, No. 1, Feb. 1, 2007 (Feb. 1, 2007), pp. 87-95, XP011381790.
Elwahab et al. ; Device, System and . . . Customer Premises Gateways, Sep. 27, 2001; WO 01/71489.
EP application filed on Jun. 9, 2016, entitled, “Data Model for Home Automation”, 16808247.7.
EP application filed on Aug. 16, 2017, entitled, “Automation System User Interface”, 17186497.8.
EP examination report issued in EP08797646.0, dated May 17, 2017, 11 pages.
Examination Report under Section 18(3) re for UK Patent Application No. GB0620362.4, dated Aug. 13, 2007.
Examination Report under Section 18(3) re for UK Patent Application No. GB0724248.0, dated Jun. 4, 2008.
Examination Report under Section 18(3) re for UK Patent Application No. GB0724248.0, dated Jan. 30, 2008.
Examination Report under Section 18(3) re for UK Patent Application No. GB0724760.4, dated Jan. 30, 2008.
Examination Report under Section 18(3) re for UK Patent Application No. GB0800040.8, dated Jan. 30, 2008.
Faultline, “AT&T Targets video home security as next broadband market”; Nov. 2, 2006; The Register; 2 Pages.
Final Office Action dated Aug. 1, 2011 for U.S. Appl. No. 12/630,092, filed Dec. 3, 2009.
Final Office Action dated Jun. 1, 2009 for U.S. Appl. No. 11/084,232, filed Mar. 16, 2005.
Final Office Action dated Jun. 5, 2012 for U.S. Appl. No. 12/771,071, filed Apr. 30, 2010.
Final Office Action dated May 9, 2013 for U.S. Appl. No. 12/189,780, filed Aug. 11, 2008.
Final Office Action dated May 9, 2013 for U.S. Appl. No. 12/952,080, filed Nov. 22, 2010.
Final Office Action dated Jan. 10, 2011 for U.S. Appl. No. 12/189,785, filed Aug. 11, 2008.
Final Office Action dated Jun. 10, 2011 for U.S. Appl. No. 11/084,232, filed Mar. 16, 2005.
Final Office Action dated Jan. 13, 2011 for U.S. Appl. No. 12/189,780, filed Aug. 11, 2008.
Final Office Action dated Oct. 17, 2012 for U.S. Appl. No. 12/637,671, filed Dec. 14, 2009.
Final Office Action dated Sep. 17, 2012 for U.S. Appl. No. 12/197,958, filed Aug. 25, 2008.
Final Office Action dated Mar. 21, 2013 for U.S. Appl. No. 12/691,992, filed Jan. 22, 2010.
Final Office Action dated Jul. 23, 2013 for U.S. Appl. No. 13/531,757, filed Jun. 25, 2012.
Final Office Action dated Feb. 26, 2013 for U.S. Appl. No. 12/771,471, filed Apr. 30, 2010.
Final Office Action dated Jun. 29, 2012 for U.S. Appl. No. 12/539,537, filed Aug. 11, 2009.
Final Office Action dated Dec. 31, 2012 for U.S. Appl. No. 12/770,365, filed Apr. 29, 2010.
Final Office Action dated Oct. 31, 2012 for U.S. Appl. No. 12/771,624, filed Apr. 30, 2010.
Final Office Action dated Feb. 16, 2011 for U.S. Appl. No. 12/019,568, filed Jan. 24, 2008.
Final Office Action dated Jul. 12, 2010 for U.S. Appl. No. 12/019,554, filed Jan. 24, 2008.
Final Office Action dated Sep. 14, 2011 for U.S. Appl. No. 12/197,931, filed Aug. 25, 2008.
Foreign communication from a related counterpart application—International Preliminary Examination Report, App No. PCT/US02/14450, dated Mar. 2, 2004, 4 pgs.
Foreign communication from a related counterpart application—International Search Report, App No. PCT/US02/14450, dated Dec. 17, 2002, 6 pgs.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US05/08766 (ICON.P020),” dated May 23, 2006, 2 pages.
Oxford Dictionary, Definition of “application”, 2021, 2 pages (Year: 2021).
US Patent Application filed Jan. 11, 2021, entitled “Premise Management Systems and Methods”, U.S. Appl. No. 17/145,773.
US Patent Application filed Feb. 9, 2021, entitled “Premises Management Networking”, U.S. Appl. No. 17/171,398.
US Patent Application filed Jul. 9, 2020, entitled “Automation System With Mobile Interface”, U.S. Appl. No. 16/925,026.
US Patent Application filed Aug. 26, 2020, entitled “Automation System User Interface With Three-Dimensional Display”, U.S. Appl. No. 17/003,550.
US Patent Application filed Sep. 10, 2020, entitled “Security System With Networked Touchscreen”, U.S. Appl. No. 17/017,519.
US Patent Application filed Sep. 11, 2020, entitled “Management of Applications for a Device Located at a Premises”, U.S. Appl. No. 17/018,901.
US Patent Application filed Oct. 8, 2020, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 17/065,841.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US08/72831 (ICON.P001WO),” Nov. 4, 2008,2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US08/74246 (ICON.P003WO),” Nov. 14, 2008, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US08/74260 (ICON.P002WO),” Nov. 13, 2008, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US08/83254,” Jan. 14, 2009, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US09/53485 (ICON.P011WO),” Oct. 22, 2009, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US09/55559 (ICON.P012WO),” Nov. 12, 2009, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US10/50585 (ICON.P014WO),” Dec. 30, 2010, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US10/57674 (ICON.P015WO),” Mar. 2, 2011, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US11/34858 (ICON.P017WO),” Oct. 3, 2011, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US11/35994 (ICON.P016WO),” Sep. 28, 2011, 2 pages.
Form PCT/ISA/210, “PCT International Search Report for the Application No. PCT/US11/53136 (ICON.P019WO),” Jan. 5, 2012, 2 pages.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion fo the International Searching Authority, or the Declaration for the Application No. PCT/US08/74260,” Nov. 13, 2008, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US08/72831 (ICON.P001 WO),” Nov. 4, 2008, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US08/74246 (ICON.P003WO)” dated Nov. 14, 2008, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US08/83254,” dated Jan. 14, 2009, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US09/53485 (ICON.P011 WO),” dated Oct. 22, 2009, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US09/55559 (ICON.P012WO),” dated Nov. 12, 2009, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US10/50585 (ICON.P014WO),” dated Dec. 30, 2010, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US10/57674 (ICON.P015WO),” dated Mar. 2, 2011, 1 page.
Form PCT/ISA/220, “PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for the Application No. PCT/US11/35994 (ICON.P016WO),” dated Sep. 28, 2011, 1 page.
Form PCT/ISA/220, PCT Notification of Transmittal ofthe International Search Report and the Written Opinion ofthe International Searching Authority, or the Declaration for the Application No. PCT/US05/08766, dated May 23, 2006, 1 page.
Form PCT/ISA/237,“PCT Written Opinion ofthe International Searching Authority for the Application No. PCT/US05/08766 (ICON.P020),” dated May 23, 2006, 5 pages.
Form PCT/ISA/237,“PCT Written Opinion ofthe International Searching Authority for the Application No. PCT/USOS/08766 (ICON.P020),” dated May 23, 2006, 5 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US08/72831 (ICON.P001WO),” dated dated Nov. 4, 2008, 6 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US08/74246 (ICON.P003WO),” dated Nov. 14, 2008, 6 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US08/74260 (ICON.P002WO),” dated Nov. 13, 2008, 6 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US09/53485 (ICON.P011 WO),” dated Oct. 22, 2009, 8 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US09/55559 (ICON.P012WO),” dated Nov. 12, 2009, 6 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US10/50585 (ICON.P014WO),” dated Dec. 30, 2010, 7 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US10/57674 (ICON.P015WO),” dated Mar. 2, 2011, 6 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US11/34858 (ICON.P017WO),” dated Oct. 3, 2011, 8 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US11/35994 (ICON.P016WO),”dated Sep. 28, 2011, 11 pages.
Form PCT/ISA/237, “PCT Written Opinion of the International Searching Authority for the Application No. PCT/US11/53136 (ICON.P019WO),” dated Jan. 5, 2012.
Form PCT/ISA/237, “PCT Written Opinion ofthe International Searching Authority of the Application No. PCT/US08/83254 (ICON.P005WO),” dated Jan. 14, 2009, 7 pages.
Gateway Registry Methods and Systems, U.S. Appl. No. 13/486,276.
Gateway Registry Methods and Systems, U.S. Appl. No. 13/486,276, filed Jun. 1, 2012.
Genex OmniEye http://www.qenextech.com/prod01.htm, 1999 5 pages.
Genex Technologies, Genex OmniEye, www.av-iq.com/avcat/images/documents/pdfs/omnieye%20nightwatch brochure.pdf; webpage accessed Jan. 10, 2018.
Gong, Li, A Software architecture for open service gateways, Internet Computing, IEEE 5.1, Jan.-Feb. 2001, 64-70.
GrayElectronics, “Digitizing TV cameras on TCP/IP Computer Networks,” http://www.grayelectronics.com/default.htm, printed on Oct. 12, 1999 (2 pages).
GrayElectronics, http//:www.grayelectronics.com/default.htm.
GrayElectronics, http://www.grayelectronics.com; webpage accessed on Jan. 10, 2018.
GTI Genex Technologies, Inc. OmniEye.(Trademark). Product Brochure, Sep. 14, 1999 (5 pages).
Gutierrez J.A., “On the Use of IEEE 802.15.4 to Enable Wireless Sensor Networks in Building Automation,” Personal, Indoor and Mobile Radio Communications (PIMRC), 15th IEEE International Symposium, 2004, vol. 3, pp. 1865-1869.
Indian Patent App. No. 10698/DELNP/2012, corresponds to W02011/143273 filed Nov. 17, 2011.
Indian Patent App. No. 3687/DELNP/2012, corresponds to WO2011/038409 filed on Sep. 28, 2010.
International Search Report for Application No. PCT/US13/48324, dated Jan. 14, 2014, 2 pages.
US Patent Application filed May 11, 2020, entitled “Control System User Interface”, U.S. Appl. No. 16/871,151.
US Patent Application filed May 12, 2020, entitled “IP Device Discovery Systems and Methods”, U.S. Appl. No. 15/930,029.
US Patent Application filed May 23, 2018, entitled “Networked Touchscreen With Integrated Interfaces”, U.S. Appl. No. 15/987,638.
US Patent Application filed Jun. 1, 2012, entitled “Gateway Registry Methods and Systems”, U.S. Appl. No. 13/486,276.
US Patent Application filed Jun. 27, 2018, entitled “Activation of Gateway Device”, U.S. Appl. No. 16/020,499.
US Patent Application filed Jul. 2, 2019, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 16/460,712.
US Patent Application filed Jul. 3, 2018, entitled “WIFI-To-Serial Encapsulation In Systems”, U.S. Appl. No. 16/026,703.
US Patent Application filed Jul. 12, 2018, entitled “Integrated Security System with Parallel Processing Architecture”, U.S. Appl. No. 16/034,132.
US Patent Application filed Jul. 20, 2018, entitled “Cross-Client Sensor User Interface in an Integrated Security Network”, U.S. Appl. No. 16/041,291.
US Patent Application filed Jul. 26, 2019, entitled “Device Integration Framework”, U.S. Appl. No. 16/522,949.
US Patent Application filed Jul. 28, 2016, entitled “Method and System for Automatically Providing Alternate Network Access for Telecommunications”, U.S. Appl. No. 15/222,416.
US Patent Application filed Aug. 8, 2016, entitled “Security, Monitoring and Automation Controller Access and Use of Legacy Security Control Panel Information”, U.S. Appl. No. 15/231,273.
US Patent Application filed Aug. 9, 2016, entitled “Controller and Interface for Home Security, Monitoring and Automation Having Customizable Audio Alerts for SMA Events”, U.S. Appl. No. 15/232,135.
US Patent Application filed Aug. 9, 2018, entitled “Method and System for Processing Security Event Data”, U.S. Appl. No. 16/059,833.
US Patent Application filed Aug. 21, 2018, entitled “Premises System Management Using Status Signal”, U.S. Appl. No. 16/107,568.
US Patent Application filed Aug. 23, 2019, entitled “Premises System Management Using Status Signal”, U.S. Appl. No. 16/549,837.
US Patent Application filed Sep. 6, 2018, entitled “Takeover of Security Network”, U.S. Appl. No. 16/123,695.
US Patent Application filed Sep. 17, 2018, entitled “Integrated Security System With Parallel Processing Architecture”, U.S. Appl. No. 16/133,135.
US Patent Application filed Sep. 27, 2019, entitled “Control System User Interface”, U.S. Appl. No. 16/585,481.
US Patent Application filed Sep. 28, 2018, entitled “Control System User Interface”, U.S. Appl. No. 16/146,715.
US Patent Application filed Sep. 28, 2018, entitled “Forming a Security Network Including Integrated Security System Components and Network Devices”, U.S. Appl. No. 16/147,044.
US Patent Application filed Sep. 11, 18, entitled “Premises Management Networking”, U.S. Appl. No. 16/128,089.
US Patent Application filed Oct. 1, 2018, entitled “Integrated Security System With Parallel Processing Architecture”, U.S. Appl. No. 16/148,387.
US Patent Application filed Oct. 1, 2018, entitled “Integrated Security System with Parallel Processing Architecture”, U.S. Appl. No. 16/148,411.
US Patent Application filed Oct. 1, 2018, entitled “User Interface In A Premises Network”, U.S. Appl. No. 16/148,572.
US Patent Application filed Oct. 3, 2018, entitled “Activation of a Home Automation Controller”, U.S. Appl. No. 16/150,973.
US Patent Application filed Oct. 10, 2018, entitled “Method and System for Providing Alternate Network Access”, U.S. Appl. No. 16/156,448.
US Patent Application filed Oct. 13, 2017, entitled “Notification of Event Subsequent to Communication Failure With Security System”, U.S. Appl. No. 15/783,858.
US Patent Application filed Oct. 18, 2018, entitled “Generating Risk Profile Using Data of Home Monitoring and Security System”, U.S. Appl. No. 16/164,114.
US Patent Application filed Oct. 18, 2019, entitled “WiFi-To-Serial Encapsulation in Systems”, U.S. Appl. No. 16/656,874.
US Patent Application filed Oct. 27, 2017, entitled “Security System With Networked Touchscreen”, U.S. Appl. No. 15/796,421.
US Patent Application filed Nov. 26, 2019, entitled “Communication Protocols Over Internet Protocol (IP) Networks”, U.S. Appl. No. 16/696,657.
US Patent Application filed Nov. 28, 2017, entitled “Forming A Security Network Including Integrated Security System Components”, U.S. Appl. No. 15/824,503.
US Patent Application filed Nov. 29, 18, entitled “Premise Management Systems and Methods”, U.S. Appl. No. 16/204,442.
US Patent Application filed Nov. 30, 2017, entitled “Controller and Interface for Home Security, Monitoring and Automation Having Customizable Audio Alerts for SMA Events”, U.S. Appl. No. 15/828,030.
US Patent Application filed Dec. 14, 2018, entitled “Communication Protocols Over Internet Protocol (IP) Networks”, U.S. Appl. No. 16/221,299.
US Patent Application filed Dec. 27, 2018, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 16/233,913.
US Patent Application filed Dec. 27, 2019, entitled “Premises Management Systems”, U.S. Appl. No. 16/728,608.
US Patent Application filed Aug. 9, 18, entitled “Method and Systems for Processing Security Event Data”, U.S. Appl. No. 16/059,833.
Valtchev, D., and I. Frankov. “Service gateway architecture for a smart home.” Communications Magazine, IEEE 40.4 (2002): 126-132.
Visitalk, Communication with Vision, http://www.visitalk.jimbo.com; website accessed Jan. 10, 2018.
Visitalk.com-communication with vision, http://www.visitalk.com (date unknown).
Visitalk.com-communication with vision, http://www.visitalk.com.
Wilkinson, S: “Logitech Harmony One Universal Remote” Ultimate AV magazine May 2008 (May 2008), XP002597782 Retrieved from the Internet: Original URL: http://www.ultimateavmag.com/remotecontrols/508logi) [retrieved on Aug. 23, 2010] the whole document; Updated URL: https://www.soundandvision.com/content/logitech-harmony-one-universal-remote, Retrieved from internet on Jan. 11, 2018.
Windows Telecom Dictionary, Mar. 2005, pp. 937-938.
Windows, Newton's Telecom Dictionary, 21st Edition, Mar. 2005, 937-938.
Wireless, Battery-Powered Smoke Detectors, Brochure, SafeNight Technology, Inc. Roanoke, VA, 1995.
WLS906 Photoelectric Smoke Alarm, Data Sheet, DSC Security Products, Ontario, Canada, Jan. 1998.
X10—ActiveHome, Home Automation Made Easy [retrieved on Nov. 4, 2003], 3 pages.
Yanni Zhai et al., Design of Smart Home Remote Monitoring System Based on Embedded System, 2011 IEEE 2nd International Conference on Computing, Control and Industrial Engineering, vol. 2, pp. 41-44.
3rd Generation Partnership Project! Technical Specification Group Services and System Aspects! Architecture enhancements to facilitate communications with packet data networks and application, Mar. 2015, 3GPP TS 23.682 V12.3.0, pp. 8-10. (Year: 2015).
Chapter 6, Securing TCP/IP, pp. 135-164, Oct. 12, 2004.
US Patent Application filed Mar. 15, 2021, entitled “Automation System User Interface”, U.S. Appl. No. 17/202,279.
US Patent Application filed Mar. 17, 2021, entitled “Communication Protocols Over Internet Protocol (IP) Networks”, U.S. Appl. No. 17/204,068.
US Patent Application filed Mar. 22, 2021, entitled “Premises Management Configuration and Control”, U.S. Appl. No. 17/208,866.
US Patent Application filed Apr. 8, 2021, entitled “System for Data Routing in Networks”, U.S. Appl. No. 17/301,605.
US Patent Application filed Aug. 23, 2021, entitled “Method and System for Providing Alternate Network Access”, U.S. Appl. No. 17/409,528.
US Patent Application filed Aug. 31, 2021, entitled “Networked Touchscreen With Integrated Interfaces”, U.S. Appl. No. 17/463,267.
US Patent Application filed Sep. 7, 2021, entitled “Gateway Registry Methods and Systems”, U.S. Appl. No. 17/468,188.
US Patent Application filed Sep. 8, 2021, entitled “User Interface in a Premises Network”, U.S. Appl. No. 17/469,417.
US Patent Application filed Sep. 9, 2021, entitled “Premises System Management Using Status Signal”, U.S. Appl. No. 17/470,732.
K. Lee, D. Murray, D. Hughes and W. Joosen, “Extending sensor networks into the Cloud using Amazon Web Services,” 2010 IEEE International Conference on Networked Embedded Systems for Enterprise Applications, 2010.
US Patent Application filed May 10, 2021, entitled “Management of a Security System at a Premises”, U.S. Appl. No. 17/316,402.
US Patent Application filed Jun. 9, 2021, entitled “Premises Management Configuration and Control”, U.S. Appl. No. 17/343,315.
US Patent Application filed Jun. 18, 2021, entitled “Controlling Data Routing Among Networks”, U.S. Appl. No. 17/304,342.
US Patent Application filed Jul. 26, 2021, entitled “Notification of Event Subsequent To Communication Failure With Security System”, U.S. Appl. No. 17/443,427.
US Patent Application filed Jul. 30, 2021, entitled “Gateway Integrated With Premises Security System”, U.S. Appl. No. 17/390,222.
US Patent Application filed Aug. 10, 2021, entitled “Media Content Management”, U.S. Appl. No. 17/398,939.
US Patent Application filed Aug. 16, 2021, entitled “Control System User Interface”, U.S. Appl. No. 17/403,526.
US Patent Application filed Jan. 14, 2022, entitled “Mobile Premises Automation Platform”, U.S. Appl. No. 17/576,336.
US Patent Application filed Feb. 8, 2022, entitled “Server-Based Notification of Alarm Event Subsequent To Communication Failure With Armed Security System”, U.S. Appl. No. 17/650,324.
US Patent Application filed Mar. 10, 2022, entitled “Virtual Device Systems and Methods”, U.S. Appl. No. 17/691,774.
US Patent Application filed Apr. 4, 2022, entitled “Control System User Interface”, U.S. Appl. No. 17/712,911.
US Patent Application filed Apr. 6, 2022, entitled “Hardware Configurable Security, Monitoring and Automation Controller Having Modular Communication Protocol Interfaces”, U.S. Appl. No. 17/714,499.
US Patent Application filed Apr. 14, 2022, entitled “Premises Management Configuration and Control”, U.S. Appl. No. 17/659,259.
US Patent Application filed Apr. 14, 2022, entitled “Premises System Automation”, U.S. Appl. No. 17/721,192.
US Patent Application filed Apr. 18, 2022, entitled “Method and System for Processing Security Event Data”, U.S. Appl. No. 17/723,101.
US Patent Application filed Apr. 22, 2022, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 17/727,470.
US Patent Application filed May 4, 2022, entitled “Premises Management Configuration and Control”, U.S. Appl. No. 17/736,408.
United States Patent and Trademark Office—Before the Patent Trial and Appeal Board, Alarm.com (U.S. Pat. No. 8,350,69461) (inventors Stephen Scott Trundle & Alison Jane Slavin) V iControl Networks, Inc. (U.S. Appl. No. 13/311,365) (Inventors. Poul j. Dawes, Jim Fulker, Carolyn Wales, Reza Raji, and Gerald Gutt), Patent Interference 106,001 (HH6) (Technology Center 24000), Mar. 31, 2015.
US Patent Application filed May 16, 2022, entitled “Automation System With Mobile Interface”, U.S. Appl. No. 17/744,858.
US Patent Application filed May 23, 2022, entitled “Premise Management Systems and Methods”, U.S. Appl. No. 17/664,524.
US Patent Application filed Jun. 1, 2022, entitled “Integrated Cloud System for Premises Automation”, U.S. Appl. No. 17/804,941.
US Patent Application filed Jun. 8, 2022, entitled “Methods and Systems for Data Communication”, U.S. Appl. No. 17/835,394.
US Patent Application filed Jun. 10, 2022, entitled “Media Content Management”, U.S. Appl. No. 17/838,046.
US Patent Application filed Jun. 10, 2022, entitled “Method, System and Apparatus for Automated Reporting of Account and Sensor Zone Information to a Central Station”, U.S. Appl. No. 17/806,341.
US Patent Application filed Jun. 22, 2022, entitled “Activation of Gateway Device”, U.S. Appl. No. 17/808,146.
US Patent Application filed Jun. 22, 2022, entitled “Automation System User Interface With Three-Dimensional Display”, U.S. Appl. No. 17/808,275.
US Patent Application filed Jun. 22, 2022, entitled “Communication Protocols in Integrated Systems”, U.S. Appl. No. 17/808,118.
US Patent Application filed Jul. 1, 2022, entitled “Forming a Security Network Including Integrated Security System Components”, U.S. Appl. No. 17/856,448.
Fujii et al., “Community security platform for individually maintained home computers: The Vigilante Network Project”, Proceedings of the 21st IEEE Instrumentation and Measurement Technology Conference, 2004, vol. 2, pp. 891-894.
Kobayashi et al., “Creating worldwide community safety with present technology and privacy protection: The e-JIKEI Network project”, Procedia-Social and Behavioral Sciences, 2010, vol. 2, pp. 6-13.
Prashyanusorn et al., “Sustainable tourism using security cameras with privacy protecting ability”, Journal of Information Security, 2010, vol. 1, pp. 68-73.
Related Publications (1)
Number Date Country
20200267207 A1 Aug 2020 US
Provisional Applications (5)
Number Date Country
62186825 Jun 2015 US
62186696 Jun 2015 US
62186974 Jun 2015 US
62186925 Jun 2015 US
62186857 Jun 2015 US
Divisions (1)
Number Date Country
Parent 15198531 Jun 2016 US
Child 15198855 US
Continuations (1)
Number Date Country
Parent 15198855 Jun 2016 US
Child 16688717 US
Continuation in Parts (16)
Number Date Country
Parent 15196646 Jun 2016 US
Child 15198531 US
Parent 15177915 Jun 2016 US
Child 15196646 US
Parent 14943162 Nov 2015 US
Child 15177915 US
Parent 16688717 US
Child 15177915 US
Parent 14645808 Mar 2015 US
Child 16688717 US
Parent 14628651 Feb 2015 US
Child 14645808 US
Parent 13954553 Jul 2013 US
Child 14628651 US
Parent 13929568 Jun 2013 US
Child 13954553 US
Parent 13718851 Dec 2012 US
Child 13929568 US
Parent 13531757 Jun 2012 US
Child 13718851 US
Parent 13334998 Dec 2011 US
Child 13531757 US
Parent 13104932 May 2011 US
Child 13334998 US
Parent 12972740 Dec 2010 US
Child 13104932 US
Parent 12539537 Aug 2009 US
Child 12972740 US
Parent 12197958 Aug 2008 US
Child 12539537 US
Parent 12189780 Aug 2008 US
Child 12197958 US