ブログ

Amazfit の心拍数、歩数、睡眠、バッテリーを Home Assistant に送る(オートメーション10例付き)

Amazfit は、あなたがいつ眠りについたか、何歩歩いたか、バッテリーがあとどれくらい残っているかをすでに知っています。そのすべてを通常のセンサーとして Home Assistant に取り込む方法と、それを使って自動化できることを紹介します。

公開 22 分で読めます

この記事の内容
  1. 結論から
  2. Home Assistant に届くもの
    1. 単位、クラス、長期統計
    2. 省かれる測定値
    3. エンティティ ID
  3. 仕組み:ウォッチが Mobile App デバイスになる
  4. オンにする手順
  5. バックグラウンド更新:1〜6分ごと
    1. 許可を与える
    2. そのほかに知っておきたいこと
  6. ウォッチセンサーが表示されない理由
  7. 10のオートメーション
    1. 1. ウォッチのバッテリー低下
    2. 2. 寝る前に充電
    3. 3. 就寝:照明を消して暖房を下げる
    4. 4. 起床:朝のルーティン
    5. 5. 充電が終わったのに充電器の上
    6. 6. 安静時心拍数がいつもより高い
    7. 7. 歩数の目標を達成
    8. 8. 夕方の散歩のすすめ
    9. 9. 朝の睡眠レポート
    10. 10. ストレスの多い夜:落ち着いた照明に
    11. タイミングについての注意
  8. ダッシュボードのアイデア
  9. できないこと
  10. よくある質問

Amazfit ウォッチ向けの Home Assistant アプリ AmazHA は、主に一方向で動作します。照明、カバー、サーモスタットを手首から操作するという方向です。その ウォッチセンサー 機能は逆方向に動きます。ウォッチが歩数から睡眠状態、バッテリーまで自身のデータを読み取り、グラフにしたり、ダッシュボードに表示したり、オートメーションに使ったりできるセンサーエンティティとして Home Assistant に送るのです。

以下では、何が送られるのか、どうやって届くのか、どうやってオンにするのか、センサーが表示されない理由、そしてそのまま貼り付けられる10のオートメーションを紹介します。

結論から

AmazHA を使えば、Amazfit ウォッチから Home Assistant に最大18種類の測定値を送れます。歩数、距離、カロリー、心拍数、安静時心拍数、血中酸素、ストレス、睡眠スコア、睡眠時間、リアルタイムの睡眠中・起床中の状態、装着状態、気圧、バッテリーなどです。データは Home Assistant の Mobile App 連携を通じて sensor.<prefix>_<key> として届き、アプリを開くたびに、そのあとはバックグラウンドで1〜6分ごとに送信されます。

Home Assistant に届くもの

4つのグループに分かれた18種類のセンサーで、それぞれ個別にオンにします。全センサーの一覧を、エンティティ ID の末尾になるキーと、Home Assistant で表示される状態とともに示します。

キー 単位 内容 状態の例
steps steps 今日の歩数 6412
distance m 今日歩いた距離 4870
calories kcal 今日の消費カロリー 1834
stand h 今日のスタンド時間 7
fat_burning min 今日の高強度運動時間 22
pai — PAI スコア 68
heart_rate bpm ウォッチの最新の心拍数 71
resting_heart_rate bpm 安静時心拍数 58
spo2 % 最新の血中酸素の測定値 97
stress — 現在のストレス値 34
body_temperature °C 体温(小数点以下1桁) 36.4
sleep_score — 前回の睡眠のスコア 81
sleep_duration min 前回の睡眠の長さ 452
sleep_state — 今眠っているかどうか asleep / awake
pressure hPa 気圧(小数点以下1桁) 1013.2
altitude m 気圧計による高度 212
battery % ウォッチ自身のバッテリー 64
wear — ウォッチを手首に着けているかどうか not_worn / worn / in_motion / unknown

AmazHA の設定では、アクティビティ、健康、環境、デバイス にグループ分けされ、歩数、距離、カロリー、スタンド時間、高強度運動時間、PAI、心拍数、安静時心拍数、血中酸素(SpO2)、ストレス、体温、睡眠スコア、睡眠時間、睡眠状態、気圧、高度、ウォッチのバッテリー、装着状態 という名前で表示されます。

単位、クラス、長期統計

各センサーには Home Assistant のメタデータが付いているので、ほかのセンサーと同じように扱えます。バッテリーには battery のデバイスクラスがあるので、バッテリーのアイコンが付き、ゲージにも合います。距離と高度は distance、気圧は atmospheric_pressure、体温は temperature、高強度運動時間と睡眠時間は duration です。どのセンサーにも専用のアイコンがあります。

1日ごとのカウンター(歩数、距離、カロリー、スタンド時間、高強度運動時間)は、total_increasing の状態クラスを使います。ウォッチが新しい日を始めるとゼロに戻り、Home Assistant はそれを減少ではなくリセットとして扱います。ゲージ類(心拍数、バッテリー、気圧など)は measurement を使います。どちらの場合も Home Assistant は長期統計を保存するので、歩数の統計グラフも追加の設定なしで使えます。

sleep_state と wear はテキストの状態で、単位もクラスもありません。状態のトリガーや条件に使ってください。

省かれる測定値

ウォッチがセンサーを送信するのは、有効な測定値があるときだけです。代わりにゼロや仮の値を送ることはありません。

  • 心拍数、安静時心拍数、ストレス、睡眠スコア、睡眠時間 は、ウォッチが0を報告している間(まだ測定していないことを意味します)は省かれます。ウォッチに新しい睡眠データがないときは、睡眠のセンサーは最後の値のままです。
  • 血中酸素 は連続的な信号ではなく、測定値です。AmazHA は見つけられる最新のものを送ります。直前に測定したもの、過去2時間のサンプル、または24時間以内の最後の有効な値です。つまり spo2 は「今」ではなく「最新の測定値」です。
  • 体温 は、そのセンサーを搭載したウォッチでのみ、データがそろってから送信されます。
  • 気圧と高度 は、気圧計を搭載したウォッチでのみ送信されます。
  • 睡眠状態 は、ウォッチが睡眠中か起床中かを示しているときにだけ送信されます。

測定値が省かれた場合、Home Assistant は最後に受け取った値を保持します。これはオートメーションで重要になります。変化していないセンサーは、単に更新されていないだけかもしれません。

エンティティ ID

どのエンティティも sensor.<prefix>_<key> です。接頭辞は エンティティ接頭辞(任意) に入力したもので、空欄にすると、ウォッチの名前をエンティティ ID に使える形にしたものになります。たとえば「Amazfit GTS 4」なら、sensor.amazfit_gts_4_steps、sensor.amazfit_gts_4_battery のようになります。ウォッチセンサー の画面では、各センサーの下に正確な ID が単位とともに表示されるので、推測する必要はありません。

接頭辞は、ウォッチが初めてデータを送信したときに確定します。あとでウォッチの名前を変えても、エンティティは変わりません。自分で接頭辞を変えた場合は変わります。新しいエンティティ ID を持つ2つ目のデバイスが登録され、古いデバイスは削除するまで Home Assistant に残ります。オートメーションを作る前に接頭辞を決めておきましょう。

仕組み:ウォッチが Mobile App デバイスになる

ウォッチは Home Assistant の Mobile App 連携に登録されます。Home Assistant 公式の Companion アプリが使っているのと同じ連携です。ウォッチは1つのデバイスになり、その測定値はそのデバイスのセンサーになります。HACS にインストールするものも、configuration.yaml に書くものもありません。

流れは次のとおりです。

  1. ウォッチが、オンにしたセンサーを読み取り、Bluetooth でスマートフォンに送ります。
  2. Zepp アプリの中で動く AmazHA のスマートフォン側が、Home Assistant の Mobile App 連携にウォッチを一度だけ登録します。デバイスはメーカーが Amazfit として表示されます。
  3. 各センサーは、単位、クラス、アイコンとともに一度だけ登録されます。そのあとの更新は、すべてのセンサーをまとめた1回の呼び出しで行われます。

これらは一意の ID を持つ、Home Assistant のレジストリ上の本物のエンティティなので、Home Assistant のインターフェイスから名前やアイコンを変えたり、非表示にしたり、エリアに割り当てたりできます。Home Assistant を再起動しても残ります。Home Assistant でデバイスを削除すると、AmazHA は次の送信で再び登録します。

Mobile App 連携は Home Assistant の初期設定に含まれているので、ほとんどの環境にはすでにあります。読み込まれていない場合、AmazHA は状態を直接書き込む方法に切り替えます。これでも動きますが、作られるエンティティは Home Assistant のインターフェイスから管理できず、再起動すると消えてしまいます。該当する場合は、設定に mobile_app: を追加してください。

ウォッチ自体が Home Assistant と通信することはありません。通信するのはスマートフォンで、AmazHA のほかの機能と同じアドレスを使います。自宅ではローカルアドレス、外出時はリモートアドレスです。ローカルアドレスしか設定していない場合、外出中に送った更新は Home Assistant に届きません。選択肢はウォッチからのリモートアクセスで説明しています。

オンにする手順

まず、フル版と、Home Assistant への接続が動いていることが必要です。そのあとは、チュートリアル9「ウォッチセンサー」のとおり、1分で終わります。

  1. ウォッチセンサーを開く。 AmazHA の設定(Zepp アプリの プロフィール › お使いのウォッチ › アプリ › AmazHA › 設定)で、ウォッチセンサー をタップします。ステップ1。
  2. オンにする。 Home Assistantに送信 をオンにします。ステップ2。
  3. 必要なら名前を付ける。 エンティティ接頭辞(任意) で、すべてのエンティティの名前が sensor.<prefix>_… になります。空欄にすると、ウォッチの名前が使われます。ステップ3。
  4. 頻度を決める。 更新間隔 で、バックグラウンドの間隔を1〜6分の範囲で設定します。ステップ4。
  5. センサーを選ぶ。 必要なものをオンにします。最初はすべてオフです。ステップ5。
  6. ウォッチで AmazHA を開く。 ウォッチが最初の測定値を送信し、バックグラウンド活動 の許可を求めます。許可してください。ステップ6。
  7. Home Assistant で確認する。 設定 › デバイスとサービス › Mobile App に進み、ウォッチを開きます。ステップ7。

ウォッチセンサー の画面にロック解除の案内が表示される場合は、フル版がまだ有効になっていません。フル版のロックを解除をご覧ください。まずHome Assistantに接続してください と表示される場合は、Home Assistant に接続のとおりに接続を設定してください。

データが届くと、ウォッチセンサー の画面に 6件のセンサーを送信 · 14:05 のような行が表示され、バックグラウンド更新で届いた場合は末尾に · バックグラウンド が付きます。この行が、すべてが動いていることをいちばん手早く確認できる方法です。

バックグラウンド更新:1〜6分ごと

ウォッチはアプリを開くたびにセンサーを送信し、そのあとは バックグラウンド活動 の許可がある限り、選んだ間隔でバックグラウンドで送信します。許可がない場合、センサーは AmazHA を開いたときにしか更新されません。

いつ 必要なもの
アプリを開いたとき ウォッチで AmazHA を開くたび 設定以外には何も不要
アプリを開いている間 設定した間隔で 設定以外には何も不要
バックグラウンド アプリを閉じている間、設定した間隔(1〜6分、初期設定は5分)で ウォッチで バックグラウンド活動 を許可

どちらの場合も、スマートフォンが近くにあり、Bluetooth がオンで、Zepp アプリが動いている必要があります。Home Assistant にデータを送るのはスマートフォンだからです。

許可を与える

Zepp App Store から AmazHA をインストールしたウォッチでは、機能をオンにしたあと次に AmazHA を開いたときに、ウォッチが バックグラウンド活動 の許可を求めます。確認されるのは一度だけです。拒否した場合や、リクエストが表示されなかった場合は、2つの方法で許可できます。

  • ウォッチ本体の設定で許可する:アプリ権限(ウォッチによっては プライバシー)、続いて AmazHA を開き、バックグラウンド活動を許可します。
  • または、AmazHA の設定で Home Assistantに送信 を一度オフにしてからオンに戻し、ウォッチで AmazHA を開きます。もう一度確認されます。

そのほかに知っておきたいこと

  • 変更がバックグラウンドに反映されるのは、次にアプリを開いたときです。 センサーをオン・オフしたり、更新間隔 を変えたりした場合は、ウォッチで一度 AmazHA を開いてください。それまで、バックグラウンド更新は以前の選択のまま続きます。
  • 省電力モードではバックグラウンド更新が止まります。 ウォッチが省電力モードの間はバックグラウンドのタスクが一切動かないので、センサーも一時停止します。そのあと AmazHA を開けば、すぐに再開します。
  • ウォッチを再起動しても終わりではありません。 短時間の再起動のあと、バックグラウンド更新は自動で、たいていは1時間以内に再開します。AmazHA を開けば、すぐに再開します。

ウォッチセンサーが表示されない理由

センサーが見当たらないとき、原因はほぼ必ず次のいずれかです。この順番で確認してください。

  1. Home Assistantに送信がオフになっている。 設定のメニューには ウォッチセンサー がオンかオフかが表示されます。オンになっている必要があります。
  2. 個々のセンサーがオフになっている。 どのセンサーも最初はオフです。ウォッチセンサー の画面には、送信しているセンサーの数が「18件中6件のセンサーをHAに送信」のように表示されます。
  3. それ以降、ウォッチで AmazHA を開いていない。 最初のデータは、アプリを開いたときにウォッチから送信されます。何かを変更したら、一度開いてください。
  4. フル版が有効になっていない。 ライセンスがないと、画面にはロック解除の案内が表示され、何も送信されません。
  5. Home Assistant に接続されていない。 画面に まずHome Assistantに接続してください と表示されます。接続を直してください:チュートリアル4、エラーについては困ったときは。
  6. センサーにまだ有効な測定値がない。 血中酸素、ストレス、体温は測定後にのみ表示され、気圧と高度は気圧計を搭載したウォッチでのみ表示されます。状態の行に 有効なセンサーがありません と表示される場合は、オンにしたセンサーのどれにも送信できる測定値がありませんでした。
  7. アプリを開いたときにしか更新されない。 これは バックグラウンド活動 の許可の問題です。上記をご覧ください。
  8. 違う場所を探している。 センサーは、設定 › デバイスとサービス › Mobile App の下にある、接頭辞の名前が付いたデバイスに属しています。設定 › デバイスとサービス の エンティティ タブで接頭辞を検索することもできます。
  9. スマートフォンが Home Assistant にアクセスできない。 外出先では、スマートフォンにリモートアドレスが必要です。スマートフォンのブラウザで Home Assistant のアドレスを開いてみてください。そこで失敗するなら、センサーでも失敗します。困ったときはのチュートリアルのステップ3で紹介しています。
  10. 値が止まっているように見える。 状態の行の時刻を確認してください。古い場合は、それ以降スマートフォンかウォッチが何も送信していません。スマートフォンが範囲外にある、Zepp アプリが閉じている、省電力モードがオンになっている、または許可がない、のいずれかです。

10のオートメーション

以下の10のオートメーションは、何度も寄せられる要望をカバーしています。バッテリーの低下、就寝、起床、充電器に置きっぱなしのウォッチ、活動の目標です。現在の Home Assistant の構文を使っているので、そのまま貼り付けられます。

追加するには、設定 › オートメーションとシーン › オートメーションを作成 › 新しいオートメーションを作成(英語表示では Settings › Automations & scenes › Create automation › Create new automation)に進み、3点メニューから YAMLで編集(Edit in YAML)を選んで貼り付けます。

ここにあるエンティティ ID はすべて例です。ウォッチセンサーは接頭辞 amazfit_gts_4 を使っているので、ご自身のものに置き換えてください。notify.mobile_app_your_phone は、Home Assistant 公式の Companion アプリを入れたスマートフォンの通知アクションです。ご自身のものは 開発者ツール › アクション(Developer tools › Actions)で「notify」と入力すると見つかります。照明、カバー、シーン、人物エンティティは、ご自身のものに置き換えるための仮の名前です。しきい値は出発点にすぎません。自分の値を決める前に、1週間分の履歴を見てください。

1. ウォッチのバッテリー低下

ウォッチのバッテリーが15 %を下回ったら通知します。

alias: ウォッチのバッテリー低下
description: ウォッチのバッテリーが 15 % を下回ったら通知する
triggers:
  - trigger: numeric_state
    entity_id: sensor.amazfit_gts_4_battery
    below: 15
actions:
  - action: notify.mobile_app_your_phone
    data:
      title: ウォッチのバッテリー低下
      message: "ウォッチのバッテリーは {{ states('sensor.amazfit_gts_4_battery') }} % です。"
mode: single

numeric_state のトリガーは、しきい値を下回るたびの更新ではなく、値がしきい値をまたいだときに発動するので、通知は放電1回につき1回です。

2. 寝る前に充電

睡眠を記録したいなら、ウォッチが一晩もつ必要があります。もちそうにないときは、夜にリマインダーを送ります。

alias: 寝る前にウォッチを充電
triggers:
  - trigger: time
    at: "21:30:00"
conditions:
  - condition: numeric_state
    entity_id: sensor.amazfit_gts_4_battery
    below: 30
actions:
  - action: notify.mobile_app_your_phone
    data:
      message: "ウォッチのバッテリーは {{ states('sensor.amazfit_gts_4_battery') }} % です。今夜の睡眠を記録するために、今すぐ充電してください。"
mode: single

3. 就寝:照明を消して暖房を下げる

ウォッチが睡眠中と示し、それが10分続いたら、リビングの照明を消し、寝室のサーモスタットの設定温度を下げます。

alias: 就寝 - 照明を消す
triggers:
  - trigger: state
    entity_id: sensor.amazfit_gts_4_sleep_state
    to: "asleep"
    for:
      minutes: 10
conditions:
  - condition: time
    after: "21:00:00"
    before: "04:00:00"
actions:
  - action: light.turn_off
    target:
      area_id: living_room
  - action: climate.set_temperature
    target:
      entity_id: climate.bedroom
    data:
      temperature: 18
mode: single

時間の範囲があるので、昼寝で家中が消えることはありません。時間の条件では、深夜0時をまたぐ範囲も問題なく使えます。for: の10分で、ソファでの短いうたた寝は除外されます。状態が Home Assistant に届くのは次の更新のときなので、実際の遅れは設定した間隔に for: を足した時間になることを覚えておいてください。

4. 起床:朝のルーティン

平日の朝に目が覚めたら、寝室のブラインドを開け、キッチンの照明をつけ、コーヒーメーカーのスイッチを入れます。1日1回だけです。

alias: 起床 - 朝のルーティン
triggers:
  - trigger: state
    entity_id: sensor.amazfit_gts_4_sleep_state
    from: "asleep"
    to: "awake"
    for:
      minutes: 5
conditions:
  - condition: time
    after: "05:30:00"
    before: "10:30:00"
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  - condition: template
    value_template: >-
      {{ this.attributes.last_triggered is none
         or this.attributes.last_triggered < today_at() }}
actions:
  - action: cover.open_cover
    target:
      entity_id: cover.bedroom_blinds
  - action: light.turn_on
    target:
      entity_id: light.kitchen
    data:
      brightness_pct: 60
  - action: switch.turn_on
    target:
      entity_id: switch.coffee_machine
mode: single

from: "asleep" が重要です。数えるのは睡眠中から起床中への実際の変化だけで、センサーが unknown や unavailable から戻った場合は含まれません。そうしないと、午前3時に朝が始まってしまうことがあります。テンプレートの条件で1日1回だけ実行されるようにしているので、6時に目覚めて二度寝し、7時にまた目覚めても、ブラインドが開くのは1回だけです。

5. 充電が終わったのに充電器の上

ウォッチは満充電なのに、まだ手首に着けていない:着け直すよう促します。

alias: ウォッチの充電完了、着け直して
triggers:
  - trigger: state
    entity_id: sensor.amazfit_gts_4_wear
    to: "not_worn"
    for:
      minutes: 45
conditions:
  - condition: numeric_state
    entity_id: sensor.amazfit_gts_4_battery
    above: 90
  - condition: time
    after: "07:00:00"
    before: "22:00:00"
actions:
  - action: notify.mobile_app_your_phone
    data:
      message: ウォッチは充電済みで、45分間手首から外れています。
mode: single

バッテリーが多いのに手首から外れているなら、たいていは充電器か机の上です。unknown も wear の有効な値で、ウォッチが判断できなかったことを意味します。Home Assistant では、データのないセンサーの「unknown」とまったく同じに見えるので、これをトリガーにしないでください。

6. 安静時心拍数がいつもより高い

安静時心拍数が普段の範囲を上回ったままのときに、控えめに知らせます。体調を確かめるきっかけであり、医療的な警告ではありません。

alias: 安静時心拍数がいつもより高い
triggers:
  - trigger: numeric_state
    entity_id: sensor.amazfit_gts_4_resting_heart_rate
    above: 80
    for:
      hours: 1
actions:
  - action: notify.mobile_app_your_phone
    data:
      message: "安静時心拍数が {{ states('sensor.amazfit_gts_4_resting_heart_rate') }} bpm で、いつもより高めです。"
mode: single

しきい値は、ご自身の履歴から決めてください。Home Assistant でセンサーを開き、数週間分を見ます。普段の安静時心拍数より10〜15 bpm 高い値が、妥当な出発点です。

7. 歩数の目標を達成

10,000歩を超えた瞬間に通知します。

alias: 歩数の目標を達成
triggers:
  - trigger: numeric_state
    entity_id: sensor.amazfit_gts_4_steps
    above: 9999
actions:
  - action: notify.mobile_app_your_phone
    data:
      message: "今日は10,000歩を達成しました。お見事です。"
mode: single

above は「より大きい」なので、9999 にしています。ウォッチが新しい日を始めると歩数はゼロに戻るので、翌日にはトリガーがまた使える状態になります。

8. 夕方の散歩のすすめ

18時30分の時点でウォッチを着けていて、歩数がまだ5,000歩未満なら、散歩を提案します。

alias: 夕方の散歩のすすめ
triggers:
  - trigger: time
    at: "18:30:00"
conditions:
  - condition: numeric_state
    entity_id: sensor.amazfit_gts_4_steps
    below: 5000
  - condition: state
    entity_id: sensor.amazfit_gts_4_wear
    state:
      - worn
      - in_motion
actions:
  - action: notify.mobile_app_your_phone
    data:
      message: "今日はここまで {{ states('sensor.amazfit_gts_4_steps') }} 歩です。散歩に出かけませんか?"
mode: single

装着状態の条件があるので、ウォッチが一日中充電器の上にあった日に、しつこく通知されることはありません。歩数が少ないのはウォッチのほうで、あなたではないからです。

9. 朝の睡眠レポート

9時に、前夜の簡単なまとめを時間と分で送ります。

alias: 朝の睡眠レポート
triggers:
  - trigger: time
    at: "09:00:00"
conditions:
  - condition: template
    value_template: "{{ states('sensor.amazfit_gts_4_sleep_duration') | is_number }}"
actions:
  - variables:
      mins: "{{ states('sensor.amazfit_gts_4_sleep_duration') | int(0) }}"
  - action: notify.mobile_app_your_phone
    data:
      title: 昨夜の睡眠
      message: >-
        {{ mins // 60 }} 時間 {{ mins % 60 }} 分、
        睡眠スコア {{ states('sensor.amazfit_gts_4_sleep_score') }}。
mode: single

睡眠スコアと睡眠時間は、ウォッチ自身の睡眠のまとめに従い、ウォッチが独自のタイミングで更新します。目が覚めた瞬間にトリガーするより、起きてから十分たった決まった時刻にレポートするほうが確実です。

10. ストレスの多い夜:落ち着いた照明に

夜、在宅中にストレス値が15分間高いままなら、リビングを落ち着いたシーンに切り替えます。

alias: ストレス高め - 落ち着いた照明
triggers:
  - trigger: numeric_state
    entity_id: sensor.amazfit_gts_4_stress
    above: 75
    for:
      minutes: 15
conditions:
  - condition: state
    entity_id: person.you
    state: "home"
  - condition: time
    after: "17:00:00"
    before: "23:00:00"
actions:
  - action: scene.turn_on
    target:
      entity_id: scene.living_room_calm
mode: single

在宅の判定はウォッチではなく person.you から取得します。for: の15分は、値が複数回の更新にわたって高いままである必要があることを意味し、階段を上ったあとの一時的な上昇は除外されます。

タイミングについての注意

上のオートメーションはどれも、Home Assistant がスマートフォンから受け取った状態に反応します。間隔が5分なら、ウォッチでの変化が届くまで最大5分かかり、for: があればその時間がさらに加わります。数分の遅れが問題にならないオートメーションを選んでください。眠ったあとの照明ならよいですが、家を出たときのアラームには向きません。

ダッシュボードのアイデア

ウォッチセンサーは通常の Home Assistant のセンサーなので、標準のカードはどれでも使えます。見やすいレイアウトをいくつか紹介します。

  • スマートフォンのダッシュボードの上部にウォッチのカード: battery、wear、sleep_state を タイルカード(Tile card)で横に並べます。
  • ゲージでバッテリー: battery に ゲージカード(Gauge card)を使い、深刻度の色を設定します。たとえば20未満は赤、40未満はオレンジです。
  • 1日の心拍数: heart_rate と resting_heart_rate を24時間分表示する 履歴グラフカード(History graph card)。
  • 1日あたりの歩数: steps に 統計グラフカード(Statistics graph card)を使い、期間を日ごと、統計を「変化量」にします。1日ごとのカウンターが total_increasing の状態クラスを使っているので、これが機能します。
  • 一晩を1行で: sleep_score、sleep_duration、spo2 を並べた エンティティカード(Entities card)。
  • 手首の気象台: 気圧計を搭載したウォッチなら、pressure を2〜3日分表示する 履歴グラフカード で、天気の変化に伴う傾向がわかります。

睡眠時間は分単位で届きます。ダッシュボードで時間単位にしたい場合は、テンプレートセンサーを追加します。設定 › デバイスとサービス › ヘルパー › ヘルパーを作成 › テンプレート › Template a sensor(センサーのテンプレート)に進み、次の状態テンプレートと、単位に h を設定します。

{{ (states('sensor.amazfit_gts_4_sleep_duration') | float(0) / 60) | round(1) }}

できないこと

ウォッチセンサーは、数分待てるオートメーションに役立ちます。専用のセンサーの代わりにはならず、頼る前に知っておきたい制限が3つあります。

即時ではありません。 更新は、アプリを開くたびと、そのあとは1〜6分の設定した間隔で届きます。ウォッチでの状態の変化が Home Assistant に届くまでにそれだけの時間がかかり、スマートフォンが範囲外にある、Zepp アプリが閉じている、省電力モードがオンになっている場合は、さらに長くかかります。バックグラウンド更新は、バックグラウンド活動 の許可にも左右されます。

在宅検知のセンサーではありません。 18種類のセンサーのどれも、居場所は示しません。wear が示すのはウォッチが手首に着けられているかどうかで、誰の手首か、どの家かではありません。更新にはスマートフォンが近くにある必要がありますが、それはあなたが自宅にいるかどうかについて何も示しません。在宅検知には、スマートフォン、人物エンティティ、部屋のセンサーを使ってください。

医療データではありません。 心拍数、血中酸素、ストレス、体温は、ウォッチ自身のセンサーによるものです。傾向をつかんだり、控えめな通知に使ったりするのには向いていますが、診断や、健康を左右するようなアラームには向きません。特に血中酸素は、ウォッチが最後に測定した値で、数時間前のものかもしれません。

データはあなたのものです。 測定値はウォッチから Bluetooth でスマートフォンへ、スマートフォンからご自身の Home Assistant へ送られます。AmazHA には、アカウントも、利用状況の分析も、独自のサーバーもなく、健康データが開発者や第三者に送られることはありません。Home Assistant では、ほかのセンサーと同じように、ご自身の保存期間の設定に従って保存されます。どのセンサーもオンにするまではオフなので、送るのは自分で選んだものだけです。詳しくはプライバシーポリシーをご覧ください。

よくある質問

Home Assistant や HACS に何かをインストールする必要はありますか?

いいえ。ウォッチは Home Assistant 自身の Mobile App 連携を通じて自分を登録し、この連携は初期設定ですでに読み込まれています。HACS からインストールするものも、追加する YAML もありません。最初の送信のあと、ウォッチは 設定 › デバイスとサービス › Mobile App に表示されます。

ウォッチセンサーが AmazHA を開いたときしか更新されないのはなぜですか?

バックグラウンド更新には、ウォッチの バックグラウンド活動 の許可が必要です。次にアプリを開いたときにウォッチが表示するリクエストを承認するか、ウォッチ本体の設定(アプリ権限 または プライバシー、続いて AmazHA)から手動で許可してください。Home Assistantに送信 を一度オフにしてからオンに戻すと、ウォッチがもう一度確認します。チュートリアル9のステップ6をご覧ください。

センサーはどれくらいの頻度で更新されますか?

ウォッチで AmazHA を開くたびに更新され、そのあとは 更新間隔 で設定した間隔でバックグラウンドで更新されます。間隔は1〜6分で、初期設定は5分です。アプリを開いている間も、同じ間隔で送信し続けます。Home Assistant と通信するのはスマートフォンなので、スマートフォンが近くにあり、Zepp アプリが動いている必要があります。

エンティティ ID はどうなりますか?

どのセンサーも sensor.<prefix>_<key> になります。例:sensor.amazfit_gts_4_battery。接頭辞は エンティティ接頭辞(任意) に入力したもので、空欄にするとウォッチの名前になります。ウォッチセンサー の画面では、各センサーの下に正確な ID が表示されます。あとから接頭辞を変更すると、新しい ID を持つ2つ目のデバイスが作成されます。

ウォッチを在宅検知のセンサーとして使えますか?

いいえ。18種類のセンサーのどれも居場所を示すものではなく、更新もせいぜい数分ごとです。在宅検知にはスマートフォンや人物エンティティを使い、ウォッチは睡眠、装着状態、アクティビティ、そして自身のバッテリーといった得意な分野に使ってください。

無料版でも使えますか?

いいえ。ウォッチセンサーは、ご自身の Home Assistant への接続と同じく、フル版の機能です。無料版はサンプルデータによるデモです。フル版はサブスクリプションなしの一度だけの購入によるロック解除です。

血中酸素、ストレス、体温がいつまでも表示されないのはなぜですか?

各センサーは、有効な測定値があるときにだけ送信されます。血中酸素、ストレス、体温は、ウォッチが実際に測定したあとに表示されます。体温はそのセンサーを搭載したウォッチでのみ、気圧と高度は気圧計を搭載したウォッチでのみ送信されます。

健康データはどこに送られますか?

ウォッチから Bluetooth でスマートフォンへ、スマートフォンからご自身の Home Assistant へ送られます。開発者や第三者に送られることはありません。AmazHA には、アカウントも、利用状況の分析も、独自のサーバーもありません。プライバシーポリシーをご覧ください。

動画で見る

この記事のもとになっている短いチュートリアルです。動画は英語ですが、各手順は日本語で読めます。

すべての記事