Armadilloフォーラム

Node-RED にてAWS IotCoreにモノ登録する際にSyntaxErrorが発生する

new_bee

2024年7月3日 10時32分

いつもお世話になっております。

https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-a6e/d…
を参考にIotCoreにA6Eを登録する際に デバイス名の取得のノードで以下エラーが発生します。

function : (error)
"SyntaxError: Unexpected token 's', "ssse-flw: "... is not valid JSON"
IoTcoreのモノには登録されており、AWSまでは問題なく接続できていそうです。
またデバイス登録ではWARNINGが発生しておりこれが原因でしょうか?
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
{JSONデータ}
が出力されており、JSONデータ自体は,thingArn,thingId,thingNameでarmadilloのSNが問題なく表示されています

申し訳ありませんが解決方法をご教授いただけたら助かります。
宜しくお願いいたします。

コメント

デバイス登録ノードには
コマンド bash $file
queue1
Debug Mode と Append msg.payload にチェックを入れています。
構文shell
AWS_ACCESS="$1"
AWS_REGION="$2"
ENDPOINT="$3"
URI=/things/${AT_SERIAL_NUMBER}
curl \
--cacert /cert/AmazonRootCA1.pem \
--user "${AWS_ACCESS}" \
--aws-sigv4 "aws:amz:${AWS_REGION}:execute-api" \
--request POST -v \
-d "{}" \
"https://${ENDPOINT}${URI}"
で実行しております

デバイス名の取得は以下になります。
var res = JSON.parse(msg.payload);
msg.payload="thingName:" + res.thingName;
return msg;

宜しくお願いいたします。

at_reika.yamazaki

2024年7月3日 11時02分

お世話になっております。山崎です。

開発ガイドの「4.6.5. デバイスを登録するフローの作成」の [デバイス名の取得] ノードでエラーがでているということでよいでしょうか?
だとすると、以下にあるようにすでにモノに登録されているため、登録できずに失敗していると思われます。
>IoTcoreのモノには登録されており、AWSまでは問題なく接続できていそうです。

すでに登録済だと思われますので、
「4.6.9. デバイスシャドウを取得するフローの作成」に進めると思います。
こちらのフローを実行するとどうなるかご確認ください。

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

山崎様
お世話になっております。

> 「4.6.9. デバイスシャドウを取得するフローの作成」に進めると思います。
4.6.9 を実行後、デバッグに{"message":null,"traceID":"ID"}が表示されました。
AWS側に作成されたA6Eのモノ内のデバイスシャドウには追加されてませんが正常でしょうか?

宜しくお願い致します。

at_reika.yamazaki

2024年7月3日 16時40分

お世話になっております。山崎です。

まだデバイスシャドウが生成されていないため、null になっているのだと思います。
「4.6.10. デバイスシャドウを更新するフローの作成」を実行してみてください。
そのあと、「4.6.9. デバイスシャドウを取得するフローの作成」で生成したフローを実行して、デバイスシャドウの内容が取得できるかご確認ください。
ガイド通りに実行した場合は "{"desired": {"message": "success" }" が確認できるはずです。

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