Skip to content

[HowTo]Degu v1.0.0-rc1 シャドウ更新までの手順 #37

@yoshidam-at

Description

@yoshidam-at

目的

  • センサーも何もつけず、2020年3月4日時点の最新バイナリDegu v1.0.0-rc1でシャドウ更新まで実施する手順を説明します。

前提条件

  • AWSコンソールにログイン可能であること。
  • Deguゲートウェイのセットアップ の「AWSの設定」「IAMユーザー作成」「rootのパスワードの変更」までの設定が済んでいること。

AWS IoT Core上のモノからDeguゲートウェイとDeguを削除する

  • 既にAWS IoT Core上にDeguゲートウェイとDeguを登録されている場合は、一度削除してください。

Deguを最新にする

  • Deguバイナリのアップデートが出来ましたら、一旦Deguへの電源供給は全て停止している状態にしてください(電池を抜くか赤黒ケーブルを抜く、USBケーブルは抜く)。

Deguゲートウェイのセットアップ

  • Deguゲートウェイのターミナルで以下を実施しパッケージを最新にします。
    DeguGW # apt update
    DeguGW # apt upgrade
    
    • 2020年3月4日現在各パッケージの最新バージョンは以下の通りです。
      パッケージ名 バージョン
      degu-manager 2.0.0-1
      coap-mqtt-bridge 2.0.0-1
      degugw-mqtt-client 2.0.1-1
      libengine-a71ch-openssl 1.0.0-1
  • scpを使用する為に、Deguゲートウェイにsshをインストールします。
    DeguGW # apt install -y ssh
    
  • Linux PCなどでDegu GWをAWS IoT Coreへ登録する為のCA証明書とキーペアを作成し、Deguゲートウェイの/etc/coap-mqtt/へ配置します。 参考 Deguゲートウェイのセットアップ 「DeguゲートウェイをAWS IoTへ登録する」
  • Linux PCで作成し、AWS IoTへ登録したCA証明書とCA証明書用キーペアをDeguゲートウェイへコピーし、/etc/coap-mqtt/へ配置します。
    LinuxPC $ scp ca.pem.key ユーザーID@IPアドレス:/home/ユーザー名/.
    LinuxPC $ scp ca.pem.crt ユーザーID@IPアドレス:/home/ユーザー名/.
    DeguGW # mv /home/ユーザー名/ca.pem.key /etc/coap-mqtt/.
    DeguGW # mv /home/ユーザー名/ca.pem.crt /etc/coap-mqtt/.
    
  • Deguゲートウェイ内の/etc/coap-mqtt/mqttinfo.jsonを編集します。
    • よくエラーになるのは、☆1☆と☆2☆の場所です。
      • ☆1☆
        • 最後の,(コロン)が抜けていないか?
        • 後ろの"(ダブルクオーテーション)が抜けていないか?余計にないか?
        • ファイル拡張子は/etc/coap-mqtt/に保存したものと相違がないか?
          • 間違いやすい例: ca.key.pem ca.pem.crt, ca.pem.cert
      • ☆2☆
        • 最後の,(コロン)がついていないか?(不要です)
        • 後ろの"(ダブルクオーテーション)が抜けていないか?余計にないか?
        • ファイル拡張子は/etc/coap-mqtt/に保存したものと相違がないか?
          • 間違いやすい例: ca.crt.pem ca.pem.key, ca.pem.cert
      {
        "key" : "/etc/coap-mqtt/private.pem.key",
        "cert" : "/etc/coap-mqtt/certificate.pem.crt",
        "cafile" : "/etc/coap-mqtt/RootCA.crt",
        "aws_endpoint" : "xxxxx.iot.ap-northeast-1.amazonaws.com",
        "secretaccesskey" : "asdfghjkl",
        "accesskeyid" : "AWS123",
        "region" : "ap-northeast-1",
        "gw": {
          "preset": {
            "ca": {
              "=comment=" : [
                "you must set ca certificate file and put it.",
                "if you do not create device certificate,",
                "you must set key file path and put it."],
              "key"  : "/etc/coap-mqtt/ca.pem.key",  ☆1☆
              "cert" : "/etc/coap-mqtt/ca.pem.crt"    ☆2☆
            },
            "device": {
              "=comment=" : [
                "if you already create device certificate,",
                "set certificate and key pair on this device and write file path."],
              "key"  : "",
              "cert" : ""
            }
          },
          "=comment=" : "===== do not change below properties. =====",
          "mqtt": {
            "cert" : "/etc/coap-mqtt/deviceAndCa.crt.pem",
            "key"  : "/etc/coap-mqtt/device.ref.key.pem",
            "ca"   : "/etc/coap-mqtt/AmazonRootCA3.pem"
          }
        }
      }
      
  • Deguゲートウェイを再起動し、DeguゲートウェイがAWS IoT Coreに登録されていることを確認します。
    • Deguゲートウェイが登録されていても「モノ」→「セキュリティ」に証明書が表示されていない場合、Deguゲートウェイ内degu-managerがなんらかのエラーになっています。
      • degu-managerはエラーが発生すると周期的にサービスの再起動を繰り返しますので、以下のコマンドで/var/log/syslogの最後尾部分を表示し、どんなエラーが発生しているかを確認します。
      DeguGW # tail -f /var/log/syslog
      
    • 大抵は/etc/coap-mqtt/mqttinfo.jsonのフォーマットエラーですので、エラー内容を確認し、修正します。

DeguをAWS IoTへ登録する

  • Deguゲートウェイのセットアップ「DeguをAWS IoT Coreに登録する」を参考にDeguをAWS IoT Coreへ(再)登録します。
  • Deguに電源を供給します。
  • Shadowが更新されていれば成功です。
    shadow

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions