X10Broker for Win32 の使い方  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ver 0.1 2005/09/01 江端智一 E-mail:See http://www.kobore.net/mailAddress.gif http://www.kobore.net/ -1. 確認している問題点  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ○x10policy.cfgの最初の一行目の内容が無視される ○USB-RS232C変換ケーブルを使うと、起動の度にCOMポートが動き回る ことがある → x10broker.cfgを設定する ○デフォでECHO ONにする制御を行っているかどうかが不明 → ハイパーターミナルなんぞは使わないで、 "PLC Utility.exe"を使うのが正解 0. 変更履歴  ̄ ̄ ̄ ̄ ̄ ̄ ver 0.1 2005/09/01 初版 1. Copyright  ̄ ̄ ̄ ̄ ̄ ̄ Copyright (c) 2005 Tomoichi Ebata. All rights reserved. 改変を加える場合も、加えない場合も、ソースとバイナリー形式での再配布、 使用は、下記の条件を満たした場合に許諾される。 1. ソースコードでの再配布物には、必ず上記の著作権表示、この条件リスト、 および以下の面責事項を、改変せずにファイルの最初の数行に入れなけれ ばならない。 2. バイナリー形式での再配布は、必ず上記の著作権表示、この条件リスト、 以下の面責事項の複製をドキュメンテーション内、あるいは配布と共にパッ ケージに入れられて提供される他の物の中に入れなければならない。 このソフトウェアは江端智一によって”現状のまま”提供されるものであり、 市場性があり売れる製品であるような含みを持たせ、特定の目的に適う製品で あるかのような、いかなる明示された保証はない。 また、なにか保証があるような含みを持たせた一切の保証の類からの責任も すべて拒否する。 著作者は直接的、非直接的、偶発的、特殊な、典型的、あるいは必然のいか なる場合においても、 いかなる損害に一切責任は負わない。 その損害は以下の内容も含み、しかもそれに限定されない。 代用となる物やサービスの調達、効果・データ・利益の低下、商取引の障害、 また、どのような責務の論理においても、それが契約に関するものであろうと、 厳格な責務であろうと、不正行為(不注意やその他の場合も含む)であろうと、 このソフトウェアを使用することによって生じるそれらの損害の、一切の責任 から著作者は免れている。 たとえ事前にそれらすべての損害への可能性が示唆されていた場合において も同様である。 2. What is "X10Broker for Win32" ?  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ "X10broker"をご説明する前に、まず、"X10"について解説します。 X10とは、家庭用の電灯線を使って、高々十数bps(一秒間に10文字程度)の 速度で通信を行うネットワークプロトコルです。 電話は勿論、PCを使ったインターネット通信と比較しても、品質はよろしく ないのですが、米国や欧州では10数年前から、家庭用監視システムとしてかな りポピュラーな方式として採用されています。 X10のモジュールを、直接コンセントに接続するだけで、ACコンセントの ON/OFFを、別のACコンセントから制御することや、各種のセンサと連携させて チャイムやブザーを鳴らしたりすることが可能となります。 原則的には、PCサーバ等の装置は全く不要で、電灯線を介して、ポイントツー ポイントで動作します。 モジュールも非常に安価で、一個2000〜4000円程度で入手可能です。 (ちなみに、米国、欧州に行けば、さらに安く入手可能です) X10ネットワークについては、 http://www.freecon.co.jp/pdf/X10_EXPLANATION.pdf http://www.x10-store.com/ 等をご覧下さい。 "X10Broker"は、PCを使ってX10ネットワークの「ブローカー(仲介者)」を 行うソフトウェアです。 電灯線ネットワークに流れる信号を常時監視し、その信号に応じたコントロー ルを登録しておくことで、様々な制御が可能となります。 具体的には、以下のようなことを行うことが可能です。 (1)遠隔からの自宅の家電製品のAC電源のON/OFF制御 - 自宅にいなくても、電灯を付けたり消したりすることができます。 - 所定の時間に、留守宅の電灯を電灯を付けたり消したりすることも 可能です。 (2)各種センサの検知情報の検出と通知 - 侵入者を検知し、電子メール等で通知することができます。 (3)各種プログラムとの連携 - 色々なソフトウェアと組み合わせて使うことが可能です。 (cronNT, BlatJ 等) 3. システムの前提  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ - X10Brokerは、電灯線ネットワークシステムが存在することが前提となり ます。 - さらに、電灯線ネットワークを制御するWindows対応のPCが必要です。 なお、WindowsはXPで動作を確認しておりますが、2000,NTでも稼 働すると思われます。 - また、電灯線ネットワークのネットワークインターフェースとなる、パワー ラインI/Fアダプタ(後述)必要です。 このI/Fを介して、パソコンは電灯線ネットワークを監視し、X10ネットワー クのモジュールを制御します。 - なお、最近の住宅は各階、または各部屋ごとに電灯線系統が分離されてい ることがあります。X10の信号は分離された系統の電灯線間には伝送されま せん。 この問題を解決するためには、分離された系統間でX10の信号を流すため の、「シグナルブリッジ」等 (http://freecon.co.jp/pdf/X10_F7SBRIDGE.pdf)をブレーカ部に取り 付ける必要があります。 4. システム構成概要  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ) Windowsマシン 電灯線 ( ) +------+ || +---+ (Internet) | X10 | |+--|| =□--| |------|() ( )-----+Broker| || +---+ 人感センサ ( ) | Box | || X10パワーフラッシュ ( ) | | || | +--+---+ || /~| | | |+--|| =□--| | +------+ |RS-232C || +-+ | X10 | | || X10パワーフォン |Client| +-+-+ || +-+-+ | Box | | |----□= ||--|| =□--| |-------+ +------+ +-+-+コンセント || +---+ | || X10ランプモジュール| パワーラインI/Fアダプタ /~~~~\ + ~~○~~ PC I/Fキット (FCPLC) 電灯 - X10BrokerBox, X10ClientBox WindowsXP PC - X10パワーラインI/Fアダプタ F7TW523 + FCPLC(PC I/Fキット) http://www.freecon.co.jp/x10_lighting.php - X10パワーフラッシュ F7PF284 http://www.freecon.co.jp/x10_lighting.php - X10パワーホン リモートチャイム F7SC546 http://freecon.co.jp/pdf/F7SC546_RemoteChaim.pdf - X10ランプモジュール 各種x10関連のホームページへ 図4.1 X10ネットワークサンプル図  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 上図は、X10ネットワークを示す図です。X10Brokerは、Windowsマシンにア プリケーションまたはサービスとしてインストールされます。 X10BrokerがインストールされたPC(以下、X10BrokerBoxと称します)は、AC コンセントからX10の信号をキャプチャします(X10プロミスカス)。 例えば、人感センサからパワーフラッシュを経由して、X10アラームモジュー ルに信号が送られると、アラーム音が発生します。に転送します。 パワーラインI/Fアダプタは、この電灯線に流れた信号をキャッチし、その 情報をX10BrokerBoxに転送します。 X10BrokerBoxに、例えば、『人感センサが信号を発したら、だれそれにメー ルを送れ』という条件と命令からなる記述(以後、ポリシーと称します)を調 べて、この条件と一致したら、インターネットを介してメールが送信されます。 また、インターネットから、『電灯と点滅せよ』という命令があれば、その 命令は、X10Brokerによって解釈され、パワーラインI/Fを解して、電灯のモ ジュールにON/OFF命令が出されます。 インターネットからの指示でなく、X10ABrokerBOXのプログラムから命令を 発することも可能です。 X10Clientは、遠隔からインターネット経由でX10BrokerにX10ネットワーク の制御の依頼を行うクライアントプログラムです。 X10Clientの構造は非常に単純で、X10Brokerとの間にTCPコネクションを張 り、X10のアドレスコマンドとアクションコマンドを送付するだけの処理を行いま す。 ----- "X10Broker for Win32"は、以下の2つのバージョンがあります。 (1)XP/2000/NTのサービス対応版 "X10Broker for NT Service" x10broker4nts.exe (2)Windows(全般)対応版 "X10Broker for Windows" x10broker4win.exe また"X10Client for Win32"は、以下の1つのバージョンがあります。 (1)Windows(全般)対応版 "X10Client for Windows" x10client.exe 以下、それぞれの使用方法に関してご説明致します。 5."X10Broker for NT Service" の使い方  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 5.1 前準備 ダウンロードした"x10broker4nts.exe"を、適当なディレクトリ(例えば、 "c:\bin\x10broker")に配置して下さい。 次に、"x10broker.cfg"と"x10policy.cfg"を %SystemRoot%system32(例えば、 "c:\WINNT\system32")の下で作成します。 x10broker.cfgのサンプルを以下に示します。 ---------------------------------------------------------------------- serverport 3055 <---- (1) X10Brokerサーバポート番号 COM COM1 <---- (2) RS-232Cポート番号 ---------------------------------------------------------------------- (0)(1)の値はTABで区切り、(3)の後は改行を入れて下さい。 また、コメント等は(現バージョンでは)書けません。 なお(1)を省略すると、自動的に"3055"になります。 次に、x10policy.cfgのサンプルを示します。 ---------------------------------------------------------------------- &A02 !A20 c:\bin\BlatJ c:\message\sensor2.txt -t ebata@ff.iij4u.or.jp &A05 !A28 c:\bin\BlatJ c:\message\sensor5.txt -t ebata@ff.iij4u.or.jp ↑ ↑ ↑ │ │ (2)起動したいアプリケーション │ (1)アクションコマンド (0)アドレスコマンド ---------------------------------------------------------------------- (0)(1)の値はTABで区切り、(3)の後は改行を入れて下さい。 また、コメント等は(現バージョンでは)書けません。 なお一行目のポリシーは 『アドレスA02へ、スイッチON(A20)の指示が出たら、コマンドラインメール 送信プログラム"BlatJ"を起動して、sensor2.txtのメッセージを ebata@ff.iij4u.or.jp宛に送れ』 となります。 X10のアドレスコマンド、アクションコマンドについては、「10.参考文献」 または、 http://www.freecon.co.jp/pdf/X10_FCPLC.pdf 等をご覧下さい。 5.2 "X10Broker for NT Service"のインストールと起動 コマンドプロンプトから、 x10broker4nts.exe -install と入力して下さい。インストールが完了し、コントロールパネル -> サー ビスの中に、"X10Broker"なるサービスが登録されているはずです。 これを選択して、開始ボタンを押して下さい。"X10Broker"がNTサービスと して起動します。 5.3 "X10Broker for NT Service"のアンインストール コマンドプロンプトから、 x10broker4nts.exe -remove と入力して下さい。 コントロールパネル -> サービスの中から、"X10Broker"が消えているはず です。 6."X10Broker for Windows" の使い方  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 6.1 前準備 ダウンロードした"x10broker4win.exe"を、適当なディレクトリ(例えば、 "c:\bin\x10broker")に配置して下さい。 次に、"x10broker.cfg"と"x10policy.cfg"を "x10broker4win.exe"のあるディ レクトリの下で作成します。 ""x10broker.cfg"と"x10policy.cfg"の内容は、3.1を参照して下さい。 6.2 "X10Broker for Windows"の起動 コマンドプロンプトから、 x10broker4win.exe と入力して下さい。 6.3 "X10BBroker for Windows"の終了 コマンドプロンプトから、Ctrl-Cを入力して下さい。 7. x10client.exeの使いかた  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ コマンドプロンプトから、以下のようなコマンドを入力してください。 x10client [アドレスコマンド:アクションコマンド] [サーバ名:ポート番号] 例1 サーバ名とポート番号を指定する場合 x10client A01:A20 erukan.kobore.com:3055 x10client A01:A20 123.456.789.010:3055 ポート番号を省略する場合 x10client A01:A20 erukan.kobore.com ローカルホストのx10brokerを指定する場合 x10client A01:A20 なお、ローカルホストで、ポート番号を指定する場合は、 x10client A01:A20 localhost:3055 と記載してください。 7. 外部アプリケーション  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ コマンドでメールを送るアプリケーションとして、Windows用のコマンドラ イン版電子メール送信ソフトBlatJ http://www.piedey.co.jp/blatj/ を利用 させて頂いております。 また、x10clientをローカルホストから定期的に起動するアプリケーション として、Windows版cron cronNT http://www.vector.co.jp/soft/winnt/util/se232096.html を利用させていた だいております。 8.その他  ̄ ̄ ̄ ̄ 最近、人感センサ付きのライトが量販店で安価に販売されておりますが、こ れらのライトは、別売のチャイムと連動するための10V程度の電圧信号を出す インターフェースが用意されています。 家を新築する時に、ハウスメーカの電気担当の方と議論して、人感センサ付 きのライトを取り付ける際に、これらの信号線を自宅内に引き込む端子を予め つくっておいて貰いました。 また、部屋の中にも人感センサとパワーフラッシュを連携させて、自宅のPC サーバから監視させています。 現在、この端子をパワーフラッシュに繋いで、電灯線経由でパワーフォンを 鳴らしたり、パトランプを点滅させたりしているのですが、このシステムに最 初にひっかかったのが、何を隠そう、この私。 帰省から戻った私を、105ホンの大音響とパトランプが、私を暖かく迎えて くれました。 泥棒が入ったら、自動的にメールが飛んでくるように設定してあります。 もっとも現在はシステム試運転中で、自分の書斎にセットしているのですが、 嫁さんが掃除に書斎に入るたびに、警告メールが飛び込んできています。 X10ネットワークは、電化製品の遠隔操作や、上記のような簡易なホームセ キュリティシステムを作ることが出来ますが、この他に、所定の時間が来たら ラジカセでラジオ英会話を録音するなどの、スイッチタイマーとしても役に立っ ております。 なにしろ、自宅のどのコンセントでも使えるので非常に重宝しております。 X10Brokerは、新築した家にセキュリティシステムを構築するために、速攻 でつくったので、バグもそれなりに仕込まれていると思います。 バグレポートを歓迎致します。 よろしくお願い致します。 9.謝辞  ̄ ̄ ̄ 我が家の設計段階から引渡しに至るまで、私の考案するホームセキュリティ システムのインフラ構築に対してご支援頂きました、三井ホーム株式会社 吉森英毅様に感謝申し上げます。  日本国内においては敷設事例の少ない電灯線のX10ネットワークに対しまし て、ブレーカのブリッジ対応や、人感センサライトとその信号線の敷設等、積 極的にご対応頂きました、株式会社デイワイ多摩営業所 宮下健一様に感謝申 し上げます。 10.参考文献  ̄ ̄ ̄ ̄ ̄ ̄ (1)X10ネットワークインターフェース (http://www.freecon.co.jp/pdf/X10_FCPLC.pdfより抜粋) 5.2.1. FCPLC の反応信号 FCPLC に制御コマンドを送信する際に”ACK”または”NACK“を返信 します。例外はFCPLC の通信確認コマンド”*?”です。「ACK」の意 味は「コマンドを実行しました」です。 ACK の反応ストリングは: "*Y" 注意:コマンドは実行してもX10 のコマンドの送受信ができない場合 もあります。FCPLC はデータコリジョンが起こらないように管理され ていますが、データコリジョン起こった場合、X10 のコマンドは実行 しません。 ECHO コマンドを可能にするとTW523 の送受信信号はFCPLC にフィー ドバックします。FCPLC を発行したコマンドもECHO に返事します。 NACK の意味は、「コマンドを実行できません」です。 NACK の返信ストリングは: "*N" “*N”が返信される場合は、PC 側のコマンドが間違い、またはFCPLC のシリアルバッファがオーバフローになっています。 5.2.2. システムコマンド システムコマンドは「*」で始まります。 +-------------------+--------+-------------------------------+ |コマンドタイプ | ストリング |反応 | +-------------------+--------+-------------------------------+ |FCPLC の通信確認 | *? |このコマンドを送信するとFCPLC | | | |は"*DNX10-1.0"に返信します。 | | | |最後の二桁の数字はファームウェ | | | |アバージョンです。 | +-------------------+--------+-------------------------------+ |Echoコマンドを |*E1 |A7TW523 のパワーラインアダプタ | |可能にする | |の送受信データをシリアルポート | | | |に転送します。注意:初期設定は | | | |転送しないようになっています。 | +-------------------+--------+-------------------------------+ |Echoコマンドを |*E0 |このコマンドはEcho 機能をキャン| |不可にする | |セルします。 | +-------------------+--------+-------------------------------+ 5.2.3. アドレスコマンド アドレスコマンドは指定しているアダプターを呼び出すためのコマン ドです。アドレスコマンドは2つの部分に分けています。: 1. ハウスコードA〜P 2. ユニットコード1〜16 アドレスコマンドのフォーマットは "&"<ハウスコード><ユニットコード> 例えば: "&A01" -> ハウスコード= A, ユニットコード= 1 "&D12" -> ハウスコード= D, ユニットコード= 12 注意: ハウスコードは「A」から「P」の中から1 つの大文字です。 ユニットコードは01 から16 までの中から1つの2 桁数字。 FCPLC はコマンドを受信すると「ACK」または「NACK」で返信します。 5.2.4. アクションコマンド アクションコマンド実際の操作コマンドです。 コマンドの値は16〜31(下記の表を参照) コマンドフォーマットは: "!"<ハウスコード><コマンドコード> <ハウスコード> 大文字のA 〜 P. <コマンドコード> は16 〜 31. コマンドは必ず二桁の数字 です。 例: "!A20" -> ON にする(アドレスコマンドの後です) "!A28" -> OFF にする(アドレスコマンドの後です) "!A22" -> 該当しているハウスコードの照明を全てON にする "!A16" ->該当しているハウスコードのユニットを全てOFF にする 注意:今現在F7TW523 インターフェイスアダプターは全てのX10 コマ ンドに対応していません。 下記のコマンドは、一般的なX10 コマンドで、市販されているX10 ア ダプターには対応しています。 +--------------+-------+---------------------------- コマンド コード 注意点 +--------------+-------+---------------------------- 全機器オフ 16 全照明オン 24 オン 20 アドレスコマンド先に送る必要 オフ 28 アドレスコマンド先に送る必要 調光ダウン 18 アドレスコマンド先に送る必要 調光アップ 26 アドレスコマンド先に送る必要 +--------------+-------+---------------------------- 下記のコマンドは特別のX10 コマンドで、対応していないX10 アダプ ターには対応しません コマンド コード 注意点 +--------------+-------+---------------------------- 全照明オフ 22 Hail Request 17 ネットワーク内の同じハウスコードを使用 しているコントロールの呼び出し信号 Hail Acknowledge 25 呼び出された同じハウスコードのコントロー ラーの返信信号です。 +--------------+-------+---------------------------- リクエスト +--------------+-------+---------------------------- ステータ スリクエスト 31 アダプターステータスをクエリー ステータス = オン 27 アダプターステータスは「オン」 ステータス = オフ 23 アダプターステータスは「オフ」 +--------------+-------+---------------------------- FCPLC はACK またはNACK で反応します。