Es gibt modulare Hardware, aber noch keine modulare Kommunikation

Das Programmieren eigener Anwendungen ist in Zeiten von Arduinos, Raspberry Pis und anderer preisgünstiger Hardware so einfach wie nie. Um mal schnell mit dem Raspberry Pi eine Steckdose zu schalten, reicht der Kauf einer Aufsteckplatine oder der Blick in ein Internet-Tutorial. Auch das Programmieren einer passenden Smartphone-App ist mit existierenden Tools schnell realisiert.

DIY-Projekte bleiben oft Insellösungen

Fachzeitschriften wie z.B. die c't Hacks oder Elektor stellen ebenfalls vielfältige Projekte aus den verschiedensten Bereichen vor. Eine Verbindung dieser Projekte oder die generische Lösung wiederkehrender Probleme (z.B. Logging, Zeitsteuerung, Sprachsteuerung etc.) ist aufgrund unterschiedlicher Kommunikationskanäle, verschiedener Protokolle oder schlicht wegen fehlender Schnittstellen oft nicht mit vertretbaren Aufwand möglich.

FHEM, openHAB und Co. sind zu kompliziert

Im Bereich der Heimautomatisierung ist der Wunsch erkennbar, verschiedenste Geräte in ein gemeinsames Netz zu integrieren. Doch existierende Lösungen sind trotz ihrer Offenheit und Erweiterbarkeit für Nicht-Experten nur unter Schwierigkeiten in Betrieb zu nehmen. Ein weiteres Problem ist die Komplexität mancher Protokolle, welche eine native Implementierung auf kleinen Mikrokontrollern verhindert.

appicals macht Informationen endlich interaktiv

appicals ("äppikells") ist eine offene Sprache zur Beschreibung elektronischer Geräte. appicals-kompatible Geräte finden sich selbständig über Netzwerkgrenzen hinweg und stellen sich gegenseitig Daten und Funktionen zur Verfügung. Auch abgeleitete Funktionen wie z.B. Regeln, Gerätegruppen, Sprachsteuerung usw. sind in appicals Daten, die durch beliebige Klienten genutzt und geändert werden können.

Mit appicals verschwinden Systemgrenzen

appicals führt vom "Internet of Things" zum "Internet of Activity". Es beschränkt sich nicht auf Sensoren und Aktoren, sondern erlaubt auch die Abbildung von Multimedia-Diensten, öffentlichen Gebäuden oder Fahrzeugen. Ebenso können virtuelle Dienste wie Wetterdaten, Aufgaben und Kalender, Tankstellenpreise oder Öffnungszeiten in appicals-Netze integriert werden.

Alle Geräte und Projekte, die über eine Standardschnittstelle wie z.B. Bluetooth, NFC, ZigBee oder WLAN Daten senden und empfangen, können mit überschaubarem Aufwand appicals-fähig gemacht werden.

Verschiedene Geräte, gleiche Dienste

Eine der Grundideen von appicals ist die Tatsache, das Geräte aus verschiedenen Anwendungsbereichen sich in die gleichen Basisfunktionen zerlegen lassen. Dies kann unter Gerätebeispiele interaktiv nachvollzogen werden. Diese Zerlegung bietet sowohl für Kunden als auch Gerätehersteller viele Vorteile:

Arduino, Gadgeteer, Raspberry PI, ...

appicals verbindet bei Bedarf existierende DIY-Projekte und bietet dadurch einen echten Mehrwert. Sie profitieren von existierenden Produkten, GUIs und Logik und müssen sich nicht um dutzende Zielplattformen kümmern. Unter Software stellen wir für die gängigsten Plattformen kostenlose Beispielprogramme zur Verfügung, teilweise inkl. Quellcode.

Möchten Sie Geräte auch außerhalb von LAN oder WLAN verbinden, dann ist unser appicals-Router der schnellste und komfortabelste Weg. Er bietet die aus unserer Sicht wichtigsten Kommunikationsschnittstellen wie Ethernet, CAN und LowCost-Radio direkt an, weitere wie Bluetooth oder ZigBee sind über Steckverbinder nachrüstbar.

Über den offenen JTAG-Stecker kann natürlich auch eigene Software ausgeführt werden - Der verwendete STM32F103 µC ist z.B. über die IAR Kickstart Edition bis 32k Codegröße kostenfrei programmierbar.

appicals, SCF, CommFramework und SixML

appicals ist der Markenname, unter dem Produkte, Apps und Programme auf dem Markt angeboten werden.

SCF ist die Abkürzung für das Seamless Communication Framework, welches die dahinterliegende Technologie darstellt. Das SCF unterteilt sich wiederum in das CommFramework sowie SixML.

Das CommFramework beschreibt ein generisches Framework zum Austausch von ByteArrays über verschiedene Kommunikationskanäle.

SixML steht für Simple Information Exchange Markup Language und definiert die innere Struktur von appicals-Nachrichten auf dem Applikations-Layer.

Trennung von Kommunikation und Inhalt

appicals trennt die Kommunikationsschnittstellen strikt vom Inhalt. Das CommFramework kann zum Austausch beliebiger ByteArrays verwendet werden, SixML-Nachrichten können auch über beliebig andere Schnittstellen versendet werden. Nur für das Routing von Nachrichten ist ein Zusammenspiel beider Architekturen erforderlich.

appicals in a nutshell

appicals folgt einem "Jeder mit jedem"-Ansatz; Nachrichten werden zwischen verschiedenen Netzen für den Nutzer transparent weitergeleitet. Dadurch werden Dienste möglich, die mit erhältlicher Technologie noch nicht umsetzbar sind.

appicals-Teilnehmer unterteilen sich in Dienste (welche Funktionen anbieten) und Klienten (welche Funktionen nutzen), auch kombinierte Geräte sind möglich. Dienste stellen Attribute (z.B. die aktuelle Temperatur) sowie Aktionen (z.B. Setzen einer Dimmrampe) zur Verfügung, auf welche Klienten mit standardisierten Nachrichten zugreifen können. Es gibt sowohl vordefinierte Dienste zur Lösung häufig auftretender Aufgaben als auch die Möglichkeit, eigene Dienste zu erstellen.

appicals-Dienste sind in weiten Teilen selbsterklärend, dies bedeutet, dass ein generischer Klient alle gefundenen Dienste anzeigen und steuern kann, wenn sich die Semantik des Dienstes aus den verwendeten Klarnamen ergibt bzw. eine externe Beschreibung des Dienstes existiert. Dieser Ansatz orientiert sich an UPnP, in welchem ein ähnliches Konzept benutzt wird.

Die dadurch möglichen Szenarien übersteigen die Fähigkeiten heute erhältlicher Systeme deutlich. Da jeder Dienst mit jedem Klienten kommunizieren kann, beschränkt sich die Arbeit oftmals auf die intelligente Vernetzung der einzelnen SCF-Teilnehmer.

Struktur

Das SCF unterteilt sich in verschiedene Layer.