X10Server: 照明・家電を手軽に操ろう

作成日: 2008/10/19  最終更新日: 2008/10/19



◆はじめに

X10は電灯線通信を用いて,照明器具や家電機器の電源を制御するための規格であり,コンセントと家電機器の間に取り付けるX10デバイスモジュールと,それらを制御するためのコントローラ,及びパソコンからX10デバイスを管理するための通信インタフェースから構成されます.個々のX10デバイスモジュールは1500円程度で購入でき,安価に照明・家電制御システムを構築できる点が特徴です.

X10デバイスモジュールは個別にIDを設定することが可能であり,最大256種類の機器を操作することができます(図1).コントローラは,据え置き型のリモコンのような形状であり,複数のX10デバイスをボタンなどで操作できます.通信インタフェースは,パソコンからRS232経由で電灯線通信を行うためのインタフェースであり,X10デバイスを直接制御したり,コントローラの操作を監視します(図2).

X10Serverは,X10デバイスの動作テストに便利なGUIと,TCPサーバーを一体化したソフトウェアです(図3).TCPソケット経由でシンプルなテキストメッセージを送信するだけで,X10デバイスを手軽に制御することができます.また,X10コントローラの操作を検出することも可能です.

MobiServerで紹介するさまざまなミドルウェア群と組み合わせることで,実世界のさまざまな機器をシンプルな方法で手軽に操作することが可能です.

x10device x10control

図1 X10デバイスモジュールの外観(※1)
(左: Powerhouse X10 Lamp Module PLM03 $13.99,
中央: Powerhouse X10 Appliance Module $17.99)

図2 RS232・X10変換インタフェースの外観
Smarthome 1132b $37.99)
※1 照明用では電球ソケットに直接取り付けられる
   モジュールも存在します.
X10 Socketrocket Screw-In Lamp Module $18.99)
 

図3 X10Serverのスクリーンショット
(左:初期状態,右:X10ランプモジュールとX10アプライアンスモジュールを接続した状態)





◆ダウンロード

  • X10Server.zip
    実行ファイルです.事前に.Net Framework2.0をインストールしておく必要があります.Windows2000/XP/Vista上で動作するはずです.詳しくは下記のインストールを参照してください.
  • X10ServerSource.zip
    ソースコードです.Visual Studio .NET 2008 を用いて,C#で書かれています.
  • 感想・要望などは下記メールアドレスまでご連絡ください.

◆ライセンス

プログラムのソースコードは修正済みBSDライセンスに従って配布します.完全に無保証です.

◆インストール

X10Serverを実行する前に,Microsoft .NET Framework再頒布パッケージ (23.7 MB) をインストールしておく必要があります.

これらのインストールが完了後,X10Server.zipを解凍し,X10Server.exeをダブルクリックすればプログラムが起動します.



◆使い方

1. デバイスの接続と切断

X10Serverを起動後,PCにRS232・X10変換インタフェースを接続します.そして,フォーム下部のコンボボックスを用いて,X10モジュールがつながっているポートを選択し,「接続」ボタンを押します.終了時には「停止」をクリックします.

※シリアルポートの確認は,WindowsXPの場合,コントロールパネル→システム→ハードウェア→デバイスマネージャ→ポートから行います.

-
2. X10デバイスの追加

X10モジュールのHouseCode(A--P),UnitCode(1--16),X10デバイスモジュールの種類(Lamp, Appliance)を「モジュール追加」のプルダウンメニューからそれぞれ選択し,最後に「追加」ボタンを押します.

-

3. X10デバイスの制御

モジュールを追加すると,図のような画面が表示されます.ラジオボタンのOn/Offで電源を制御することができます.Lampモジュールの場合,「明るく」,「暗く」ボタンまたはスライダーを動かすことで明るさを制御することができます.

また「全体コマンド」のボタン(「全ライトOn」「全ユニットOff」「全ライト(明)」「全ライト(暗)」)を押すと,接続されている全てのX10モジュールを制御することができます.
-
◇その他の使い方
ネットワーク経由の使い方はMobiServerのページや以下の通信仕様を参考にしてください.


◆通信仕様

ここでは,X10Serverの基本的な通信仕様について説明します.
詳細な通信仕様(エクセル形式, PDF形式)も参照してください.

基本仕様(共通)

基本仕様は以下のようになります.(全てのMobiServerに共通です.)

  • 送受信文字列は全てASCIIテキスト形式.
  • コマンドは「デリミタ」で指定した行区切り子("\r\n","\r","\n","\0")のいずれかで区切られる.
  • コマンド内の各要素は指定した項目区切り子(",", "\t")のいずれか で区切られる.

また,クライアントからコマンドを送信する際の注意事項は以下のようになります.

  • コマンドにミスがあった場合は無視される.(エラーは返さない.)
  • 各コマンドは厳密に指定する必要がある.
    • 大文字/小文字は区別される.
    • スペースを入れない.
  • <Port>, <Data>は各コマンド毎に適切な範囲を指定する.

基本的なコマンド構成

X10Serverの各コマンドの,基本的な構成は,以下のようになります.

X10,<CommandType>,<HouseCode>,<UnitCode>[,...]

  • <CommandType>は以下の4種類
    • Attach
    • Detach
    • In
    • Out
  • <HouseCode>はA-Pまでの16種類
  • <UnitCode>は1-16までの16種類
X10Server→クライアント
  • X10,Attach,<HouseCode>,<UnitCode>,<DeviceType>
    • <DeviceType>のX10モジュールがアドレス(<HouseCode>-<UnitCode>)に接続された.
    • e.g.) X10,Attach,A,1,Lamp
  • X10,Dettach,<HouseCode>,<UnitCode>
    • X10モジュールがアドレス(<HouseCode>-<UnitCode>)から切断された.
    • e.g.) X10,Dettach,A,1
  • X10,In,<HouseCode>,<UnitCode>,Power,<Data>
    • X10ランプモジュール(アドレス: <HouseCode>-<UnitCode>)の電源がコントローラでOn/Offされた.
    • e.g.) X10,In,A,1,Power,1
クライアント→X10Server
  • X10,Out,<HouseCode>,<UnitCode>,Power,<Data>
    • X10モジュール(アドレス: <HouseCode>-<UnitCode>)の電源をOn/Offする.
    • e.g.)X10,Out,A,1,Power,1
  • X10,Out,<HouseCode>,<UnitCode>,Bright,<Data>
    • X10ランプモジュール(アドレス: <HouseCode>-<UnitCode>)の明るさを変更する.
    • e.g.) X10,Out,A,1,Bright,5





◆参考URL
  • SmartHome.com
    - X10デバイスを多数販売しています.海外サイトですが,日本からも購入可能です.
  • X10 Programming Manual
    - RS232・X10変換インタフェース(Smarthome 1132b)のプログラミングマニュアルです.実装の参考としています.
  • X10 Technical Note
    - X10の物理的な実装(通信方式,ハードウェアなど)について解説されています.
  • X10のメカニズム
    - 内容的には上記のX10 Technical Noteの要約的ですが,日本語訳が併記されています.
  • FreeCon
    -X10を国内で販売している代理店のサイトです.


[MobiServer]