ITサポーターズの仲間たち    mushi

IT関連のサポートに携わる変人が微弱な電波を発してます。
ビビビビビッ!

URL変更のお知らせとお願い 当サイトのドメインが変更となりました
http://zxvf.homeip.net から http://zxvf.stzo.net に変更となりました。
当サイトにリンクしていただいている方々にはご面倒ですが変更をお願いいたします。(2014/4/7)

電力使用量のグラフをつけてみた


電力使用量のグラフをつけてみた。東京電力が電力使用量のデータを配信していて、あちこちで使用量のグラフなど見るようになってきた。 それでYahooがいつの間にかこのAPIを公開していて、実績...



東京電力が電力使用量のデータを配信していて、あちこちで使用量のグラフなど見るようになってきた。

それでYahooがいつの間にかこのAPIを公開していて、実績と予測が簡単に利用できるようになっている。
予測は東電発表のデータと日本気象協会のデータをYahooが集計解析し予測しているらしい。

それじゃちょっと遊びでこのAPIを使ってみようとグラフをこのブログにくっつけてみた。
なんのひねりもない素っ気無い表示なので、ちょと寂しいから使用量が90%を超えたらグラフの色がオレンジから赤に変わるようにしてみた。
予測の方のデータはごちゃごちゃして見にくいので機会があったらにしようと思う。

簡単に利用方法を説明すると
Yahoo!デベロッパーネットワークの電力使用状況APIを利用するにはアプリケーションIDの登録が必要。
詳しくは Yahoo!デベロッパーネットワークの電力使用状況API に書いてある。
ここでアプリケーションIDを取得したらそれを使ってデータを取得できる。
説明にあるようにリクエストURLにappidのパラメータを付けて投げるとデータが返ってくる。
標準だとxmlで返ってくるけど、phpやjsonの指定もできる。

このサイトはphpなんでphp的利用解説
まずURLを投げられるようセットしてxmlを取得
$YahooDevID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-';
$url = "http://setsuden.yahooapis.jp/v1/Setsuden/latestPowerUsage?appid=$YahooDevID";
$xml = simplexml_load_file($url);

これでxmlのデータが取得できたので、あとはこの変数に入ったデータを好きなように利用するだけだ。

拾えるデータは
Area
Usage
Capacity
Date
Hour

なので
$USAGE = $xml->Usage;
$CAPACITY = $xml->Capacity;

などして取り出して簡単に利用できる。

上のグラフは1ピクセルの色付き画像ファイルを作成して、imgタグのサイズ指定でグラフのように見える表示をしてるだけだ。
もし使用量が90%を超えたら表示する画像ファイルを赤にするようにしてるだけ。

$PERCENT = round(($USAGE/$CAPACITY)*100.1);
if ( $PERCENT > 90 ){
$GRAPH = "graph-red.gif";
} else {
$GRAPH = "graph-orange.gif";
}

このようにして画像を差し替えてる。

あとは書き出したい所に放りこめばいいだけ。めでたしめでたし。
東電のだしてるデータを扱ってやろうとすると、結構面倒なんだよね。
でもこのAPIを使えばこんなに簡単にできちゃう。




< 過去の記事 [ 10月の 全てのトピック リスト ] 新しい記事 >
via IPv4

twitter

●→ トップページ

10/17(Wed) 10:45:25

サイト内検索

 

トピックのカテゴリー

全てのトピック
今日の思考回路
趣味について
ニュース!
Technical
Linux
OSX
その他いろいろ

みんなのリンク

全てのリンク
ニュース
アミューズメント
生活
Tools
Windows
OS X
Technical
その他のリンク
MACアドレスで位置情報検索


Archives




新しいトピック
最新:05/08 18:22


Valid XHTML 1.0 Transitional

Syndicate this site(XML)

RSS1.0(RDF)

RSS2.0(RSS)

SpecialThanks
011535376

....   

Copyright (C) 2005-2018 Amato. All rights reserved.