†HomeKitのデバイスを、他のコンピュータのコマンドラインから動かす方法を説明します。Mosquittoを使います。パソコン(Mac)の上にMosquittoのクライアント機能がインストールされていることが前提です。以下のページを見てください。†Homebridgeのコントロールページから、プラグインを選び、検索窓にmqttthingとタイプします。Mqttthingというプラグインが現れます。これをインストールします。インストールが終わると設定画面が出ます。Switchを選んでみます。名前をSwitch1とし、MQTTのタイプ名も適当に入れておきます。タイプ名は、mqtttで始まるようにしました。MQTTTプラグイン関係であることがわかりやすいかとおもいました。これで保存して、Homebridgeを再起動します(右上方の電源スイッチのようなアイコンを押す)。再起動後に、アクセサリのタブを見ると、押しボタンスイッチのようなアイコンが見えます。switchは、テレビのリモコンみたいに押しボタン方式のスイッチです。コンフィグボタンを押すと、Homebridgeの全体の設定が見えます。Thingしか入れてないのでわかりやすいです。Thingの部分です。このプラグインのページに詳しい説明があります。https://github.com/arachnetech/homebridge-mqttthing#readme変更したり書き換えたりする場合は、このコンフィグファイルを編集するのが簡単で良いと思います。テレビのリモコンのように、多数の押しボタンスイッチをまとめて定義することもできます。LEDの調光器リモコンのように、on/off/明るさ/色合いなどのスイッチをまとめて定義するのに便利です。これ以外にも多くの特性を持つデバイスが用意されています。switchを使いましたが、他にも多数のデバイスが使えます。Switchは入出力に対応しています。設定して、mosquitto_subコマンドでモニターすると動きがわかります。これを使えば、HomeKitからのon/offを受け取ってLEDを光らせるなどの仕掛けをArduinoで作れます。†HomebridgeがHomeKit環境に登録してあれば、ここで定義したSwitch1がホーム.appに現れています。このアイコンを右クリックして、「設定」を選ぶと動作をしてできます。1回押し、2回押し(ダブルクリック)、長押しの選択があります。ここでは1回押しで、隣のIkeaの電球、をonにする設定をしました。mqttt/switchでした。Switch1には、1回押し、2回押し(ダブルクリック)、長押しの3種類があります。それぞれに対応するメッセージは、1,2,Lです。これは設定ファイルで変更することも可能ですが、1,2,Lがデフォルトです。MQTTの出版をすれば、IKEAの電球をonにできます。-vとして、メッセージをモニターしておくとデバッグに役立ちます。電球をoffにしたい場合は、2回押しや長押しに電球offを割り当てても良いです。1回押しのたびに反転することもできます。1回押しに実行されるショートカットを以下のように記述すれば良いです。1とするたびに、電球がon/offします。†pahoというライブラリを使いました。https://www.eclipse.org/paho/index.php?page=clients/python/index.php以下のプログラムでHomeKitで設定された灯を点滅させることができました。Arduinoからの例です。https://github.com/knolleary/pubsubclientにある、pubsubclientライブラリを使ってます。上のページにあるサンプルを参考にしたプログラムが以下です。ここでは、13番に接続したスイッチが押された時に、MQTTに1を送ります。それでHomeKitが灯をon/offしてくれるはずです。元のサンプルは、送受信に対応していたので、subscribeの部分も残ってます。その部分は今回は使っていないです。HomeKitからの指示でArduinoでLEDを点灯させるなどの場合には、このcallbackの関数のところに、その処理を書けば良いです。WiFiの設定もしているので、長いですが、多分これで動きます。