Navigation

    obniz Developer's Community Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. Pugeore
    P
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Pugeore

    @Pugeore

    1
    Reputation
    10
    Posts
    290
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online
    Location Japan

    Pugeore Follow

    Best posts made by Pugeore

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

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

      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);
      }

      posted in Technical Support
      P
      Pugeore

    Latest posts made by Pugeore

    • RE: onconnectしてしばらく動作後、接続が切れてしまう

      @キドコウヘイ さん
      アドバイスありがとうございます。
      nodeのバージョンを、v14.15.1 (with npm 6.14.8) にダウンさせたところ、
      60秒ごとに切断されることはなくなりました。
      ただ、時々、10分ぐらいでsocket切断されますが、だいぶマシになりました。
      ときどき切断される件は、致命的ではないのでいったん保留で、
      まずはこの状態をベースに、本来のアプリ再開に戻れます。

      ご指摘のように、V15はまだ不安定なのでしょうね
      これからはLTSを使うようにします。
      (obnizOSも最新3.4.3に戻しておきました。)

      posted in Technical Support
      P
      Pugeore
    • RE: onconnectしてしばらく動作後、接続が切れてしまう

      debugprintができることを忘れていました。さっそく再テストしました。
      推定原因などわかりますでしょうか
      きっかり定周期60秒ごとに、
      closed from remote event=1006 で切断されています。
      event=1006というのが何なのかわかりません。

      send: [{"system":{"ping":{"key":[0,0,1,118,25,155,75,152,0,0,0,3]}}}]
      この「ping」は無い場合があります。

      (****-****は、obniz IDですので消しています)

      start
      [obniz ****-****] send: [{"display":{"clear":true}}]
      [obniz ****-****] send: [{"display":{"text":"start"}}]
      [obniz ****-****] send via local
      [obniz ****-****] send: [{"system":{"ping":{"key":[0,0,1,118,25,155,75,152,0,0,0,3]}}}]
      [obniz ****-****] send via local
      [obniz ****-****] closed from remote event=1006
      2020-11-30 23:42:56 closed
      [obniz ****-****] connecting to wss://obniz.io/obniz/****-****/ws/1?obnizjs=3.10.1&accept_binary=true
      [obniz ****-****] ws connected
      [obniz ****-****] {"ws":{"redirect":"wss://9ws.obniz.io"}}
      [obniz ****-****] WS connection changed to wss://9ws.obniz.io
      [obniz ****-****] connecting to wss://9ws.obniz.io/obniz/****-****/ws/1?obnizjs=3.10.1&accept_binary=true
      [obniz ****-****] ws connected
      [obniz ****-****] {"ws":{"ready":true,"obniz":{"hw":"obnizb1","firmware":"3.4.2"},"local_connect":{"ip":"192.168.0.17"}}}
      [obniz ****-****] local connect to ws://192.168.0.17
      [obniz ****-****] connected to ws://192.168.0.17
      2020-11-30 23:42:58 connected
      [obniz ****-****] send: [{"ws":{"reset_obniz_on_ws_disconnection":false}}]
      [obniz ****-****] send: [{"system":{"keep_working_at_offline":true}}]
      
      posted in Technical Support
      P
      Pugeore
    • RE: onconnectしてしばらく動作後、接続が切れてしまう

      補足、追加情報があります
      onconnectしたまま、
      uart.onreceiveによる受信処理をせずに放置しておくと、Nodeが以下のエラーを出す場合がありました

      「192.168.0.16」が obniz Board のIPアドレスであり、
      obniz Board がポート80の接続を拒否しているようです。

      local websocket error. Error: connect ECONNREFUSED 192.168.0.16:80
          at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1133:16) {
        errno: -111,
        code: 'ECONNREFUSED',
        syscall: 'connect',
        address: '192.168.0.16',
        port: 80
      }
      

      コンソールエラーに出ていたソース「ObnizConnection.js:358:18」も見ましたが、
      いずれもClose処理の内容で、有効な情報は得られませんでした

      やはり、何らかのタイミングで、obniz Board がポート80を閉じたか接続拒否している
      可能性がないでしょうか?

      posted in Technical Support
      P
      Pugeore
    • onconnectしてしばらく動作後、接続が切れてしまう

      起動後onconnectもできて、しばらくは問題なく動作しているのですが、
      60秒ほど経過すると必ず切断され、obnizがオフラインになってしまいます。
      発生原因がわかるようでしたらアドバイスいただきたいと思います。

      ・ラズベリーパイ3B+で nodejsにより(node V15.3.0)
      ・センサーから数秒ごとにUARTで数バイトのデータを受けて表示する、というアプリを動作させています。
       (UART受信イベントにて uart.onreceive = function(data, text) {
      obnizとラズパイは、同じWifiの同じネットワークセグメントにおり、local_connectのはずですが
      いきなりWebSocketが切断されているようです。

      nodeのコンソールエラー

      /home/pi/Share/Nodejs/GreenHouse2/node_modules/obniz/dist/src/obniz/ObnizConnection.js:196
                  throw new ObnizError_1.ObnizOfflineError();
                        ^
      
      ObnizOfflineError: obniz is not online.
          at Obniz.send (/home/pi/Share/Nodejs/GreenHouse2/node_modules/obniz/dist/src/obniz/ObnizConnection.js:196:19)
          at Display.clear (/home/pi/Share/Nodejs/GreenHouse2/node_modules/obniz/dist/src/obniz/libs/embeds/display.js:119:24)
          at obniz.onclose (/home/pi/Share/Nodejs/GreenHouse2/GreenHouse2.js:105:16)
          at Obniz._runUserCreatedFunction (/home/pi/Share/Nodejs/GreenHouse2/node_modules/obniz/dist/src/obniz/ObnizConnection.js:286:13)
          at Obniz.wsOnClose (/home/pi/Share/Nodejs/GreenHouse2/node_modules/obniz/dist/src/obniz/ObnizConnection.js:358:18)
          at WebSocket.emit (node:events:376:20)
          at WebSocket.emitClose (/home/pi/Share/Nodejs/GreenHouse2/node_modules/ws/lib/websocket.js:191:10)
          at TLSSocket.socketOnClose (/home/pi/Share/Nodejs/GreenHouse2/node_modules/ws/lib/websocket.js:850:15)
          at TLSSocket.emit (node:events:388:22)
          at node:net:661:12 {
        code: 1
      }
      
      posted in Technical Support
      P
      Pugeore
    • RE: 不定期に切断される/数時間後にやっと再接続される

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

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

      posted in Technical Support
      P
      Pugeore
    • 不定期に切断される/数時間後にやっと再接続される

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

      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);
      }

      posted in Technical Support
      P
      Pugeore
    • M5StickC ENV HatのDHT12が、I2C通信エラーで読めない

      M5StickC ENV Hatを購入したので、Node.jsでDHT12の温度データを取得しようとしていますが、必ずI2C通信でエラーになってしまいます、
      原因の推定や確認ポイントなどアドバイスご教授いただければと
      思います。

      エラー
      message: 'i2c0: writing error. Communication Failed. Maybe, target is not connected.'
      i2Cでの通信ができていないようです。

      Node.jsコード
      const Obniz = require("obniz");
      const obniz = new Obniz("-");
      obniz.onconnect = async function () {
      var ret;
      const device = obniz.wired("DHT12",{vcc:0, gnd:1, scl:2, sda:3, address:0x5c});
      obniz.setVccGnd(0, 1, '5v');
      ret = await device.getAllDataWait();
      console.log(ret);
      }
      ※wired までは問題なく、getAllDataWaitがエラーになります。
      ※スレーブアドレスは、明示的に0x5cと入れています。
      ※3.3Vをつくるため、obnizから5V出力

      配線は、以下を参考に
      https://forum.obniz.io/post/159

      https://docs.m5stack.com/assets/img/product_pics/hat/env_hat/env_hat_04.jpg

      3v3 <-- vcc:0 (obnizの5V出力から抵抗分圧して3.3Vを入力)
      GND <-- gnd:1
      G26 <-- scl:2
      G0 <-- sda:3
      電圧は実行するたびに正しく3.3Vが印加されているのを確認すみ

      DHT12のライブラリに問題があるかと思い、
      Lessonsー>obniz js SDK の基礎 の「I2C: マスターとしてデータを読み書き」のようにI2C通信しても同じエラーでした。

      const myI2C = obniz.getFreeI2C();
      myI2C.start({mode:"master", vcc:0, gnd:1, scl:2, sda:3, clock:100000, address:0x5c});
      obniz.setVccGnd(0, 1, '5v');
      var ret = await myI2C.readWait(0x5c, 5);
      console.log(ret);
      ※やはりstart までは問題なく、readWaitの処理でエラーになっています。

      よろしくお願いします。

      posted in Beginner Questions/Discussion
      P
      Pugeore
    • RE: obniz単体で温度データを取り続けること

      やっとobnizのコンセプトが理解できました。
      obnizはセンサーのI/Fであり。これに遠隔アクセスするためのAPIが各種用意されているというものですね。そうとわかれば、この利点に適したアプリに切り替えていきます。
      (参考記事と同様の内容を、公式サイト冒頭にもぜひ、、、)

      温室の温度制御は、24時間働いているRaspberryPiがいるので、こいつのNode.jsで常時稼働させておきます。(グラフ化はambientかConnect+で)
      サーバーレスイベントも試してみます。
      ありがとうございました!

      posted in Beginner Questions/Discussion
      P
      Pugeore
    • obniz単体で温度データを取り続けること

      obniz Boardが我が家に届いて、開封後6時間ほどの初心者です。
      超基本的な話かもしれませんが、ご教授ください。

      まずは以下のような用途を狙っています。
      ・観葉植物の簡易温室内の気温を、定期的に計測する。
      ・低温になったらヒーターをつけて温度制御
      ・なんらかのクラウドサービスにデータ送信して記録しつづける
      ・ときどき温度の推移をグラフを見たりなんかする

      WindowsPCでNode.jsで定期的に温度取得するところまでは
      できたのですが、(ほんとに簡単ですね!)
      ここでふと手が止まりました、、、
      nodeのJavaScriptを終了させると、obnizも切断されて終了てしまいます。開発者コンソールでHTMLにしてもブラウザを閉じれば終了してしまいます。(resetOnDisconnect()も意味が違うようですし)

      もしやobnizは単体で継続的に温度測定を続ける、といった使い方をするものではないのでしょうか?
      最適な方法をご教授ください。
      (根本的に、Arduinoのような従来のマイコンとは違う?)
      よろしくお願いします。

      posted in Beginner Questions/Discussion
      P
      Pugeore