不定期に切断される/数時間後にやっと再接続される



  • 推定要因、アドバイスなどよろしくお願いします。

    Obniz Board + 温度センサーで、定期的に簡易温室の気温を取得し、ヒーター制御しています。
    RaspberryPiのNode.jsで常時稼働させています。(systemdで自動起動)

    ときどき、コンソールログに「 local websocket closed」と表示され、
    不定期に切断されてしまいます。 
    何らかの問題で、wifiが切断されているためかと思われますが、
    12時間ぐらい問題なく動作する日もあれば、1時間程度ごとに頻繁に切断される場合もあり一定ではありません。

    ●不定期に「 local websocket closed」となる要因は何が考えられるでしょうか? 対応策などはありませんでしょうか?

    また、これに対して、以下の2パターンで対応しました。
    (1)特に何もせず、自動的にobnizに再接続されるのを待つ
    (2)obniz.onclose内で、process.exit(1)で終了させる
      ->systemdが異常終了検知してNode.jsを再起動してくれる

    いずれの方法でも、大半の場合は再起動ができているのですが、別の問題が出ています。
    まれに、「local websocket closed」となってから、
    約5~8時間の後に、やっと再接続/再起動されることがあります。
    (この間は、切断もされていないがプログラムは動作しておらず、ヒーター制御も止まってしまう)

    ●「local websocket closed」されてから、数時間後にかなり遅れて再接続/再起動される、となる要因は何が考えられるでしょうか?

    上記(2)の
    切断された=クローズ時に強制終了ー>再起動
    obniz.onclose = async function() {
    console.log("onclose -> restart");
    process.exit(1);
    }



  • 自己レスです。
    obnizOSの、3.10が出ていることに気づき、更新してみたところ
    問題がピタリと収まりました。
    (これに関する修正がされたのでしょうか?)
    これまで数十分ごとに、i2cエラーや、socket切断があったものが、
    ソースコードはそのままで、すでに20時間ほどエラー無しに動作しています。
    ありがとうございました。

    *蛇足ですが、OSの更新リリースについても、
    フォーラムの Announcements / Releasesに通知してもらえるとありがたいです。


Log in to reply
 

SUGGESTED TOPICS

  • 2
  • 1
  • 6
  • 2
  • 2
  • 2
  • 2
  • 4