From OpenHome

(Difference between revisions)
Jump to: navigation, search
(External Widgets in more detail)
Line 200: Line 200:
See the [[External Widget Application Development|External Widget Application Development]] document for more information on writing custom details view UIs for External Widgets.
See the [[External Widget Application Development|External Widget Application Development]] document for more information on writing custom details view UIs for External Widgets.
 +
 +
 +
= Control Points =
 +
 +
== Control Points ==
 +
 +
A Control Point is used by the end-user to control each of the Widgets in their smart home. A Control Point is itself a device, but isn't considered a Widget in the ohWidget system.
 +
 +
The UI provided by ohWidget for Control Points to use is web-based. It is hosted on the Node and developed in two parts by Node manufacturers and Widget vendors, with auto-generation tools and support provided in the ohWidget software to assist this process. ohWidget provides support for the development of native Control Point applications to be developed, but the development of native applications is a manual process. ohWidget provides no auto-generation tools for native Control Point applications.
 +
 +
== Familiar Devices ==
 +
 +
A typical Control Point already exists in the modern-day home in the form of:
 +
* tablet PC
 +
* smart phone
 +
* personal computer
 +
* laptop
 +
 +
A typical modern home has at least one of these devices (and in a lot of cases often more than one of each type) readily available to perform the function of Control Point in a smart home.
 +
 +
Users are already comfortable using these devices and ohWidget is designed to leverage that comfort zone
 +
and minimize further costs to the user.
 +
 +
This leaves the user free to focus on choosing which Widgets they want to install in their home.
 +
 +
== Flexible network architecture ==
 +
 +
ohWidget provides a network architecture that allows the relationship between the Control Point and the
 +
user's smart home to remain flexible at the hardware level, yet tightly bound at the software level.
 +
 +
Other attempts at home automation use proprietary hardware for the Control Point, loading it with the intelligence needed to run the devices in your home meaning that it must remain in the home as a part of the network solution. In a way, it could be said that in those solutions the Control Point is the smart home network.
 +
 +
ohWidget actively encourages users to use devices they already familiar with as their Control Point. Furthermore, the intelligence of the network is not placed on those devices, but on the Nodes connected to the Widgets. This reduces the learning curve for users, ensures their Widgets are always accessible and opens up the possibility to give users remote access to their home.
 +
 +
Removing the Control Point from the home does not remove the ohWidget network. It persists as long as
 +
the Nodes and Widgets remain connected. Devices such as tablet PCs, smart phones and laptop computers
 +
are all readily usable as Control Points — both inside and out of the user's home.
 +
 +
{{Notebox}}
 +
'''Important'''
 +
 +
Control Point hardware is not delivered as part of the ohWidget home automation system, though the ability to present the services that Widgets provide is.
 +
 +
 +
The model provides a simple Web server to run on the Node which is given the responsibility of serving the user interface to the Control Point.
 +
 +
{{Noteboxend}}

Revision as of 13:50, 29 February 2012

Contents

Introduction

This document provides a technical overview of the ohWidget home automation system and details about the physical architecture it uses. It introduces the concepts, terminology and interactions of each component of an ohWidget system.

This document does not provide low-level technical information such as hardware specifications of the Nodes nor code examples from the ohWidget API.

ohWidget

ohWidget makes use of three distinct components: Widgets, Control Points and Nodes. This document uses these three terms heavily throughout and are defined simply as follows:

Widget

Any device in an end-user's home that can be remotely controlled. Widgets can range in complexity from simple single-service lights to multi-service audio/visual devices.

Control Point

A device used by the end-user to access the services provided by each Widget.

Node

The device used to aggregate devices and services published by Widgets, for quick and easy access by Control Points.

Together these three classes of device can be used in any number to create an ohWidget home automation system.

Node manufacturer benefits

ohWidget supports Node manufacturers by:

  • providing a protocol-independent framework from which to build the communications hardware most suited to each manufacturer
  • removing the tightly coupled nature of Control Points and devices that appears in other home automation systems
  • allowing Widget vendors to specify the Widget requirements
  • not tying Nodes directly to Widgets, and vice-versa
  • providing a customizable user interface design to allow for smart and intuitive user experiences

Widget vendor benefits

Widget vendors using ohWidget benefit from how little the need to do to make their Widgets ohWidget compatible.

ohWidget supports Widget vendors by:

  • allowing the easy integration of Widgets to a connected home with the addition of a tiny amount of intelligence on the Widget itself, without the necessity for a large-scale redesign of the products
  • supporting managed code for driver writing in C# allowing for faster development across multiple hardware implementations
  • auto-generating several essential files from one central configuration file
  • defining the configuration details of the device in simple XML which is easily created and maintained

User benefits

The goal of ohWidget is to place the user at the center of their own home services by providing them an aggregated view of all the devices in their home, irrespective of the vendor.

ohWidget puts the focus on the user in their home by:

  • giving users complete freedom of choice of which devices are used in their own home
  • allowing existing, familiar devices to be used as the Control Point, including a choice from among smartphones and tablet PCs
  • providing a system backbone that persists when in the home (removing the Control Point doesn't remove the system)
  • providing a minimum set up system for home users by applying the benefits of Universal Plug and Play to all devices, independently of the communications protocol used by each device
  • aggregating all Widgets in the home, regardless of vendor or protocol
  • providing a truly scalable solution allowing the user to build their own smart home network as they wish

Technical Overview

A very simple view of an ohWidget connected home is shown in Figure 1 below. One Control Point accesses a single Widget by interacting with the Node:

Figure 1: An abstract view of a Control Point, Node and Widget using a home network to communicate.

Key:

  • WAP: Wireless Access Point. A network point allowing the Control Point and Nodes to access the 802.11a/b/g/n protocol.
  • PLC: Power Line Communications. Can be used to help extend ethernet connections around the home.
  • LEC: Low Energy Communications. The module installed on the Node used to communicate with compatible Widgets. Examples are 6LowPan, ZigBee, Z-wave or Bluetooth LE.
  • Home network: A representation of any number of routers, switches and wireless access points in the home. This also includes wired Ethernet connections, indicated in the diagram by the thick lines between the Control Point, Home network and Node.
  • Wireless comms: The protocol used by the Node and Widget to communicate with each other.


Note

The Node is shown with a broken line through it to represent the possibility of a second Node being contacted to pass the message on to the Widget. At most a message will travel from Control Point > Node > Node > Widget (this is discussed in more detail in the Node chapter). In this case, the first Node will continue to use ethernet comms (potentially augmented by PLC) to contact the second Node, and the second Node will use the LEC protocol to contact the Widget.

An ohWidget network grows with no maintenance burden on the user when new Widgets are introduced. Communication between the Control Point and the Widget is key to ensuring a smart home functions efficiently as possible for users.

The view shown in the diagram above places the emphasis for this scalability and openness on the Node. Nodes treat both Widget and Control Point as abstract concepts and operate, for the most part, independently of the requirements of both. This is what stands ohWidget apart from other smart home systems.

Widgets

Widgets are any device that offer a service that can be interacted with from a Control Point. The Widget can be as complicated as an integrated audio streaming center or as simple as a light.

To be an ohWidget compatible device, a Widget needs to have the following knowledge about itself:

  • State — the current status of the Widget, such as On or Off
  • Service — the list of actions and options the Widget offers over the network
  • Unique identifier (UID) — the value used to identify the Widget from all others

These details must be present on the Widget. This small requirement means that almost any device can be compatible with ohWidget.

The intelligence and mechanisms required to access and use these details is not stored on the Widget. ohWidget loads the intelligence on the Nodes rather than demand Widget vendors make their Widgets more complicated than they have to be.

Classifying Widgets

Some devices will already be complex in the range of function that they offer, whilst others will remain simple devices offering one or two functions at most. The simpler devices, Widgets, are supported by ohWidget's property list. These devices can have their functionality easily defined within the ohWidget framework, producing both auto-generated code for developers and intuitive user interfaces to present the Widget to the user.

Widgets in more detail

A Widget is a simple hardware device such as a light or thermometer. Widgets communicate with the Node using a low-energy communications protocol, such as Zigbee or Z-Wave. They are controlled using a device- and protocol-specific driver. Widget drivers are installed on the Node and used as required.

For example, two Widgets providing an identical service over the same communications protocol will both use the same copy of the device driver. A new Widget providing the same service as the first two but over a different communications protocol will need a new device driver. A fourth Widget offering a different service, but using the same protocol as the first two, will also need its own device driver.

A more advanced device might not have its full range of functionality supported in the set of ohWidget properties alone. These devices are called External Widgets. Their more complicated functions must be defined externally of the ohWidget properties. However, ohWidget will fully integrate an External Widget definition so that it can be presented seamlessly alongside other Widgets.

Figure 2: Four Widgets shown using three drivers installed on the Node

Note

For more information on writing a Widget driver, see the ohWidget Driver Development document

If we examine the list of compatibility requirements again, we see that Widgets automatically meet each one:

  • State — Widgets will typically offer one state variable that can be changed (such as a light being able to turn on or off), so their state is readily and easily available.
  • Service — As above, most Widgets will offer a single service that can be controlled which Widget vendors will write and publish in an XML description file.
  • Unique Identifier (UID) — By providing the Widget with a communications protocol (such as a light that communicates over the Zigbee protocol) you also give it a MAC address. The Widget's MAC address can easily be used as the UID.


Note

Widgets can be provided with a communications protocol either internally by including the protocol hardware in the body of the device itself, or externally by converting the device using a commercially available adapter. Either way, the Widget becomes network accessible and is assigned a MAC address.

Widget vendors are responsible for providing sufficient information about their Widgets in a Widget class driver. The information provided in the driver is written by the Widget vendor and released at the same time as the Widget. This does not mean, however, that it is necessarily packaged with the Widget. Some drivers will be deployed via an automatic download to the Node, or manually installed using a USB stick. This allows any Widget from any vendor to be added to the network (assuming that the Widget and the Node share a compatible communications protocol) and provides instant access to the Widget's services. No IP address or other complex TCP/IP stack requirements are placed on the Widget, keeping it simple and focused on its primary function.

ohWidget allows Widgets to remain:

  • low in power consumption
  • unhindered by the extra hardware and software expense that would have been required to maintain multiple communications protocols on a single device
  • dedicated to providing the service it was designed for

External Widgets in more detail

An External Widget is a complex hardware or software device that cannot have its controls and interface easily presented as a Widget. An External Widget will typically communicate over a network using TCP/IP, but can also use the same protocols as a Simple Widget (such as Zigbee or Z-Wave). External widgets are hosted in separate apps. These apps have the ability of being displayed and controlled through the ohwidget user interface. For more details refer to the External Widget Application Development document.

User Interface

The responsibility for hosting the user interface (UI) to control Widgets is given to the Node. This ensures the Widget remains dedicated to providing the service it was originally designed for. By default, ohWidget will provide a full UI to allow users to control each function available on the Widget.

Note

For more details of UI hosting and Node UI design, see the User interface section in the Nodes chapter.


The Widget vendor must provide the details of how to control each device they manufacture for use in the smart home. This information is provided in the Widget Service XML file which is used to generate the UI.

Each Widget UI provides both a summary and a details view. The summary view allows users quick access to a Widget's single basic function, such as a simple on/off command. The details view provides users access to the full range of functionality that the Widget offers. This allows vendors to be as specific as they like for each Widget they produce.

The summary view is automatically displayed when the Widget has been detected on the network. The UI aggregates all of the available Widgets' summary views into a single list for the user.

The details view can be auto-generated from the information provided in the service XML. Vendors can then customize the look of the details view UI with custom CSS and JavaScript.

ohWidget does not restrict vendors in how they present their Widgets to the end-user. To assist Widget vendors in getting their product integrated into an ohWidget system as quickly and easily as possible, the details view can be generated automatically from the service XML Widget vendors write when releasing a new Widget.

There is a list of supported controls that the auto-generation process generates from the XML into HTML, complete with CSS and associated JavaScript. Any other controls the vendor needs to have displayed can be provided in custom-written HTML alongside the auto-generated content.

Note

The CSS is hosted on the Node and the auto-generated HTML will default to using this. If Widget vendors want to customize the look and feel of their UI they must provide their own custom CSS and ship it along with their HTML.

This operation is carried out at compile time, before the Widget is shipped. For more details on the ohWidget UI see the ohWidget UI Development documents.

See the External Widget Application Development document for more information on writing custom details view UIs for External Widgets.


Control Points

Control Points

A Control Point is used by the end-user to control each of the Widgets in their smart home. A Control Point is itself a device, but isn't considered a Widget in the ohWidget system.

The UI provided by ohWidget for Control Points to use is web-based. It is hosted on the Node and developed in two parts by Node manufacturers and Widget vendors, with auto-generation tools and support provided in the ohWidget software to assist this process. ohWidget provides support for the development of native Control Point applications to be developed, but the development of native applications is a manual process. ohWidget provides no auto-generation tools for native Control Point applications.

Familiar Devices

A typical Control Point already exists in the modern-day home in the form of:

  • tablet PC
  • smart phone
  • personal computer
  • laptop

A typical modern home has at least one of these devices (and in a lot of cases often more than one of each type) readily available to perform the function of Control Point in a smart home.

Users are already comfortable using these devices and ohWidget is designed to leverage that comfort zone and minimize further costs to the user.

This leaves the user free to focus on choosing which Widgets they want to install in their home.

Flexible network architecture

ohWidget provides a network architecture that allows the relationship between the Control Point and the user's smart home to remain flexible at the hardware level, yet tightly bound at the software level.

Other attempts at home automation use proprietary hardware for the Control Point, loading it with the intelligence needed to run the devices in your home meaning that it must remain in the home as a part of the network solution. In a way, it could be said that in those solutions the Control Point is the smart home network.

ohWidget actively encourages users to use devices they already familiar with as their Control Point. Furthermore, the intelligence of the network is not placed on those devices, but on the Nodes connected to the Widgets. This reduces the learning curve for users, ensures their Widgets are always accessible and opens up the possibility to give users remote access to their home.

Removing the Control Point from the home does not remove the ohWidget network. It persists as long as the Nodes and Widgets remain connected. Devices such as tablet PCs, smart phones and laptop computers are all readily usable as Control Points — both inside and out of the user's home.

Important

Control Point hardware is not delivered as part of the ohWidget home automation system, though the ability to present the services that Widgets provide is.


The model provides a simple Web server to run on the Node which is given the responsibility of serving the user interface to the Control Point.