愛島発電所

QT SOLAR 愛島発電所

本日の発電量
304 kWh
現在の日射量
27 Wh/㎡
現在の外気温
15.0 ℃

(2024/05/20 11:03 更新)

下増田発電所

QT SOLAR 下増田発電所

本日の発電量
34 kWh
現在の日射量
61.3 Wh/㎡
現在の外気温
15.9 ℃

(2024/05/20 11:06 更新)

北原東発電所

QT SOLAR 北原東発電所

本日の発電量
50 kWh
現在の日射量
83 Wh/㎡
現在の外気温
15.5 ℃

(2024/05/20 11:00 更新)

長久良辺発電所

QT SOLAR 長久良辺発電所

本日の発電量
59 kWh
現在の日射量
78 Wh/㎡
現在の外気温
16.7 ℃

(2024/05/20 10:51 更新)

白坂発電所

QT SOLAR 白坂発電所

本日の発電量
59 kWh
現在の日射量
51 Wh/㎡
現在の外気温
17.1 ℃

(2024/05/20 10:58 更新)

清水沢発電所

QT SOLAR 清水沢発電所

本日の発電量
58 kWh
現在の日射量
76 Wh/㎡
現在の外気温
16.0 ℃

(2024/05/20 11:00 更新)

外部コマンドの利用 | Perlで作るサーバーサービス

温度計(Temper)を使った温度計測プログラムをPerlから呼び出す方法の紹介です。

「Perlで作る〜」と言いつつ、cで書かれたソースを見付けてしまったのでそのまま利用することにします。

ソースコードは以下から取得。ありがとうございます。

gccやmakeは別途インストール必要。

$ sudo apt-get update
$ sudo apt-get install build-essential

libusb-devも必要。

$ sudo apt-get install libusb-dev

ビルドします。

$ cd ./pcsensor-1.0.2
$ make

一応、これで実行ファイルができあがりますが、スーパーユーザーでないと実行できないかも知れません。

USBデバイスに適切な権限を与えるため、rulesファイルを設定します。

$ make rules-install

何をしているのかはmakeファイルを見て頂くとして、これにより一般ユーザーでも実行できるようになります。単にその場で試すだけなら。

$ sudo chmod -R 777 /dev/bus

以上で終わりですが、手許の「Temper」は「Fatal Error」を出しまくりしやがります。仕方ないので、ソースを少しだけいじります。

$ vi pcsensor.c

変更箇所は、最後のほう。

usb_release_interface(handles[i], INTERFACE1);
usb_release_interface(handles[i], INTERFACE2);
usb_reset(handles[i]);
usb_close(handles[i]);

1行追加でやっていることは機器のリセットです。これで概ね安定します。

再度ビルドします。

$ make clean
$ make

一方でPerlスクリプト。

#!/usr/bin/perl
sub operation
{
my $r = readpipe "./pcsensor-1.0.2/pcsensor -c 2>&1";
chomp($r);
if( $r =~ /^\d{4}\/\d{2}\/\d{2}\s+\d{2}\:\d{2}\:\d{2}\s+Temperature\s+(-?\d+\.?\d*)C$/){
print $1."\n";
}
}
&operation;
exit;

太陽光発電所のPCS室で、温度計測に使っています。役に立ちます。エアコンも10年に一度くらいは壊れるでしょうから、そのときPCSまで巻き添えにならないよう、温度異常を検知したらメールで知らせる仕組みです。まあ、「Daikin D-irect」の利用で用は足りるのですが。