Armadilloフォーラム

GPIOでエラーが発生と、cloud_agent.confの編集した内容が起動すると消える。

sugizon

2023年12月9日 21時54分

お客様から貸与されたArmadillo-A6Eでa6e-gw-containerを起動してAWS Iotでデバイスに
設定したスイッチの切り替えを検知する仕組みを検証しております。

下記2点教えてください。

1.GPIOのエラーの解消について

gpioget gpiochip5 0
 
gpioget: error reading GPIO values: Resource busy

とエラーが出てスイッチの検知ができない。
センサーのログは下記となります。

2023-12-09 21:32:22,544 <WARNING> : DO1 output_state parameter is empty.
2023-12-09 21:32:22,552 <WARNING> : DO1 output_time parameter is empty.
2023-12-09 21:32:22,569 <WARNING> : DO1 output_delay_time parameter is empty.
2023-12-09 21:32:22,576 <WARNING> : DO2 output_state parameter is empty.
2023-12-09 21:32:22,584 <WARNING> : DO2 output_time parameter is empty.
2023-12-09 21:32:22,602 <WARNING> : DO2 output_delay_time parameter is empty.
2023-12-09 21:32:22,613 <INFO> : Getting RS485_Data1 is disable.
2023-12-09 21:32:28,997 <INFO> : send device information to cloud.
2023-12-09 21:32:29,021 <ERROR> : ('unpack requires a buffer of 4 bytes',)
2023-12-09 21:32:29,114 <INFO> : data from cloud is empty.

2.cloud_agent.confを設定するがコンテナを起動すると設定値が消える。
ただし、AWS_IOT_SHADOW_ENDPOINTは維持されておりました。

よろしくお願いいたします。

コメント

アットマークテクノの古賀です。

sugizon(2023年12月9日 21時54分):
>お客様から貸与されたArmadillo-A6Eでa6e-gw-containerを起動してAWS Iotでデバイスに
>設定したスイッチの切り替えを検知する仕組みを検証しております。
>
>下記2点教えてください。

以下、順に回答/コメントします。

>1.GPIOのエラーの解消について

gpioget gpiochip5 0
 
gpioget: error reading GPIO values: Resource busy

>とエラーが出てスイッチの検知ができない。

gpiochip5 0 は、CON6 の二つの接点入力のうちピン4ですが、このピンは、マニュアルに記載している通り、デフォルトの状態ではゲートウェイコンテナが使用していますので、ゲートウェイコンテナ外部から使用できません:
 https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
ゲートウェイコンテナを終了してから試してみてくださいませ。

>2.cloud_agent.confを設定するがコンテナを起動すると設定値が消える。
>ただし、AWS_IOT_SHADOW_ENDPOINTは維持されておりました。

これについては、二点確認させてくださいませ:

1.) cloud_agent.conf の設定内容について、AWS の認証情報以外の箇所をどう変更されたのか、変更内容を教えてください。

2.) お使いのソフトウェアのバージョンを教えてください。次のコマンドの出力内容を教えて頂けますか:

cat /etc/sw-verssions

インラインにて

> アットマークテクノの古賀です。
>
> sugizon(2023年12月9日 21時54分):
> >お客様から貸与されたArmadillo-A6Eでa6e-gw-containerを起動してAWS Iotでデバイスに
> >設定したスイッチの切り替えを検知する仕組みを検証しております。
> >
> >下記2点教えてください。
>
> 以下、順に回答/コメントします。
>
> >1.GPIOのエラーの解消について
>

> gpioget gpiochip5 0
> 
> gpioget: error reading GPIO values: Resource busy
> 

> >とエラーが出てスイッチの検知ができない。
>
> gpiochip5 0 は、CON6 の二つの接点入力のうちピン4ですが、このピンは、マニュアルに記載している通り、デフォルトの状態ではゲートウェイコンテナが使用していますので、ゲートウェイコンテナ外部から使用できません:
>  https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
> ゲートウェイコンテナを終了してから試してみてくださいませ。
>

ゲートウェイコンテナを停止し実行で問題は解決しました。

> >2.cloud_agent.confを設定するがコンテナを起動すると設定値が消える。
> >ただし、AWS_IOT_SHADOW_ENDPOINTは維持されておりました。
>
> これについては、二点確認させてくださいませ:
>
> 1.) cloud_agent.conf の設定内容について、AWS の認証情報以外の箇所をどう変更されたのか、変更内容を教えてください。
>

認証以外は、AWS_IOT_ACCOUNTIDのみです。
設定ファイルの永続化方法はないか手段があるのでしょうか?

> 2.) お使いのソフトウェアのバージョンを教えてください。次のコマンドの出力内容を教えて頂けますか:
>

> cat /etc/sw-verssions
> 
base_os 3.18.4-at.5
boot 2020.4-at20
extra_os.a6e-gw-container 2.1.1
extra_os.initial_setup 4

となります。

以上、よろしくお願いいたします。

AWSへのモノの登録は正常に完了しております。
下記は、ゲートウェイのセンサーログですが

2023-12-11 19:47:48,797 <WARNING> : DO1 output_state parameter is empty.
2023-12-11 19:47:48,801 <WARNING> : DO1 output_time parameter is empty.
2023-12-11 19:47:48,805 <WARNING> : DO1 output_delay_time parameter is empty.
2023-12-11 19:47:48,808 <WARNING> : DO2 output_state parameter is empty.
2023-12-11 19:47:48,812 <WARNING> : DO2 output_time parameter is empty.
2023-12-11 19:47:48,816 <WARNING> : DO2 output_delay_time parameter is empty.
2023-12-11 19:47:48,821 <INFO> : Getting RS485_Data1 is disable.
2023-12-11 19:47:52,392 <INFO> : send device information to cloud.
2023-12-11 19:47:52,415 <ERROR> : ('unpack requires a buffer of 4 bytes',)
2023-12-11 19:47:52,451 <INFO> : data from cloud is empty.

これは何が問題なのでしょうか?
確かにAWSへのシャドウへのセンサーデータの更新は来ておりません。
コンテナ起動時の情報までです。

回答よろしくお願いいたします。

> インラインにて
>
> > アットマークテクノの古賀です。
> >
> > sugizon(2023年12月9日 21時54分):
> > >お客様から貸与されたArmadillo-A6Eでa6e-gw-containerを起動してAWS Iotでデバイスに
> > >設定したスイッチの切り替えを検知する仕組みを検証しております。
> > >
> > >下記2点教えてください。
> >
> > 以下、順に回答/コメントします。
> >
> > >1.GPIOのエラーの解消について
> >

> > gpioget gpiochip5 0
> > 
> > gpioget: error reading GPIO values: Resource busy
> > 

> > >とエラーが出てスイッチの検知ができない。
> >
> > gpiochip5 0 は、CON6 の二つの接点入力のうちピン4ですが、このピンは、マニュアルに記載している通り、デフォルトの状態ではゲートウェイコンテナが使用していますので、ゲートウェイコンテナ外部から使用できません:
> >  https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
> > ゲートウェイコンテナを終了してから試してみてくださいませ。
> >
>
> ゲートウェイコンテナを停止し実行で問題は解決しました。
>
> > >2.cloud_agent.confを設定するがコンテナを起動すると設定値が消える。
> > >ただし、AWS_IOT_SHADOW_ENDPOINTは維持されておりました。
> >
> > これについては、二点確認させてくださいませ:
> >
> > 1.) cloud_agent.conf の設定内容について、AWS の認証情報以外の箇所をどう変更されたのか、変更内容を教えてください。
> >
>
> 認証以外は、AWS_IOT_ACCOUNTIDのみです。
> 設定ファイルの永続化方法はないか手段があるのでしょうか?
>
> > 2.) お使いのソフトウェアのバージョンを教えてください。次のコマンドの出力内容を教えて頂けますか:
> >

> > cat /etc/sw-verssions
> > 

>
>

> base_os 3.18.4-at.5
> boot 2020.4-at20
> extra_os.a6e-gw-container 2.1.1
> extra_os.initial_setup 4
> 

>
> となります。
>
> 以上、よろしくお願いいたします。
>

at_reika.yamazaki

2023年12月12日 10時34分

お世話になっております。
アットマークテクノ 山崎です。

ゲートウェイコンテナを利用して接点入力1 の入力値を AWS に送信したいということだと思うのですが、相違ないでしょうか?
もし間違いでしたらおっしゃってください。
ゲートウェイコンテナを利用する場合ですが以下の設定ファイルの編集が必要です。

1. cloud_agent.conf
クラウド接続に必要な情報を記載します。
今回は AWS に送信したいとのことなので [AWS] に関する記載が必要になります。
これに関しては、
> AWSへのモノの登録は正常に完了しております。
上記のようにお返事をいただけているため provisioning 済という認識です。

また、「コンテナを起動すると設定値が消える」という質問については AWS ではデバイス登録完了後は接続に必要な情報を残して
cloud_agent.conf から情報を削除する仕組みになっております。
詳細はマニュアルの以下をご確認ください。
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

2. sengins_mgr.conf
インターフェース設定を記載します。
これに関しては、
>確かにAWSへのシャドウへのセンサーデータの更新は来ておりません。
>コンテナ起動時の情報までです。
上記のようにお返事をいただけているためクラウド送信設定(send_cloud=true)は有効になっているものと思います。

こちらについて質問ですが、接点入力1 である [DI1] の設定はどのようになっているでしょうか?
以下は例として1秒毎に接点入力1 の設定値を取得する場合の設定になります。

[DI1]
; type=polling or edge
type=polling
; interval[sec]
interval=1
; edge_type=falling or rising or both
edge_type=

詳細はマニュアルの以下をご確認ください。
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

設定内容をご確認いただけますと幸いです。
以上、どうぞよろしくお願いいたします。