昨日のEclipseConでKai Kreuzer氏が,OpenHABに関するプレゼンテーション(スライド資料) を行った。OpenHABは,家庭内のスマートアプライアンスやデバイスを統合するサーバコンポーネントである。汎用的な制御機構を設定して,モバイルデバイスやWebアプリケーション,あるいはスクリプティングシステムからの操作に対応する。
OpenHABは当初,GPLでライセンスされたオープンソースプロジェクトだった。現在はEclipse SmartHomeへの移行のため,EPLにライセンスが変更されている。プロジェクトが公開しているJavaベースのサーバ (EclipseConではRaspberry Piで動作する様子が公開された) には,40以上のバインディングが提供されている。その対象はModBusやAsterisk, Philips hue, Samsung など,さまざまな多数のデバイスだ。
SmartHomeの目標は,接続されたすべてのコンポーネントを汎用的なコントロール機構でユーザインターフェースから操作可能な,シンプルなドロップインサーバを提供することにある。このようなデバイスには独自のモバイルアプリケーションを用意しているものも多いが,デバイスをコントロールするためにモバイルアプリの起動が必要であったり,統合することができないなどといった問題がある。SmartHomeをメインハブとして使用することにより,すべてのデバイスをひとつのモバイルアプリあるいはWebサイトでコントロールできると同時に,個々のコンポーネントを操作するスクリプトのセットアップが可能になるのだ。
OpenHABのランタイムはEclipse Equinoxがベースで,各コンポーネントはOSGiサービスの形式で実装されている。それぞれの間の通信はEventBus上で行われる。これはつまり,動作環境上でイベントの監視やデータ編集を行うプラグインあるいはバンドルを誰でも開発可能ということだ。コンポーネント全体の構成を永続的に表現するアイテムマップも構築されている。システムの拡張に伴ってマップも更新されるので,イベントベースのトリガを追跡しなくても,システムの現在の状況を確認することが可能である。
そして最後に,SmartHome Designerという,Eclipse RCPベースのアプリケーションツールが用意されている。スマートホームのドラッグ・アンド・ドロップによる設定や,デバイスをON/OFFするスクリプトを構築するためのルールを取得することが可能だ。
OpenHABのサイトにはデモが公開されている。また今週末には,Eclipse SmartHomeレビューが予定されている。