ぐるぐるnest hub その1 インターネット未接続となる問題  徹底調査で解決 

「WiFiに繋がらない」、「インターネット未接続となる」などで検索すると多数の記事が見つかり、そこには「使用デバイスの不具合」、「無線LANルーターに不具合」などの記載があり、その対処は「スマートフォンの機内モードのONとOFFを切り替える」とか「スマートフォンのネットワーク設定をリセット・再設定」とか書いている。その対処で動くようになることがあるかもしれないが、原因が特定できておらず、再発する可能性が高い。つまり解決したことにはならないことが多々あるに違いない。

  ここでは、ほかのサイトに書かれていない(稀な?)パターンの調査&解析とその解決までの記録である。 タイトルを「ぐるぐるnest 」としたが”その1”ではnestの話を書こうとしていたところ発生した別パターンのトラブルについて書く。

症状:

AndroidスマホをWiFiにつないで使用していた。ある時点までは問題なくWiFiを利用できていたが、部屋を移動して別の無線LANを使用して元の部屋に戻ってきWiFi接続を切り替えるとWiFi(無線LAN)には接続できているが「インターネット接続なし」となりネット利用できなくなる。
 同じ無線LANに接続してほかのIoT機器(Google home、SiwtchBotHubやNature Remo)はインターネットに接続できている。

 この状態で、他のサイトの記事を参考に対処するなら、Androidスマホの再起動や、WiFiオンオフの設定や無線LANの再起動だろう。 いずれの対処も効果なく症状に変化はなかった。過去には似たような症状のときに、無線LAN再起動することで復旧したことはあったが、今回はそのパターンではなさそう。
「原因特定なくして解決なし」ということで原因調査を開始した。

解析編:

まず大まかな切り分けから。
 よくあるサイトの対処手順を参考に切り分けてみる。
1. まずスマートフォンそのものが壊れていないかを確認
  他の無線LANにつないで使う分には問題なく使える
→ 「 スマートフォン そのものの故障」ではない
2.「スマートフォンの機内モードのONとOFFを切り替える
  OFFにするとつながらない。ONに戻しても「インターネット接続なし」の状態に変化はない。 →「機内モード」の問題ではない
3.「スマートフォンのwi-fiのONとOFFを切り替える
OFFにするとつながらない。ONに戻しても「インターネット接続なし」 の状態に 変化はない。 →「WiFi ON/OFF」の問題ではない
4. 「スマートフォンのネットワーク設定をリセット・再設定
 無線LANに接続できているので、スマートフォン側の設定の可能性は極めて低い。もし、設定の問題だとしてもいきなり再設定ではなく設定が妥当か確認する作業が必要だろう。 ということで、後で確認する。
5.「スマートフォンを再起動
スマートフォンが異常な状態になっているなら、これで復旧するかもしれない。
 再起動しても 「インターネット接続なし」 の状態に 変化はない。 →  一時的な異常な状態という問題ではない。

 ということで、よくあるWiFi接続問題を取り扱うサイトには書かれていない何らかの問題が発生していると推測された。

戻って、スマートフォンのネットワーク設定を詳細確認してみた。 設定詳細を開くと、スマートフォンに払いだされたIPとゲートウェイIPは目を疑うものだった。いや、これではインターネットにつながるはずがない。これで、無線LANに接続できているのにインターネットに接続できない直接的な原因は理解できた。
 なぜそうなったかの調査と根本対策は。ここから始まる。
とりあえず復旧させてみよう。”プライバシー….” という項目を長押しするとMACアドレスをランダムにするかデバイス固有のものにするか切り替えることができる。これを使ってIPアドレスをDHCPに再払い出しを要求してみる。 とりあえずIPアドレスは想定通りのものに変わりインターネット接続は復旧した。
 →これで、 「インターネット接続なし」 の直接の原因は”割り振られたIPアドレスにある”ことが確認できた。

 問題の「目を疑ったIPアドレスとゲートウェイIP」は、遠く離れた場所に最近追加した無線LANの無線LAN側のDHCP設定で指定したものだった。
 ここまでの状況を図で整理すると次のようになる。


この挙動は、かなりありえないことが起きていそうなことが理解できるだろう。ただ、事実起きているのだから、この事象発生には何か原因があるのは間違いない。こういう問題は、”ありえない”と最初から起こりそうにないことを除外してしまうと永遠に解決できなくなる。切り分け調査を一歩一歩進めるのが解決への近道である。

 さて切り分けをどうするかを考えようとしていた矢先、「インターネット接続なし」問題が再発した。 今度は、  ”プライバシー….”を使ってIP再払い出しを試みるも復旧しなかった。なおかつ、IP再払い出し要求をするたびに確かにIPが変わっている。そのIPは無線LAN③用のものだ。無線LAN③からIPが払い出されているのは間違いなさそうだ。では、どのような経路で払い出されているのだろう。WiFi接続の認証後、IP払い出し要求するときに無線LAN③からの電波を受け取っているのだとしたら、… 
 無線LAN③の電源を切ることで解決できそうだ。しかし、必要だから無線LAN3を用意したわけで、いつも電源を切っておくわけにはいかない。そこで、まず電源は切らずに無線LAN③のWAN側のケーブルを抜線してみる。

暫定対処

無線LAN③のWAN側のケーブルを抜線して 、スマホで「 IP再払い出し要求 」をすると正しいIPが払い出されて、インターネット接続に成功した。
 これで、このトラブルのメカニズムを理解できた。
ここまでの文面で分かる人は理解できたかもしれない。少し難解なところもあるので、再度整理しておこう。

トラブル原因と仕組み

仕組みは上の図の通りである。 問題は、無線LAN③のDHCP動作である。DHCPはLAN側設定であって、WAN側に流れるものではない。 無線LAN①に接続した機器は通常ブロードバンドルータが払い出したIPを利用する。これにより、IPは192.168.1.xxx、ゲートウェイIPは192.168.1.254となる。しかし問題発生時はIPが192.168.80.xxx、ゲートウェイIPが192.168.80.1となっていた。
 192.168.1.xxとなるか、192.168.80.xxとなるかは、どちらのDHCPからの応答が早いかなど運しだいという状況だったわけだ。スマホ以外のIoT機器に問題がなかったのはたまたまといってよいだろう。いつかは同じ状態に陥っていたかもしれない。また、IoT機器は設計上リトライ回数を増やすなどが我慢強い復旧策を実装しているのが効いているかもしれない。
 いずれにしても、根本原因は判明した。

根本対策

問題原因は分かり、無線LAN③のWANケーブルを抜くことで解決したが、192.168.80.x系のIoT機器が使えない状態なので、いつまでもこの状態にしとくわけにもいかない。
 
 無線LAN③の設定を見直してみる。 そもそも192.168.80.x系の通信がWAN側に漏れるのを防ぐべきで、基本的にはガードできているようだ。 だが、実際にDHCPのUDPパケットはWAN側から無線LAN③に到達して、それに対する応答をしている。 無線LAN③のWAN側パケットフィルタを見るとデフォルトで多数の設定が組み込まれているがDHCPパケットの破棄設定はなかった。

  そこで、DHCPパケットをフィルタリングすることとした。根本対策は、「ネットワーク構成変更jする際は、境界を越えてDHCPパケットが流れないように設定を確認する、また設定を行う」とする。
 ※ネットワーク機器メーカは妥当になるように製品開発を行う際は十分に検討・検証してほしい。

最後に

トラブルの対処法は、小手先の対処では再発する。根本原因を調査して根本対策しましょう。
  ちょっと、長くなりました。 タイトルの「ぐるぐるnest」は次の機会に書きます。このネタも今回と同じくらい長くなる予感がします。。。

音声コマンドで、Google Nestやテレビ(Chromecast)にスマート非対応のWebカメラの画像を表示してみる(hsbox使用)

スマート対応されたIPカメラも登場してきていますが、現時点のWebカメラのほとんふどは未対応でしょう。そこでスマート非対応のWebカメラからGoogle Nestやテレビに映し出すことにトライします。もう一つポイントは”プログラミングしない”ということです。hsboxを使用し、設定だけで実現します。

システム構成:
IFTTTで 「Google Assistant」 をトリガに使用。
※機種によっては監視カメラ自体のアラームをトリガにできます

②IFTTTの 「Webhooks」で、hsboxのAPIを操作。

③ hsboxのメニューのコマンドで画像をURL指定指定して
スマートデバイスに 「cast」を実行

  ④ Google Nestなどの スマートディスプレイや、
Chromecastが WebカメラにURLにアクセスし
ディスプレイやテレビに画像を表示

ここでは、hsboxのスマートサービス連携機能クイックスタートガイドの設定が完了している前提で書きます。 つまり、「メニュー ゼロ」の呼び出しで、ディスプレイや テレビにhsboxのトップメニューが表示されるところまでの設定が完了している前提です。

■①トリガの設定、② 「Webhooks」 の設定

①、②は上記の前提条件の設定状態で完了しています。個別の「シングルワード」での呼び出し設定を行うことで、より操作しやすくなります。

■③メニューのコマンド設定

hsboxのメニューファイルをダウンロードします。設定変更していないなら、どのファイルも同じです。すでに変更していて、追加したい場合は、boxmenu.txtをダウンロードして編集します。

設定例:
 メニューの 625番に 玄関に着けたWebカメラ(http://192.168.20.50:80/snapshot.jpg)を表示するコマンドを登録してみます。

625番なので、 boxmenu.txt ファイルの626行目をつぎのように更新します。※ boxmenu.txt ファイル の行は追加削除しないでください。行番号がメニュー番号に対応しています。先頭行(1行目)が、メニュー0番なので、メニュー625番は、626行目に相当します。

302,http://192.168.20.50:80/snapshot.jpg,-,625: 監視カメラ (玄関),カメラ,-


活動量計 T-PRO Lifesense band2 切れたバンドの対処について

暫定的にビニールテープで補修して使用していたが、他のところがプッチと切れてしまいどうしようか検討中です。ネット上を探すとすぐ切れたという情報が多数見つかりました。バンドが切れるのは”あるある”なのですね。残念ながら、Lifesense bandはもう販売されておらず、交換用のバンドも品切れとのこと、困った。
 本体部分は、問題なく使えているのに、バンドが原因でリタイアとなるとは想定外でした。ほかの製品用のバンドで代替できるものがないか探してみたが、コネクタ部分の仕様が違うようだUSBに直接突き刺す仕様なので、寸法が合いそうなものはあるが、引っ掛ける部分の機構に違いがあるようだ。
 
 諦めて、バッテリーの持ちと、バンドの耐久性を考慮して代わりの製品を探してみた。
 相変わらずApple Watchは駆動時間が短いようだ。2台持ちで問題解決ってどうなのよ。という感じ。バンドについてはいろいろ選べるので、どうにでもなりそうだが、電池の持ちだけはどうにもならん感じがする。ということで、 AppleWatchは 選択肢から外れた。
 そうなると、バンドの耐久性がありそうな活動量計は皆無にちかい。そんなこんなで、fitbitということになった。 fitbitなら、革製や金属製のバンドも存在する。

さてどうなるか、結果は追ってレポートします

活動量計 T-PRO Lifesense band2 バンドが切れる 

使い始めて、ちょうど1年で、バンドが切れてしましました。 電池の持ちなど機能的には満足していたのですが、思わぬ落とし穴でした。 レビューをみなおすとバンドは切れやすいらしい。数か月で切れるのはさすがに使い方の影響が大きいように思いますが、切れやすいことには間違いが無いようです。 他の製品はどんな感じなのでしょうか。 いろんな製品で交換用のバンドが売られているところを見ると、切れるのは珍しいことではないようです。 金属製とか切れようがないバンドにならないものでしょうかね。

 T-PRO Lifesense band2 のバンドは、どれも売り切れなので、とりあえずあきらめて、バンドをテープで補強してだましだまし使うことにした。 何か良い製品はないのだろうか。。

活動量計 T-PRO Lifesense band2 想定外の電池切れ、半年ほどで寿命??

以前に電池の持ちについてレポートした T-PRO Lifesense band2 ですが、本日想定外の電池切れが発生しました。これまでは心拍計オンでも5日ほど電池が持っていましたが今回はフル充電した翌日に切れました。

 充電しても充電されるようすがありません。最近何かし違うことをしたかと言えば、USBの口つきのコンセントをかえたことです。まさかと思いながらコンセントを交換して充電しなおしました。復活?、100%まで無事に充電できたように見えます。昨日は間違いなく100%まで充電できていたので、1日でほぼ0%になったのは謎です。とりあえず心拍計オフでどうなるか様子を見ます。問題なければ、不具合のあるUSB充電アダプタで充電すると十分に充電できていないのに100%と表示されるということになるのですが…。 なんか納得いかない挙動です。

 別の観点で、今日何か特別なことをしたかといえば、特になにもしていない。接点をショートさせるような水気への接触などは特にない。 

 再現するのか様子見です。

2020/7/7時点で、再現していません。 当時だけ違うことは「 USBの口つきのコンセント 」です。 それが原因だったということなのでしょう。

スパム対策設定の成果

先のスパム設定の成果

設定対策後1ヶ月が経過しました。 先に公開した設定で、検出できなかったスパムは0件でした。 ただ、誤検知、つまり通常の配信メールなのにスパムと判定されたメールが4件ありました。これらは、除外設定で暫定回避して誤検出を抑制しています。

正式な誤検出対策の方法

誤検出を検出されたときに1件づつ除外設定をしなければならないのは面倒です。そこで、誤検出してしまった原因を確認して、その条件を除外することとします。
 DNSの逆引きで、unknownとなった送受信ログがあるものを対象としていますが、メースシステムの送受信でDNSで名前解決をせずに動作しているメールサーバーの存在が原因でした。つまり、メールの送信元がファイアウォール内のイントラネットであって、そこから中継サーバを経てインターネットに送信されています。

普通、メールサーバならイントラネット内でもDNSで名前解決するようにシステム設計するものなのですが、それなりにインターネットサービスをしている企業であっても名前解決・逆引きできないメールサーバがいくつかあります。DNS設定くらいしておいてほしいのですが、そんなことを言っても解決できないので、対処方法を考えてみます。
  問題はイントラネット内でのUnknownですので、Unknwonが10.x.xとか192.168.xとかのイントラネットIPなら除外する回避設定を正式対処としてみます。正規表現でUnknownかつ(10.xx.xx)でも(192.168.x)でもxxxでもない場合にスパムと判定するように見直します。といっても、メーラのフィルタにこのルールを設定できるのか疑問ですが。

スパム対策設定その後

先のスパム設定の結果と追加対策

対策前の1週間: 対象のスパムなどのメール は 284通。 これは振り分け前なので一部MLも含んでいる。 半数はスパム候補として判定されマークされている。一番対策したかったのは、メーラーやSpamAssassinでスパム判定し漏れてメインのメールボックスに入ってくる新しめ?のスパムでした。 100通/週くらいありました。

対策後の1週間;メインのメールボックスに入るスパムはほぼなくなり、1週間で2,3通でした。スパム判定の下メール内訳は次の通り、
先に追加したスパム判定ルールで検出したスパム:222通。うち、97通はメーラーやSpamAssassinでスパム判定し漏れたものでした。 追加したルールで引っかからず、メーラーやSpamAssassinで検出したものは157通ありました。 
 誤判定がないとは言えませんが、誤判定してしまうような環境から送信されたメールは不要としてしまってもよいかもしれません。数はほとんどないのでどうしても必要ならホワイトリストに入れることで回避できます。 スパムに困っている人は参考にしてください。

スパムメール対策 、おや多いと思ったら設定し漏れ…

最近スパムメールが増えてきたので、設定の見直しをしてみた。いくつかのパターンに分けて対策を試みる。

fromが自分のメールアドレスに偽装されているもの

このパターンは、一目でスパムとわかるので、まとめて削除できるが、事前に何とかならないか設定方法を見直してみる。
 このパターンは、サーバーで拒否してほしい。これは、送信元IPや送信元サーバーのドメインで判断できる。しかし、ここのレンタルサーバサービスでは提供されていない。仕方ないので、メーラで受信後に自動削除してみよう。
 メーラによって設定方法や設定ができるかどうか変わりますが、以下はThunderbirdでの設定方法です。
 ツール→メッセージフィルタ→新規→フィルタ名を入力→条件で”カスタムヘッダ”「Received」 に”次を含む”「.XXXX (unknown」を指定し、 動作に「メッセージ削除」を指定する。
  この設定で、 *.XXXX ドメインと語るサーバー(本当のドメイン名unknownつまりDNSで逆引きできない)から送信されたメールを削除する。

特定IPからの送信を拒否

特定IPからの送信を拒否するより、送信元のメールアドレスが自分で、送信元のIPが自分以外のものを拒否するほうが効果的だろう。このパターンも レンタルサーバサービスでは拒否方法が提供されていない。同様に、メーラーで削除設定してみよう。上と、同様に
 仕方ないので、メーラで受信後に自動削除してみよう。
 ツール→メッセージフィルタ→新規→フィルタ名を入力→条件でカスタムヘッダ「差出人」に「次を含む」・「自分のメールアドレス」とand条件で「Received」 に「次を含む」、「unknown」を指定し、 動作に「メッセージ削除」を指定する。 「Received」 に「次を含む」、「(unknown」を指定し、 動作に「メッセージ削除」を指定する。※2019/12/26更新 普通にサービスされている正式なものにも意外に送信元名が設定されていないサーバーがあるので、IP逆引きできないものに限定することにした。これだけでも半数以上のスパムを処置できそうです。

以上の設定で、かなりの数のスパムメールが減るハズ。
とりあえず、1週間くらいこれで様子を見てみよう

それってホントに電子マネー?知らないと損をする仕組み

本来、お金とは「 貨幣。金銭。また、財産。 」とか、特に知識がなくて扱えるもののはずなのですが、困ったことに電子マネーはだんだんとゆるゆるになってきて非常な危険を感じている人も多いはず。

蔓延している意外に短い使用期限

古くからあるSUICAは有効期限はありませんでした。長期間使用していないと使えなくなりますが、追加チャージすると復活するので、使用期限はないと言ってよいでしょう。しかし、最近増えつつある電子マネーやポイントカードは比較的短い使用期限が設定されています。管理データの大容量化もあってか、細かく取得が記録可能となりそれぞれの使用期限が細かく設定されています。細かい間隔でポイントの状態を確認しておかないと期限切れとなりポイントが喪失してしまいます。例えば、あるとき最短の期限を確認して、直近で喪失するものが1年後だったとしても、翌日に付加されたポイントの使用期限がその月の月末ということもありえます。損しないように込め間にチェックしないと…、なんとめんどくさい。
 いずれにしても、有効期限があって、気が付かないうちに喪失してしまうものを”お金”といってよいものだろうか? 常に気をつけておかないといけないものなんてなんと使いにくい仕組みなのだろう。

複雑すぎるポイント還元の仕組み

消費税還元のしくみ、どのような方法で、どのような仕組みで還元されるのか、何が、どのタイミングでどこに還元されるのか、個別ケースが多すぎて覚えきれない。これも、知らないうちにポイント喪失してしまう人が多数でてきそうな予感がする。たとえば、Edyの場合だけでもないかもしれないが、使ってから還元ポイントが付加されるまでに1か月くらいかかるものもあれば、もっとかかるものもありそう。そして受取期限が3か月くらいと短い。それから、コンビニ払いの分の還元がレシート上では還元される旨かかれているが、2か月以上たつのにされていないように見える..。 自販機で払った分はどうなるのだろう? ..消費税は込みのはずだが…..。 

努力の割には結局、誰も得していないような気がしてきた.. 

キャッシュレス化の推進のために 消費税還元 をやったことになっているが、得をしたのは電子化を進めている事業者?かと思われるが、現状は手数料なしで運用していて、来年6月以降で手数料を取るように切り替えるという。この電子決済を利用している事業者の話では、現在は現金と電子決済と同額に値段設定しているが、電子決済の手数料が有料になったときは電子決済の支払いでは手数料分だげ値上げするという。支払い方法によって値段が違うというのは違和感がある。しかし、通販を考えれば支払い方法によって値段が違うのはあたりまえと言えなくもない。そのように同じものに対して支払う金額が現金のほうが安いなら、現金に戻るのは当たり前にように思える。
 つまり、一見、電子決済の業者が得をしているかのように見える消費税還元も、得をする前に、敗退してしまいそうな予感がする。もしそうなってしまうなら消費税還元をうまく活用できなかった運用方法のミスと言えなくないが、、、。
 いやいや、レジの製造業者は売り上げを伸ばしていると言うかもしれないが、短期的に買い替えの時期がシフトしただけで、逆に売り上げに波ができてしまい商品サイクル的観点でロスが発生しているので、逆にコスト増になっているかもしれない。
 長期的な成長していくことを考えに抜いていないと誰も得しないものになってしまう。なんか最近そんなものばかりが目立ってしまうのはなぜだろう。

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

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