目標の半分だけど、キュウリとキャベツの植え付け完了

昨日の続き、耕すと同時に根っこの除去作業です。昨日同様あまり進まず。気が付くと16:00です。
1m幅で、2m進む間に根っこでバケットがいっぱいになりました。ちなみに1m分でこの量です。

このままでは、今日の予定分が終わらないのでペースアップ、細かい根っこは無視して目についた 大きいものだけを取るように除去レベルを変更、と変更した矢先、次々太い根っこが出てきて、…。厳しいがとりあえず上から見つけたものだけを除去して、予定の半分の畝を立てる作業を完了しました。

2週間くらいおいて、苗を植え付けたかったのですが、苗のほうが来週目以降には持たなさそうなので、即植え付け作業をしました。キュウリとキャベツは今日予定していた分の植え付けを完了しました。

今日も、まだ植え付けできず

今日こそキャベツの苗を植え付けするつもりで、作業開始しました。
予定していた雑草の絨毯を積み重ねる作業(積み重ねるのが目的ではなく 雑草を取りたいだけなのですが)、何とか半分まで終わった状態が つぎです。

雑草絨毯の山

・半分は土なので、後日焼却処分して、剥がしたところに、戻す予定です。
 といっても今は早く植え付けしたい。
この時点で、日没まで時間がない。なんとか雑草を剥がす作業は完了し、
畝を作る前の耕す作業を始めましたが、周辺から侵入してきた木の根や、スギナの地下茎が大量に 出てきて思うように進まず、4分の1の根っこ除去したところでタイムアップとなりました。
それでも前回の進捗を思えばかなり進んだ感はあります。
月曜日は雨が降りそうなので、明日には植え付けまで完了させたい。

太陽光発電システムの故障判断アルゴリズム(その1)

 前回「この判定アルゴリズムを組み込んだアラートメールと、定期的にアラートメール自体の稼働監視用のメール通知をするシステムを構築しました。」と紹介しました。今回は、この 判定アルゴリズムと判定精度について紹介します。
 つぎが判定アルゴリズムでの解析後のデータのプロットです。 故障をかなりきれいに検出しています。

故障検出用のデータプロット


グラフの一番左が、発電開始日で、日ごとのデータをプロットしていて、一番右側が導入後6ヶ月あたりです。
太陽光発電システムは3つあり、サイト1、2、3としています。順番に構築したので、サイト2、3の発電開始日は 2、3週間とそれぞれ遅くなっています。 サイト1、2、3のそれぞれの500m程度です。距離が500m程度だと、瞬間に日照は雲のかかり具合で差が生じますが、1日の発電量に影響するような長時間片側のシステムだけ雲が覆い隠すようなことは 起こりません。要するに近場だと、天気による発電量への影響はほとんど同じになる。この特性を利用します。つぎが具体的な判定アルゴリズムです。
P1=「サイト1の1日の発電量」/「想定発電量」
P2=「サイト2の1日の発電量」/「想定発電量」
P3=「サイト3の1日の発電量」/「想定発電量」
MaxP=max(P1,P2,P3)
S1=P1/MaxP
S2=P2/MaxP
S3=P3/MaxP

このS1、S2、S3をプロットしたものが上のグラフです。
すこしばらつきがありますが、その原因は悪天候です。発電量が小さい場合はばらつきが大きくなる傾向があります。
また、太陽光パネルの配置が2か所は南向き1面なのに対して1か所は東西で振り分け(均等ではない)であるため、 午前と午後で天気が変わった場合にばらつきがすこし大きくなります。また、悪天候の日の発電量が想定発電量に対して、いずれの設備も30%以下と極端に小さい場合は、その日のデータを無視する仕掛けを入れて 判定しています。 そして判定結果をメールで通知しています。
これまでのところ工事停電など特殊な事情がなければメールも来ず、監視はうまくいっています。

 ここでは、複数の設備の比較での判定を紹介しました。1システムしかないケースがほとんどなので、 次回は、1システムしかない場合でも判定できるアルゴリズムを紹介します。

そういえば脆弱性

WordPressの初期設定をしたばっかりだが、そういえばWordPress関連の脆弱性は結構な数があったような気がする。
とうことで、その他のアプリケーションも含めて、チェックしてみました。

まず、WordPress:
開発元の情報だと5.1.1が最新で、5.1以前は脆弱性ありということ。
https://wordpress.org/news/2019/03/wordpress-5-1-1-security-and-maintenance-release/
https://wpvulndb.com/vulnerabilities/9230
 → これに関しては対処済みで問題なし。

https://wordpress.org/news/category/releases/
 → 2019/4/24時点のリリース状況だと、近く5.2が出そうだが、脆弱性的にはどうかは不明。ただし、バージョン番号のつけかたからすると、
つぎのSecurity Releaseは、5.1.2か、5.2.1だろう。

プラグイン:WordPress関連ではプラグインの脆弱性が多数報告されている。
https://jvndb.jvn.jp/search/index.php?mode=_vulnerability_search_IA_VulnSearch&lang=ja&useSynonym=1&keyword=WordPress
https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&query=WordPress&search_type=all
→インストールしたプラグインも一通り確認して対処済みであることを確認した。

何度も見て回るのは面倒なので、定期的に自動チェックしてメール通知するとか、検討してみよう。

とりあえずチェックするサイトはつぎや開発元サイトにする。
https://nvd.nist.gov/vuln/search
https://jvndb.jvn.jp/index.html

太陽光発電について

2013年に導入した太陽光発電システムについて書きます。最近の話の前にこれまでの運用状況です。
一言でいうとおおむね順調です。導入当初に設定した6年で投資額を回収する計画をほぼ予定通り 達成しています。 導入システム選定はこの投資回収期間の最小化を指標として機器選択をしています。
この投資金額は補助金等を考慮した実質の投資金額で算出しています。買電単価は42円/kWhでした、最近は 買電単価や太陽光発電システムの価格が下がってきているので、投資回収期間がどれくらいなのか わかりませんが、現時点で投資回収期間を6年くらいにするのは難しいと思います。

 これまでの、太陽光発電システムのトラブルは、導入後3か月で発生したパワコンの故障が一番大きいものでした。
たまたま見たモニタの発電量の数値が小さめであったことで気が付きました。4.4kWと5.5kWの2台のパワコンがありこのうち4.4kWのほうが故障していました。
このため、モニタ上の発電量は”0”になるのではなく通常の60%くらいの数値でした。もちろん発電量は天候によって 変化するので最大値の60%程度の発電量しかないことも普通にあるので、発見できたのは運が良かったかもしれません。
といっても、過去データを解析すると(ロスした期間はしたのとおり)、実際に故障してから発見するまで2週間経過していました。そして修理(パワコン交換)まで1週間ほどかかりました。 

 この復旧までの期間を短くするため、この判定アルゴリズムを組み込んだアラートメールと、定期的にアラートメール自体の 稼働監視用のメール通知をするシステムを構築しました。
 そして、上のトラブル以降は、パワコンの故障は発生することなく現在に至っております。
パワコンの故障以外に気になる事象(別の機会に書きます)が発生しており、アラートの仕組みの再構築を検討中です。

6月7日 100%
6月8日 57%
6月9日 62%
6月10日 57%
6月11日 68%
6月12日 67%
6月13日 66%
6月14日 61%
6月15日 72%
6月16日 71%
6月17日 68%
6月18日 61%
6月19日 56%
6月20日 54%
6月21日 59%
6月22日 80%
6月23日 64%
6月24日 65%
6月25日 61%
6月26日 91%
6月27日 100%
6月28日 100%
6月29日 100%

phpからpython起動

ローカルマシン上で動かしているpythonのコードを、サーバー上に移行することを検討中です。 現在、Jupyter Notebook(iPython Notebook)を使っていて、この環境向けに書いたコードを定期的に起動して、データ収集と解析を行っています。現状は、実行するときは手動でJupyterを起動して、操作しています。 この手間を何とかしたいわけです。

まず、pythonコードをPHPから呼び出す方法を確認。 いくつかのサイトに記載があり、つぎの2つの動作確認はすぐにできました。

「phpからpythonを呼び出し、実行結果を取得、表示」
「サーバー側でPythonスクリプトを動かし、結果をクライアント側に表示する」

ただ、numpyをインポートする単純なコードだと、phpではpythonの出力文字列を拾えない状態になった。上の2つ目のコードに順に追加していくと問題なく動作し、前の問題を再現できていない。 

1つめのコードに1行ずつ追加して問題発生有無をチェックしていくと、2バイト文字を含む行を追加した時点で問題が発生することが判明した。 そして、2つ目のpythonコードと比べて、
2つ目のpythonコード の1行目「#-*– coding: utf-8 -*-」が効いていた。 これを1つめのコードに反映して問題が解決した。 この行の記述のとおり2バイト文字はここで指定した文字コードで保存しないと文字化けする。
↑そもそもPHPでエラー出力を拾えるように細工しておけば、原因はすぐに分かったはずだが、 久しぶりに触ると.やはりだいぶ忘れてます。

つぎはJupyter Notebookのコードを移植していきます。

あっという間にディスクフル

そんなに大きなファイルを保存したはずもないのにディスクフルになることはないですか?

上は空き確保の対処後の状態ですが、まだまだ改善の余地なりの状態です。 ポイントは、保存したファイルの総サイズが255GBなのに対して、ディスク上のサイズは595GBという点です。実利用率は42%ほどにとどまっています。つまり、60%もの領域が使えない状況なのです。 

 この事象を発見した当時は、” 保存したファイルの総サイズが5GB程度なのに、4TBのHDDを使い切っていました。ディスクの実利用率は0.1%とひどい状況でした。原因はHDDの1ブロックのサイズが128MBと大きいのに、細かいサイズのファイルを大量にxcopyでバックアップしていたからでした。昔は512Byteとか4kByteだったので、何の問題もなかったのだが…。

バックアップの仕方を、圧縮したファイルを転送するようにバッチを変更しました。 ただ、たまに古いバッチが動いているようだ……。探して処置しないと… 

 それから、Windowsのイメージバックアップが1つのファイルで、1.6TBもある、OSなどバックアップ対象にしたファイルサイズはこんなに大きいはずはないのに。 バックアップの範囲内に、外部へのシンボリックリンクがあるような気もする… これも再確認が必要だ.

今日は、トマト1株追加…だけ

今日は、キャベツとレタスの苗を植え付ける準備のため2畝つくるつもりでしたが、雑草を根っこから除去するのに手間取りました。まだ雑草の処置ができていないので、耕せる状態にもなっていない。

苗の成長が早くなっているので、1株のトマトは来週まで植え付けを待てそうにないので、この1株だけは定植した。 キャベツの苗もこの状況だと来週には植え付けしないといけない状態になる。 しかし、今のペースで雑草除去していると終わりそうにない。来週は、表面の雑草の層をホームセンターで売っている芝生ようにとりあえず薄く削って山積みにする暫定処置にしておいて、畝つくりに集中することにする。 一部の温度計(外の気温を測っているもの)が29度を超えていた…。暑さとの戦いも始まってしまった…..。 

トマトの植え付け

本日ようやくトマトをボットから植え付けました。 去年の雑木林状態(下の写真)からだいぶ進んだ感はありますが、まだまだ草との戦いは始まったばかりです。10年以上放置状態だったので雑草や木々の蔓や根っこを除去するのはなかなかほねがおれます。ここ3ヶ月ほどは植物の活動も止まっていたのでトマトを10株ほど植えることができるレベルまで来ました。しかし、耕作可能地の1割も片付いていない。まだまだ雑草除去しないといけない。そんなことをているあいだに、自然は取り返しにくる….。 

2019年1月4日時点

20年ほど前は雑木もなくきれいな状態だったが、10年ほどあまり手をかけれていない、それでも毎年それなりに剪定や雑草除去はしていたが、ここまで荒れしまっていました。