Hello,
We would like to discuss some topics with the OpenHAB/Eclipse Smart Home Community that we have presented a while ago to Thomas Eichstädt-Engelen and Kai Kreuzer.
First of all, let us introduce us to you. We (Lukas Smirek and Professor Gottfried Zimmermann’ team) are researchers at the Stuttgart Media University (“Hochschule der Medien”). Our research focus is on personalized user interfaces and accessibility.
Our idea is to implement a mechanism for personalized and pluggable user interfaces in Eclipse Smart Home. These mechanisms and concepts have already been applied in another project, called the Universal Remote Console (URC).
In order to get more specific, let us discuss some examples:
Use case 1: Exchange of broken devices
Imagine, you have a TV set or a sashing machine in your smart home that you can control with your smartphone. After a while one of the devices breaks and you have to exchange it for a new one. This time you decide to buy a different model from a different vendor. Unfortunately, the user interface of the new device is very inconvenient. Thanks to the user interface exchange mechanism of the URC framework, you can keep your old familiar user interface and do not have to install a new one.
Use case 2: Your new holiday flat
Imagine, you buy a new holiday flat and equip it with some smart devices that you want to remote control. Unfortunately you have to choose some different models for your holiday flat that in your regular home. Having different user interfaces in the two places can be very inconvenient and confusing. Fortunately, by using the concepts of URC you do not have to adjust to different user interfaces because you can use the same ones in both places.
Use case 3: Supporting your parents
Imagine, one of your parents suffered a stroke and has problems with his fine motor skills. Hence he or she can no longer control the heating system because you need a touch screen to do it. Having a hard wired user interface might make it necessary to replace the whole heating system. Making use of the URC user interface exchange mechanism enables you to keep the main system and reduces your effort to exchange the conventional touch screen against a tablet with eye tracking and the system is for both parents accessible.
Use case 4: The baby sitter
Imagine, you have a nice old lady that takes care of your kids when you want to go out with your spouse. After bringing the children to bed she wants to watch TV. Unfortunately she is not very good in learning new technical stuff and has problems with your audio/video system. Fortunately, she can use her familiar user interface on your tablet to control the unfamiliar Audio/Video system. Additionally, the user interface is a simplified one that shows only the most relevant functionalities.
Use case 5: Your business trip to china
Imagine, you are on a business trip in China. When you arrive in your hotel room you want to adjust the air conditioning settings. Other than in former days, when you had fight with a control panel with Chinese letters, this time the control panel automatically shifts to German and uses an icon set that is familiar to you. Furthermore the system recommends some environmental settings similar to the ones in your home.
In order to enable these use cases there are two major things necessary. First of all, an abstraction layer that abstracts from specific devices and separates the user interface from the real hardware. Secondly a user interface server that provides globally available user interfaces and user interface settings.
Concerning the abstraction layer, the current concept of thing types and channel types is a very good starting point. However, we think that the potential of these concepts is not yet used to its full extent. In order to enable use cases like exchanging a new device against an older one requires that both devices are using the same abstraction. Hence we propose to build a binding that contains a set of standardised channel types that have the property “system”. These channel types can then be reused to build bindings for concrete devices. A nice side effect of such a set of standard channel types is that the developer’s effort for integrating new devices is decreased.
Furthermore, to enable use cases like the one with the holiday flat, makes it necessary that the relevant items that shall be controlled via a user interface are no more hard coded in the user interface. Instead a library is required that enables user interface developers to specify the thing type to which they want to connect in a first step and then the channel type to control a certain functionality in a second step. We intend to develop a JavaScript library that could look as follows:
// connect to the openHab gateway
var openHab = new OpenHAB();
openHab.connect('1.2.3.4');
// Get a list of all connected TV sets
var tvs = openHab.getThings('TV');
// ... select a certain TV set
// connect to the selected TV set
var tv = openHab.getThing('tv_1');
// look up a list with all available channels
var channels = tv.getAvailableChannels();
// ... do something/ select a channel
// control a channel
tv.setChannel('tv:volume', 75);
In order to have user interfaces and settings recommendations globally available – like in the example with the business trip to China – a user interface resource server is required. Therefore, we intend to use the OpenAPE framework (open Accessibility Personalisation Extension). OpenAPE provides a server and a dedicated Java client that can be easily integrated into Eclipse Smart Home.
User interface developers can upload all kind of user interfaces (or links to them) to this server to make them available in a global, central place. In order to get more specific user interface recommendations, a user can define the context of use. The context of use consist of four parts: user context, equipment context, environment context and task context. So, a user interface in Eclipse Smart Home is needed that can be used to define the different context types. The equipment context is defined by the things for which a user interfaces shall be looked up, the environment context is defined by a subset of the available linked channels that give information about the environment (time, temperature, environmental light etc.) and the task context is defined by linked channels or items that indicate the current activity of the user.
The user context is directly defined on the OpenAPE server.
We have just started to work on a first prototype to demonstrate our ideas. Soon it will be available at:
http://github.com/REMEXLabs/urc4esh
Further information about the URC framework and a comparison between URC and ESH can be found in
L. Smirek, G. Zimmermann, and M. Beigl, “Just a Smart Home or Your Smart Home – A Framework for Personalized User Interfaces Based on Eclipse Smart Home and Universal Remote Console,” Procedia Computer Science, vol. 98, pp. 107–116, 2016.
Further information on OpenAPE:
L. Smirek, P. Münster, and G. Zimmermann, “OpenAPE - A Framework for Personalised Interaction in Smart Environments,” presented at the SMART ACCESSIBILITY 2017, The Second International Conference on Universal Accessibility in the Internet of Things and Smart Environments, Nice, France, 2017, pp. 1–5.