太陽光発電のデータチェックをAI化

太陽光発電のデータを定期的にチェックしています。夜間だけ街灯を点灯するので夜昼の変動はありますが、これまで半年ほど一定であった電力消費がある時点から階段状に増加していることに気が付きました。調べると使用する必要のないポンプに電源が入れられ無駄な電気が使われる状態になっていました。これはもっと早く気づきたい事象です。
 以前、太陽光発電システムの故障を検知してメール通知する仕掛けを紹介しましたが、今回のような未知のパターンの異常は検知することができません。未知のパターンの異常であっても検知できる仕掛けであれば、今回の事象ももっと早く気が付くことができたのではないかと考えました。いわゆる今どきのAIの活用です。もっと的確に表現するとディープラーニングの活用です。この方法なら、以前に自動化した故障判断アルゴリズムもまとめることができるでしょう。
 ということで、太陽光発電のデータチェックをAI化してみます。

シングル混合栓での異音と対処の解決編(動画あり)

概略

ここでは、解決のポイントを紹介します。要約すると、問題の原因を特定して、問題のメカニズムを理解したうえで対処をすることがいかに大切かということです。本件の事象についてまだ読んでいない方は「問題の事象」のほうを先に読んでください。答えだけ読んでも同じ問題が起こることはほとんどないでしょう。ここの記述からは調査の進め方や考え方を学んでいただくことが一番役に立つと思います。







問題事象の仮説

さて、あなたは、問題個所が何にあり、どのような仕組みで発生していると推測したでしょうか?
それでは仮説を立ててみましょう。まず考えられるすべての原因となりうるものを上げます。サイエンティストやエンジニアなら先入観は置いておいて可能性がある原因をすべてあげます。コストをかけてでも緊急に対応しなければならない場合はすべてを同時に、もしくは可能性が高そうなものを同時並行で対処することもあります。この方法では早く解決できる可能性が高いものの対処が的を射て物でないと混沌とした状況に陥ってしまします。今回のトラブルはこれに近い状況でした。
 話を戻して想定される原因はつぎのとおり。
・a)止水カートリッジの不良(メインの止水栓)
・b)切替カートリッジの不良(浄水用のレバー部分の止水栓)
・c)蛇口とは別のどこか遠くの配管でのウオーターハンマー現象などの振動
・d)それ以外の接合部が劣化している。

問題事象の切り分け調査方法

・c)については、異音発生時に配管の振動を2フロア階下の配管でも観測したため、当初は疑っていました。 しかし、かなり早い段階で、「問題の混合栓直前(混合栓の下)のカランを閉じた場合、洗面台などほかの場所で水を使っても異音等の問題は起こらない。」ということから、問題は、「浄水器内蔵シングルレバー式混合栓」の内部で発生していると判断しました。 ”結果としてこの判断は正しいものでした。”

・b)は、「浄水栓を開けて水を出した場合は異音が発生しない。」という状況から問題ないと判断しました。というか、これ以上の調査をせずに想定原因から外していました。

・ということで、a)が原因と推測して”止水カートリッジ”を交換しました。しかし、異音は解消されませんでした。メーカからこれ原因といわれたことも理由ですが、他に原因が思い当たらなかったのでそれ以上の原因確認をしていませんでした。 反省点は、問題の根本原因、異音の発生源を特定しないまま対処を行ったことです。
・d)それ以外の接合部から水が漏れた場合は蛇口からではなく接合部から外部に漏れるので発生事象とは符号しません。

今回の問題の切り分け方

それでは仮説に戻ります。”異音発生時に漏水する”ことから、異音は狭い隙間を水が僅かに流れたり流れなかったり繰り返すことにより異音が発生していると推測します。仮に止水カートリッジ付近に起因して発生しているとすれば、異音発生時にシングルレバーを押さえるなどすれば隙間の幅が変わり異音の発生状況が変わると推測される。浄水側で異音が発生しているなら、切り替えレバー部分を押さえることで音の発生状況が変わると推測されます。

 また、仮説から関連事象について検討してみます。「別の場所で水を流した時に異音が発生し、混合栓からの漏水する」は、水を流すと「貯水槽から揚水」のためポンプが起動し、水圧が少し高くなる。そして、圧力に耐えきれなくなった水密部の隙間から漏水が発生し、その微小な振動が共振して異音として聞こえる。そうであれば”別の場所で水を流した”パターンと問題の混合栓直前(混合栓の下)のカランを閉じた場合、洗面台などほかの場所で水を使っても異音等の問題は起こらない。」については、a)、b)どちらであっても説明が付きます。
 そして、あまり気にしていなかった「浄水栓を開けて水を出した場合は異音が発生しない。」がa)では説明がつかないことに気が付きます。浄水を流してもポンプが稼働するので止水カートリッジ部の水圧が高くなるので異音が発生するはずです。b)の場合も説明がつかないように思われます。しかし、水が流れているので圧力が解放され、異なる状態になっていると推測されます。また、切替レバーを開放すると狭い隙間を通らなくても抵抗が少ない開放されたルートで流れるので隙間には水が流れず異音が発生しなくなっていると推測されます。さらに浄水の場合、途中に濾過フィルタがあるため水が流れることでフィルタの前後での圧力差が発生し、さらに切替カートリッジ部分での水圧が下がっていると推測されます。つまり、推測での結論はb)が原因です。すべての発生事象とも符号します。

実物での検証で答え合わせ

 それでは、上に書いた「切り分け方法」を試します。結果は動画参照。

https://mic.or.jp/info/wp-content/uploads/2019/11/check_a.mp4

”シングルレバー部 を押さえても音の出方に変わりはありません”つまり、a)ではないと判断できます。 つぎに、”切替レバー部を押さえると、音が消えました。離すと再発”とうことで、ほぼ間違いなくb)が原因と判断できます。

 さらに追加でのチェックです、「 切替レバーを開放すると狭い隙間を通らなくても抵抗が少ない開放されたルートで流れる 」のであれば、シングルレバーで水を流して異音が発生している状態で切替レバーを開放すると異音が消えると推測できます。

https://mic.or.jp/info/wp-content/uploads/2019/11/check2.mp4
 これも推測通りで、” 切替レバーを開放すると異音が消えました ”。以上からb)切替カートリッジ部の劣化が異音の原因であったと判断できました。

対処とその結果

  切替カートリッジ(浄水部) を交換してもらいすっかり異音はなくなりました。問題解決です。

 謎な事象ほど、しっかり現状の状況を調査・分析しないと問題解決に時間を要します。仮説・検証の際は、先入観を排して想定される原因を漏れなく洗い出しましょう。

解決までに時間がかかった水道混合栓での異音と対処(動画あり)

概略

8月ころに水を流すたびに「ぶー」とか「くぅーー」という異音が発生していました。施工業者に対応依頼し、1回現物を見に来て、そのあと何回か電話連絡などしていましたが、その後音沙汰がなくなりました。ほっておくわけにもいかないので混合栓のメーカに依頼しました。そこで、止水カートリッジの交換での対応を提示されました。指定の止水カートリッジを交換してみましたが、異音が発生する状況は変わりませんでした。

メーカに伝えた情報

・浄水器内蔵シングルレバー式シャワー付混合栓を使用(型番の情報)。
・状況
  - 吐水時のわずかな時間 ”ぶう”という異音がする。
  -水を止めたままの状態においても、たまに同じ異音が1秒未満発生
して、蛇口から水が出てくることがある。

メーカからの回答

 交換用部品の型番の情報提示と、対応方法(訪問修理か、自分で交換)および費用について回答がありました。詳細な交換手順もあり非常に丁寧な対応でした。

対処とその結果

部品を取り寄せて、自分で交換しました。練習でアウトレットボックスの穴あけにしか使ったことがなかったウォーターポンププライヤがこの交換作業で活躍いました。
 そして止水カートリッジの交換は無事に終わり、通水、止水も問題なく機能したのですが、問題の異音が全く解決していない。音が大きくなったり、小さくなったりもしていない。つまり発生音の状況から、 止水カートリッジはこの異音とは全く関係なかったことが分かります。

再度のメーカへの対応依頼

提示された止水カートリッジの交換では解決しなかったことと、下の発生状況の情報を伝えて出張修理対応を依頼しました。すると、先に交換した部品の再交換の提示と、直らないかもしれないという回答がでました。(それはメーカとしての回答としてはよくないんじゃない..)  放置してさらに症状が進行すると水が出っぱなしになりそうなので、何とか対処しないといけません。

ここまで確認した事象についての整理

問題のシングル混合栓で水を出した場合に「ぶー」という異音が発生する(異音を含む動画)
https://mic.or.jp/info/wp-content/uploads/2019/11/VID_20191107_142509.mp4

・別の場所で水を流した時に異音が発生し、混合栓からの漏水する
https://mic.or.jp/info/wp-content/uploads/2019/11/VID_20191107_142728.mp4

・浄水栓を開けて水を出した場合は異音が発生しない

問題の混合栓直前(混合栓の下)のカランを閉じた場合、洗面台などほかの場所で水を使っても異音等の問題は起こらない。 

・問題の混合栓は3階にあり、給水は10mほど下にある貯水槽から揚水している。

・シングル混合栓の止水カートリッジを交換したが、異音は解消しなかった。

※あなたなら、以上の状況から、どこに問題があると推測するでしょうか? 仮説を立てて、それを立証するには何を追加で調べればよいと考えますか?

解決編は、こちらです。

 

首里城火災で何らかの基準見直しが必要か?

首里城火災で「防犯カメラの電源が、火災検知センサーの反応する直前に落ちていた、電気系統に漏電やショートなどの不具合が起きた可能性もある」ということらしい。

 「 電気系統に漏電やショートなどの不具合 」などで火災が起きないようにいくつもの法律や基準が作られている。このような状況で一番ありそうな話は、法令や基準に従わず配線などを行っていたというところでしょう。その問題原因を徹底的に調査していることでしょう。その問題を作った人や企業は責任を追及されることが想像されます。特に今回のようなケースでは法律や基準を知らかかったからなんてことは許さないでしょう。その場合でも根本原因の分析は必要でしょう。そしてその要因として法令や基準が複雑であることがあるかもしれません。そうであるなら何らかの方法で容易に基準を満たしているかどうかのチェックを行えるようにする仕組みや基準の見直しが必要かもしれません。

 別のパターンとして、法律や基準を満たしていたにもかかわらず火災に至ったケースが考えられます。 使用される機材等の変化から 現状の 法律や基準をではカバーできていないのかも知れません。この場合はだれの責任かはともかくとして、法令や基準の見直しは必要でしょう。そのうえで、そのような状況を引き起こしてしまった機器などに関して、何らかの法令違反がなかったか責任が追及されることになるでしょう。

 あまりなさそうなのは、人為的に防犯カメラの電源が落とされたパターンですが、事故というより事件です。もしもそうなら、 防犯カメラの電源が落とされるまえまでに記録された情報から犯人を特定できるようにするべきで、今の時点でそのような情報がないということはそのような記録がないのでしょう。この場合、記録できていないか、そのような事実はないのかのどちらかですが、記録できていないのだとすると記録できるようにするための基準か何かが必要でしょう。 

WordPress5.2.4セキュリティパッチ

5.2.4セキュリティパッチが適用されてました。動作的には問題ないようなので、パッチ検証環境以外にも適用します。

 このほかに、5.3 Release Candidate が出ています。特にほしい機能があるわけではないので、取り換えず様子見です。

 そして、以前に旧版へセキュリティパッチの話を書きましたが、5.1.3が同時にリリースされていました。パッチリリースのところには情報公開されないのですね。ちょっと不親切な感じがします。

spamの配信ツールはDNSキャッシュがずっと残る?

サーバが切り替わったので、古いサーバ宛のメールはほとんど来なくなりましたが、今日もまだ古いサーバに1件メールが来ていたので確認してみました。

”Security Notice. ……”というタイトルのspamメールでした。
送信ツールから、直接古いメースサーバ宛に送信されていました。普通のメールクライアントからの送信なら、送信用メールサーバーを経由するので、2段階以上の送受信となるはずですが、つぎのように、1段階だけでした。
 この部分をチェックするだけでも、何らかのツールを使って送信していることが分かります。

メールのソース
:省略
X-Mozilla-Keys:                                                                                 
Return-Path: <xxx@mic.or.jp>
Received: from tm.82.192.61.119.dc.telemach.net (tm.82.192.61.119.dc.telemach.net [82.192.61.119])
 by mic.or.jp (Postfix) with ESMTP id 7070911002A03
 for <xxxx@mic.or.jp>; Wed,  9 Oct 2019 10:25:50 +0900 (JST)
From: xxxx@mic.or.jp>
To: <xxxx@mic.or.jp>
Subject: 
:省略

  そして、DNSを切り替えて、1週間程度経過しているにも関わらず、古いサーバ宛に送信されています。 どこかにキャッシュされていたDNS情報を取得して古いサーバ宛に送信されたことが考えられます。しかし、今回のケースだと、1週間以上前にもメール送信した実績があり、その時に取得したDNS情報をキャッシュしていて、昨日メール送信する際にその情報を使ってメール送信したと考えるのが妥当でしょう。 メールマガジンの配信など大量メール送信ツールにはDNS情報のようにキャッシュできるものはキャッシュして性能を稼ぐ実装を採用しているものもあります。そのような技術をspam送信に利用しているのでしょう。

WordPress 5.3 Betaリリース、 旧版へのセキュリティパッチは?

2019年9月23日にWordPress5.3Beta1がリリースされていますが、旧版へのセキュリティパッチの情報は特にありません。WordPressは新版をリリースするときは1か月くらいかけて毎週のように更新版を出してきます。開発のほうに力を入れていて、セキュリティへの対処へ使うパワーがあまりない感じがします。
セキュリティ対処は外部の人の力に頼っていて、自己対処ができていないのではないかと思われます。このような状態では、新規開発部分に作りこまれる脆弱性は減らず、脆弱性がどんどん増えていく状態になるのではないでしょうか?

さて、追加でWordPress 5.2.3 で対処された脆弱性について確認します。 影響度と影響範囲の情報について追加情報が出ていますが、あまり詳しくありません。 CVE-2019-16220JVNDB-2019-009141)の場合、影響バージョンは WordPress 5.2.3 未満 となっています。該当機能が、初期バージョンから存在するのか疑問ですが、該当機能はかなり以前からあるので事実上すべてのバージョンに影響があるといってもよいのかもしれません。それから9/12の午後以降にJVNの情報公開がされていました。今後のセキュリティパッチはWordPress5.3に対して提供されることになると思われるので、どのタイミングでWordPress5.3に上げるのか、検証計画を立てておくなど検討しておいたほうがよさそうです。

ネットワーク障害発生、色々調べたが原因特定できないまま解消。

昨日、原因不明のネットワーク障害が発生し原因調査と対処をしていましたが、原因不明のまま解消しています。NTT側の障害の可能性もありリアルタイム障害情報などを確認し、「障害があるかも」の情報があり注視しながら進めていましたが実質的に何もしないまま解消しています。以下状況と対処内容、今後の障害に対するメモです。

1. 2019/9/19 15:00ころネットワークが使えなくなる障害が発生。
復旧のため、PC再起動、ルータの再起動を行ったが復旧せず。
 状況を確認したところ、LAN内で同一セグメントの別マシンにPingも通らない。
 → 自マシンのIPが想定外のアドレスに変わっている。→ DHCPが機能していないとおもわれた。
2. 自マシンを固定IPに変更した。
 → これでもLAN内で同一セグメントの別マシンにPingも通らない。ルータにもPingが通らない。
#なんか変だ、発想を変えて、使えるものを確認してみる。
3. 別のWiFi回線を使ってインターネット上の情報を見てみる。特に情報がないためNTTの回線の問題ではないかもしれない。事象発生から10分くらいしかたっていないのでまだ情報が出ていないだけかもしれない。携帯電話から光電話に電話をかけてみると問題なく電話がかかってきた。
#ますますオカシイ、外部回線の問題ではなさそうなので自前で対処するしかなさそうだ。
4. よくあるインターネット接続できない場合のPCやルータの再起動では回復しなかった。
#これは自分で地道に原因調査して、回復させるしかなさそうだ。
5. まず最小限の範囲から回復させていくことにする。
 自マシンと同一セグメントの別マシンの通信を復旧させることにした。この隣のマシンにPINGが通らないは異常な事態だ。単純に手元のHUBが故障したのかと仮説を立てて確認をしようとしていたところで、別系統の無線LANで接続している機器から次々とインターネットに接続できない旨のメッセージが報告された。
#おや、これは単一障害ならやはりルータの問題か?と問題原因の仮説を見直すことにした。
6.いったん、電源を切ってみる。
 →これでも、 自マシンと同一セグメントの別マシンの通信ができない。固定IPなのにPingも通らない。
#これは、かなり異常な状態である。使える機器を狭い範囲で確認して順番にひろげていくことにした。
7. 一度、HUBにつながったケーブルをすべて外して、 自マシンと別マシンだけにして、Pingしてみる。問題なくPingが通った。
#当たり前だが久しぶりにようやく動いた。
8. 1本ずつ、ケーブルをつないで動作確認してみる。ある1本のケーブルをつないだところで、そこまで通っていた 自マシンから別マシン へのPingが通らなくなった。ネーブルを外すと、Pingが通るようになる。このケーブルの先に問題がありそうなことが判明した。ただ、このケーブルの先にルータがあり、このケーブルを接続しないと、インターネットには接続できない。
#このパターンの場合、ループしている可能性が一番高い。しかし、その後の調査でもループは見つかっていない。長引きそうだが、インターネットの接続を早く復旧したいので、メインルートから復旧を試みることにする。
9.問題のケーブルの先のHUBに接続されたケーブルをすべて外してルータのみ接続した。→ これによりインターネットへの接続が復旧した。
10. 先に外したケーブルを接続しなおし、動作確認を行った。→ 障害発生前の状態に復旧した。
#結局、障害の原因は不明であり、ケーブルの挿抜だけで復旧したことになる。今度同様の事象が発生したときは、パケットキャプチャも行うことにする。

WordPress セキュリティパッチのみ自動適用するには

 WordPressのセキュリティパッチに関して検討および対処してきましたが、多数のプラグインの利用とWordPressのパッチリリースのスタンスや情報公開の仕方を考慮してパッチリリース状況の監視と適用の手順を見直しました。
 セキュリティパッチのみを適用するということが、WordPressの場合は「セキュリティ修正が含まれているのにメンテナンスパッチ」となっていたり、「プラグインのセキュリティ問題の対処をセキュリティ修正としない」とされていたりする状況からあまり妥当でないとなっていると判断しました。

つまり、ポイントは次の2点です。
・WordPressがいうところのメンテナンスリリースとセキュリティリリースとを区別して別の取り扱いをする意味はあまりない。メンテナンスリリースとされていてもセキュリティの対処が含まれている場合がある。
・ メンテナンスリリースとセキュリティリリースのどちらも適用しないと問題があるかどうかを確認できない場合がある。

以上の状況から、つぎのようにします。

「テスト用サイトを立ち上げておいて、テスト用のサイトについてはパッチを自動適用する設定にしておく、パッチ適用のメールが来たら動作確認を行い、本番環境に適用するかどうかを吟味し適用手順を確立したうえで適用作業を行う。」

WordPress 5.2.3 セキュリティパッチの適用

2019年9月5日にリリースされたセキュリティ&メンテナンスパッチWordPress5.2.3について書きます。 wp-config-sample.phpが更新されていましたが、動作に影響がある変更はなく実質的には気にする必要はありませんでした。5.2.1のように白画面になることもありませんでした。
 しかし、” Page Visit Counter ”がエラー(具体的に何のエラーなのか情報がない)で止まっていました。この停止問題はプラグインを設定ページで有効化することで解決しています。

WordPress 5.2.3 で対処された脆弱性について確認します。 WordPressのサイトの情報では1件ごとに明確にされるべき影響度とか影響範囲の情報がなく、問題検出者への感謝?の公開の場でしかありません。何とかしてほしいが、他のサイトで確認してみましょう。 9/12時点でJVNのほうにはまだ登録されていないように見えます。NVDの情報では、つぎの7件がWordPress5.2.3で対処されたことが分かります。

CVE-2019-16223WordPress before 5.2.3 allows XSS in post previews by authenticated users.
CVE-2019-16222WordPress before 5.2.3 has an issue with URL sanitization in wp_kses_bad_protocol_once in wp-includes/kses.php that can lead to cross-site scripting (XSS) attacks.
CVE-2019-16221WordPress before 5.2.3 allows reflected XSS in the dashboard.
CVE-2019-16220In WordPress before 5.2.3, validation and sanitization of a URL in wp_validate_redirect in wp-includes/pluggable.php could lead to an open redirect.
CVE-2019-16219WordPress before 5.2.3 allows XSS in shortcode previews.
CVE-2019-16218WordPress before 5.2.3 allows XSS in stored comments.
CVE-2019-16217WordPress before 5.2.3 allows XSS in media uploads because wp_ajax_upload_attachment is mishandled.

9/11にDBに登録されたばかりで影響範囲など詳しい情報はまだありませんでした。

想像ですが、9/12時点で過去バージョンに対してセキュリティ修正のみ(WordPress5.1.2?)を提供しようと準備しているように見えます。5.2.3のリリースには「In addition to the above changes, we are also updating jQuery on older versions of WordPress. This change was added in 5.2.1 and is now being brought to older versions. 」の記述があります。しかし明示的には5.1.2について特にアナウンスしているようには見えないので、本当にリリースされるかはわかりません。どうしても欲しければチームに入って推進すればよいかもしれません。