Armadilloフォーラム

Wifiの電波強度を確認するコマンドについて

hiroki.nakatani

2025年3月25日 19時20分

==========
製品型番:Armadillo-IoT A6E
Debian/ABOSバージョン:3.21.3-at.1
カーネルバージョン:2020.4-at.25
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
Wifiの電波強度を確認するコマンドとその見方を教えていただけないでしょうか。

コメント

at_satoshi.ohta

2025年3月26日 11時38分

太田です。

以下のコマンドで接続可能なwifiのアクセスポイントの情報が取得できます。

armadillo:~# nmcli -f ALL dev wifi

実行すると、以下のヘッダーの内容に関する情報が表示されます。

NAME    SSID                  SSID-HEX                                  BSSID              MODE   CHAN  FREQ      RATE        BANDWIDTH  SIGNAL  BARS  SECURITY   WPA-FLAGS             

電波強度は SIGNAL と BARS がそれに相当します。BARS は SIGNAL の強さをバーで表示しているだけです。
SIGNAL はプラス値で表示される場合、値が大きいほど安定した通信が可能になります。
その他、データの通信に関しては、一般的に以下の項目を参照すると良いと思います。

RATEはデータ転送速度であり、値が大きいほど通信速度が速くなります。
BANDWIDTHは帯域幅であり、値が大きいほど帯域幅が広くより多くのデータを送受信できます。

どうぞよろしくお願いいたします。

hiroki.nakatani

2025年3月26日 16時40分

早速のご回答ありがとうございます。
すみません追加で確認させていただきたいのですが、コンテナ内からWiFi電波強度を確認することは可能でしょうか。
以下のようなコマンド実行してみたのですが、値取得できませんでした。
nmcli -f SIGNAL,SSID,FREQ,RATE,SECURITY,DEVICE,ACTIVE,IN-USE dev wifi | grep '\*' | awk '{print $1}'

佐藤です。

> すみません追加で確認させていただきたいのですが、コンテナ内からWiFi電波強度を確認することは可能でしょうか。
可能です。
その場合はコンテナ内から ABOS Web の REST API へアクセスします。
REST API ついてはマニュアルを参照してください。
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

マニュアルを参考にトークンなど必要な設定が済んだあとは、
コンテナ内から
https://host.containers.internal:58080/api/wlan/scan
のURLでアクセスできるようになります。
レスポンスとして json が返ってきます。それに含まれる "signal" の値が電波強度になります。

hiroki.nakatani

2025年3月26日 22時09分

本件ですが、以下の通り試行錯誤した結果、何とかコンテナ上からホストOSコマンドを実行することが出来ました。
・永続設定の観点で他に考慮が必要か
・そもそももっとシンプルな実現方法がないか
の観点でアドバイスいただけますと幸いです。

■実施内容
①ABOS Webにて設定管理からRest API トークンをCustom権限で発行
②/etc/atmark/containers/node-red.conf
 /etc/atmark/containers/node-red.conf.d/addition.conf
 に以下を追記
add_args --env=AUTH="Authorization:Bearer [APIトークン]"
③/etc/atmark/abos_web/customize_restフォルダを作成
④/etc/atmark/abos_web/customize_rest/wifi_signal.shを以下の内容で作成
#!/bin/sh
nmcli -f SIGNAL,SSID,FREQ,RATE,SECURITY,DEVICE,ACTIVE,IN-USE dev wifi | grep '\*' | awk '{print $1}'
⑤/etc/doas.d/abos_web_customize.confを以下の内容で作成
permit nopass abos-web-admin as root cmd /etc/atmark/abos_web/customize_rest/wifi_signal.sh
⑥コンテナ再起動後、コンテナにログイン
⑦以下のコマンド実行
root@884a1c3ecaf0:~# curl -k -s -H "$AUTH" -X POST "https://host.containers.internal:58080/api/custom/wifi_signal.sh" | grep -o '"stdout":"[^"]*"' | sed 's/"stdout":"//;s/"//;s/\\n//'
60

佐藤です。

> 本件ですが、以下の通り試行錯誤した結果、何とかコンテナ上からホストOSコマンドを実行することが出来ました。
> ・永続設定の観点で他に考慮が必要か
/etc/doas.d/abos_web_customize.conf は persist_file -p で永続化したほうが良いかと思います。

persist_file -p /etc/doas.d/abos_web_customize.conf 

> ・そもそももっとシンプルな実現方法がないか
今回頂いた内容に関して、 "/api/wlan/scan" のレスポンスに、ACTIVEとIN-USEの値も含まれていたほうがいいと思いましたので、
次回のアップデート(4月下旬予定)で対応したいと思います。
それまで待っていただけるのであれば、"/api/wlan/scan" を使用したほうがシンプルになるかと思います。

hiroki.nakatani

2025年3月27日 11時36分

佐藤様

ご回答ありがとうございます。

> > 本件ですが、以下の通り試行錯誤した結果、何とかコンテナ上からホストOSコマンドを実行することが出来ました。
> > ・永続設定の観点で他に考慮が必要か
> /etc/doas.d/abos_web_customize.conf は persist_file -p で永続化したほうが良いかと思います。
>

> persist_file -p /etc/doas.d/abos_web_customize.conf 
> 

→承知しました。今回の作業にて作成したフォルダ・ファイル設定については
 一律persist_file -rp 指定で永続化しております。

> 今回頂いた内容に関して、 "/api/wlan/scan" のレスポンスに、ACTIVEとIN-USEの値も含まれていたほうがいいと思いましたので、
> 次回のアップデート(4月下旬予定)で対応したいと思います。
> それまで待っていただけるのであれば、"/api/wlan/scan" を使用したほうがシンプルになるかと思います。
→承知しました。お手数ですがよろしくお願いいたします。

hiroki.nakatani

2025年3月27日 17時18分

本件ですが、コンテナ上で再度以下のコマンド実行したのですが、以下の通りエラーとなってしまいました。
考えられる原因は何でしょうか。

root@65b05d8ad9da:~# curl -k -s -H "$AUTH" -X POST "https://host.containers.internal:58080/api/custom/wifi_signal.sh"
ssse-flw: EmbSe_Init(): Entry
App :INFO :Using PortName='/dev/i2c-1:0x48' (ENV: EX_SSS_BOOT_SSS_PORT=/dev/i2c-1:0x48)
sss :INFO :atr (Len=35)
00 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 08
01 00 00 00 00 64 00 00 0A 4A 43 4F 50 34 20 41
54 50 4F
sss :WARN :Communication channel is Plain.
sss :WARN :!!!Not recommended for production use.!!!
ssse-flw: Version: 1.0.5
ssse-flw: EmbSe_Init(): Exit
ssse-flw: Control Command EMBSE_LOG_LEVEL; requested log level = 4
{"error":"No auth found"}root@65b05d8ad9da:~#

hiroki.nakatani

2025年3月27日 17時34分

$AUTH変数がうまくコンテナに渡せていないことは確認できたのですが、なぜ渡せなくなったのかよくわかっておりません。
本日Node-REDのアップデートが実行されていたようです。

hiroki.nakatani

2025年3月27日 17時54分

persist_file -a upgrade
を実行したのですが、結果変わらずです。
Armadillo自体の再起動が必要でしょうか。

hiroki.nakatani

2025年3月28日 12時54分

今朝確認したところ、コンテナへのアクセスやNode-REDへのアクセスもできなくなりました。
困っております。

以下のコンテナログが出力されていました。

コンテナログ: node-red
node: OpenSSL configuration error:

C0ABEEB6:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../deps/openssl/openssl/crypto/dso/dso_dlfcn.c:118:filename(/dev/null/e4sss.so): /dev/null/e4sss.so: cannot open shared object file: Not a directory

node: OpenSSL configuration error:

C03BFAB6:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../deps/openssl/openssl/crypto/dso/dso_dlfcn.c:118:filename(/dev/null/e4sss.so): /dev/null/e4sss.so: cannot open shared object file: Not a directory

node: OpenSSL configuration error:

C0EBF0B6:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../deps/openssl/openssl/crypto/dso/dso_dlfcn.c:118:filename(/dev/null/e4sss.so): /dev/null/e4sss.so: cannot open shared object file: Not a directory

node: OpenSSL configuration error:

C02BF5B6:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../deps/openssl/openssl/crypto/dso/dso_dlfcn.c:118:filename(/dev/null/e4sss.so): /dev/null/e4sss.so: cannot open shared object file: Not a directory

node: OpenSSL configuration error: