CANDY RED上で CandyPi Liteの接続状況や 電波強度などのステータスを取得できるような nodeはありますか


#1

candy-red上でCandyPi Liteの接続状況や電波強度などのステータスを取得できるようなnodeはありますか?
もし無いようであれば、どのように取得するのが良いでしょうか。

なお、「sudo candy network show」を実行しても「Modem is not ready」と表示されステータスが取得できない状況となっています。
もちろんインターネットには接続できる状態で、通信していない状況で実行しています。

osイメージは4.2.1を使用しています。


About the CANDY RED category
#2

ご質問ありがとうございます!

実はそのようなノードは現在計画していますが、まだありません。このようなことがやりたい、ということがありましたらお知らせください。接続状況などステータスについてはすでに検討しております。

当面の対応としては、ノードとしての機能はまだありませんので、execノードをご利用いただくのが良いです。ご注意いただく点としては、こちらで記載した通り、余計な文字列が結果にくっついてしまいますので、それを取り除くコマンドも必要となります。
また、execノードの結果は文字列として出てきますので、それをメッセージとして扱うためには、jsonノードも組み合わせます。このコメントの下に、candy network showの例を使用したフローを貼っておきますので、インポートしてみてください。

もう一点、「Modem is not ready」と出てしまうとのことですが、接続方法はどのようにされているでしょうか?

  • CANDY Pi Liteの種類
  • ラズパイの種類
  • CANDY Pi Liteとラズパイの繋ぎ方(USBケーブルか、GPIOピンだけか)
  • 電源の種類(パソコンからUSB、ACアダプターなど)
  • その他ラズパイやCANDY Pi Liteに繋げているものがあれば

また、電源を入れた時、CANDY Pi Lite側で緑のLEDは光ったりしていますか?

このエラーは、CANDY Pi Liteとのシリアル接続に使うポートが見つからない時に出てきます。このため、ボードとの接続に関する情報からまずは教えていただければと思います。

[
    {
        "id": "2d04852.cfe5c7a",
        "type": "exec",
        "z": "5fd4da4c.b732fc",
        "command": "candy",
        "addpay": false,
        "append": "network show | perl -pe 's/\\e\\[?.*?[\\@-~]//g'",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "",
        "x": 360,
        "y": 240,
        "wires": [
            [
                "67c80637.58af8"
            ],
            [],
            []
        ]
    },
    {
        "id": "1bb0e3f1.564d0c",
        "type": "debug",
        "z": "5fd4da4c.b732fc",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 650,
        "y": 360,
        "wires": []
    },
    {
        "id": "f209d574.18a8a",
        "type": "inject",
        "z": "5fd4da4c.b732fc",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 200,
        "y": 140,
        "wires": [
            [
                "2d04852.cfe5c7a"
            ]
        ]
    },
    {
        "id": "67c80637.58af8",
        "type": "json",
        "z": "5fd4da4c.b732fc",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 510,
        "y": 300,
        "wires": [
            [
                "1bb0e3f1.564d0c"
            ]
        ]
    }
]

#3

ご回答有り難うございます。
以下回答いたします。

  • CANDY Pi Liteの種類
    CandyPi Lite LTEモデル

  • ラズパイの種類
    Raspberry Pi 3 Model B

  • CANDY Pi Liteとラズパイの繋ぎ方(USBケーブルか、GPIOピンだけか)
    GPIO

  • 電源の種類(パソコンからUSB、ACアダプターなど)
    ACアダプター(5V2A)

  • その他ラズパイやCANDY Pi Liteに繋げているものがあれば
    I2Cのセンサー類使用(3,5ピン使用)
    ※ただし外した状態でも同様のエラー発生。

*CANDY Pi Lite側で緑のLEDは光ったりしていますか?
申し訳ありませんが現場に設置してしまった為、すぐには不明です。
ただ、前述の通り「Modem is not ready」と表示されますがインターネットへの通信は正常に行われています。

お手数をおかけいたしますがご確認をお願いいたします。


#4

情報ありがとうございます。状況を理解しました。
GPIO経由で接続しているときは、シリアルポートが1つしかありませんので、電波状況を取得するには一時的に接続を中断する必要があります。接続制御の詳細は、こちらに記載しています

今回のケースでは、sudo candy network showを実行するには、一時的に接続を停止(suspend)して、その間にsudo candy network showを実施、結果を得たら再接続(resume)をします。手動で入力すると以下のような感じになります。

(すでに通信中の状態とします)
$ sudo candy network show # => 失敗します。
Modem is not ready
$ sudo candy connection suspend # => 一時的に停止します。
Connection Suspended
$ sudo candy network show # => 今度はOK。
{
  "operator": "NTT DOCOMO NTT DOCOMO", 
  "rssi": "-51", 
  "network": "N/A", 
  "rssiDesc": "OR_MORE", 
  "registration": {
    "cs": "Denied", 
    "ps": "Registered"
  }
}
$ sudo candy connection resume # => 再接続します。
Connection Resumed

実施していただくとわかりますが、切断・再接続は数秒程度で行われます(移動中の場合は電波状況により変わります)。

これらを加味して、以前のフローを変更しますと以下の通りとなります。
今は、2つのコマンドを余計に打つ必要がありますが、今後candy network showのコマンドオプションとして、切断や再接続も同時に行えるような改善を行う予定です。

[
    {
        "id": "32aeaf52.afacc",
        "type": "exec",
        "z": "550d07e4.d3d628",
        "command": "candy",
        "addpay": false,
        "append": "network show | perl -pe 's/\\e\\[?.*?[\\@-~]//g'",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "show network info",
        "x": 410,
        "y": 260,
        "wires": [
            [
                "3a7e69a7.1cacce",
                "3dc2d947.35020e"
            ],
            [],
            []
        ]
    },
    {
        "id": "d31c760f.ed5d3",
        "type": "debug",
        "z": "550d07e4.d3d628",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 650,
        "y": 340,
        "wires": []
    },
    {
        "id": "613606f.d9b7278",
        "type": "inject",
        "z": "550d07e4.d3d628",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 200,
        "y": 120,
        "wires": [
            [
                "ad0e7119.488098"
            ]
        ]
    },
    {
        "id": "3a7e69a7.1cacce",
        "type": "json",
        "z": "550d07e4.d3d628",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 630,
        "y": 260,
        "wires": [
            [
                "d31c760f.ed5d3"
            ]
        ]
    },
    {
        "id": "ad0e7119.488098",
        "type": "exec",
        "z": "550d07e4.d3d628",
        "command": "candy",
        "addpay": false,
        "append": "connection suspend",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "suspend connection",
        "x": 420,
        "y": 160,
        "wires": [
            [
                "32aeaf52.afacc"
            ],
            [],
            []
        ]
    },
    {
        "id": "3dc2d947.35020e",
        "type": "exec",
        "z": "550d07e4.d3d628",
        "command": "candy",
        "addpay": false,
        "append": "connection resume",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "resume connection",
        "x": 410,
        "y": 360,
        "wires": [
            [],
            [],
            []
        ]
    }
]

#5

@yasikn さん、独立したトピックとして移動させていただきました。