headAD

2018年4月4日水曜日

Raspberry Pi UPSをWebでモニタリングする

前回の記事で、Raspberry Pi(ラズパイ)へUPSをモニタするNUTをインストールしました。
今回は、Webモニタリングの設定をして、ローカル(UPSへ接続しているラズパイ)以外のPCからモニタ出来るようにします。
ただし、このラズパイは既に apache2.4 Webサーバーとして機能している前提で、ここではNUTに関する設定箇所を示します。

[nut cgi のインストール]
sudo apt-get update
sudo apt-get install nut-cgi

/etc/nut/hosts.conf へ MONITOR を記述します。
cyberups は ups.conf に設定した名前、"Local UPS"は UPS を指す適当な名前です。

MONITOR cyberups@localhost "Local UPS"

cgi 関連ファイルのパーミッションを設定します。
sudo chmod 644 /etc/nut/hosts.conf
sudo chmod 644 /etc/nut/*.html
sudo chmod 644 /usr/share/nut/www/*.*
sudo chmod 755 /usr/lib/cgi-bin/nut/*.cgi


/nut へのアクセスを限定的にしたければ、 /usr/share/nut/www/ に下の内容を記述した .htaccess ファイルを一緒に入れます。
order deny,allow
deny from all

allow from 192.168.1.0/24

apache のドキュメントルートを記述している hoge-ssl.conf に alias を設定します。
/etc/apache2/sites-available/hoge-ssl.conf

Alias /nut /usr/share/nut/www
<Directory /usr/share/nut/www/>
     SSLOptions +StdEnvVars
     Options FollowSymLinks
     AllowOverride all
     Require all granted
</Directory>

同様に cgi ルートも alias を設定します。
/etc/apache2/conf-available/hoge-cgi-bin.conf

ScriptAlias /cgi-nut/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
     AllowOverride None
     Options +ExecCGI
     Require ip 192.168.1
</Directory>

apache の設定ファイルを再読み込みします。
sudo apachectl reload

https://[あなたのドメインもしくはipアドレス]/nut とすることでアクセスできるようになります。
web-1
web-2
web-3
ここで、気づきましたが、Battery Voltage が9.1Vを示していますが、本体バッテリーは12Vタイプで正常ですから、なにかしらUPSからのデータ取得に問題があるのかもしれません。
UPS本体の動作は正常なので、原因が判るまではこのままにしておきます。



end

2018年3月22日木曜日

Raspberry PiへNUTインストールの補足

前回、NUTのインストールと設定を記事にしましたが、少し補足しておきます。


CyberPower製UPSの国内向け CPJ500 を購入したわけですが、接続するとコンパチブルの CP1500AVR と認識され usbhid-ups と標準のドライバーがセットアップされました。


Debian jessie のためか NUTインストールバージョンは2.7.2(2014/4 リリース)でした。
Debianの最新版stretchなら2.7.4(2016/5 リリース)がインストールされたかもしれません。(この時点で試していません)


この古いバージョンが不具合に影響しているかもしれません。今後確かめてみることにしますが、現状でも対策は可能です。


**********
当初、設定例を元に標準状態でセットアップ後、半日ほど様子見ると upsc コマンドによるupsデータが見えなくなっています。
/ver/log/sys.log を見ると、 data stale がいっぱい溢れていました

Poll UPS [cyberups@localhost] failed - Data stale


CyberPower 製UPSとの組み合わせで同様な事例が散見され、私の場合は’data stale’でしたが、他に ‘Driver not connected’ などがログで見られるようです。
これらの対策として、試行錯誤の例が幾つかありましたが、次の3点を織り込むことで正常に稼働しています。

この対策は、前回の設定の中に記載しているので、改めて設定する必要はありません。



/etc/nut/ups.conf
        pollinterval = 15
/etc/nut/upsd.users
        MAXAGE = 25
/etc/nut/upsmon.conf 
        DEADTIME = 25

これでもダメなら、syslog を監視して ‘data stale’ があったら、 service を再起動するスクリプトも用意しましたが、今は必要ないようです。

次回は、WebでUPSをモニタ出来るようにします。

end

2018年3月17日土曜日

Raspberry Pi にNUTをセットアップする

前回、UPSを取付けて停電時の電源バックアップを行う記事を書きました。

今回は、UPSのモニターを行うNUT(Network UPS Tools)をセットアップする記事です。
Web上で電源の状態を確認できるほか、UPSのバッテリーが不足(電源喪失)した時にはシャットダウンコマンドを発行します。


cpj500-raspi

[環境]
 Raspberry Pi 2B(ラズパイ)、OSはRaspbian jessieです。以下設定の内容はjessie版での記述で、他のディストリビューションやバージョンでは設定が異なる場合があるので注意してください。

ラズパイは、Webサーバーとして稼働中でルーターと接続している以外のモニタ類は接続していません。通常は別のPCからリモートでモニタリングしているのでUPSもNUTインストールしてモニタリングしようというわけです。


[ドライバーセットアップ]
 UPSとラズパイをUSBケーブルで接続し、lsusbコマンドで確認します。
CP1500AVR UPSとして認識されています。

Bus 001 Device 004: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

次に、NUTをインストールし、その後で一連のファイルを設定します。
sudo apt-get update
sudo apt-get install nut nut-client nut-server

ここでは、NUTのドライバーテータベースから CP1500PFCLCD が標準で設定されるので続けます。
/etc/nut/ups.conf の最終行に追加します。cyberups の名前は好きに変えてください。
desc はups機器の説明を書きます。 (2018-3-24修正)

[cyberups]
        driver = usbhid-ups
        port = auto
        desc = "CyberPower CPJ500"
        pollinterval = 15

次に、ドライバサービスをスタートします。その後、ステータスを確認し active や Startup 出来ているかを見ます。
sudo systemctl start nut-driver
sudo systemctl status nut-driver
● nut-driver.service - Network UPS Tools - power device driver controller
    Loaded: loaded (/lib/systemd/system/nut-driver.service; static)
    Active: active (running) since 木 2018-03-15 07:40:59 JST; 14h ago

 ・・・省略・・・
  3月 15 07:40:57 raspi1 upsdrvctl[9641]: Using subdriver: CyberPower HID 0.3
  3月 15 07:40:57 raspi1 upsdrvctl[9641]: Network UPS Tools - Generic HID driver 0.38 (2.7.2)
  3月 15 07:40:57 raspi1 upsdrvctl[9641]: USB communication driver 0.32
  3月 15 07:40:59 raspi1 usbhid-ups[9643]: Startup successful
  3月 15 07:40:59 raspi1 upsdrvctl[9641]: Network UPS Tools - UPS driver controller 2.7.2
  3月 15 07:40:59 raspi1 systemd[1]: Started Network UPS Tools - power device driver controller.

[サーバーセットアップ]

まず、 /etc/nut/upsd.conf の中で localhost の LISTEN が # でコメントアウトされているので、# を取り除きます。ポートの3493のそのままです。
LISTEN 127.0.0.1 3493

次に、アカウントを設定します。 /etc/nut/upsd.users の最下行に下の内容を追記します。
ここでは、adminとmasterのユーザーを設定しています。

[admin]
        password = admin123
        actions = SET
        instcmds = ALL
[upsmon_local]
        password  = local123
        upsmon master

同じファイルの中で MAXAGE を変更します。
MAXAGE = 25


次に、サーバーの動作モードを設定します。UPSでバックアップされるPCは1台なので standalone を /etc/nut/nut.conf にセットします。
MODE=standalone

サーバーサービスをスタートし、そしてステータスを確認します。
sudo systemctl start nut-server
sudo systemctl status nut-server

では localhost から接続できるかテストしてみましょう。 cyberups とはドライバーセットアップで設定した名前です。
sudo upsc cyberups@localhost
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 20
battery.mfr.date: CPS
battery.runtime: 10200
battery.runtime.low: 300
battery.type: PbAcid
battery.voltage: 9.1
battery.voltage.nominal: 12
device.mfr: CPS
device.model: CPJ500
device.type: ups
driver.name: usbhid-ups
・・・省略・・・
UPSからの情報がちゃんと取れていて、device.model: CPJ500 と製品が認識されています。

[クライアントセットアップ]
システムをモニタする mastert ユーザーを /etc/nut/upsmon.conf へ追加します。
MONITOR cyberups@localhost 1 upsmon_local local123 master
同じファイルの中で DEADTIME を変更します。
DEADTIME = 25

idやパスワードを記録しているので、他から見られないようにパーミッションを設定します。
sudo chown root:nut /etc/nut/*
sudo chmod 640 /etc/nut/*

クライアントをスタートして、ステータスを確認します。
sudo systemctl start nut-monitor
sudo systemctl status nut-monitor

もう一度、localhost から情報が取れるかテストします。
sudo upsc cyberups@localhost



以上で、NUTシステムが構成されました。
このままでもいいのですが、次はWebでモニタリングする設定をしてみます。
長くなったので次の記事にします。

次の記事は予定変更して、この記事の補足を書きました。



(参考にした記事)
Network UPS Tools
Raspberry Pi UPS monitor (with Nginx web monitoring)
UPS Server on Raspberry Pi
NUT & CyberPower UPS





end.

2018年3月4日日曜日

UPSを設置してみました

 我が家では、Raspberry PiのWebサーバーとNTT光ブロードバンドルーターが常時稼働していますが、時々家庭内の電力事情で停電することがあって、RaspberryPiは電源断には無防備なので、データが壊れる可能性もあります。

そこで、ルーターとRasPiをUPS(無停電電源装置)で電源バックアップすることにして、常時稼働の信頼性をUPさせます。

用意したのは、CyberPower CPJ500(国内向けCRシリーズ)で、300W正弦波出力タイプです。容量の割にはお値ごろで液晶表示、USB接続で電源管理ができます。

001
RasPiとルーターをバックアップするには容量が大きすぎで、1時間以上は十分持ったので、100W程度でもよいでしょう。

設置は簡単で、UPSの後部に6個のコンセントがあるので、ここから電源を取ります。

あと、UPSとRasPiを付属のUSBケーブルで接続して、RasPiにはNetwork UPS Tools(NUT)をセッティングし、リモートでUPSの電源監視ができるようにします。

次回はRaspberry PiにNUTの設定するを掲載しました。
.
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]
サイバーパワー・ジャパン Backup CR 500 CPJ500
価格:13523円(税込、送料無料) (2018/3/4時点)

.


2017年11月18日土曜日

熱気球 鈴鹿のmapを作る

11月24日から11月26日まで熱気球の鈴鹿バルーンフェスティバル2017が開催されます。

佐賀大会と同じように、事前に自分用のGARMIN製ハンディGPSのJNXファイル形式の地図を作ります。

マップを切り出すときの経度・緯度を忘れるので、ここに張り付けておきます。備忘録ですね。

詳細は、前回佐賀のこことかもっと前のここをご参考ください。


さて、鈴鹿でのゴールリスト全体を括ると、南東部の海や北西部の山間部まで含めてしまい、メモリ容量的に無駄かなと感じますが、鈴鹿サーキット付近で南北を分割するとよさげですが、ちょっと面倒なんで、今回は全体括りで作成します。

suzukagoal_thumb


鈴鹿エリアは下の緯度経度で切り出します。
(1)LAT1,LON1:34.715,136.41        LAT2,LON2:34.94,136.64
 
suzuka_thumb

あとは、前回作成した要領で、じっと待つのみ。

全部のゴール地点を含む地図データは、約364MBでした。


関連記事は
こちら

2017年10月23日月曜日

Windows10 Fall Creators Update CPU使用率が高い

2017年10月18日から、Windows 10 の4回目となる機能アップデートが、一般向けに提供され始めました。

今ではちょっと古いマシン(Lenovo G570)にWindows 10 を初期バージョンから入れて、ずっと調子よくて途中のupdateも難なくクリアしていました。

私も、今回のWindoes 10 Fall Creators Updateを済ませました。


エディション Windows 10 Home

バージョン  1709

OSビルド  16299.19



暫く使ってきましたが、なんかCPU排熱のファンがいつもよりも回転していて、その騒音で気が付きました。吹き出しの風も結構な温度です。
前から、こんなだったかな~と思い返しましたが、このupdateからのような気がします。



タスクマネージャーで確認すると、イベントログでCPUが忙しく動いていました。CPUの2割以上がこれに費やされていました。

taskm-1


次に、イベントビューアーを起動し、イベントログを確認してみます。

方法は色々ありますが、私が良く使うのは[Win]キーと[x]のショートカットです。

これは便利!。

ついでに言うと、[Windowsの設定]は[Win]+[i]です。上のタスクマネージャーも、このメニューにありますね。

win x


イベントビューアーを起動して、[管理イベントの要約]の窓を見て、イベントID 9009 IIS-APPHOSTSVCというソースが、70,089カウントも記録されていました。

イベント



上の項目をダブルクリックして、内容を見てみます。

apphostsvc

このエラーが大量にイベントログに残されていました。この元凶は[Application Host Helper Service] でエラーが発生と書いてあります。
 

CPUが一生懸命に、このエラーをログに書き込んでいたんですね。

では、このエラーをなくすには、どのように対策したらよいかを探したのですが、事例が見つかりません。

ただ、Application Host Helper Service はIIS関連のサービスです。
 

IISはWebサーバー構築するときに必要になりますが、私は特段使ってないです。
(Windows 10ではデフォルトでIISが有効となっていて、何かバックで動いているのかもしれません)

対策として、このサービスを止めて様子を見たいと思います。
 

[Win]+[x]で[コンピュータの管理]を起動し、下図のように[サービス]を開き、Application Host Helper Service を探し、右クリック→プロパティをクリックします。
 
サービスAppHostsvc



[手動]、[停止]を選択して[ok]してください。


apphost_pro


このようなエラーが、表示されますが[ok]します。



サービス停止エラー


続いて、PCを再起動します。

以上で、Application Host Helper Serviceは停止、異常なログもなくなり、ファンもほとんど動かなくなり、嘘のように止まってしまいました。 静かになりました。

このサービスを停止することで、影響があれば情報をupしていきます。



==補足=============


IISを無効にしみましたが、変化はなかったので元に戻しました。

とりあえず、忘れないように[無効]にする方法をメモっておきます。
IISを[コントロールパネル]→[プログラムと機能]からチェックを外し無効にします。


プログラムと機能





2017年10月20日金曜日

グリッドタイインバータが怪しい

前回までに、ソーラーパネルから予想された出力が得られていました。

では、いよいよ残るはインバータです。

001

お前が犯人だー。こいつが仕事していなーい。 と叫んだところで買い替えるには早すぎる。もう少し点検してみましょう。 故障なら修理するまでです。

※製品を分解して手を加えることを、このブログで推奨しているわけではありません。これ以降の内容について事例の紹介であり、筆者は何ら責任を負いません。



インバータをテストするために、一般の安定化電源等をつなぐと電流が流れ過ぎて、インバータ自身がすぐに壊れてしまいます。 ご注意ください。


ソーラーパネルは定電流タイプの電源ということ ← ここは重要


テストするには、定電流電(電流制限のある安定化電源等)をインバータへ接続し、所定の入力電力(電圧と電流)に対してインバータ出力があるかを調べてみます。

すると、入力に電源を加えても約1A以上流れないではないですか~~。

例えば、16Vで2.5Aまでokな電源を与えても、1Aしか食ってくれない。
つまり、16V×2.5A=40W 入れようとしても、16V×1A=16W程度しか消化してくんねぇー。
 あ~、
インバータの食欲不振が原因のようです。

どうも、入力側で発振しているようです。でも一般的には大容量のコンデンサが付いているはず??
 

このあたりが怪しいですね。

では、分解してみましょう。前部4ヶ所・後部4ヶ所のY字形の特殊ビスを外します。
 

と言ってもY字形ドライバでなくとも-の2.4mmドライバーで難なく緩るんでしまいます。
入力端子から太いケーブルが基板の中に入り込んでいて、コンデンサ2,200μF50Vが2個接続されていました。
 

このコンデンサが全然、役に立っていないわけです。

外観からは、膨張や防爆弁が開いているわけでもありません。

取り外してみて、あらら。コンデンサの足元に白い固形物が・・・。
容量計で測っても1μFもありませんでした。


基板側を見ても液漏れの痕跡は見えないので、ガス状で気化(ドライアップ)したのかもしれません。
万が一、腐食するといけないので、とりあえず周辺をクリーニングしておきます。


002

001

補修として同じ容量・耐圧の物を取付けますが、出来れば耐熱温度はランク上を、低ESRタイプと交換しておきたいです。

また、念のためリプル電流によるコンデンサの発熱も考えられるので、インピーダンスを下げる意味で、基板裏で10μF個体コンデンサをパラに取り付けて、様子を見ることにしました。


組み上げて、インバータ出力をモニタすると、下写真円の中央より右側(補修後)が、中央より左側(補修前)よりも高くなっています。

また、左の284whの値は当日の約6時間の発電量です。
補修前はここが50wh程度でした。


002


これで一連の、発電量低下はグリッドタイインバータによる故障が原因で、今回その真因はコンデンサの容量抜けだったことが解りました。