Home Assistant Analytics は、MQTT 統合がすべてのアクティブな Home Assistant インストールのほぼ半数で使用されていることを示しています。これにより、スマート ホーム ソフトウェアのユーザーに最もインストールされている統合のリストで 11 位にランクされます。この統合が非常に人気がある理由は何でしょうか?
ホームアシスタントのMQTTとは何ですか?
MQTT は Message Queuing Telemetry Transport の略ですが、おそらく初期論よりもさらに意味がありません。これは、軽量のメッセージング用に設計されたメッセージング プロトコルであり、スマート ホーム デバイスに最適です。
パブリッシュ/サブスクライブ モデルを使用します。 「パブリッシャー」はメッセージを送信するデバイスであり、「サブスクライバー」はサブスクライブされているメッセージを受信します。どちらのデバイスも直接通信しません。すべてのメッセージはブローカーによって処理されます。
Home Assistant には、ネイティブ MQTT 統合があります。ただし、これを機能させるには、すべてのメッセージを処理するブローカーをインストールする必要もあります。 Mosquitto Broker アプリ (以前はアドオン) が一般的な選択肢です。最初に MQTT 統合をセットアップするときに、Mosquitto Broker アプリを自動的にセットアップして構成することを選択できます。
ブローカーは、パブリッシャーおよびサブスクライバーからの接続を受け入れて認証し、接続されたパブリッシャーからパブリッシュされたメッセージを受信して、それらを適切なサブスクライバーに送信します。これは、手紙がいくつかのデバイスから受信され、他のデバイスに送信される郵便局のようなものです。
Home Assistant の新製品は完璧ではありません – それでも購入した理由はこれです
時には少しだけお返しをすることも必要です。
MQTT はスマート ホームの通信に役立ちます
これらすべてはかなり複雑に思えます。中間のブローカーを必要とせずに、デバイス同士が直接通信できないのはなぜでしょうか?
問題は、これを実現するには、すべてのスマート ホーム デバイスが、家の中の他のすべてのデバイスを見つけて接続し、理解する必要があることです。 MQTT を使用すると、デバイスは他のスマート ホーム デバイスの存在を認識する必要さえありません。これらはすべてブローカーにデータを送信するだけで、メッセージが適切な購読者に確実に届くようになります。
たとえば、私は以前、Wi-Fi 経由で通信できる Nuki スマート ロックを使用していました。これを Home Assistant と統合するということは、Nuki のクラウドに接続して、ドアがいつロックされたかを判断したり、リモートでロックを解除したりすることを意味しました。
私の新しい Nuki スマート ロックは MQTT をサポートしており、ドアのロックが解除されたときなどのイベントが発生するとすぐに公開できます。また、クラウドと通信する必要がなく、完全にローカルで実行されます。
これにより、自動化の速度と信頼性が向上し、Nuki のサーバーがダウンしている場合でも機能します。 MQTT を使用すると、物理ボタン、アプリ、キーパッド、またはフォブによってドアがロック解除されたかどうかなど、より多くの情報も公開されます。
Zigbee2MQTT は MQTT を必須にする
スマート ホームで Zigbee デバイスを使用する場合、ホーム アシスタントには 2 つの主なオプションがあります。ネイティブの Zigbee Home Automation (ZHA) 統合または代替の Zigbee2MQTT 統合を使用できます。多くの人は後者を選択します。これは、後者がより強力で、ZHA では公開されない可能性のある Zigbee デバイスの追加機能を公開でき、Home Assistant が再起動するたびに Zigbee ネットワークがダウンしないように別のデバイスで実行できるためです。
名前が示すように、Zigbee2MQTT は Zigbee デバイスからのメッセージを MQTT メッセージに変換します。ホーム アシスタントはこれらのメッセージをサブスクライブするため、デバイスが状態の変化を報告するとすぐに反応できます。ホーム アシスタントは、MQTT メッセージを Zigbee2MQTT にプッシュすることもでき、Zigbee2MQTT は関連するコマンドを Zigbee ネットワーク経由でデバイスに送信します。
Zigbee2MQTT の人気が、非常に多くの人が Home Assistant に MQTT 統合をインストールしている理由の 1 つです。 MQTT とブローカーがインストールされていない場合、Zigbee2MQTT は機能しません。
MQTT は物事をローカルに保つのに役立ちます
ホーム アシスタントの重要な原則の 1 つは、サードパーティのクラウド サービスに依存せずに、スマート ホームをローカルで制御できることです。これはまさに MQTT が許可することです。スマート ホーム デバイスはローカル ネットワーク経由でブローカーと通信し、データが家から出ることはありません。
これは、インターネット サービスがダウンしても、ローカル ネットワークが稼働している限り、スマート ホーム デバイスは MQTT ブローカーとの通信を続行できることを意味します。 Zigbee モーション センサーは、オンラインに接続できない場合でも、部屋に入ると Zigbee の電球を点灯させることができます。
ローカル通信では、はるかに高いプライバシーも提供されます。家から出るデータが増えるほど、第三者が傍受したり使用したりできるデータも増えます。 MQTT を使用すると、クラウド サービスにまったく依存しない、完全にローカルなスマート ホームを構築できます。
MQTT が必要ない場合 (必要な場合も)
これは、MQTT がスマート ホーム通信の究極であり最終的なものであると言っているわけではありません。それを望まない、または必要としない理由はたくさんあります。たとえば、デバイスに強力なネイティブ ホーム アシスタント統合がすでに備わっている場合、中間に MQTT ブローカーを必要とせずにサーバーと通信できるようになります。
スマート ホームがかなり小規模で、さまざまなスマート ホーム エコシステムを多数混在させていない場合は、MQTT も必要ない可能性があります。 Zigbee デバイスがいくつかあり、それらが ZHA で正常に動作する場合、MQTT をインストールする必要はありません。
ただし、それが必要になる理由はたくさんあります。 Zigbee2MQTT を使用する予定がある場合、それが前提条件です。主に MQTT メッセージの発行によって通信するデバイスがある場合は、MQTT を使用して通信する必要があります。
完全にローカルなスマート ホームが必要な場合は、MQTT も非常に役立ちます。通常クラウドに依存する一部のスマート ホーム デバイスには、Tasmota などのオープンソース ファームウェアをフラッシュすることで、それらのデバイスに MQTT 機能を提供し、完全にローカルで制御できるようになります。
MQTT は恐ろしく思えるかもしれませんが、本質的にはスマート ホーム デバイスがメッセージ メールボックスにメッセージをドロップするための単なる手段です。次に、ブローカーはそれらのメッセージを適切な場所に配信します。それが提供する利点を最大限に活用するために、その仕組みを理解する必要はありません。