---'; $message[1] = '電力量計の値を更新し、保存してください'; $message[2] = '保存しました'; // 更新を促すまでの時間〔分〕 $time_up = 10; // 進捗バー画像 $bar= './bar_60sec.gif'; // 発電力を表す矢印画像 $arrow[0] = './arrow000.gif'; $arrow[1] = './arrow500.gif'; $arrow[2] = './arrow250.gif'; $arrow[3] = './arrow160.gif'; $arrow[4] = './arrow125.gif'; $arrow[5] = './arrow100.gif'; // 使用方法の表示ボタンのラベル $usage_label[0] = '使用方法を表示する'; $usage_label[1] = '使用方法を表示しない'; // HTMLソースの改行コード $lf = "\n"; // 設定(ここまで)---------------------------------- // ページのURL(設置場所)を取得する $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // このファイル名を取得する $this_file = basename($_SERVER['PHP_SELF']); // HTMLの改行タグ $br = '
'.$lf; // 表示する画像ファイルの抽出 ----------------------- // 下位フォルダーのリストを降順で取得 $sub_dir = array(); $sub_dir = scanDir($path, 1); // 一番新しいフォルダー内のファイル一覧を取得 $dir = array(); $dir = openDir( $path.$sub_dir[0] ); $files = array(); while ( false !== ($files[] = readDir($dir)) ); closeDir( $dir ); // ファイル一覧をファイル名で逆順にソート rSort($files); // 最新のファイル名を取得 $f_name[0] = $path.$sub_dir[0].'/'.$files[0]; // 最新ファイルのファイルサイズを取得 $f_size0 = fileSize($f_name[0]); // 前時刻のファイル名を取得 $ck_time = fileCtime($f_name[0]) - $t_interval * 60; $d_no = 0; $alt = 1; while ( $d_no$f_size_ss ) { $f_name[1] = $tmp; $alt = 0; break; } } $d_no++; } // 最新のファイルが書き込み中かチェック(ファイルサイズに変化があるか?) // usleep(100000); // while ( fileSize($f_name[0]) != $f_size0 ) { // $f_size0 = fileSize($f_name[0]); // usleep(100000); // echo '更新ボタンをクリックしてください'; // } // 日の出/入時刻のファイル名を取得 $alt = 1; $d_no = 0; if ( fileSize($f_name[0])<$f_size_s ) { // 最新の画像が暗い場合 while ( $d_no$f_size_s && is_file($tmp) && substr($file, -3)==$f_ext ) { $f_name[2] = $tmp; $alt = 0; break; } } $d_no++; } } else { // 最新の画像が明るい場合 $tmp0 = $f_name[0]; while ( $d_no$f_size_ss ) { $f_name[2] = $tmp0; $alt = 0; break; } $tmp0 = $tmp; } $d_no++; } } // 現在の画像が暗い場合、日の入時刻の画像を表示する if ( fileSize($f_name[0]) < $f_size_s ) { $f_name[0] = $f_name[2]; } if ( fileSize($f_name[1]) < $f_size_s ) { $f_name[1] = $f_name[2]; } // ファイルの読み込み ------------------------------- $buff = file($data_file); list( $date, $kwh[0], $kwh[1], $kwh[2], $kwh_t[0], $kwh_t[1], $kwh_t[2], $kwh_day, $kw, $usage_sw ) = explode( '|', $buff[0] ); // フォームの入力値を取得する ----------------------- // 今日の日付 $date = date('Ymd', time()); // 画像の切替スイッチの初期値 if ( isSet($_REQUEST['sw']) ) { $sw = $_REQUEST['sw']; } else { $sw = 0; } // 使用方法の表示ボタンの初期値 if ( $usage_sw=='' ) $usage_sw = 0; // メッセージNoの初期値 $mess_no = 0; // 保存ボタンがクリックされたとき if ( isSet($_REQUEST['save']) ) { $mess_no = 2; $tmp = $_REQUEST['kwh']; if ( strLen($tmp) > 0 ) { $tmp = str_replace(',', '', $tmp); // コンマを削除する $tmp = round( floatVal($tmp), 1); // 小数第1位までの実数値にする if ( $tmp >= 0 ) $kwh[$sw] = $tmp; } // ファイルの作成日時 $kwh_t[$sw] = fileCtime($f_name[$sw]); // 電力量の計算 $kwh_day = $kwh[0] - $kwh[2]; // 発電力の計算 if ( ($sec=$kwh_t[0] - $kwh_t[1]) > 0 && ($kw=$kwh[0] - $kwh[1]) >=0 ) { $kw = round( ($kw * 3600 / $sec) , 1 ); } else { $kw = 0; } if ( $kw >= 50 ) $kw = 0; } // 画像の切替ボタンがクリックされたとき if ( isSet($_REQUEST['sw_img']) ) { $sw = ($sw+1) % 3; // 画像の番号を変化 } // 使用方法の表示ボタンがクリックされたとき if ( isSet($_REQUEST['usage']) ) { if ( $_REQUEST['usage']==$usage_label[0] ) $usage_sw = 1; if ( $_REQUEST['usage']==$usage_label[1] ) $usage_sw = 0; } // ファイルに保存する ------------------------------- if ( isSet($_REQUEST['save']) || isSet($_REQUEST['usage']) ) { $buff = implode( "|", array( $date, $kwh[0], $kwh[1], $kwh[2], $kwh_t[0], $kwh_t[1], $kwh_t[2], $kwh_day, $kw, $usage_sw ) ); $fp = fopen($data_file, 'w'); flock($fp, LOCK_EX); fputs($fp, $buff); flock($fp, LOCK_UN); fclose($fp); } // 表示データ --------------------------------------- $kw_t0 = date( 'H:i', $kwh_t[0] ); $kw_t1 = date( 'H:i', $kwh_t[1] ); // 金額の計算 $yen_day = round( ($kwh_day * $price), 0); // 撮影日時をファイルの作成日時とする $f_date = date('Y/m/d H:i', fileCtime($f_name[$sw]) ); // 更新を促すかの判断 if ( $sw<2 && (fileCtime($f_name[$sw])-$kwh_t[$sw]) > ($time_up * 60) && fileSize($f_name[$sw]) > $f_size_s ) { $mess_no = 1; } // 発電力に応じた矢印画像を選ぶ $arrow_p = $arrow[ceil($kw/10)]; // HTMLの出力 --------------------------------------- echo // HTMLヘッダー ' '.$title.' ', // 電力量計の画像 '

', // 撮影日時と時間バー画像 '

'.$f_date.' の電力量計  (約'.$refresh_time.'秒おきに自動更新します)

', // 入力フォームと今日の発電量・金額ほか '

', // fileSize($f_name[$sw]).$br, $message[$mess_no].'

電力量計の値= kWh   

      '.$img_exp[$sw].'


≪今日'.$kw_t0.'までの実績≫'.'   昨日までの電力量= '.number_format($kwh[2], 1).' kWh

発電量= '.number_format($kwh_day, 1).' kWh    電気代金= '.number_format($yen_day, 0).'


' ; if ( $usage_sw==1 ) echo // 使用方法を表示する '


使い方

  1. 画像より数値を読み取り、「電力量計の値」欄に入力します。
    数値の入力について、
     3桁区切りカンマの有無は任意。
     内部処理において、小数第2位が四捨五入され、
     小数第1位までで計算されます。
      入力例) 1234.5 1234 1,234.0 1234.0
  2. 保存ボタンをクリックするか、Enterキーを押します。
  3. 画像の切替ボタンをクリックして次の画像に移ります。
  4. 以上、1〜3の操作を画像No.0と1について行います。
     画像No.2については、朝夕1回行えばOKです。

人間OCRです。 皆様のご協力があれば、オーナーは助かります。
お立ち寄りの際には、是非、「電力量計の値」を更新してお帰りください。
よろしくお願いいたします m(__)m

ブックマーク登録は、次の「お気に入りに追加」ボタンをクリックしてください。

', // お気に入り登録ボタン '

' ; echo '
', // 現在の発電力 '

'.number_format($kw, 1).' kW
   '.$kw_t1.'〜'.$kw_t0.'の平均発電力

', // HTMLフッター ' ' ; // -------------------------------------------------- ?>