Zabbixによる電力使用量のモニタリング「RL7023 Stick-D/IPS」 – Debian Linuxによる自宅サーバ

自宅サーバ
自宅サーバ

RL7023 Stick-D/IPSという機器を使い、Zabbixで電力使用量をモニタリングする設定を解説したいと思います。

RL7023 Stick-D/IPS

RL7023 Stick-D/IPSはWi-SUNモジュールとして、スマートメーターに接続し、電力使用量を取得できます。

RL7023 Stick-D/IPS
https://www.tessera.co.jp/product/rfmodul/rl7023stick-d_ips.html

Amazonから入手可能です。
https://www.amazon.co.jp/dp/B08XZ6XHJJ

データの取得方法

認証IDとパスワード

スマートメーターから電力使用量を取得するには、電力メーター情報発信サービス(Bルートサービス)に申し込みを行い、認証IDとパスワードを電力会社から発行してもらう必要があります。

電力会社

北海道電力 東北電力 東京電力 中部電力 北陸電力
関西電力 中国電力 四国電力 九州電力 沖縄電力

取得プログラム

RL7023 Stick-D/IPSをサーバに接続し、データを取得できるようにします。
データを取得できるプログラムをGitHubにアップしたのでそちらを使います。

GitHub - horatjp/power-usage-logger
Contribute to horatjp/power-usage-logger development by creating an account on GitHub.

リポジトリをクローンします。

mkdir ~/power-usage-logger
cd ~/power-usage-logger
git clone https://github.com/horatjp/power-usage-logger .

必要なPythonパッケージをインストールします。

sudo apt install python3-pip 
pip install -r requirements.txt

認証IDとパスワードを設定します。

mv .env.example .env

vi .env

BROUTE_ID=
BROUTE_PASSWORD=

デバイスの設定をします。

sudo vi /etc/udev/rules.d/99-RL7023Stick.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE="0666", SYMLINK+="RL7023Stick"

反映

sudo udevadm control --reload-rules && sudo udevadm trigger

ログを /var/log/power-usage-logger に保存します。

sudo mkdir /var/log/power-usage-logger
sudo chown $USER:$USER /var/log/power-usage-logger

../logs -> /var/log/power-usage-logger

sed -i 's/\.\.\/logs/\/var\/log\/power-usage-logger/' config/logging.ini

CRONの設定を行います。

crontab -e
*/10 * * * * ps ax | grep -v grep | grep -q power_usage_logger.py || cd power-usage-logger && src/power_usage_logger.py &

確認

データがログに出力されているのを確認します。

tail -f /var/log/power-usage-logger/power_usage.log
2023-04-22 17:20:25: 瞬時電力計測値:528W 積算電力量計測値:26865.7kWh
2023-04-22 17:21:24: 瞬時電力計測値:640W 積算電力量計測値:26865.8kWh
2023-04-22 17:22:24: 瞬時電力計測値:640W 積算電力量計測値:26865.8kWh
2023-04-22 17:23:25: 瞬時電力計測値:652W 積算電力量計測値:26865.8kWh
2023-04-22 17:24:25: 瞬時電力計測値:632W 積算電力量計測値:26865.8kWh
2023-04-22 17:25:25: 瞬時電力計測値:640W 積算電力量計測値:26865.8kWh
2023-04-22 17:26:25: 瞬時電力計測値:656W 積算電力量計測値:26865.8kWh
2023-04-22 17:27:25: 瞬時電力計測値:656W 積算電力量計測値:26865.8kWh
2023-04-22 17:29:25: 瞬時電力計測値:652W 積算電力量計測値:26865.8kWh
2023-04-22 17:30:25: 瞬時電力計測値:832W 積算電力量計測値:26865.9kWh
2023-04-22 17:31:25: 瞬時電力計測値:648W 積算電力量計測値:26865.9kWh
2023-04-22 17:32:06: 定時積算電力量:26865.9kWh(2023-04-22 17:30:00) 定時積算電力量(逆方向):2.1kWh(2023-04-22 17:30:00)
2023-04-22 17:32:25: 瞬時電力計測値:648W 積算電力量計測値:26865.9kWh
2023-04-22 17:33:25: 瞬時電力計測値:644W 積算電力量計測値:26865.9kWh
2023-04-22 17:34:25: 瞬時電力計測値:676W 積算電力量計測値:26865.9kWh
2023-04-22 17:35:26: 瞬時電力計測値:644W 積算電力量計測値:26865.9kWh
2023-04-22 17:36:25: 瞬時電力計測値:692W 積算電力量計測値:26865.9kWh

Zabbix設定

Zabbix Agent

Zabbix Agentにはユーザーパラメータという、独自の監視項目を追加できる機能があります。
ユーザーパラメータに温度や湿度のデータを取得できるように設定します。

ユーザパラメータ

Zabbix Agentにユーザパラメータの設定を行います。

sudo vi /etc/zabbix/zabbix_agentd.conf.d/powerUsage.conf

UserParameter=powerUsage.instantaneous, cat /var/log/power-usage-logger/power_usage.log | grep "瞬時電力計測値" | tail -1 | sed -E 's/^.*瞬時電力計測値:(([0-9]+)(\.[0-9]+)?).*$/\1/g'
UserParameter=powerUsage.cumulative, cat /var/log/power-usage-logger/power_usage.log | grep "積算電力量計測値" | tail -1 | sed -E 's/^.*積算電力量計測値:(([0-9]+)(\.[0-9]+)?).*$/\1/g'

設定後、Zabbix Agentを再起動します。

sudo service zabbix-agent restart

ユーザパラメータ取得テスト

zabbix_agentdコマンドで取得できるか確認します。

瞬時電力

sudo zabbix_agentd -t powerUsage.instantaneous
powerUsage.instantaneous                      [t|1216]

積算電力量

sudo zabbix_agentd -t powerUsage.cumulative
powerUsage.cumulative                         [t|26868.4]

Zabbix Server

アイテムの設定

監視しているホストに消費電力・消費電力量の監視項目を追加します。
監視項目の追加は、監視ホストのアイテム作成になります。

アイテムの作成

データ収集 -> ホスト から Zabbix Serverアイテムを選択。

アイテムの作成からアイテムの追加を行います。

消費電力

Zabbixでは値が1000を超える場合、1000で除算されて表示されます。

単位がWの場合、1000は1kWの表示

単位に ! をつけることにより、除算されなくなります。

名前: 消費電力
タイプ: Zabbixエージェント
キー:  powerUsage.instantaneous
データ型: 整数
単位: !W
監視間隔: 1m

キーは、Zabbix Agentに設定したユーザパラメータを設定します。

値を設定し追加する前に、データが取得できるか確認します。
下のテストボタンからアイテムのテストを呼び出し、値の取得とテストで取得できるか確認します。

消費電力量
名前: 消費電力量
タイプ: Zabbixエージェント
キー:  powerUsage.cumulative
データ型: 浮動小数
単位: !Wh
監視間隔: 30m

キーは、Zabbix Agentに設定したユーザパラメータを設定します。

取得した値に保存前処理を行います。
取得するデータはkWhなので、乗数:1000にして単位をWにします。
また、積算なので差分を記録します。

[ 保存前処理 ]
乗数: 1000
差分

値を設定し追加する前に、データが取得できるか確認します。
下のテストボタンからアイテムのテストを呼び出し、値の取得とテストで取得できるか確認します。

最新データ

監視データ -> 最新データ から取得しているデータの確認ができます。

ダッシュボード

ダッシュボードにウィジットを追加し、グラフィカルに確認できるようにします。

ウィジット追加
タイプ: グラフ
名前: 消費電力

データセット #1
  ホストパターン: Zabbix server
  アイテムパターン: 消費電力
  幅: 2
  塗りつぶし: 0

データセット #2
  ホストパターン: Zabbix server
  アイテムパターン: 消費電力量
  グラフの形式: 棒

おわりに

Zabbixを用いて自宅の電力使用量をモニタリングする方法について解説しました。
これにより、自宅の電力使用量をリアルタイムで把握しできるようになります。

コメント

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