Home Assistant を使うためのTips'

<!-- markdown-mode-on --> # **概要** HAの公式ドキュメントとApexCharts Cardのドキュメントです。 **タイルカードの設定** https://www.home-assistant.io/dashboards/tile/ **ApexCharts Cardの設定** https://github.com/RomRider/apexcharts-card ApexChartsのGitHubページは英語ですが、全オプションが網羅されています。設定で困ったときはここを見れば大抵解決します。 <a name="more"></a> 今日やったことを整理します。 --- ## 2階センサーをHAで表示するまでの手順 ### STEP1:ESP8266スケッチの変更 `sendSensorData()`関数にMQTT publishの4行を追加。 Blynk送信はそのまま残し、併用状態にした。 送信トピック: - `home/nikai/temperature` - `home/nikai/humidity` - `home/nikai/pressure` - `home/nikai/wbgt` --- ### STEP2:configuration.yamlにセンサーエンティティを追加 `mqtt:`の`sensor:`セクションに4つのセンサーを定義。 l 以下を`configuration.yaml`の`mqtt:`セクションに追加しました。 ```yaml sensor: - name: "二階 温度" state_topic: "home/nikai/temperature" unit_of_measurement: "°C" device_class: temperature unique_id: "mqtt_nikai_temperature" object_id: "nikai_temperature" - name: "二階 湿度" state_topic: "home/nikai/humidity" unit_of_measurement: "%" device_class: humidity unique_id: "mqtt_nikai_humidity" object_id: "nikai_humidity" - name: "二階 気圧" state_topic: "home/nikai/pressure" unit_of_measurement: "hPa" device_class: pressure unique_id: "mqtt_nikai_pressure" object_id: "nikai_pressure" - name: "二階 WBGT" state_topic: "home/nikai/wbgt" unit_of_measurement: "°C" unique_id: "mqtt_nikai_wbgt" object_id: "nikai_wbgt" ``` **意味:** - `state_topic`:ESP8266がMQTTで送るトピック名 - `device_class`:HAがセンサーの種類を認識するための分類 - `unique_id`・`object_id`:エンティティIDを固定するための設定 HAを再起動。 --- ### STEP3:HAダッシュボード「センサー」を作成 「設定」→「ダッシュボード」→「+追加」→「空のダッシュボードを最初から作成」 タイトル「センサー」、サイドバーに追加をオン。 --- ### STEP4:HACSのインストール HAの標準機能ではグラフ表示が貧弱。<br> 見栄えのいいグラフを作れる**ApexCharts Card**のインストールは**HACS**(**H**ome **A**ssistant **C**ommunity **S**tore)というアドオンから行います。 TerminalでHACSインストールコマンドを実行。 ```bash wget -O - https://get.hacs.xyz | bash - ``` HAを再起動。GitHubで認証。 --- ### STEP5:ApexCharts Cardのインストール 「HACS」→リストから「apexcharts-card」を選択→「ダウンロード」 ブラウザをReload。 --- ### STEP6:ダッシュボードのレイアウト作成 「センサー」ダッシュボード→編集→「名前のないビュー」の鉛筆→「コードエディタを表示」 以下の構成でYAMLを貼り付け: - 上段:タイル4つ横並び(温度・湿度・気圧・WBGT) - 下段:ApexChartsグラフ2つ横並び(センサー履歴・気圧) --- ### STEP7:小数点桁数の設定 **タイルカード** - 「設定」→「デバイスとサービス」→「エンティティ」→各センサーの歯車→「表示精度」で設定 - YAMLの`decimals`や`suggested_display_precision`は効かなかった **ApexChartsグラフ** - カードのYAMLの`series`内に`float_precision`を設定 - 「表示精度」との相乗効果ではなく、`float_precision`単独で効いています --- #### つまり設定場所が2つに分かれています | 表示箇所 | 設定方法 | |---|---| | タイルカード | GUIの「表示精度」 | | ApexChartsグラフ | YAMLの`float_precision` | これが現実です。統一された設定方法がないのはHAの設計の不統一さです。 ### STEP8:ApexCharts Card 縦軸表示の設定場所 縦軸に関する設定はカード直下のyaxisにまとめて書く。 ```yaml yamlyaxis: - min: 970 # 縦軸の最小値 max: 1030 # 縦軸の最大値 apex_config: labels: formatter: | EVAL:function(val) { return val.toFixed(0) } # 小数点桁数 ``` `toFixed(0)` → 整数、`toFixed(1)` → 小数点1桁 --- ### STEP9:HAのデータ保存について - HAのデータベース(home-assistant_v2.db)は`/config/`に保存→Raspberry Pi 3ではSDカード - デフォルト保存期間は**10日間**(自動削除されるためSDカードがいっぱいになることはない) - 電力計は2秒間隔、センサー系は60秒間隔でデータが蓄積される - グラフのloading時間はSDカードのDB読み込み速度とブラウザ描画処理の両方が影響 ## 関連リンク
Next Post Previous Post