こんにちは!
SJC共同開発推進室の鈴木です。
「市販のスマートホームサービスだけでは物足りない」とお考えの方へ。
本格自作スマートホームのプラットフォーム、Home Assistant をご紹介します。Home Assistant は、メーカーの垣根を越え、さまざまなスマート家電や自作のDIYデバイスを一つに統合するためのオープンソースプラットフォームです。私も普段利用していて、今後は家だけでなく農業や工場などへの活用も検討しており、様々な分野でIoTを活用できる可能性を感じております。
今回はまず初めに、Raspberry PiにHome Assistantをインストールする手順と実際使用している例をご紹介させていただきます。
目次
- 1.環境構築
- 2.センサーを接続する方法
- 3.アドオンの紹介
- 3.1 Tailscale(アドオン) を利用して、外出先から安全にアクセス
- 3.2 ESPHome(アドオン)を利用して、自作したデバイスを連携
- 3.2.1 ESPHomeでデバイスの登録
- 3.2.2 設定ファイル(yaml形式)の作成と書き込み
1.環境構築
Home Assistantの環境を構築するには、いくつか方法はありますが、今回はRaspberry Piを利用する方法をご紹介させていただきます。
また、Raspberry Piで利用する場合は、後ほどご紹介するアドオン機能を利用できるため、おすすめです。
今回Raspberry PiにHomeAssistantのOSをインストールする際に、Raspberry Pi Imagerを使用します。
また、Raspberry Pi 4 Model BとmicroSD cardを使用して設定します。
Raspberry Pi Imagerの詳細に関しては、以前にこちらの記事でご紹介させていただきましたので、ご確認ください。
「Raspberry Pi Device」「Storage」はそれぞれお手元のものを選択し、「Operating System」は以下の順番で、「Other specific-purpose OS => Home assistants and home automation => Home Assistant OS 16.0 (RPI 4/400)(現在の最新バージョン)」を選択します。
「Operating System」=> 「Other specific-purpose OS」を選択
「Home assistants and home automation」を選択
「Home Assistant OS 16.0 (RPI 4/400)」を選択
「Raspberry Pi Device」、「Operating System」、「Storage」が選択できている状態で、microSDカードに書き込みます。
書き込みが完了したら、microSDカードをRaspberry Piに差し込み、電源を入れます。また、Raspberry PiでHomeAssistantを利用する場合、WiFiルーターとの有線LAN接続が必要になりますので、ご注意ください。
数分すると、自動で設定が完了して「Home Assistant URL」http://homeassistant.local:8123にブラウザからアクセスできるようになります。
モニターを接続すると、起動していることが確認できます。
ブラウザで http://homeassistant.local:8123 にアクセスすると、初回アクセスの場合、Home Assistantの初期セットアップ画面が表示されるため、順に設定していきます。
まずは、今後ログインするためのユーザーを作成します。
次に位置情報の登録をします。
順に設定を進めていきます。
完了すると、以下のメインページが表示されます。初回ログイン時は、先ほど設定したユーザーのみ表示されている状態です。
以下の画面がHomeAssistantがサンプルで紹介しているデモになりますが、とても自由度高く、カスタムすることができます。
2.センサーを接続する方法
サイドバーの「設定」を押下すると、近くにあるデバイスが表示されます。今回は例で、表示されている市販のSwitchBot温湿度計が表示されているので、「追加」ボタンでダッシュボードに表示させるため、追加します。
そのまま、「送信」ボタンを押下します。
また、わかりやすい名前に変更したり、表示するエリアなどを追加して、設定などもできます。
今回は「エリア:リビングルーム」に設定し、デフォルトの名前で、温度と湿度が表示されるようにしました。このように、既存のIoTデバイスは簡単に接続できます。
3.アドオンの紹介
アドオンを使用すると、より本格的なスマートホームを実現できます。
サイドバーの「設定」=> 「アドオン」を押下して、右下に表示される「アドオンストア」ボタンを押下すると、様々なアドオンを簡単に追加できます。
データベースやダッシュボード、VScodeなどのテキストエディタなどのアドオンもあるので、本格的な開発にも応用できると思っております。
3.1 Tailscale(アドオン) を利用して、外出先から安全にアクセス
今回は、外からでもHomeAssistantにアクセスできるように、「TailScale」を追加したいと思います。「TailScale」に関しては、こちらの記事でご紹介させていただいておりますので、詳細のご興味がある方は、こちらをご確認ください。アドオンは「install」ボタンを押下するだけで追加できます。
3.2 ESPHome(アドオン)を利用して、自作したデバイスを連携
「ESPHome」を使用すると、自作のIoTデバイスを簡単に接続でき、遠隔アップデートなども可能なためとても便利です。長くなりますので、今回は詳細を省略しますが、今後別のブログ記事でご紹介したいと思います。
3.2.1 ESPHomeでデバイスの登録
今回は例として、温湿度センサー「SHT31」とマイコンボード「XIAO ESP32S3」を使用して、作成した温湿度計のサンプルをHome Assistantに登録したいと思います。
WifiのSSID、パスワードなどの設定や、デバイスに紐づけるキーの登録を案内に従って順に進めるだけで、設定は完了です。
3.2.2 設定ファイル(yaml形式)の作成と書き込み
yaml形式(設定データや構造化された情報を記述するためのファイル形式)で、マイコン、センサ、設定値などを定義して、書き込みます。USB接続でブラウザからの書き込みができたり、初回書き込み後、マイコンがWi-Fiに接続されていれば、以降のファームウェアの更新はネットワーク経由でワイヤレスに行うことができます。
以下のような記述で、yaml形式で設定できます。
Wi-Fi接続とセンサー接続するための設定と、温度と湿度のデータを 30 秒ごとに読み取り、Home Assistant のシステムに送信するよう設定しております。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
esphome: name: livingroom-temp-humi-sensor esp32: board: seeed_xiao_esp32s3 framework: type: arduino # Enable logging logger: # Enable Home Assistant API api: encryption: key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ota: - platform: esphome password: "xxxxxxxxxxxxxxxxxxxxxxxxxxx" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Livingroom-Temp-Humi-Sensor" password: "xxxxxxxxxx" captive_portal: # --- I²C バス設定 --- i2c: sda: GPIO5 scl: GPIO6 scan: true # 起動時にI2Cデバイスをスキャン # --- SHT3x センサー設定 --- sensor: - platform: sht3xd temperature: name: "Room Temperature" humidity: name: "Room Humidity" address: 0x45 # SHT31 のI2Cアドレス update_interval: 30s |
今回は、初回のためUSB接続をして、書き込みました。
完了すると、サイドバーの「設定」の画面から、今回名前を付けた「livingroom-temp-humi-sensor ESPHome」が表示されているので、市販のSwitchBotなどのIoTデバイスと同様に、ダッシュボードに表示できます。
追加すると、以下のようにSwitchBot温湿度計で表示されている温度計の上に新たに自作のサンプル温湿度計の温度と湿度が表示されます。このようにして、市販のデバイスや自作のデバイスをダッシュボードに追加していくことができます。
まとめ
今回は、Home Assistantの導入のため、環境構築、センサーで値の表示、アドオンの簡単な紹介のみでしたが、ダッシュボードのデザインやレイアウトの改善や、便利な機能やアドオンのご紹介、Home Assistantで収集したデータの活用方法など、今後も定期的にブログを通して、Home Assistantのご紹介していきたいと思います。
エコモットでは、ともに未来の常識を創る仲間を募集しています。
弊社に少しでも興味がある方はぜひ下記の採用ページをご覧ください!