はじめに

macOSのHomeKitをプログラムから動かす方法です。HomebridgeとMQTTを使います。Siriを使うよりは確実だと思います。

macOS, Windows, Linux, Arduino IDEなどからMQTTブローカー(サーバ)にメッセージを送ることで、HomeKitに登録されたいろいろなデバイスを制御できます。 MQTTメッセージを送るためには、いろいろなライブラリが使えます。

例えば、HomeKitからon/offできるLEDがあったとします。 このネットワークに接続したコンピュータのシェルコマンドやPythonプログラムからこのLEDを点滅できます。 また、このネットワークに接続したArduinoからこのLEDを点滅できます。

通常のHomeKit環境に加えて、以下のハードウェアが必要です。

Raspbery pi以外のLinuxマシンでも、macOSでもWindowsマシンでも良いです。 サーバなのでアプリの裏で動かしていても良いです。当然ですが、必要とされる間はずっと起動している必要があります。 以下ではRaspberry pi zero wで説明します。

このサーバには、以下のサーバープログラムが必要です。

Raspberry pi zero w にOSを載せる

インストール用SDカードを作る

Raspberry pi zero wとSDカードを用意します。

Raspberry Pi OSのページからSDカード用のインストーラプログラムをダウンロードします。 macOS用、Windows用、Linux用などあるので、適したものをダウンロードします。

https://www.raspberrypi.com/software/

このRaspberry Pi Imagerを動かします。

https://assets.raspberrypi.com/static/md-bfd602be71b2c1099b91877aed3b41f0.png

Storageのボタンで、使用するSDカードを選択します。

Choose OSのボタンで、Raspberry Pi OSをインストールするのですが、ここで、

  1. Other specific purpose OS
  2. Homebridge

を選べば、Raspberry Pi OSがインストールされて、同時にHomebridgeもインストールされます。

imager_homebridge.png

WiFiの設定をする

このSDカードをRaspberry Pi zero wに差し込めば、すぐに起動します。 通常は、Raspberry Pi zero wにディスプレイやキーボードを挿して、この後の設定を行いますが、SDカードの上でWiFiの設定もしておけば、全部ネットからこの先の作業が可能です。

Raspberry Pi ImagerがインストールしたSDカードをmacOSやWindowsに挿すと、FATのボリュームがマウントされます。 macOSならば、/Volumes/bootというドライブがマウントされます。この中にsshというサイズゼロのファイルを作っておきます。 また、wpa_supplicant.confというテキストファイルを作成して、WiFiの設定をしておきます。 一連の作業をシェルコマンドで実行すると:

% cd /Volumes/boot
% touch ssh
% vi wpa_supplicant.conf

そしてwpa_supplicant.confに以下の内容を書き込みます。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="<SSID>"
    psk="<パスワード>"
}

詳しくはこちらを参照してください。

https://qiita.com/mascii/items/0d1a280ac58ed8f6f999

Raspberry piにssh接続する

この設定で、Raspberry pi zero wがDHCPからアドレスをもらって起動します。 どのアドレスをもらったかは、研究室のルータに接続して調べてください。 必要ならばRaspberry Pi OSの設定で固定アドレスにします。

Raspberry piのHomebridgeに接続する

パソコンのwebブラウザから、

http://192.168.108.xxx:8581/

に接続します。Homebridgeが見えているはずです。 設定直後のアカウントとパスワードはどちらもadminです。

homebridge_web.jpg

ログインした後で現れるQRコードを使ってiOSやmacOSのホーム.appからこのHomebridgeを登録できます。 またこの後のメニューで、Homebridge関係のプログラムを再起動したり、さらにはRaspberry Piを再起動したりシャットダウンすることもできます。 電源を切る前には、シャットダウンしておきましょう。

MosquittoをRaspberry Pi OSにインストールする

MosquittoはMQTTブローカーです。それをテストするPub/Subコマンドも含まれてます。 MQTTの説明は以下などを見てください。

https://s3-ap-northeast-1.amazonaws.com/amg-s3-01/wp-content/uploads/2018/11/24144017/mqtt_pubsub.png

https://www.advanet.co.jp/2020/10/14/mqtt-introduction/

Mosquittoは、Linux, macOS, Windowsなど各種が配布されています。 Raspberry Pi OSでインストールする方法は以下で説明されています。

https://qiita.com/ekzemplaro/items/ab90dd630c3ad8e819ab

要するに、

sudo apt install mosquitto
sudo apt install mosquitto-clients

でインストールできて、

sudo systemctl start mosquitto

でサーバをスタートできます。

MosquittoをmacOSにインストールする

MosquittoはmacOSやWindowsにもインストールできます。サーバとして立ち上げない場合でも、クライアントの機能が使えるのでインストールしておくと便利です。

ここではmacOSの場合を説明します。インストールには、Home Brewを使うのが簡単です。

https://brew.sh/index_ja

インストール方法はこちらにあります。

https://qiita.com/yohei1126/items/de355f540a83743213fb

要するに、

brew install mosquitto

です。macOSでサーバを立ち上げないならば、これだけです。インストール後に、mosquitto_subとかmosquitto_pubとかタイプして動作を確かめてください。引数なしで起動すると、ヘルプが出ます。 また--versionでバージョンを確認できます。

% mosquitto_pub --version
mosquitto_pub version 2.0.10 running on libmosquitto 2.0.10.

添付ファイル: filehomebridge_web.jpg 835件 [詳細] fileimager_homebridge.png 860件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-13 (水) 23:18:31