ブログ - ホームページに電気使用状況を表示するようにしてみました

ホームページに電気使用状況を表示するようにしてみました

カテゴリ : 
MUTTER
執筆 : 
PC_rescue 2011/6/4 0:35

節電が呼びかけられる最近、ホームページに表示してみようと思います…
今頃になってですが、やってみようと^^;

久しぶりに若干プログラムちっくな事をしてみました(笑
東京電力さんから出ているcsvデータを元にすればいいのよね?って考えてたら、これが意外と難しいんです。私の場合は^^;(ど素人に近いもので…

ネットでも調べてみたら基本は東京電力さんから出ているcsvデータを元にするか、そのグラフ情報から色を識別し解析して数値に置き換えるかのようです。

ん~…難しい…
やりたいことは…
1.東京電力さんから出ているcsvデータを毎回ダウンロードするのは面倒だし、迷惑をかけたくない
2.単純な言語で作りたい
3.ホームページがhtmlなので無理なことができない
4.使える言語がJAVA,CGI,PHP,ASPなので、この枠をこえない
5.あんまり時間がない

情報を読み取って数値にして表示するのですから単純にAPIから読み取ったものをタイムリーに表示することにしました^^
東京電力の電力使用状況を返すAPIがありましてCSVに加えて画像データを解析する事で補っています。
こちらを使わせて頂きました^^
ほぼ完成したのと同じです(笑

あとは力任せにゴシゴシ書くだけです

http://denki.cuppat.net/data/all.json
↑このAPIを実行すると以下のような返事が返ってきます
latest.json ←これが帰って来るのでファイル保存します

中身は↓こうなっています
{
  "saving": false,
  "hour": 20,
  "forecast_peak_period": 14,
  "capacity_updated": "2011-06-02 23:30:00",
  "forecast_peak_updated": "2011-06-02 23:30:00",
  "month": 6,
  "usage_updated": "2011-06-03 12:05:52",
  "entryfor": "2011-06-03 11:00:00",
  "capacity_peak_period": 14,
  "forecast_peak_usage": 3480,
  "year": 2011,
  "usage": 3216,
  "capacity": 4270,
  "day": 3
}

東京電力の電気使用状況 APIの返す値(文字列)を取り出して配列することで表示してみました^^
@ssciさんありがとうございますm(__)m

今回はPHPで処理することにしました
内容は↓
<?php

function h($s) {
        return htmlspecialchars($s);
        }
function main() {
        date_default_timezone_set('Asia/Tokyo');

        $url = "http://tepco-usage-api.appspot.com/latest.json";
        $data = json_decode(file_get_contents($url));

/*
{
  "saving": false,
  "hour": 20,
  "forecast_peak_period": 14,
  "capacity_updated": "2011-06-02 23:30:00",
  "forecast_peak_updated": "2011-06-02 23:30:00+9:00:00",
  "month": 6,
  "usage_updated": "2011-06-03 12:05:52+9:00:00",
  "entryfor": "2011-06-03 11:00:00",
  "capacity_peak_period": 14,
  "forecast_peak_usage": 3480,
  "year": 2011,
  "usage": 3216,
  "capacity": 4270,
  "day": 3
}
*/
$today = getdate();//更新時刻だから若干時間がずれるので別に取得$today[mday] $today[hours]

        $s = '';
        $s .= '<dl class="tepco">' . "\n";
        $s .= sprintf("%s/%s/$today[mday] - $today[hours]時値 | ", h($data -> year),h($data->month),h($data->day),h($data->hour));
        $s .= "計画停電:";
        $s .= ($data->savings ? '実施中' : '実施無し') . " | ";
        $s .= "使用率:" . sprintf("%.1f%%", ($data->usage / $data->capacity)*100) . " | ";
        $s .= "消費電力:" . h($data->usage) . "万kW | ";
        $s .= "供給可能最大電力:" . h($data->capacity) . "万kW | ";
        $s .= "使用状況(当社サービスエリア内) - 東京電力";
        $s .= "</dl>\n";
        echo $s;
}
main();
?>

注意するところは2つ
date_default_timezone_set('Asia/Tokyo');
↑バージョンにより動作不可。これはPHP5のサーバーのゾーンコード設定により動いたり動かなかったりする。PHP4では動作不可。

json_decode(file_get_contents($url));
↑PHP4では動作不可。

こんな感じで作ってみました^^

以上!orz
疲れました(笑
 

  • コメント (0)
  • トラックバック (0)
  • 閲覧 (4337)

トラックバック

トラックバックpingアドレス http://pc.rescue.co.jp/modules/blog/tb.php?58