推定要因、アドバイスなどよろしくお願いします。
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);
}