/smartmeter-exporter

Primary LanguagePythonMIT LicenseMIT

smartmeter-exporter

Badge

  • スマートメーターから瞬時電力計測値(W)/瞬時電流計測値(A)を取得する Prometheus Exporter です。
  • この Exporter はローム社の BP35C2 での起動を確認しています。

Usage

Bルートサービスの契約

  • お住まいの地域管轄の電力会社から、上記サービスの申込を行います。
  • 申込完了後、IDが郵便、パスワードがメールで送付されてきます。

BP35C2 の準備

  1. BP35C2 スタートアップマニュアル に従って、セットアップを完了してください。
  • TeraTerm を使う部分は、 macOS であれば minicom を使うことで同等の操作が可能です。
    brew install minicom
    minicom -b 115200 -D /dev/tty.usbserial-XXXXXXXX
  • ただし、ファームウェアの更新はWindowsが必須で必要です。
    • 最近(2022/03)買った BP35C2 であれば、予め最新のファームウェアになってました。
      • そのため、Windows 環境がなければスキップしてください。
  1. BP35C2 の表示形式を変更し、16進 ASCII 表示にします(メモリに書込まれるので初回のみでOK)。
    # ROPT の結果が「00」の場合は変更しておく
    > ROPT
    OK 00
    > WOPT 01
    OK
    # TeraTerm or minicom を閉じる

起動(Python)

ソースコードを clone し、依存解決、環境変数の追加を行った後で起動してください。

# install pipenv(&python3)
brew install pipenv

# download
git clone https://github.com/legnoh/smartmeter-exporter.git
cd smartmeter-exporter
pipenv install

# config
cp example.env .env
vi .env

# exec
pipenv run main

# check
curl http://localhost:8000/metrics

起動(Docker)

# config
vi .env

# required
SMARTMETER_ID=""
SMARTMETER_PASSWORD=""

# options
SMARTMETER_DEVICE="/dev/ttyUSB0"
SMARTMETER_LOGLEVEL=10 #10:DEBUG 20:INFO
SMARTMETER_GET_INTERVAL=10
PORT=8000

# exec
docker run -p 8000:8000 --env-file='.env' --device=/dev/ttyUSB0:/dev/ttyUSB0 legnoh/smartmeter-exporter

Metrics

Name Type Desc
power_consumption_watt Gauge 瞬時電力計測値(W)
power_consumption_ampare_r Gauge 瞬時電流計測値 R相(mA)
power_consumption_ampare_t Gauge 瞬時電流計測値 T相(mA)

Appendix