モデルYLをHome Assistantに繋いだ|自宅充電自動化⑦

Tesla Model YL

 

当ブログではアフィリエイト・Google AdSenseによる広告を掲載しています

ラズパイに入れたHome Assistantで、家の消費電力と買電・売電が見えるようになりました。次はクルマの番です。

私は完全な文系人間です。APIもOAuthも公開鍵も、言葉として聞いたことがあるだけで中身はさっぱり分かりません。

なので今回は、設定のほとんどをClaude Codeにやってもらいました。私がやったのは、画面を見て「これでいい?」と聞くことと、最後にスマホで承認ボタンを押すことくらいです。

夜11時すぎに始めて、終わったのが0時10分。約1時間で、パソコンからモデルYLの車両情報が取れるところまで来ました。

太陽光の自家消費より夜間電力が得?はぴeタイムRの実質単価を比較
関西電力はぴeタイムRで太陽光の自家消費と夜間電力を比較。燃料費調整・再エネ賦課金・政府補助金・電化割引をこみにした実質単価を2025年から月別にグラフ化。2026年夏は夜間が売電19円を下回り、夜に買うほうが得でした。
スポンサーリンク

テスラの開発者アカウントを作る

車両の情報を外から取るには、テスラの開発者ポータルでアプリを登録して、Fleet APIというものを使えるようにする必要があるそうです。

登録の種類は「個人用」

テスラ開発者ポータルのフリートAPIアプリケーション作成画面で登録の種類に個人用を選択

個人用か法人用かを選ぶところから始まります。ここは迷いません。

アプリの説明と利用目的を書く

アプリケーション名と説明、利用目的を入力したテスラ開発者ポータルの画面

アプリ名を決めて、説明を150字以内、利用目的を1000字以内で書きます。

この文面はClaudeが用意してくれたものをそのまま貼りました。「太陽光の余剰電力に合わせてEV充電を最適化するための、個人利用の読み取り専用アプリ」といった感じの文章です。

自分で書けと言われたら、たぶんここで諦めていました。

許可するURLを入れる

OAuth付与タイプの選択と許可された送信元URL・リダイレクトURIの入力画面

OAuth付与タイプは「認証コードおよびM2M」、リダイレクトURIには https://my.home-assistant.io/redirect/oauth を入れます。

ここは言われるがままで、何をしているのかは正直まだ分かっていません。

スコープ選びで方針が変わった

車両情報・車両の位置・車両充電管理・エナジー製品情報にチェックを入れたスコープ選択画面

どのデータにアクセスするかを選ぶ画面です。

もともとは読み取りだけのつもりでした。車両情報と車両の位置、この2つだけ取れれば充電の制御は充電器側でできる、という設計だったからです。

車両充電管理は、将来クルマ側の充電操作も使うかもしれないと思って選びました。エナジー製品情報は、いずれPowerwallをつけるかもしれないと考えて追加したものです。車両のロック解除などに使う「車両コマンド」は選んでいません。

そうしたらClaudeから「利用目的に読み取り専用と書いてあるので矛盾します」と指摘されて、前の画面まで戻って文面を書き直すことになりました。

このときの何気ないひと手間が、最後にちょっとした場面を連れてくることになります。

「オプション」と書いてある請求先が必須だった

支払方法にVISAを登録し請求限度額をカスタム制限1000円に設定した画面

次が請求先の入力です。ステップ名にはっきり「請求先詳細(オプション)」と書いてあります。

カードを登録せずに進みたかったので「カードいれずにスキップして送信でいい?」と聞いてみました。

いったんは「大丈夫です」という話だったのですが、調べ直したうえで訂正が返ってきました。テスラの説明では、支払方法を設定していないアプリや請求限度額を超えたアプリは無効になります。初期の請求限度額も0です。

画面の情報ボックスにも、請求限度額が0のままだと使えない旨が書いてありました。Home Assistantの案内では請求先登録を「後からでも可」としていますが、この時点で使える状態まで進めたかったので、私はカードを登録しました。

個人利用向けには月10ドル分の割引があります。ただ、使い方次第でそれを超える可能性はあるので、万一に備えて請求限度額をカスタム制限の1000円にしておきました。請求額が必ず0円になる、という意味ではありません。

作成したアプリが適用中の状態で開発者ポータルに表示されている

送信すると、アプリが「適用中」になりました。ここまでで17分です。

Home Assistantと繋ぐ

ここからはHome Assistant側の作業です。

統合を追加してClient IDを入れる

Home Assistantの統合追加画面でTesla Fleetを検索した結果

設定からデバイスとサービスを開いて、統合を追加でTesla Fleetを選びます。Tesla PowerwallやTesla Wall Connectorも候補に並んでいました。

開発者ポータルの認証情報画面。顧客IDと顧客機密はモザイクで伏せている

Client IDとClient Secretは開発者ポータルの詳細画面からコピーします。ここに写っている2つは念のため隠してあります。

テスラのアカウント連携画面で4つのアクセス範囲を許可する

テスラ側の認可画面です。さっき選んだ4つのスコープがそのまま並んでいます。

My Home Assistantを経由する

My Home AssistantにインスタンスのURLを入力する画面

認証のあと、自宅のHome Assistantに戻ってくるための橋渡しの画面が出ます。インスタンスのURLを入れてSaveです。

Home Assistantにアカウントを連携するかを確認するダイアログ

私が入力したのは自宅LAN内のHome AssistantのURLです。そのため、このときは自宅のネットワークに繋いだ状態で作業しました。

公開鍵を自分のサーバーに置く

Tesla Fleetのドメイン登録ダイアログに自分のドメインを入力する

ここが今回いちばん「これは無理だ」と思ったところです。

公開鍵という文字列を、自分が持っているドメインの決まった場所に置かないといけません。私の場合はこのブログのドメインでした。

ConoHaのファイルマネージャーで公開ルートを開いた状態。well-knownフォルダは存在しない

レンタルサーバーの公開ルートを開いてみると、置くべき場所そのものがありません。フォルダから作る必要があります。

ConoHaのファイルマネージャーでwell-knownフォルダを作成しているところ
well-knownの中にappspecificフォルダができた状態のディレクトリツリー

私がやったのは、レンタルサーバーの管理画面にログインしたことだけです。

Claudeがブラウザを操作してConoHaのファイルマネージャーにフォルダとファイルを作っている画面

そこから先は、Claudeが自分でブラウザを動かしてフォルダを2つ作り、ファイルを1つ置きました。3分34秒です。

画面の右側に「well-knownを作成しました」「appspecificも作成できました」と作業のログが流れていくのを、私はただ見ていました。

公開鍵のPEMファイルの中身をファイルマネージャーの編集画面で保存する

中身はこういう文字列です。公開鍵は人に見せてもいいものだそうなので、そのまま載せています。

仮想キーの承認が必要

ドメインの登録が通ると、スマホのテスラアプリに通知が来ました。

テスラアプリで第三者に車両へのアクセスを許可するか確認するダイアログ

「第三者に車両へのアクセスを許可しますか?」

承認をおしていいのかなと、一瞬も迷いませんでした笑。

仮想キーのペアリングが成功したことを知らせるテスラアプリの画面

押したら成功しました。

Home AssistantのTesla Fleet連携は、コマンドの署名が必要な車両では仮想キーの登録を案内しています。私のモデルYLでも、設定の途中でテスラアプリから承認しました。

選んだ「車両充電管理」の権限には、充電の開始・停止などが含まれます。ただし、私はここで実際に車両へコマンドを送るテストはしていません。「車両コマンド」は選んでいないので、ロック解除やリモート起動まで許可したわけではありません。

すごいなと思う反面、ちょっと怖くもあります。

私はこのまま有効にしておくつもりです。今のところ外での無料充電がメインなので出番は少ないのですが、いずれガレージに充電器を増やしたときには、車両側から充電電流を制御する必要が出てくるかもしれません。

真似される方は、許可する範囲と、あとで連携を解除する方法を先に確認しておいたほうが安心だと思います。

宮崎スーパーチャージャーは25%まで250kW|九州旅行2日目・充電編
モデルYLで宇佐から宮崎へ264km。宮崎スーパーチャージャーは残量25%まで250kW級が続き、23分で7%から60%まで充電。宿のデスティネーションチャージャーは電流が12Aから48Aまで変動したので15Aに固定しました。

後日、Home Assistantに並んだ車両情報

ここからの5枚は、設定をおえてHomeAssistantに整えて並べてもらったスマホでみた画面です。

Home AssistantのModel YL欄に、残量58%、航続距離326.1km、ケーブル未挿入、充電オフが表示された画面

モデルYLの欄に、残量、航続距離、ケーブルの状態、充電中かどうかが並びました。これで「パソコンから車両情報を取れた」だけでなく、普段見るHome Assistantの画面にも表示できています。

Home Assistantに作ったEV SoCの残量履歴グラフ

「EV SoC」は私のHome Assistantで作ったTemplateセンサーです。Tesla Fleetの車両データを、充電制御で使いやすい名前にそろえています。画面の履歴は9月24〜26日のもので、下に見える58%は撮影時の値です。

Home Assistantに作ったEV At Homeの在宅判定の履歴

「EV At Home」もTesla Fleetがそのまま返す項目ではなく、Home AssistantのTemplateで作った在宅判定です。外出と帰宅の時間帯が分かるため、細かい活動時刻は画像から外しました。

Tesla Fleet連携のModel YL充電制限が85%になっている画面

これに対して「充電制限」は、Home Assistant上でTesla Fleet統合のモデルYLデバイスに紐づく項目です。撮影時は85%でした。充電制限の表示があることと、今回その値をHome Assistantから変更して車両で動作確認したことは別です。この記事では後者のテストはしていません。

Home Assistantの手入力ヘルパーEV Battery kWhに87kWhを設定した画面

最後の「EV Battery kWh」はFleetから取得した電池容量ではありません。私がHome Assistantに作った手入力のヘルパーで、いまは計算用に87 kWhを入れています。モデルYLの公式な電池容量を示す数字ではないので、車両データと混ぜないようにしています。

まとめ

1時間たらずで、パソコンからモデルYLの車両情報を取得するところまで進みました。その後のHome Assistantの画面でも、残量や充電状態を確認できています。

自分でやった作業を数えてみると、選択肢を選んだのと、コピーしたテキストを貼ったのと、レンタルサーバーにログインしたのと、スマホで承認を押したくらいです。技術的な判断は一つもしていません。

ただ、判断はしなくても、決めるのは自分でした。スコープをどこまで許可するか、カードを登録するか、仮想キーを承認するか。分からないなりに聞いて、納得してから押す。そこだけは人任せにできない部分だと思います。

WallboxをHome Assistantから操作する話は、すでに別の記事にまとめました。今回のTesla Fleet連携は車両の情報を読むための入口です。車両情報を使った充電計算や自動制御の中身は、別の記事で扱います。

テスラを買うなら紹介リンクをどうぞ

リンク経由で注文すると、購入したかたに特典が適用されます。私への連絡は不要です。

テスラ公式サイトへ(紹介リンク)

※注文を確定する前に、特典が適用されているかご確認ください。
紹介リンクについて詳しくはこちら

タイトルとURLをコピーしました