こんにちは、のびすけです。
某授業でNode-REDからobnizを制御しましたが、Node-REDでプログラムが動いてるはずなのにobnizが動いていない、逆にNode-REDでプログラムを切っているはずなのにobnizが稼働しっぱなしになっている。といった事象が多発してしまったのでトラブルシューティング記事を書いておきます。
おさらい: obnizが起動しているかどうか
前提として、obnizはプログラムが起動して(しまって)いるときと、起動していない(正常に処理を止めらている)ときとでディスプレイの表示が違います。
- プログラムは起動していないけどWi-Fiには接続できている状態
これが通常に他のプログラムの接続を解除できている状態です。
8桁のobniz IDとQRが表示されている状態です。
- プログラムが起動している状態 / もしくはどこかでプログラムが起動してしまっている状態
画面の表示は異なりますが、 QRやobniz IDが表示されてない状態ならばプログラムが起動してしまっている状態となります。
この2パターンを覚えておきましょう。
ちなみにこれ以外の状態はobnizがWi-Fiに接続できてない可能性が高いです。
1. Node-REDでプログラムを切っているのにobnizが起動しちゃう
プログラムを切っているつもりだけどobnizが起動しちゃってるパターン
これよく発生してしまうのですが、
1-1. obnizノードの停止処理をせずにタブの無効化をしてしまっているパターン
これが多そうです。
タブの無効化をすると一見処理が止まっているように見えるのですが、obnizノードはそれだけでは止まりません。
表示上はDisconnectedと表示されているので間違えますよね... 実はそれちゃんと停止できてない可能性があります。
obnizノードの停止処理をしっかりとしてからタブを無効化しましょう。
具体的な手順は以下です。
- 無効化しているタブを有効化
まずは無効化してしまっているタブを有効にして、保存(デプロイ)
をしましょう。
もしこの段階でobnizノードがconnectedになったらやはり処理が上手く止められてなかった可能性が高いです。
また、この時点で停止処理フローを追加できてない場合はこちらからJSONを読み込みフローを追加して、設定してみてください。
- 処理停止フローで停止をしてから再度ダブを無効化
処理停止フローのボタンを押してDisconnectと表示が変わったことを確認して、タブの無効化をしましょう。
処理停止をする前にタブの無効化をするな
まとめるとこういうことですね。