開発者APIとオートメーション
はじめに
Netzeroでは、アプリを使ってPowerwallの設定変更(バックアップのための蓄電率、運転モード、エネルギーのエクスポート、グリッド充電)をスケジュールできます。
より高度な使い方として、アプリにはこれらの設定変更を管理できるAPIも用意されています。
APIトークン
まず、NetzeroアプリでTeslaアカウントにサインインします。「アカウント」メニュー(最後のメニュー)から「設定」>「開発者API」を選択すると、APIトークンとエネルギーサイトIDを確認できます。APIトークンは安全に保管してください。ここに表示されるデータへのアクセスしか提供しませんが、Powerwallの設定を管理する権限を与えるものだからです。
トークンは同じ画面で無効化して再生成できます。2026年7月以降に作成されたアカウントでは、開発者APIを利用するにはNetzeroのサブスクリプションが必要です。
APIリクエストによるオートメーション
curlなどのツールでWebリクエストを実行することに慣れている場合は、スクリプトで設定を管理できます。
システムの現在の設定とライブステータスを取得するには、上記で取得した$API_TOKENと$SITE_IDの値を入れて次を実行します:
export API_TOKEN="..."export SITE_ID="..."
curl -H "Authorization: Bearer $API_TOKEN" https://api.netzero.energy/api/v1/$SITE_ID/config
{ "backup_reserve_percent": 80, "operational_mode": "autonomous", "energy_exports": "pv_only", "grid_charging": true, "storm_watch": true, "percentage_charged": 70, "grid_status": "Active (on_grid)",
"live_status": { "solar_power": 4140, "battery_power": -2520, "load_power": 1620, "grid_power": 0, [...], "wall_connectors": [ { "din": "1457768-02-G--B7S12345J12345", "wall_connector_state": 2, "wall_connector_fault_state": 2, "wall_connector_power": 0 } ] }}このレスポンスには、設定値と現在の電力の両方が含まれます。アカウントにWall Connectorが接続されている場合は、車両の充電状況も表示されます。
設定を変更するには、新しい値を指定してPOSTリクエストを送信します。同じリクエストで、次のパラメーターのうち1つ以上を変更できます:
-
backup_reserve_percent:0から100までの整数値、またはバックアップのための蓄電率を現在の充電レベルに設定する文字列preserve(EVの充電中などにPowerwallが放電しないようにします)。 -
operational_mode: 次のいずれかを選択します:autonomous(節約: 電力会社の料金プランに基づいて節約額が最大になるよう蓄電したエネルギーを使用)、self_consumption(自家消費: 日没後に蓄電したエネルギーで自宅に電力を供給)。backup(バックアップモード: 詳細はドキュメントを参照)。
-
energy_exports: 次のいずれかを選択します:pv_only(太陽光発電のエネルギーのみエクスポート)、battery_ok(太陽光発電のエネルギーとPowerwallに蓄電したエネルギーの両方をエクスポート)、never(エクスポートなし)。
-
grid_charging:trueまたはfalseを選択します。 -
storm_watch:trueまたはfalseを選択して、Storm Watchへの参加を有効または無効にします(Teslaのドキュメント)。Storm Watchを利用できないシステムではnullとして報告されます。 -
off_grid_status: 次のいずれかを選択します:go_off_grid(システムを電力系統から切り離す)、reconnect_grid(システムを電力系統に再接続する)。
off_grid_statusのAPI呼び出しには、NetzeroのサブスクリプションとPowerwallのペアリングが必要です。詳細については、下記のオフグリッドの状態をご覧ください。
同じリクエストで、これらの値のうち1つ以上を変更できます。
curl -H "Authorization: Bearer $API_TOKEN" \ --json '{"backup_reserve_percent": 50, "operational_mode": "self_consumption"}' \ https://api.netzero.energy/api/v1/$SITE_ID/config
{ "backup_reserve_percent": 50, "operational_mode": "self_consumption", "energy_exports": "pv_only", "grid_charging": true, "storm_watch": true, "percentage_charged": 98, "grid_status": "Active (on_grid)", "live_status": {...}}レスポンスはGETリクエストと同じ形式で、更新後の設定(加えた変更を含む)とライブステータスが返されます。
レスポンスはTeslaが報告する設定を反映しているため、送信した値と比較して変更が反映されたことを確認してください。なお、81%-99%のバックアップのための蓄電率はTeslaでサポートされておらず、80%にリセットされます。詳細はPowerwallのバックアップのための蓄電率の更新をご覧ください。
curlの代わりにPythonコードを使用した例は次のとおりです:
import osimport requests
site_id = os.environ['SITE_ID']api_token = os.environ['API_TOKEN']config = {'backup_reserve_percent': 30, 'operational_mode': 'autonomous'}
response = requests.post( url=f'https://api.netzero.energy/api/v1/{site_id}/config', headers={'Authorization': f'Bearer {api_token}'}, json=config,)print(response.json())電力系統の状態の値
レスポンスのgrid_statusフィールドは、システムが電力系統に接続されているかどうかを示し、利用可能な場合は自立運転の状態を括弧内に示します。値には次のものがあります:
Active (on_grid): システムは電力系統に接続されています。Inactive (off_grid_intentional): システムは意図的に切り離されています(下記のオフグリッドの状態を参照)。Inactive (off_grid_unintentional): 停電によりシステムがオフグリッドになっています。Unknown (island_status_unknown): Teslaが電力系統の状態を報告しませんでした。システムによっては、電力系統が稼働している間も長期間この状態を報告することがあります。
Teslaが自立運転の状態を報告しない場合、値はActiveまたはInactiveのみになります。
オフグリッドの状態
off_grid_statusパラメーターを使用すると、プログラムから電力系統との切断と再接続を行えます。特定の時間帯にマイナスのエクスポート価格やデマンド料金を回避するのに役立ちます。
要件:
- 有効なNetzeroのサブスクリプション。
- Powerwallのペアリングが設定されていること。
例: 電力系統から切断する:
curl -H "Authorization: Bearer $API_TOKEN" \ --json '{"off_grid_status": "go_off_grid"}' \ https://api.netzero.energy/api/v1/$SITE_ID/config現在の電力系統の状態は、レスポンスのgrid_statusで確認できます。