© Liashko/Shutterstock.com
Teil 3: Geräteabstraktion und ihre Schwierigkeiten

Alle hören auf mein Kommando?


Für den Softwareentwickler ist ein Schalter nichts weiter als ein boolescher Wert. Doch bei der Programmierung von Smart-Home-Hardware ist fast jedes System bzw. Gerät unterschiedlich anzusteuern. Woran das liegt, und was man dagegen tun kann, wollen wir im folgenden Artikel näher untersuchen.

Im vorigen Teil dieser Artikelserie haben wir gesehen, wie vielfältig der Smart-Home-Markt ist und dass es nicht die „eine“ beste Lösung gibt. Vielmehr haben alle Systeme ihre Stärken und Schwächen. Es gilt also, die jeweiligen Stärken in ein Gesamtsystem zu kombinieren. Hierbei stellt man schnell fest, dass inzwischen fast jeder Hersteller bzw. jede Allianz zu einer eigenen Lösung gefunden hat, wie Geräte per Software ansprechbar sind (Abb. 1). Dabei sind auf den ersten Blick die Möglichkeiten nicht allzu vielfältig: Sensoren liefern einerseits Messdaten – also einfache (Fließkomma-)Zahlen – und Aktoren empfangen diskrete Kommandos wie „an“, „aus“ oder auch Prozentwerte. Wäre es für Smart-Home-Anwendungen nicht schön, wenn dies für jedes Gerät auf ein und die gleiche Weise geschehen könnte? Wir suchen also eine Abstraktionsschicht, die uns unabhängig von der konkreten Hardware macht.

kreuzer_openhab3_1.tif_fmt1.jpgAbb. 1: Verschiedene Dimmer unterschiedlicher Hersteller

Übersicht der Artikelserie

Teil 1: Heimautomatisierung und das Internet der Dinge

Teil 2: Marktüberblick über Systeme und Protokolle

Teil 3: Geräteabstraktion und ihre Schwierigkeiten

Teil 4: Standards, Open Source und Forschung

Teil 5: Steuerung und Automatisierung

Teil 6: Sicherheit und Datenschutz

Teil 7: Hands-on-Integration mit openHAB

Auf der Suche nach einem universellen Typsystem

Wie uns die Informatik gelehrt hat, lassen sich alle Informationen in Form von Zahlen darstellen und in Objekten repräsentieren. Was ist also einfacher, als einen Gerätetyp als abstrakte Klasse mit Properties mit primitivem Datentyp zu beschreiben? Mögliche Kommandos lassen sich als Methoden definieren, die je nach konkreter Klasse gerätespezifisch ausimplementiert sein können – fertig ist unsere Geräteabstraktion (Abb. 2).

Doch halt! Was genau ist eigentlich der oben genannte „Gerätetyp“? Bei einer Abstraktion kann dies nicht ein konkretes Gerätemodell sein, sondern muss sich auf eine Gerätegattung beziehen, wie z. B. „Fernseher“. Wie kann man aber allgemeingültig einen Fernseher und seine Funktionen in einer abstrakten Klasse beschreiben? Zwischen dem alten Röhrenfernseher mit Einschalter, Lautstärkeregler und drei Programmen und einem aktuel...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang