Home Assistant 連携

ネイティブ連携。ブローカー不要。

Car 2 Home は本格的な Home Assistant 連携を備えており、車を単なるデータの供給元ではなく、スマートホームの一員にします。HACS から入れるネイティブの Home Assistant コンポーネントとして(アプリと WebSocket で直接やりとりします)、または通常の MQTT クライアントとして動作します。どちらにも対応しているので、お使いの構成に合うほうを選んでください。

ネイティブ経路が特別なのは、センサーを公開するだけで終わらない点です。車は Home Assistant のイベントバスにイベントを流します。走行の開始、走行の終了、故障コードの検出、急加速、ECU のオンライン。つまり、しきい値をまたぐ数値ではなくその瞬間に反応する自動化が書けます。


二つの経路、同じ結果

Home Assistant 連携

HACS から入れる Home Assistant のカスタム連携です。Home Assistant が 6 桁のペアリングコードを生成するので、それをアプリに入力します。管理するトークンも、入れるブローカーもありません。通信は WebSocket で双方向です。Home Assistant はアプリを通じて車のすべてのセンサーとイベントを受け取り、アプリが接続している間は同期モードなどの設定変更や他の操作の実行もできます。

MQTT(任意のブローカー)

すでに Mosquitto、EMQX、HiveMQ などのブローカーをお使いの場合、あるいはデータを Home Assistant や Node-RED、openHAB、ioBroker などの別のツールへ流したい場合、Car 2 Home は同じセンサーを Home Assistant の MQTT 自動検出に完全対応した形で配信します。違いは、MQTT 経路が運ぶのは連続した状態であってイベントではないことです。trip_starteddtc_found のようなものはネイティブ連携にしか存在しません。


導入手順

  1. 1. HACS から入れる

    Home Assistant で HACS を開き、連携の一覧から Car 2 Home を追加して、Home Assistant を再起動します。(HACS をまだ入れていない場合は、先に hacs.xyz から導入してください。)

  2. 2. 連携を追加する

    Home Assistant で 設定 → デバイスとサービス → 統合を追加 に進み、「Car 2 Home」を検索します。Home Assistant がペアリングコードを生成します。

  3. 3. 6 桁のコードでペアリングする

    アプリの 設定 → Home Assistant → 連携 で、公開されている Home Assistant の URL とペアリングコードを入力すれば完了です。

  4. 4. 同期モードを選ぶ

    「オンライン」モードは運転中にテレメトリーをリアルタイムで送ります。「Wi-Fi のみ」モードは外出中はアプリ側にためておき、スマートフォンが Wi-Fi につながった瞬間にまとめて送ります。Home Assistant の公開 URL がない場合や、モバイル通信を節約したい場合に便利です。


何が手に入るか

ガレージの車それぞれが、Home Assistant のデバイスとして固有のエンティティ一式を持ちます。名前は car2home_{brand}_{model}_{sensor} の形で、車に愛称を付けているとそれも入るので、複数台でも衝突しません。エンティティは Home Assistant の RestoreSensor の仕組みを使い、再起動をまたいで最後の値を保ちます。エンジンを切っただけで利用不可になることはありません。

  • 標準の OBD-II センサー: 速度、回転数、冷却水温、燃料残量、スロットル開度、ラムダ、そのほか車が対応する SAE J1979 の項目。
  • メーカー・モデル固有のセンサー: ブランドやモデルごとに異なる拡張 PID を、自動で検出します。
  • 計算センサー: 燃料流量、直近 10・50・100 km の移動平均燃費、駆動輪出力、走行可能距離、走行距離。
  • 位置情報: 高度、精度、そして車両の device_tracker エンティティ。
  • TPMS: 各輪の空気圧、温度、センサー ID。
  • 診断の状態: 警告灯の点灯・消灯、故障コード数、フリーズフレーム、アダプター電圧、ECU のオンライン・オフライン、Home Assistant や MQTT との接続状態。
  • 運転の傾向: リアルタイムの安全スコアとエコスコア、急操作の回数、月次の履歴。

Home Assistant のイベントバスに流れるイベント

ネイティブ連携を特別にしているのがこれです。状態を監視し続ける代わりに、個別の瞬間を待ち受ける自動化が書けます。

  • car2home_trip_started: 走行が始まった瞬間に発火します(エンジン始動と移動)。ペイロードには車両 ID と出発地点が入ります。
  • car2home_trip_ended: 走行が終わったときに発火し、距離、所要時間、平均・最高速度、使用燃料、駐車した住所まで、走行の要約を含みます。
  • car2home_dtc_found: 診断スキャンが終わり、コードが見つかったときに発火します。ペイロードにはスキャンのモードと、確定・保留・恒久それぞれのコード一覧が入ります。
  • car2home_harsh_event: 急加速、急ブレーキ、急ハンドルを検出したときに発火します。安全運転の通知に役立ち、運転を始めたばかりの家族がいる場合はとくに有用です。
  • car2home_ecu_online / car2home_ecu_offline: ECU との接続が確立または切断されるたびに発火します。「今まさに運転中」と「駐車中」を区別できます。

自動化の例

発想のきっかけになりそうなものをいくつか。設定の全文はガイドにあります。

  • 自宅の通りに入ったらガレージの扉を開け、玄関の明かりを点ける(ジオフェンスと trip_started)。
  • 走行が終わった瞬間に、駐車した住所と地図のリンクを家族に通知する
  • スキャンでコードが見つかったら、確定・保留・恒久がそれぞれ何件かを添えてTelegram に通知する
  • 職場を出た瞬間に家を先に冷やしておく(職場のジオフェンスと trip_started)。
手順ガイド

対応環境と前提

  • Home Assistant 2024.12 以降。
  • Nabu Casa Cloud、Cloudflare Tunnel、Tailscale、あるいはすでに信頼している任意のリバースプロキシで動作します。
  • 複数台対応: ガレージの車ごとに独立した Home Assistant デバイスとして現れ、エンティティも履歴も別々です。
  • トークンは iOS のキーチェーン、Android の Keystore に保存され、アプリの設定領域には保存しません。

Matter、Apple Home、Google Home、SmartThings はどうなりますか

Car 2 Home のセンサーを Matter デバイスとして書き出す Matterbridge プラグインに取り組んでいます。実現すれば、あいだに Home Assistant を挟まずに Apple Home、Google Home、SmartThings、Alexa へそのまま現れます。続報をお待ちください。