KNXプロトコル：基礎知識とIoTシナリオ

# 

![KNXプロトコル：基本とIoTとの可能性](https://assets.emqx.com/images/d67db7bf74751c59972686b70df1c33b.png?imageMogr2/thumbnail/1520x684)

**目次**

- [KNXプロトコルとは](https://www.emqx.com/en/blog/knx-protocol#what-is-knx-protocol)
- [KNXプロトコルのバスシステム](https://www.emqx.com/en/blog/knx-protocol#bus-system-of-knx-protocol)
- [KNXプロトコルデバイス](https://www.emqx.com/en/blog/knx-protocol#knx-protocol-devices)
- [KNXプロトコルのトポロジー](https://www.emqx.com/en/blog/knx-protocol#knx-protocol-topology)
- [KNXプロトコルアドレス](https://www.emqx.com/en/blog/knx-protocol#knx-protocol-address)
- [KNXnet/IPプロトコル](https://www.emqx.com/en/blog/knx-protocol#knxnet-ip-protocol)
- [KNXプロトコルのツール](https://www.emqx.com/en/blog/knx-protocol#tools-for-knx-protocol)
- [IoTのためのKNXプロトコルとMQTTの統合：NeuronとEMQX](https://www.emqx.com/en/blog/knx-protocol#integrating-knx-protocol-with-mqtt-for-iot-neuron-and-emqx)

## KNXプロトコルとは

[KNX](https://www.knx.org/knx-en/for-professionals/What-is-KNX/A-brief-introduction/)は、1990年代初頭にEIB（European Installation Bus）として誕生した建築オートメーションおよびホームコントロールシステムのための標準です。これは、照明、暖房、換気、セキュリティ、オーディオビジュアル機器など、建物内のさまざまなデバイスおよびシステム間の通信を可能にするオープンプロトコルです。この技術は、KNX製品とソリューションの開発、認証、および世界的な普及を監督する[KNX協会](https://www.knx.org/knx-en/for-professionals/index.php)によって管理されています。

KNXは、ツイストペア配線、電力線通信、無線周波数、IP/Ethernetを含むさまざまな伝送媒体で動作します。この柔軟性により、有線および無線のインストールが可能で、新しい建物だけでなく、既存の建物の改装にも適しています。

![KNX Bus System](https://assets.emqx.com/images/c27cefdc4b8b0c6321bcd0c0803046c8.png?imageMogr2/thumbnail/1520x)

KNX Bus System

## KNXプロトコルのバスシステム

KNXはバス通信システムを使用し、デバイスは共通のバスに接続され、情報とコマンドを交換できます。分散型構造のため、KNXバスシステムは要件に応じて正確に変更および拡張することができます。最小のKNXアプリケーションは、センサーとアクチュエーターの2つのバスデバイスを接続するシステムです。この基本システムは、必要な制御タスクを実行するために必要なだけデバイスを追加してアップグレードできます。理論的には、KNXシステムは50,000以上のデバイスで構成される可能性があります。KNXシステムを拡張する際には特定のトポロジー構造に従う必要があります。

## KNXプロトコルデバイス

KNXデバイスには、住宅およびビル自動化用に設計された幅広い製品が含まれています。ここでは、一般的なKNXデバイスのタイプをいくつか紹介します：

- KNX電源は、KNXバスに電力を供給します。
- KNXアクチュエーター：アクチュエーターは、照明、暖房、換気、および空調（HVAC）システムなどの電気負荷を制御します。
- KNXセンサー：センサーは、温度センサー、湿度センサー、占有センサー、光センサー、および動き検出器など、環境パラメータを検出および測定します。
- KNXラインカプラーまたはKNXエリアカプラーは、KNXインストールで使用されるデバイスで、複数のKNXラインまたはエリアを接続して橋渡しするために使用されます。これにより、異なるKNXライン上のデバイスおよびシステム間の通信が可能になり、それらが相互にデータを交換し、相互作用することができます。

## KNXプロトコルのトポロジー

トポロジーは、KNXバスシステムの物理的なレイアウトまたは配置を指します。これは、デバイスがどのように接続され、インストールの全体的な構造がどのようなものかを説明します。

ラインは、KNXバスシステムの物理的なセグメントを指します。これは、単一のバスケーブルを使用して接続されたデバイスのセクションを表します。ラインにはKNX電源が含まれ、通常はその他のバスデバイスが64台以下です。電源とツイストペアライン（バスケーブル）は2つの機能を果たします：バスデバイスに必要な電力を供給し、それらのデバイス間で情報の交換を可能にします。ラインリピーターを使用して、64台以上のデバイスが必要な場合にラインを拡張することができます。

![KNX TPライン](https://assets.emqx.com/images/8e6e4b3665292be06f2afe5f53540232.png?imageMogr2/thumbnail/1520x)

KNX TP Line

インストールを拡張する別の方法は、ラインカプラーを使用して新しいラインを作成することです。最大15ラインをメインライン上のラインカプラーを介して運用することで、エリアを形成することができます。エリアは、KNXインストールの論理的なグルーピングまたは細分化を表します。これは、特定のエリアまたは機能ゾーン内で相互接続されたラインまたはセグメントのコレクションを指します。エリアは、建物の特定のエリア、たとえば部屋や部門に対応することができます。

![KNX TPエリア](https://assets.emqx.com/images/fbbe49f400dd1a850e1a53a5ab8f190b.png?imageMogr2/thumbnail/1520x)

KNX TP Area

エリアラインにエリアカプラーを介して最大15エリアを追加することで、完全なシステムを形成することができます。

![完全なシステム](https://assets.emqx.com/images/82413a653c9aaf96a857712c1243f1df.png?imageMogr2/thumbnail/1520x)

## KNXプロトコルアドレス

KNXでは、KNXバス上の各デバイスに一意のアドレスが割り当てられ、それを識別して通信することができます。

### 個別アドレス

[個別アドレス](https://support.knx.org/hc/en-us/articles/115003185789-Individual-Address)は、バス上の各KNXデバイスに割り当てられる一意のアドレスです。これにより、KNXシステムと特定のデバイス間の直接通信が可能になります。個別アドレスは通常、デバイスの設定またはプログラミングプロセス中に設定され、デバイスに固定されます。

KNX個別アドレスは16ビットの値で、3つの部分から構成されます：エリア番号、ライン番号、デバイスアドレス。

例えば、2.3.20のグループアドレスは、第二エリアの第三ラインのバスデバイス20を表します。

### グループアドレス

[グループアドレス](https://support.knx.org/hc/en-us/articles/115003188109-Group-Addresses)は、複数のKNXデバイス間の通信に使用されます。これは、KNXシステム内の特定の機能または制御ポイントを表します。デバイスは、特定のグループアドレスを聞き取り、応答するようにプログラムされ、グループベースの制御と自動化を可能にします。

グループアドレスは、メイングループ、ミドルグループ、サブグループの3つの主要な要素から構成されます。

例えば、1/2/3のグループアドレスは、メイングループ1、ミドルグループ2、サブグループ3を表します。これらのコンポーネントの具体的な解釈は、アプリケーションおよび設定によって異なる場合があります。

## KNXnet/IPプロトコル

KNXnet/IPは、IPネットワーク上でデータを伝送するためにKNXシステムで使用される通信プロトコルです。これにより、KNXデバイスとシステムをイーサネットやインターネットなどのIPベースのネットワークと統合することができます。

KNXnet/IPを使用すると、KNXデバイスは互いに、および外部システムとIPネットワークを介して通信することができます。これにより、ネットワーク接続がある場所からいつでもKNXインストールのリモートアクセス、制御、および監視が可能になります。このプロトコルにより、KNXのための標準的なIPネットワーキングインフラストラクチャおよびプロトコルの使用が可能になり、システムの能力とリーチが拡大します。

KNXnet/IPは、KNX標準内の通信オプションの1つに過ぎません。従来のKNXバス通信方法は依然として広く使用されており、KNXnet/IPはこれらの方法と組み合わせて使用されることが多く、建物の自動化および制御のための包括的で柔軟なソリューションを提供します。

![KNXnet/IPテレグラム](https://assets.emqx.com/images/0ab8827a355db6d084745050b44c2697.png?imageMogr2/thumbnail/1520x)

KNXnet/IP Telegram

## KNXプロトコルのツール

### ETS

[ETS (Engineering Tool Software)](https://www.ets6.org/)は、KNXベースのシステムの設定、プログラミング、および稼働を行うための公式ソフトウェアツールです。これは、KNX標準を担当するKNX協会によって開発された包括的なソフトウェアアプリケーションです。

ETSはユーザーフレンドリーなインターフェースを提供し、システムインテグレーター、インストーラー、デザイナーがKNXインストールを作成、設定、および管理できるようにします。個々のKNXデバイスの設定、グループアドレスの作成、機能とパラメータの割り当て、およびオートメーションと制御ロジックのセットアップを可能にします。

### KNX Virtual

[KNX Virtual](https://www.knx.org/knx-en/for-professionals/get-started/knx-virtual/index.php)は、KNX協会が提供するWindowsベースのアプリケーションで、ユーザーがKNXインストールをシミュレートできます。KNX Virtualの主な目的は、最初の実際のプロジェクトを開始する前にKNXテクノロジーを実践的に学びたいと考えている個人に学習とトレーニングのプラットフォームを提供することです。ユーザーがKNXの基本を学び、システムを操作する自信をつけることができます。

KNX Virtualには、シミュレートされたKNXバスに接続された10種類以上の異なるタイプの仮想KNXデバイスが含まれています。これらのデバイスは、ランプ、調光可能なランプ、ブラインド、暖房および冷却バルブなど、さまざまな建物の負荷を表しています。ユーザーは、天候モジュール、アラーム、シーン、およびロジック操作など、より高度な建物の機能を実験することもできます。

## IoTのためのKNXプロトコルとMQTTの統合：NeuronとEMQX

[MQTT](https://www.emqx.com/en/blog/the-easiest-guide-to-getting-started-with-mqtt)は、パブリッシュ/サブスクライブモデルで動作するIoTデバイスおよびアプリケーション向けに設計されたメッセージングプロトコルです。これは軽量で効率的、信頼性が高く、リアルタイム通信を可能にします。MQTTは、電力と帯域幅の効率的な使用が必要なリソースが限られた環境に適しています。現在、IoT、モバイルインターネット、スマートハードウェア、コネクテッドカー、スマートシティ、遠隔医療サービス、石油およびエネルギーなどの分野で広く応用されています。

インダストリー4.0の登場により、製造業においてもインテリジェンス、オートメーション、デジタル化への需要が高まっています。この文脈において、MQTTプロトコルはデバイスやプラットフォームのサポートが広範にわたり、多くのIoTデバイスやシステムが市場で容易に利用可能です。一方、KNXのデバイスエコシステムは特に特殊なIoTデバイスやアクセサリーに関しては限定的かもしれません。KNXとMQTTを組み合わせることで、スマートホームやビルオートメーションのようなIoTシナリオにおいて、より多くの機会を開くことができます。

### KNXをMQTTに変換するNeuron

[Neuron](https://neugates.io/)は、業界のIoTゲートウェイソフトウェアで、産業デバイスに基本的なIoT接続機能を提供します。最小限のリソース利用で、Neuronは標準または専用プロトコルを通じて多様な産業デバイスと通信し、[産業IoTプラットフォーム](https://www.emqx.com/en/blog/iiot-platform-key-components-and-5-notable-solutions)への多数のデバイス接続を実現します。Neuronは初期からMQTTを通信プロトコルの一つとしてサポートしており、[NeuronのMQTTプラグイン](https://neugates.io/docs/en/latest/configuration/north-apps/mqtt/overview.html)を使用すると、デバイスとクラウド間でMQTT通信を使用するIoTアプリケーションを迅速に構築できます。

バージョン2.1.0から、NeuronはUDP経由でKNXnet/IPプロトコルを使用してKNX IPカプラーと通信する[KNXプラグイン](https://neugates.io/docs/en/latest/configuration/south-devices/knxnet-ip/knxnet-ip.html)を提供しています。

### MQTTメッセージを処理するEMQX

[EMQX](https://www.emqx.io/?__hstc=3614191.b33d76295d5ea0e3bb7790a771a4b313.1683685186356.1707370152007.1707454509513.528&__hssc=3614191.1.1707454509513&__hsfp=697508886)は、高性能とスケーラビリティを備えた世界をリードするオープンソースの分散MQTTブローカーです。大量のIoTデバイスに対して効率的で信頼性の高い接続を提供し、リアルタイムのメッセージおよびイベントフローデータの移動と処理を可能にし、ユーザーがクリティカルなビジネス用のIoTプラットフォームとアプリケーションを迅速に構築できるよう支援します。

EMQXはブリッジアーキテクチャのブローカーコンポーネントであり、NeuronはKNXデバイスからデータを収集し、MQTTメッセージとしてブローカーにデータを送信します。NeuronからMQTTメッセージを受信した後、EMQXはデータを転送したり、さらに処理を行ったりします。

EMQXには、リアルタイムでIoTデータを抽出、フィルタリング、エンリッチメント、変換するSQLベースの[ルールエンジン](https://www.emqx.com/en/solutions/mqtt-data-processing)や、EMQXを外部データシステム（データベースなど）に接続するデータ統合機能など、豊富で強力な機能セットがあります。

KNXプロトコルをIoTに統合する方法については、次のステップバイステップのチュートリアルをご覧ください：[KNXデータをMQTTにブリッジする：導入と実践チュートリアル](https://www.emqx.com/en/blog/bridging-knx-data-to-mqtt-introduction-and-hands-on-tutorial)。

これにより、KNXとMQTTを組み合わせることで、スマートホームやビルオートメーションなど、IoTシナリオの可能性が大きく広がります。NeuronとEMQXを使用することで、KNXシステムから収集したデータをIoTプラットフォームやアプリケーションで簡単に利用できるようになり、新しいサービスや機能の開発を加速させることができます。