概要
Home assistantを使ってやってるおうちハックのメモ
試行錯誤してきた結果なのでベストじゃないかもしれない
※未完成。反応あれば追記します。
Home Assistantとは
インストールなどは公式のinstallationを参照
Raspberry Pi推奨
他の環境だとインストールできないアドインとかあったり、周辺H/Wがラズパイ専用だったりする
H/Wプラットフォーム
- Raspberry Pi4 Model B 4GB
- Amazon.co.jpで購入
- 通常時でCPU:2%、RAM:10%程度しか食ってないので、Pi3とかでもいいと思う
- BT内蔵モデルならBLEトラッキングで在宅確認できたりするので便利
- SDカード SanDiskの16GB
- Amazon.co.jpで購入
- 電源をブチるとデータも破損しやすいので品質の良いメーカーがいい
- スクリーンショットとか保存しなければ8GBあれば十分
- 電源とケーブル
- 2A(20W)以上の電源推奨
- AnkerのACアダプタから、TypeCで給電してる
- 太いケーブル推奨
- ケース
- 熱を持つので金属ケースか、ファン必須
- ファンは煩くて嫌いなので金属ケース使用
- 金属ケースだとWiFiとかBlutoothの電波減衰するかも
- 有線LAN
- 有線派なので
-
RaspBee II
- Amazon.comで購入(たぶん)
- RaspPiのGPIO(UART)に挿して、Zigbeeの機器と通信するやつ
Home Assistantのしくみ
Raspberry piのSDカードにインストールすると下記の構成になる。
supervisorでアドインの管理が出来るし、アドインは環境への依存度が低くなるのでコンテナ最高
基本機能やinjection、HACSはHomeAssistantCore(以下HSCore)にインストールされる
設定方法
- 設定ファイル
/config/configuration.yaml
- 編集方法
- U/Iから編集:設定から変更
- File Editorアドオン使って編集
- Visual Studio Codeアドオン使って編集
- Samba shareアドオン使ってパソコンから直接編集
(VSCodeを使う場合、Home Assistant用の機能拡張もあります。)
- ファイルの直接変更は反映に再起動が必要
- 設定画面からの変更は即反映される
- 編集方法
使ってるアドオン
アドオン名 | 出来る事 |
---|---|
AppDaemon4 | ドメインのIPへ更新とweb画面のスクショ保存(別記事作成予定) |
deCONZ | 追加HWのRaspBee II経由で、zigbee通信をして、ikeaのTRÅDFRIを制御するためのアドオン サポートデバイス |
ESPHome | ESP32などのマイコンと周辺モジュールのソースを生成してHomeAssistantへ追加するアドオン 下記の連携してる機器を参照のこと |
File editor | 設定ファイルなどHSCore内部のファイルを編集するアドオン |
Home Assistant Google Drive Backup | バックアップデータをGoogle driveへアップロードするアドオン |
Let's Encrypt | いわずと知れたHTTPSの証明書を発行するアドオン HTTP challengeを行う場合はTCP80のインターネットへの開放が必要 有料だけどHome Assistant Cloudならポート開放不要 |
MPD | ラズパイで音声ファイルを再生するアドオン TTSの音声ファイルの再生に使用 |
Samba share | NW経由でラズパイのファイルシステムにアクセス出来るアドオン |
Spotify connect | ラズパイがSpoyfyの再生機器に出来るアドオン |
SSH & Web Terminal | web画面やパソコンからSSH出来るようにするアドオン |
NUT | UPSを接続するためのアドイン |
連携してる機器
機器 | 出来る事 | 通信方法 | 連携アプリ | HSから見た種類 |
---|---|---|---|---|
ロボット掃除機 iRobot Roomba980 |
掃除の開始やエラー取得 掃除のログ画像は取得不可 |
Wifi | 公式インジェクション | vacuum |
スマート照明・スイッチ ikea TRÅDFRI |
LED照明やスイッチを操作出来る | Zigbee | RaspBee II + アドイン(deCONZ) | light/switch |
スマートプラグ TP-Link Kasa Smart |
プラグのOn/off ローカルAPIがなくなったので新規購入は控えた方がいい |
Wifi | 公式インジェクション | switch |
UPS CyberPower CP750SWLTJP |
UPSの負荷やバッテリ残量の取得。アドインが安定せずデータ取得出来ないことが多々ある | USBケーブル | アドイン + 公式インジェクション | sensor |
NWCamera Tapo C100, C310 |
監視カメラと不在通知の訪問者写真取得 | WiFi | 低遅延を目的にHACSのインジェクションでカメラとブラウザを直結。スナップショットの取得(camera.snapshot)はffmpegを使用する | camera |
SONY Bravia TV | パソコンと連動してTVをOn/Off、チャンネル変更、音楽の再生など | WiFi/有線 | 公式インジェクション | media_player/remote |
Wake on LAN(WOL) | パソコンの起動と起動状態確認(pingなのでラグあり) パソコンのOffはひと工夫必要 |
有線(UDP) |
公式インジェクション |
switch |
インターフォン(別記事) | オートロックの自動開錠や不在通知 | Wifi | ESPHome | switch/binary_sensor |
★赤外線制御方式のシーリングファン | ファンのOn/Off/速度調整 | Wifi+IR | ESPHome + TemplateFan | fan |
★ダイキン エアコン |
冷暖房、温度や風量調整 | Wifi+IR | ESPHome | climate |
便器の自動洗浄(別記事) | 自動洗浄 | Wifi | ESPHome | なし |
★温度/湿度/気圧ロガー | 情報の記録 | Wifi | ESPHome | sensor |
★CO2ロガー | 情報の記録 | Wifi | ESPHome | sensor |
★スマホアプリ | ダッシュボードの閲覧、通知の受信、端末情報の送信(位置情報・次のアラームなど)など | WiFi/携帯回線 |
公式アプリ Docs |
sensor |
★CANDY HOUSE sesame3 | 鍵の施錠状態取得。鍵の開錠施錠WiFiアダプタが必要 | WiFi+BLE | TemplateLock + RESTful Sensor + Shell Command | lock |
★ダイキン 空気清浄機 ACK70V |
風量調整、加湿調整、LEDのOn/Off | WiFi | 自作のカスタムコンポーネント 参考にしたリポジトリ |
fan |
★: 別記事作成予定
連携してる外部サービス
サービス名 | 出来る事 | 連携方法 | 備考 |
---|---|---|---|
Google Calendar | 予定情報を取得し、休日だったら、在宅だったらなどのif処理も可能 | 公式インジェクション | |
Google現在地共有 | Androidのロケーション履歴情報をGoogleのサーバから取得(定期的にCookieの更新が必要なので使ってない) | 公式インジェクション | |
OpenWeatherMap | 現在の天気と天気予報の取得 | 公式インジェクション | |
Google Translate TTS | テキストを音声にして再生する | 公式インジェクション | |
Spotify | spotifyの再生をコントロール、再生状況の取得 | 公式インジェクション | |
電車の運行情報 | 運行状況のサイトからデータ取得して通知 | Scrap | |
FlightRadar24 | FlightRadar24へ送っている、受信したADS-Bの機体情報数を取得 | Scrap | Build your own ADS-B receiver |
Google Assistant SDK | GoogleAssistantへテキストを送って処理させる(現在は不使用) 「XXを付けて」などは出来ない |
アドイン | |
Google Assistant | 一部entityをGoogleHomeへ登録し、Google⇒HS⇒機器の流れで音声操作 | 公式インジェクション | 有料だけどHome Assistant Cloudなら簡単に実現可能 |
オーバービューのサンプル
用途 | スクショ |
---|---|
パソコン/モバイル用 操作やそれに必要な情報 |
|
アラート用 バッテリ残量の確認や長期的な統計 |
|
古いスマホで常時表示用 玄関に設置して外出前に確認 |
|
M5Paper用 AppDaemon4でスクショ取ってM5Paperで表示させる |
フロントエンド用に追加してるインジェクション
HACSでインストール
インジェクション名 | 目的 |
---|---|
Multiple Entity Row | 1行にいろんなボタンや情報を表示する |
bignumber-card | ただ大きく表示するだけ |
card-mod | ほかのカードのデザインを上書き出来る |
apexcharts-card | 高性能なグラフ描画 |
Kiosk Mode | サイドバーや上部のタブを非表示にする |
Battery State Card / Entity Row | 色で分かりやすく |
Atomic Calendar Revive | 標準より高機能なカレンダ |
オートメーションのブループリント
- まとめたら追記する
そのほか
- 消えないentityの消し方
- 使わなくなったentityが残り続ける場合は、下記の管理ファイルから削除する
/config/.storage/core.entity_registry
- .storageは隠しフォルダ
- json形式なのでフォーマットに注意しつつ削除
- 反映にはHSCoreの再起動が必要
- 使わなくなったentityが残り続ける場合は、下記の管理ファイルから削除する