はじめに
東京電力管内では、家に付いている電力計がスマートメータに随時交換されています。スマートメータになると「Nature Remo E lite」などを使って、電力の使用量や太陽光の発電量を取得できるようになります。
ただ、実際に値段を見てみると、定価1万5000円と、結構高い!
しかし、うちには既に太陽光発電用のリモコンとしてシャープ製の「JH-RWL2」というものが設置されています。このリモコンから使用量・発電量の情報が取得できないか調査しました。
調査の結果、このリモコン自体がWebサーバの機能を持っており、使用量・発電量の情報をWebブラウザから見えるようになっています!入居した時には誰も教えてくれなかったぞー、説明書をちゃんと読めば書いてあるのかな?
IPアドレスを調査
太陽光発電用リモコンもインターネットを通じて発電量情報をシャープのサイトに送っているのでIPアドレスを持っています。まずは、リモコンのIPアドレスを調査します。
①設定画面の表示
太陽光発電用リモコンのトップ画面から「設定」を選択します。実際には設定の位置にある丸いボタンを押します。
②ネットワーク通信画面の表示
設定メニューが表示されたら「ネットワーク通信」を選択します。
③現在の設定状況
ネットワーク通信画面で「現在の設定状況」を選択します。
④IPアドレスの確認
すると見つけましたIPアドレス‼️このIPアドレスをメモします。
太陽光発電用リモコンにWebアクセス
IPアドレスが分かったので、太陽光発電用リモコンにWebアクセスしてみます。
①リモコンにアクセス
PCのWebブラウザから「http://<<IPアドレス>>/PC/」にアクセスします。すると現在の消費量・発電量・売電量が表示されます!!すごい!
本日の発電・消費の様子なども見れます。
年間の状況も分かりやすくグラフで表示されます。
消費量・発電量データを取得
残念ながらWebAPIやJSONでデータを取得できるインタフェースは無いようですが、HTMLで情報が取得できるので、HTMLを解析すれば必要な情報を抜き出せます。
①curlでHTMLを取得
まずは、curlコマンドでHTMLを取得してみます。HTMLは取得できました。ただ、文字化けしている・・・・。
$ curl -s http://192.168.2.203/pc/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<!-- ?I?v?V????M2?w??̏ꍇ?͂???????o?͂??? -->
<!-- ?I?v?V????M2?w??̏ꍇ?͂????܂ŏo?͂??? -->
<!-- ?I?v?V????M2?w?肵?Ȃ??ꍇ?͂???????o?͂??? -->
・・・・以下省略・・・・
②文字コードを変換
HTMLの文字コードがShift_JISのようなので、nkfコマンドで文字コードを変換します。
$curl -s http://192.168.2.203/pc/|nkf -w
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<!-- オプションM2指定の場合はここから出力する -->
<!-- オプションM2指定の場合はここまで出力する -->
<!-- オプションM2指定しない場合はここから出力する -->
・・・・以下省略・・・・
③消費量データの取得
取得したHTMLを眺めていくと以下のようにHTMLに「ここから消費量表示」「ここまで消費量表示」とコメントが入っているではないですか!この間に挟まっている数字こそが、欲しかった消費量データの数値です。このHTMLを設計した人は、こうやってHTML解析してデータを抜き出す事を考慮しているとしか思えません。神対応です。
<tr><td align="right" width="95"><span class="data_top">
<!-- ここから消費量表示 -->1.60<!-- ここまで消費量表示 --></span></td>
<td align="right" width="28"><img src="kw.gif" width="28" height="32" alt="kW"></td>
取得する情報が分かったら、抜き出すコマンドを考えます。awkで数字だけ抜けば良いですね。
$ curl -s http://192.168.2.203/pc/|nkf -w|grep "消費量表示"|awk 'match($0,/[0-9]*\.[0-9]*/){print substr($0, RSTART, RLENGTH)}'
1.66
④発電量データの取得
発電量データの取得も考え方は同じです。以下で取得できます。
$curl -s http://192.168.2.203/pc/|nkf -w|grep "発電量表示"|awk 'match($0,/[0-9]*\.[0-9]*/){print substr($0, RSTART, RLENGTH)}'
1.62
おわりに
今回は、シャープの太陽光発電用リモコンから、電力の消費量と発電量の情報を取得することをやってみました。これなら、高いスマートメータ対応機器を購入しなくても0円で、情報を取得することができます。
情報さえ取得できてしまえば、煮るなり、焼くなり加工して、Home Assistantでグラフ表示するなんてことも可能です。
コメント