auでんきの使用量をCSVにする
に公開
省エネ設備の導入検討にあたってまずは今の電気消費を把握しないと設備のグレードが決められないため、その調査をした記録です。
## auでんき
携帯電話とかauひかりで割引が効くのでauでんきを使っています。管理画面で電気の使用量などが確認できます。

グラフの元データである30分ごとの使用量の画面はあるのですが、CSV出力のようなものは提供されていないようです。
年間を通しての使用量の傾向が見たいので365日分のデータが必要ですが、画面クリック→コピーを365回やるのは辛いので↓の方法を考えました。
- WebDriverの自動操作で取得
- Web APIで取得
## WebDriverの自動操作で取得
やることは次の通りです。
- selenium-webdriverで管理画面を開く
- ログインする
- 1日分ずつデータを表示して保存する
この実装が https://gitlab.com/gjbkz/au-denki にあります。
上記のコードを動かしているのがこれです。
## Web APIで取得
WebDriverを試した後に気が付いたのですが管理画面でDeveloper Toolsを見るとデータをJSONで受けているのがわかります。
1{2 "list": [3 {4 "contractId": "K000000000",5 "consignmentDate": "20210924",6 "dailyCost": 407,7 "dailyUsage": 13.9,8 "dataType": 0,9 "halfHourlyUsages": [10 { "usage": 0.3, "status": "0" },11 { "usage": 0.1, "status": "0" },12 { "usage": 0.2, "status": "0" },13 "以下略"14 ]15 }16 ]17}
K000000000
(マスク済み)はユーザーIDでしょう。エンドポイントは次のような形式でした。
https://mieru.auone.jp/app/api/v1/dailyPowerReports/K000000000
?startDate=20210924
&endDate=20211124
&withHalfHourlyUsages=1
確認できた特徴は次の通りです。
startDate
とendDate
は2ヶ月より幅があるとエラーになる- ヘッダーに
x-evass-api:1
が必要
したがってJavaScriptコンソールで↓を実行すると効率よくデータをGETできます。
1fetch(2 'https://mieru.auone.jp/app/api/v1/dailyPowerReports/K000000000?startDate=20210901&endDate=20211101&withHalfHourlyUsages=1',3 { headers: { 'x-evass-api': '1' } },4);
WebDriverの方でデータは取得できていたのでここで手を動かすのはやめました。
## データの可視化
取得したデータをGoogleスプレッドシートに貼って条件付き書式のカラースケールで色をつけました。
- 横軸が時刻、縦軸が日付です。
- 赤色が濃いところが使用量が大きかった時間です。
- 左端の黄色は一日分での比較です。

### 考察
- 朝昼晩にピークがある。電子レンジ・トースター・ドライヤーとか?
- 冬と夏の使用量が大きい。
- 2021年8月15日前後は雨で気温が低く冷房を使わなかったことがわかる
