スマートメーターから瞬時電力を取得する その2

小湊鐵道 at 五井駅

前回(その1)の続き。

ラズパイ+Wi-SUNモジュールによってスマートメーターから取得した瞬時電力をWEBブラウザで見れるようにします。
それを実現するために,ラズパイ上にNode.jsによるWEBサーバを構築しました。

Node.jsについてはこちらに書きました。その記事を執筆時の推奨バージョンはv4.4.7でしたが,本記事執筆時にはv4.5.0に上がってますね。
どっちでも動くと思いますので,ラズパイにインストールしましょう。

さて,ラズパイにNode.jsがインストール済みで,その1に従ってリポジトリのクローン及びセットアップが終えていることを前提に,続きから説明します。

1. node.jsのモジュールをインストールする

node.js本体の他に,いくつかのモジュールをインストールする必要があります。WEBアプリケーションフレームワークのExpressもその1つです。Expressについてはこの記事に書きました

なお,モジュールは次の手順で簡単にインストールできます。sem_appフォルダへの移動するcdのパスはインストールした場所に応じて適宜変更してください。

package.jsonに必要なモジュールが記載されていて,そのモジュールがnode_modules以下にインストールされます。

2. WEBサーバとスマートメーター通信プログラムの起動

Wi-SUN_EnergyMeterを起点のディレクトリとした上で,まず最初にWEBサーバを起動します。

その次に,スマートメーター通信プログラムを起動します。

WEBサーバと通信プログラムは別々のプロセスで動作します。そして,UNIXドメインソケット(/tmp/sem.sock)を通して,通信プログラムからWEBサーバに瞬時電力のデータが渡されます。

クライアント(WEBブラウザ)が,サーバに対してWEBページのデータ要求(GET)を行った結果,クライアント側にページが表示されますが,通常,リロードしない限りページは更新されません。そこで,サーバとクライアント間をWebSocketで接続し,瞬時電力の測定値が更新される毎に,サーバからクライアントへ電力値をプッシュするようにしました。クライアント側では,jQueryを使って受け取ったデータでページを更新することにより,リロードすることなく,測定値が更新されます。

3. 電力測定値をWEBブラウザで見る

さて,兎にも角にもブラウザで測定値を見てみましょう。ラズパイのIPアドレスまたはドメインネーム(私の環境ではraspi2.local)とポート番号(3610)をブラウザに入力します。私の環境ではhttp://raspi2.local:3610となります。

なお,ポート番号は,sem_app/bin/wwwの冒頭部分をエディタで編集することで変更可能です。

 

こんな感じに電力の測定値が表示されます。

スクリーンショット 2016-08-13 21.41.37

 

角丸の枠やバーグラフ等をいちいち作るのは面倒だし,そんな腕前を持たない私pi。JetStrapを使わせてもらいました。瞬く間にHTMLやCSSの土台を作ってくれます。便利な世の中になりました。

また,丸いメーターはHighChartsを使っています。これまた便利。

 

以上,スマートメーターから取得した電力測定値をWEBブラウザに表示することが出来ました。さらに一歩進めて,瞬時電力のログを取って視覚化するとか,スマートメーターから積算電力量計測値履歴を取得して視覚化するとかいろいろ考えられますが、それではでんき家計簿と変わりないし、どうするか思案中。


連載目次

スマートメーターから瞬時電力を取得する その1 

スマートメーターから瞬時電力を取得する その2 (本記事)

スマートメーターから瞬時電力を取得する その3

 

1 Comment

  1. Pingback: スマートメーターから瞬時電力を取得する その3 – Blue-black.ink

Leave a Comment

メールアドレスが公開されることはありません。