1 ポイント 投稿者 GN⁺ 2024-07-06 | 1件のコメント | WhatsAppで共有
  • フランスの電気料金上昇により、個人の使用量に合った料金プラン選びが重要になる中、Linkyスマートメーターのデータと公開料金データを組み合わせたPython Webアプリを作成
  • Linkyメーターは契約で有効化されている場合、消費データを30分単位でEnedisに送信し、MyElectricalDataのラッパーAPIを通じて生のJSONデータを自動収集できる
  • フランスの電気料金は固定の契約料と従量料金に分かれ、Base・Peak Hours・Tempoのように時間帯と日付タイプによってkWh単価が変わる
  • アプリはMyElectricalDataやdata.gouv.frなどからデータを取得してヒートマップで表示し、SQLiteに保存した区間別消費量を使って料金プラン別の費用を比較する
  • 個人の使用量ベースでは、Tempoにより過去10か月で300ユーロ以上を節約でき、NiceGUIとSQLiteだけでもこの規模の個人分析アプリは十分に作成できた

Linkyメーターと消費データへのアクセス

  • フランスの送配電網運営組織Enedisは、2015年から従来の電気メーターをLinkyスマートメーターへ置き換えてきた
  • メーター前面のボタンで、瞬時皮相電力(VA)、累積電力消費量(kWh)などの項目を確認できる
  • 前面の通信ポートからリアルタイムデータを読み取れるが、今回の分析に必要なデータ収集には必須ではなかった
  • 契約でデータ送信が有効になっている場合、日ごとの電力消費が30分単位でEnedisに送信され、EnedisのWebサイトでも確認できる

生の消費データの収集

  • EnedisのWebサイトはチャートとフィルターを提供しているが、直接分析するには生データを受け取って処理する必要がある
  • CSVエクスポートも可能だが、毎日ログインしてダウンロードする方法は自動化に向かない
  • Enedis APIは存在するものの、フランスの公共APIと同様にアクセスするには登録済み専門家の資格が必要
  • MyElectricalDataは、Enedisデータを取得するためのラッパーAPIとして利用される
  • APIは1日分の消費データをJSONで返し、各項目は30分区間の終了時刻で識別される
    • 例: "2024-02-01 00:30:00"は2月1日00:00〜00:30の区間を意味する
    • 例の値1258は「Watt-half-hours」のように解釈され、その30分間に629Whが消費されたものとして処理される
    • 料金計算にはWh単位が必要なため、後続処理の前に値を半分にする

フランスの電気料金データと料金プラン構造

  • 電力使用量だけでは実際の費用を計算できないため、料金データも併せて必要になる
  • 公共供給事業者であるEDFの規制料金は政府が決定し、民間供給事業者の市場料金より一般的に安定している
  • data.gouv.frはフランスの公共データセットを提供しており、規制電気料金データもCSV形式で取得できる
  • フランスの電気料金は大きく2つの部分で構成される
    • 契約料: 月別または年別に定められる固定費
    • 従量料金: 特定の料金期間中に使用した電力量によって変わる変動費
  • 基本的な料金体系は使用時間と条件によって変わる
    • Base: 時間帯に関係なく電気料金が同一
    • Peak Hours: 通常06:00〜22:00の16時間がPeak、22:00〜06:00の8時間がOff-Peakで、Peak料金の方が高い
    • 電力網を通じてオフピーク時間の開始信号が送られ、給湯器のような設備が22:00に稼働するよう設定されている場合がある
    • この方式をうまく使えば、年間で数百ユーロ規模の節約が可能

Tempo料金プランの条件と価格

  • Tempoは1日をピーク/オフピークに分けることに加え、Red、White、Blueという3種類の日付タイプを適用する
  • Redの日は非常に高く、Whiteの日はBaseより安く、Blueの日はさらに安い
  • 各日の色は通常数日前に通知され、色ごとの日数は固定されている
    • Redの日は年に22日だけ可能で、冬季にのみ割り当てられる
  • 2024年2月15日時点の価格は次のとおり
    • Base: 25.16¢/kWh
    • Peak: ピーク 27.00¢/kWh、オフピーク 20.68¢/kWh
    • Tempo Blue: ピーク 16.09¢/kWh、オフピーク 12.96¢/kWh
    • Tempo White: ピーク 18.94¢/kWh、オフピーク 14.86¢/kWh
    • Tempo Red: ピーク 75.62¢/kWh、オフピーク 15.68¢/kWh
  • Tempoは平均価格だけ見ると良さそうに見えるが、冬季の暖房需要で電力網への負荷が大きくなる状況を反映した料金プランである
  • フランス本土の大半のように冬が寒く、電気暖房を使う場合、Tempoが最も高い料金プランになる可能性がある
  • ガスや木材で暖房する場合、または南部地域に住んでいる場合には、Tempoが良い選択肢になり得る

Python Webアプリの実装

  • NiceGUIを使って小さなPython Webアプリを作成
  • アプリは4つの作業を行う
    • MyElectricalData経由でEnedisの消費データを取得する
    • 複数のソースから電気料金データを収集する
    • データをヒートマップで表示する
    • 利用可能なすべての料金プランを比較し、最も安い料金プランを確認する
  • 消費データは毎晩更新され、N日のデータは通常N+1日の未明01:00〜02:00にEnedisで利用可能になる

SQLiteの保存構造と計算

  • APIが毎日JSONを返すため、アプリ起動時に消費履歴全体を再取得する方式はCSVエクスポートより重い
  • 最初のプロトタイプではpickleで大きな辞書をシリアライズしていたが、保存すべきデータ量のためSQLiteへ移行した
  • 1日は30分単位の48区間に分かれ、1年は17,520区間になる
  • 各区間ごとに料金プラン別の価格も計算する必要があるため、リレーショナルデータベースのJOINがよく合っていた
  • スキーマは消費データと料金プラン別の区間データに分けて保存する
    • consumption: 年、月、日、0〜47範囲の区間番号、値を保存
    • plan_slice: 料金プランID、契約電力、Tempoの日付種別、料金期間の開始/終了、契約料、ピーク/オフピークのkWh単価を保存
  • 表示データ計算用のSQLは、UI入力と選択された料金プランに応じて動的に生成され、十分高速に動作する

分析結果とツール評価

  • 個人の使用量ベースではTempo料金プランが最も安かった
  • 過去10か月間でTempo料金プランにより300ユーロ以上を節約した
  • 電気ヒーターを数日つける必要があり、Redの日も多かった1月でも、BlueとWhiteの日がRedの日を補い、月全体ではBaseより安かった
  • NiceGUIはPython Webアプリを作るのに便利で、ネイティブモードがあるためElectronに似たクロスプラットフォームのデスクトップアプリフレームワークとしても使える
  • 組み込みコンポーネントが優れており、必要に応じてネイティブのQuasar機能を使うことができた
  • SQLiteもこのような単純なユースケースでは扱いやすかった
  • コードはGitHubで公開されている
  • フランスの読者向けの別のオープンソースツールとしてcomparateur-abonnements-electriciteがある
    • コードはEDF_Simulateur_Prixにある
    • CSVエクスポートを基に、フランスの複数の電気契約料金プランを比較し、各料金プランで支払ったはずの総額を計算する
    • 作者のツールより多くの料金プランをサポートするが、作者のツールは日常的な消費分析により重点を置いている

1件のコメント

 
GN⁺ 2024-07-06
Hacker Newsのコメント
  • カナダのオンタリオ州でもスマート電力量計を大規模に導入したが、人々がピーク時間帯の使用を大きく移したわけではなく、投入コストが正当化されたかも微妙だった。
    使用量の少ない世帯でも実装コストは同じくらいかかり、習慣の変化で得られる収益は徐々に小さくなる。
    https://www.auditor.on.ca/en/content/annualreports/arreports...
    コンドミニアムやアパートのような小規模住戸へのサブメータリングも推し進めたが、借主や居住者が設備や使用量をコントロールできる余地はあまりない。
    むしろ所有者や建設会社が電気料金を直接払わないため、効率の低い設備を入れるインセンティブが強まる。
    実際には、ごく安いLED、リノベーション支援、家電の効率改善といった戦術のほうが効果的だったし、テレビやコンピュータの消費電力も昔の一部にすぎず、アダプタも今ではほとんどがスイッチング電源になっている。
    料金が安いときに超低温で動かし、高いときに抑える「スマート冷蔵庫」はまだ見つけられていないし、節約のために電気をより使うというのは矛盾のように見えても正しい話だ。
    通信事業者が強制的に使わせる顧客宅内機器の効率にも注意を払うよう、圧力をかけてほしい。

    • スマートメーターの長期的な核心は、需要削減そのものというより、動的な電気料金プランを可能にし、人々が安い時間帯へ負荷を移すよう促すことに近い。
      英国にはすでにそうした料金プランがあり、価格差はかなりはっきりしている: https://agileprices.co.uk/
      再生可能エネルギーのために卸価格が大きく変動している今、単一料金制や単純な昼夜別料金制は非常に古い方式に見える。
      電気がかなりの時間、無料またはマイナス価格になり、別の時間帯にはずっと高くなる方向に進んでいる。
      ただ、消費者がバッテリー購入以外に何をできるのかはよく分からない。
      数ドルを節約するために夕食を3時間早めたり遅らせたり、真夜中に洗濯する人は多くないだろう。
      冷暖房は電力使用量が大きいので、特定の時間帯に減らす価値はありそうだ。
      収益になる領域は、電気を大量に使いながらオン・オフできる安価な産業プロセスで、例えば稼働時間を25%だけにするようなものだ。
      設備と人員を遊ばせておく資本・運用コストが大きく難しいが、エネルギー削減幅が非常に大きいので、最終的には何かが出てくるはずで、水素電解が候補になり得る。
    • 冷蔵庫より大きな規模では、すでに熱貯蔵を活用する方式がある: https://home.howstuffworks.com/green-living/ice-block-ac.htm
      Ice EnergyのIce Bearは夜に氷を作り、昼はその氷で冷媒を冷やして、ピーク時間帯にエネルギーを多く使う凝縮器の稼働を減らすよう設計されている。
      Stanfordも駐車場の下に400万ガロンの水タンクと360マイルの配管を備え、夜にアンモニア冷媒で氷を作り、正午から午後6時までキャンパスの冷房に使っている。
      1999年に2,200万ドルを投じて現在の形に改修し、年間約50万ドルの電気料金を削減しているという。
    • フィンランドでは2022年から電力使用を調整してピーク需要を移す人が増えたが、スマートメーターはほぼ20年前から設置され始めていた。
      主な目的は、消費者のデマンドレスポンスよりも検針訪問を減らすことに近かったと思う。
      適応には時間がかかるし、動機づけになるほど極端な価格変動も必要だ。
      市場価格を基準にデマンドレスポンスを自動化するツールも必要で、今ではヒートポンプやEV充電器を最も安い時間帯に動かすよう設定できる。
    • 熱容量をバッテリーのように考えると筋が通る。
      Technology Connectionsもエアコンをそのように使うと言っており、一晩中強めに回して家をより冷やしておき、昼間はあまり無理せず持ちこたえられるようにする。
    • スマートメーターは複数の目的を達成し、最も宣伝しやすかったのは時間帯別電気料金だった。
      オンタリオ州の配電会社は時間帯と価格を非常に明確に示しており、ピークは約CAD 0.18/kWh、オフピークはCAD 0.11/kWhで、50%以上の差がある。
      問題はオンタリオ、ケベック、マニトバ、ブリティッシュコロンビアの電気が生活水準に比べて安く、より効率的に使おうというインセンティブが弱いことだ。
      節約額が努力に見合うほど大きくない。
      スマートメーターは検針を迅速化し、人々が正確にいつ電気を使っているかというデータを集めるためにも設置された。
      配電システムは受動的なので、電力網の運用者は複数の場所や時間帯で何が起きているのかをほとんど把握できない。
      スマートメーターは、別の計画や事業を可能にする基盤技術だ。
      Hydro-Québecはリアルタイムの電力使用量を見られるようにしているが、2011年型の私のメーターでも可能なのに、配電会社が復号鍵を共有してくれない。
      電気の使用習慣を大きく変えられないとしても、赤字事業とはほど遠く、投資価値は十分にある。
  • 数年前にフランスのLinkyでプロジェクトをしたことがあり、ESP8266が下部の露出ポートのシリアルデータストリームを読み取り、ローカルサーバーのInfluxDB時系列データベースに記録し、Grafanaダッシュボードで指標を見ていた。
    シリアルポートが標準的ではなかったため、7ビット、パリティなし、ストップビット1個といった設定を追う必要があり、ESP8266用のレベルシフティング回路も少し必要だった。
    結果として約1秒ごとに電力使用量データを取得でき、そのデータから非常に細かな分析が可能になった。
    こうしたデータを使うシステムのサイドチャネル攻撃を説明するとき、この話をよくする。
    しばらく観察していると、電力の過渡変化と各機器のオン・オフに伴う量子化された変化から、家の中のどの階に人がいるか分かった。
    例えばキッチンの電気ケトルは常に1220±5Wを使い、家の中の他のものはその大きさの段差変化を生まない。
    最上階の寝室の照明は正確に42Wを使い、洗濯機は非常に特定の立ち上がりパターンで始まった後、30秒周期で2つの電力レベルの間を行き来する。
    家全体の総電力という数字が1つあるだけでも、時間分解能が十分に高ければ、人の移動や行動をかなり多く知ることができる。

    • 実際、周囲でLinkyを嫌がっていた人の大半は、「Bill Gatesの邪悪な5G Wi-Fi電波が脳を焼く」といった話ではなく、プライバシー侵害を心配していた。
    • ここに水使用量とインターネット使用量の細かな分解能まで加われば、本人よりもその人について多くを知ることになるだろう。
  • フィンランド、おそらく他の北欧諸国でも、ユーザーが自分でデータを取得できる P1ポート 付きのメーターが登場し始めている
    RJ26ケーブルとESP8622、少しのesphome設定だけで、4秒ごとにメーターからさまざまなデータを受け取れている
    総使用量、現在の使用量、各相ごとの電流と電圧などを確認できる

    • ドイツには赤外線の単方向接続である SMLプロトコル がある
      Raspberry Pi Zero WHにイーサネットHATとUSB赤外線リーダーケーブルを取り付けてスマートメーターに接続し、Piがすべての値を読み取ってMQTTでInfluxDB 2.0へ送信している
      InfluxDBはProxmox上で仮想化して動かしている
      同時に太陽光インバーターも「Solaranzeige」というオープンソースでModbus TCP経由で同じInfluxDBに記録し、Grafanaで可視化している
      7年以上問題なく動いている良いスタックで、電力使用をよりよく理解するのに役立っている
    • このポートとプロトコルはオランダで始まり、EU全域で広く実装されつつある
      最近のバージョンではポートがESP用の電力まで供給してくれるので、メーターの場所が屋外でも電源をどう引くか心配しなくていい点がとても良い
    • フィンランド南東部の電力会社が来春、P1メーター を無料で新規設置する予定
      双方向なので太陽光を電力網へ送電する準備もできている
      大都市圏からかなり離れた場所なので、全国的な交換である可能性がある
    • ドイツでは光UARTで1秒ごとにデータを受け取っている
  • 古い電力量計でも1分ごとに電力使用量を Google Sheets に送っている
    ESP32とごく基本的な光センサーを使い、センサーを1000th/kW LEDの上にブル・タックで貼り付けた
    このLEDは電気を1単位使うごとに1000回点滅し、情報はWi-FiでGoogle Sheetsに送られる
    時間ごとの合計も無期限に記録しているが、Google Sheetsが文句を言うまでは続くだろう

    • こういうLEDが単純な電力量計によくある機能なのか気になる
      以前から古いメーターからデータを取り出したかったので、もっと知りたい
  • 英国では多くの顧客が スマートエネルギーメーター を持っており、Octopusはデータ好きや節約したい人たちのためにそれを非常にうまく活用しているエネルギー供給会社
    データはAPIを呼び出して30分単位に分かれた日別使用量を取得でき[0]、Webサイトのエネルギー使用セクションからCSVファイルとして直接ダウンロードすることもできる
    APIデータは1日1回しか更新されないが、Octopusが無料で提供する小さな追加デバイス[1]を使えばリアルタイム使用量にアクセスできる。おそらく10秒ごとに更新される
    これらすべてのデータをHome Assistant連携でリアルタイムに収集している
    スマートメーターを活用するため、価格が動的に変わる複数の料金プランもある
    最も単純なTracker[2]は卸売価格に応じて日ごとに単価が変わる
    Agile[3]は同じ考え方だが30分ごとに価格が変わり、高値はより高く安値はより低いので、ピーク外へ使用量を移せるなら良い
    「インテリジェント」な料金プランもあり、Octopusが車の充電器[4]や家庭用バッテリー[5]を制御することを許可すると、最も安い時間帯に充電してくれる
    Octopusは英国で本当にうまくやっており、Kraken[6]という名前で、それまで石器時代に留まっていた他のエネルギー会社にも バックエンドサービス を販売している
    [0] https://developer.octopus.energy/docs/api/
    [1] https://octopus.energy/blog/octopus-home-mini/
    [2] https://octopus.energy/smart/tracker/
    [3] https://octopus.energy/smart/agile/
    [4] https://octopus.energy/smart/intelligent-octopus-go/
    [5] https://octopus.energy/smart/intelligent-octopus-flux/
    [6] https://kraken.tech

    • Octopusは現在フランス進出を試みている
      ピンク色のマスコットだけが目立ち、何を売っているのかはよく分からない、かなり驚くような広告キャンペーンを展開している
      フランスではEDFの代替供給会社の評判は非常に悪い
      契約が不明瞭で、ウクライナ戦争後のように価格が大きく変動することもある
      中には高齢者をだまして契約を切り替えさせる悪質な営業担当者を使うところもあり、Total Energyが思い浮かぶ
      大半はEDFからMWhを買って転売し、将来の発電契約に投機するだけで、発電設備には1ユーロも投資していない
    • Octopusの創業者はソフトウェア出身で、エネルギー会社Octopusは当初、その ソフトウェアの潜在力 を示すためのデモだったと主張したことがある
  • 夜10時から朝7時ごろまで電気温水器を切る方法があるとよさそう
    誰も必要としていない時間に水をずっと熱いまま保つ理由はなさそうだし、温度を維持するより再加熱するほうがエネルギーが少なくて済むことも分かっている
    温度はすでに可能な限り低くしてある

    • 電気工事士にそういう箱を作ってもらったが、出来上がりはとても単純で、手先が器用なら自作もできそう
      構成はプログラム可能なタイマー照明スイッチ https://leviton.com/products/vpt24-1pz と120V制御コンタクタ
      正確なモデルは分からないが、おそらく https://ca.rs-online.com/product/eaton-cutler-hammer/c25bnb2... だと思う
      箱には240V回路と120V回路が入り、120V回路はプログラム可能なタイマー照明スイッチにつながり、その後コンタクタの制御入力へ続く
      240Vラインはコンタクタに入り、反対側から箱を出て温水器へ向かう
      私の場合、平日の午後4時から夜11時まで温水器を切るよう設定し、ピーク時間帯料金を避けている。たいていその時間帯にシャワーを浴びる
      必要なら箱を開けてタイマースイッチを押し、プログラムを一時的に無視できる
      ただし、費用に見合う価値があるかを示す測定値はない
      それでも、夜11時に温水タンクがオンになるタイミングは、時間別の電力使用量にはっきり現れる
    • 本当にそうだと確信している? 水の熱容量は大きいし、理論上タンクは十分に断熱されているはず
    • 240Vの温水器が40A以下のブレーカーにつながっているなら、この製品が合いそう: https://www.intermatic.com/Catalog/us/Products/Timer-Control...
      240Vで40Aを超えるなら、120Vの天文時計スイッチを買い、その出力を温水器の容量に合ったコンタクタの120V制御コイル入力として使えばよい
    • こういう用途向けのタイマー装置がある
      一般には、細菌を殺し増殖を防ぐのに十分なほど水を熱く保っておくのがよい
    • AliExpressで買った8ドルのプログラム可能なプラグ式タイマースイッチで、まさにそれをやっている
      ただし、一人暮らしのときだけ役に立つ
      彼女と一緒に住むなら、給湯をいじるのは絶対に禁止
  • Tesla Powerwallの電力消費データを表示する、かなり良いGrafanaベースのUIを使っている: https://github.com/jasonacox/Powerwall-Dashboard
    室温とエアコンの動作も一緒に見ている: https://github.com/cdzombak/ecobee_influx_connector
    ここにChargePoint Home経由で車両充電データも追加する予定
    こうしたプロジェクトにはGrafana+Influxの組み合わせが適していると思う

    • ChargePointにはアクセス可能なAPIがある?
  • 数年前にSense電力メーターを設置したが、とても満足している
    設定して慣れ、複数の機器を検出するまでには少し時間がかかったが、今では次の電気料金をかなり安定して予測でき、必要なら調整できる
    最も役に立つのは電力消費の上位機器を表示してくれる点で、それを注意深く見ながら料金を少なくとも1/3削減した

  • 接続型メーターに対する恐怖や論争は、大企業による「監視」というより、遠隔で顧客の電気を切ったり制限したりできる点や、第三者が家族の生活パターンを把握して窃盗などに悪用できるのではないかという懸念に近かった
    家の中に入らずメーターを読むことは、すでに「telereport」で解決済みの問題だった
    これは集合住宅の玄関や住宅の出入口近くの箱のような共用場所まで伸びる小さな専用有線バスで、ローカル検針が可能だった
    この方式でも、制限・遮断のような追加機能なしに遠隔データ送信はできた
    同じような理由で、IVRE規格、つまりバッテリー電気自動車の家庭充電でも論争がある
    規格は電力網の必要時に負荷を切れる一種の遠隔制御を求めているが、自家消費型の家庭用太陽光を持つ少なくない人たちまで一緒に遮断され得ることを考慮していない
    電力網に吸収される負荷を分析せず、「電力網に負担がかかったらこれを実行せよ」という形だ
    Enedisのウェブサイトが良いという評価も論争的だ
    著者の作業を貶めるつもりはないが、モニタリングは行動に移せるときだけ有用だと思う
    太陽光と制御可能な家電があればよいが、実際に太陽光が利用できるときに動くよう設計された家電はほとんどなく、そう主張する製品の99%も同様だ
    真っ先に思い浮かぶのは家庭用温水器で、HA/Shellyなどで負荷を移すよう制御できる。場合によっては電力を突然切り、太陽光が十分なときに再投入する程度だ
    次は食洗機と洗濯機にあらかじめ入れておき、「指定した日時までに、できれば太陽光電力で実行」させること
    こうした自動化は家電設計に含めれば技術的には非常に単純で安価だが、今のところほとんど誰もやっていないようだ
    一方で、義務的なモニタリングや公開モニタリングソリューションはますます推し進められている
    個人的には太陽光があるのでできるだけ負荷を移そうとしているが、本当に難しく、ほとんどはHAに接続したスマートスイッチのレベルにとどまっている
    食洗機や洗濯機をハックすることはできる。単純な機器なので制御部を見て、Raspberry Pi ZeroのようなデバイスのGPIOで再現すればよいが、機器ごとに制御方式が異なり、買い替えるたびにやり直す必要がある長くて面倒なプロセスだ
    標準がない

  • Nestサーモスタットで室内温度とエアコン設定を、天気情報で屋外温度を追跡するプロジェクトをやったことがある
    夜になると、外気温が目標温度より低くなっているのに、エアコンを回し続けていることが多いと分かった
    そのおかげで窓を開けたほうがいいと分かり、電力使用量の変化を追跡する方法はなかったものの、ずっと多くの新鮮な空気を取り込めるようになって満足だった
    GoogleがNestを買収してAPI認証方式を変えたことで動かなくなり、新生児がいたので新しいAPIに対応する時間が取れなかった
    今年の夏にまた復活させるかもしれない

    • 自分も同じミスをしていた
      もう一つは、暖かい空気が隅にたまることがあるので、ファンの向きを逆に回したり、ファンを隅に向けたりすると役に立つ