ラプラスシステム社太陽光発電計測システムのデータをwgetで取得するシェルスクリプト
公開日:
:
プログラミング, 事務職のプログラミング
ラプラスシステム Solar Link ZERO 太陽光発電計測・表示システムという太陽光発電のデータ管理システムからCSVを取得するためのシェルスクリプトを作ったので記録。
目次
発電データの管理
発電データがそれぞれの管理システム内で閉じてしまっているので一箇所に集めています。
- 発電データのバックアップ
- 複数箇所のデータを一元管理しておけば、発電不調時に見つけやすいかと思った。
もう一つ、京セラのシステムもあるのですが、これはPCを使っているので、データ保存ディレクトリをRaspberryPi(Debian Wheezy)にマウントして、cron + rsyncで別サーバに送信するようにしています。
発電表示画面を眺めていても仕方ないので複数箇所の発電データを集計してグラフ化しようと思いますのでまず第一歩として。
おおざっぱな説明
wgetのオプション「-O -」で指定したURLの内容を保存せず、内容だけを出力して、nkfにパイプで渡しています。nkfのオプションは -w -Luで文字コードUTF8、Unix改行で保存。最後の例の
1 |
for i in `seq -w 1 ${3}` |
ですが、1から${3}(同シェルスクリプトの3番目の引数)までの数字を桁揃えで(01〜09)出力させています。1も引数で渡すようにすれば、4日から8日まで、という風にもできるかと。
今回はまとめてデータを落とすのになるべく手数を少なく解決したかったのでこのようにしました。過去のデータを取得できたら、あとは当日、当月のデータだけcronで取得すればOKですね。
wgetのオプションについては「wgetコマンドでファイル名指定したり、ダウンロードしないようにしたりする | メモ帳代わりのブログ」が参考になります。ありがとうございます。
当日のデータを取得
1 2 3 4 5 6 7 8 |
#!/bin/bash savedir="/home/hoge/solar/data/" type="day" year=`date '+%Y'` month=`date '+%m'` day=`date '+%d'` url="http://xxx.xxx.xxx.xxx/index.cgi?SW_VIEW=SL_DATA&SW_EVENT=DATADOWNLOAD&DateTypeChk=${type}&YearSel=${year}&MonthSel=${month}&DaySel=${day}" wget -q -O - "${url}" |nkf -w -Lu > ${savedir}${year}${month}${day}.csv |
当月のデータを取得
1 2 3 4 5 6 7 |
#!/bin/bash savedir="/home/hoge/solar/data/" type="month" year=`date '+%Y'` month=`date '+%m'` url="http://xxx.xxx.xxx.xxx/index.cgi?SW_VIEW=SL_DATA&SW_EVENT=DATADOWNLOAD&DateTypeChk=${type}&YearSel=${year}&MonthSel=${month}" wget -q -O - "${url}" |nkf -w -Lu > ${savedir}${year}${month}.csv |
指定した日のデータを取得
1 2 3 4 5 |
#!/bin/bash savedir="/home/hoge/solar/data/" type="day" url="http://xxx.xxx.xxx.xxx/index.cgi?SW_VIEW=SL_DATA&SW_EVENT=DATADOWNLOAD&DateTypeChk=${type}&YearSel=$1&MonthSel=$2&DaySel=$3" wget -q -O - "${url}" |nkf -w -Lu > ${savedir}${1}${2}${3}.csv |
指定した月のデータを取得
1 |
sh シェルスクリプト名 2014 07 |
1 2 3 4 5 |
#!/bin/bash savedir="/home/hoge/solar/data/" type="month" url="http://xxx.xxx.xxx.xxx/index.cgi?SW_VIEW=SL_DATA&SW_EVENT=DATADOWNLOAD&DateTypeChk=${type}&YearSel=$1&MonthSel=$2" wget -q -O - "${url}" |nkf -w -Lu > ${savedir}${1}${2}.csv |
ある月の初日〜指定日までのまとめ取得
過去のデータをまとめて取得するために作成。大の月、小の月が面倒なので最終日を指定するようにした(初日は1日で決め打ち)。
1 |
sh スクリプト名 2014 07 31 |
とすると、2014年7月1日〜31日の日毎CSVデータをsavedirに保存する。
1 2 3 4 5 6 7 8 |
#!/bin/bash savedir="/home/hoge/solar/data/" type="day" for i in `seq -w 1 ${3}` do url="http://xxx.xxx.xxx.xxx/index.cgi?SW_VIEW=SL_DATA&SW_EVENT=DATADOWNLOAD&DateTypeChk=${type}&YearSel=$1&MonthSel=$2&DaySel=$i" wget -q -O - "${url}" |nkf -w -Lu > ${savedir}${1}${2}${i}.csv done |