自分の手で「スマートホーム」。 パート5. X10テクノロジー

画像



前回の記事では、「スマートホーム」システムへの小さなWebインターフェイスを固定しました。 これが考えられているビジネスの一部である負荷管理に目を向ける時です。 負荷とは、制御する意味のある電気機器を意味します。

実装の詳細については、catでお願いします。





小さな紹介またはX10とは



X10通信プロトコルとそれに基づく標準は、長い間世界に知られています。 この規格は、1975年にPico Electronicsが家電製品の管理のために開発したものです。 それでは、1-wireプロトコルと比較した場合の利点は何ですか? 問題は、受信機との通信のために、X10コントローラーは従来の配線を使用することです。これにより、不要な配線を避け、届きにくい場所に到達します(たとえば、誰かが修理を台無しにしたくないなど)。



中身は?



X10信号を送信するには、振動の「パケット」を120ミリ秒の周波数で1ミリ秒間使用します。 X10の信号伝送は、AC回路のゼロ電圧と同期しています。 電圧がゼロに達すると、X10シグナルレシーバー(たとえば、内蔵の電球)が6ミリ秒間ネットワークに「リッスン」します。 この時点でx10信号送信機が「パケット」を送信すると、受信機はそれをユニットとして認識します。 「パッケージ」の不在はゼロとして認識されます。 x10によって制御される各デバイスには、2文字で構成される独自のアドレスがあります。 最初はハウスコード、2番目はデバイスコードです。 それぞれに16の値があり、異なるアドレスの合計数は256に達します。ハウスコードはラテン文字(AからP)で示され、デバイスコードは1から16の数字です。配線により、各ハウスおよびデバイスコードはゼロのシーケンスで送信されます単位-バイナリコード。



各x10コマンドにも独自のバイナリコードがあります。 デバイスとコマンドのバイナリコードの最後のビットは、コードのタイプを区別するために使用されます。0はデバイスコードに対応し、1はコマンドコードに対応します。 受信機が有用な信号の送信がいつ開始するかを知るために、送信機は最初にいわゆる開始コードを送信します。これはシーケンス1110に対応します。その後にハウスコード、デバイスコードまたはコマンドが続きます。 開始コード、ホームコード、およびデバイスまたはコマンドコードのシーケンスは、X10フレーム(またはフレーム)と呼ばれます。 信頼性を高めるために、各フレームは連続して2回送信されます。 フレームの各情報ビットには、開始コードビットを除き、相補(相補)ビットが付随します。1の後は0の後、0の後は1です。 したがって、1フレームを送信するには、11サイクルの交流電圧が必要です。



X10コマンドを送信するには、まずコマンドの対象となるデバイスのコードを含むフレームを送信し、その後にコマンド自体を含むフレームを送信する必要があります。 例外はグループコマンドです。たとえば、「All Units Off」です。これらはすべてのデバイスに送信されるため、それらの前にあるデバイスコードを送信する必要はありません。



各フレームペア間で一連のアドレスやコマンドを送信する場合、交流電圧の3サイクルのギャップ、つまり000000のシーケンスが必要です。たとえば、デバイスアドレスとそのコマンドは、指定された間隔で2組のフレームで送信されます。 このようなシーケンスを送信するには、22 + 3 + 22 = 47の電圧サイクルが必要です。 周波数が50 Hzの場合、この操作には約1秒かかります。 おそらく、これはコマンドがほとんど瞬時に送信される1ワイヤと比較して、このテクノロジーの最大のマイナスです。 コマンド「Bright」(「Brighter」)と「Dim」(「Darker」)は、コード間に隙間なく互いに続くことに注意してください。 これは、単相ネットワークでの信号伝送の例です。 三相ネットワークでは、信号伝送は同様の方法で行われますが、各相のゼロに「タイミング」が合わせられます。 原則として、X10チームは異なるフェーズ間を通過しません。 つまり、すべてのデバイスを特定のフェーズに接続するか、特別なデバイスであるリピーターを使用する必要があります。リピーターは、常に販売されているとはほど遠いものです。 さらに、リピーターはコマンドの転送に関連する遅延に寄与し、コマンドを効果的に2倍にします。 これは実際には大きな問題です。通常、3相の電源では、負荷を均一にするために相を分離しようとするため、1つのコンセントまたは部屋のグループが第1フェーズから、別のグループが第2フェーズから給電される可能性が非常に高いことを意味します。



装備品



そのような技術でスマートホームを整理するには何が必要ですか? まず、コントローラー。 これは、X10ネットワーク全体のヘッドです。 制御コマンドをネットワークに送信するのは彼です。



X10コントローラーは、非常にシンプルなものから非常にスマートなものまであります。

最も単純なコントローラーは、4つの連続したアドレス(1-4または5-8)で4つのX10デバイスを制御できます。 このようなコントローラーには通常、次のボタンが含まれています。



よりスマートなコントローラーは、多数のデバイスを制御したり、所定の時間に毎日事前に構成されたコマンドを実行するタイマーを組み込んだりできます。 受動的な赤外線モーションセンサーまたはフォトセルを使用してライトやその他のモジュールのオン/オフを切り替えるデバイスも利用できます。



最後に、プログラム可能なデバイス、またはコンピューターで実行されているプログラムで使用できるデバイスがあります。 これらのシステムは、さまざまな同期イベントの実行、外部センサーおよびコマンドへの応答、スクリプトの実行、照明のオン/オフ、明るさの調整などを行うことができます。



私たちが興味を持っているのは後者のタイプのコントローラーです。 私の場合、短いGoogleセッションでCM11Aが最も適切なモデルであることが示唆されました。 この奇跡は次のようなものです。



画像



ご覧のように、一方では通常のコンセント(できればフィルターではない)に、もう一方ではコンピューターのCOMポートに挿入されます。 COMを持っていない人のために、USB-COMアダプター付きのコントローラーオプション-CM11USBがあります。

ActiveHomeプログラムが付属していますが、これは私たちの興味を引くものではありません;)



コントローラーを見つけたので、次にコントローラーの制御に移りましょう。



X10テクノロジーは、さまざまなホームオートメーションタスクの解決に役立ちます。 たとえば、特定の時間にライトをオン/オフしたり、照明の明るさをリモートで変更したり、コンピューターを使用して電化製品を制御したり、カーテンを開いたり、セキュリティと火災警報器をオンにしたり、その他多くの便利なことを実行できます。 このため、x10をサポートするさまざまなタイプのデバイスが開発されています。 それらをリストします。



X10標準に基づくシステムでは、X10プロトコルを使用して信号を送受信しない補助装置も使用されます。 これは、たとえば、モーションセンサー、ライト、割れたガラス、ドアや窓を開けるなどです。 無線またはIRチャネルを介してトランシーバーに情報を送信し、X10プロトコルを介してエグゼクティブモジュールに送信します。



市場には多くのエグゼクティブモジュールがあり、それを使用してホームオートメーションのほとんどすべてのタスクを解決できることに注意してください。 私は、テストのために、 LM15Sと呼ばれるランプカートリッジの形で実行モジュールを取りました。 このモジュールは、取り付けが簡単(通常の電球のようにねじ込む)で、比較的安価です。 このモジュールは、薄暗い照明が必要なときに、シャンデリアの追加の独立した照明源になりました。 従来のスイッチを使用して制御するのは非常に不便であることに注意してください。



ソフトウェア



コンピューターを使用してモジュールを制御するには、何をする必要がありますか? 開始するには、必要なソフトウェアをインストールしてください。 Linuxでは、コントローラーと通信するためのシステムがいくつかあります。 私はHEYUオフサイト )に落ち着きました。



インストールは簡単で簡単です。ソースをダウンロードし、INSTALLの内容を見て、指示に従ってください。



実際に試してみましょう! まず、モジュールのアドレスを設定する必要があります。 これを行います。モジュールを制御ランプとともにカートリッジにねじ込みます。 LM15Sのハウスコードとモジュールコードを割り当てるには、スイッチを使用してLM15Sモジュールに電圧を供給する必要があります。 次に、30秒以内に3つのコマンドを送信して、モジュールに割り当てるアドレスにコントローラーを有効にします。



nix@nix-boss:~$ heyu on a1

nix@nix-boss:~$ heyu on a1

nix@nix-boss:~$ heyu on a1









その後、モジュールにX10ネットワークのアドレスA1が割り当てられます。 簡単です。

一部のデバイスでは、ジャンパーを使用してアドレスを設定できます。 たとえば、 Marmitekが製造したデバイス。



これで、簡単なコマンドでランプを制御できます。



nix@nix-boss:~$ heyu on a1

nix@nix-boss:~$ heyu off a1







したがって、最初はランプをオンにし、2番目はオフにします。 一部のモジュールでは、ライトをスムーズに変更できます。



heyu dim a5 10







これにより、ランプの明るさが10から22に設定されます。

管理を理解したので、ソフトウェアへの統合に移りましょう。



X10を統合する



srv.plスクリプトをcheckcmd() サブルーチンの次の行に追加します。



 201 if($text =~ //) 202 { 203 my $up = `uptime`; 204 $up =~ /(.*?) up/; 205 sayText(" $1"); 206 return; 207 }
      
      







以下は:



 208 if($text =~ //) 209 { 210 system('heyu on a1'); 211 sayText(" "); 212 return; 213 } 214 215 if($text =~ //) 216 { 217 system('heyu off a1'); 218 sayText(" "); 219 return; 220 }
      
      







簡単です;)ここで、「システム、ランプをオンにする」または「システム、ランプをオフにする」と言って結果を確認できます。 もちろん、ランプがたくさんある場合や、ランプだけでなく点灯できる場合は、十分な検証がありません。 もう1つ条件を追加するだけです。



 208 if($text =~ //) 209 { 210 system('heya on a1') if $text =~ //; 211 system('heyu on a2') if $text =~ //; 212 sayText(" "); 213 return; 214 } 215 216 if($text =~ //) 217 { 218 system('heya off a1') if $text =~ //; 219 system('heyu off a2') if $text =~ //; 220 sayText(" "); 221 return; 220 }
      
      







ここで、無限に追加して実験することができます。 それはすべてあなたの想像力と能力に依存します。



これらの投稿に興味を持った人々に感謝したいと思います。 たぶん私は私が欲しかったすべてを説明した。 誰か質問があれば-どうぞ、みんなに答えようと思います。



ご清聴ありがとうございました;)



All Articles