Degu v0.9.xからv1.0.0-rc1移行ガイド

概要

Deguの新ソフトウェアを2020年1月31日にリリースいたしました。

Deguゲートウェイ、Degu(ファームウェア/MicroPythonコード)を新ソフトウェアにアップデートすることにより、次の機能が利用できるようになります。

  1. セキュアエレメント(A71CH)に保存された証明書を使用した、AWSからの個体認証(Degu、Deguゲートウェイ共に個体認証可能)
  2. DTLSによるDeguゲートウェイとDegu間のセキュアな通信
  3. Deguのパワーマネージメント機能に正式対応
  4. OTAによるDeguのリモートファームウェアアップデート機能の正式対応

各種ソフトウェアバージョンの互換性に関して

ソフトウェアをアップデートする際は、互換性に注意してください。
新・旧混ぜた、下記のような組み合わせでは動作できません。

  • Degu:旧ソフトウェア、Deguゲートウェイ:新ソフトウェア
  • Degu:新ソフトウェア、Deguゲートウェイ:旧ソフトウェア

DeguとDeguゲートウェイは、以下の旧ソフトウェアバージョンと新ソフトウェアバージョンの組み合わせでのみ動作可能です。

項目 旧ソフトウェア 新ソフトウェア
ステータス 非サポート サポート
Degu degu.bin(MTDファームウェア) 0.9.5以前 1.0.0-rc1以降
MicroPythonサンプルコード github公開の0.9.5以前の対応コード
を利用する必要があります
githubにて公開・継続メンテナンス
degu_router.bin(FTDファームウェア) 0.9.5以前 1.0.0-rc1以降
Deguゲートウェイ G3 インストールディスクイメージ install_disk_sd_20190520_degugw_iotg3_m1.img install_disk_sd_20200131_degugw_iotg3_m1.img
Debian GNU/Linux 9(Stretch)
ユーザーランド
debian-stretch-armhf_degugw_20190520.tar.gz debian-stretch-armhf_degugw_20200131.tar.gz
Deguゲートウェイ A6 インストールディスクイメージ install-disk-degugw-a6-20191224.img install-disk-degugw-a6-20200131.img
Debian GNU/Linux 9(Stretch)
ユーザーランド
debian-stretch-armhf-degugw-a6-20190725.tar.gz debian-stretch-armhf-degugw-a6-20200131.tar.gz
Deguゲートウェイ 共通
coap-mqtt-bridge 1.1.0以前 2.0.0-1以降
degugw-mqtt-client ------ 2.0.0-1以降 ※新規リリース
degu-manager 1.0.3-1 2.0.0-1以降
libengine-a71ch-openssl ------ 1.0.0-1以降 ※新規リリース

新ソフトウェアのリリースノート

各種パッケージ、ファームウェアのリリースノートについては以下をご確認ください。

旧ソフトウェアを継続して利用する際の手順

旧ソフトウェアを利用する際の手順を次に示します。

Degu

0.9.5以前のイメージを書き込んでください。
ファームウェアに関しては https://github.com/open-degu/degu/releases からダウンロードしてください。

Deguゲートウェイ

次のようにコマンドを実行し、 coap-mqtt-bridgeとdegu-managerをバージョン指定でインストールしてください。
バージョン指定をしないでapt installコマンドを実行すると、新ソフトウェア対応のパッケージが自動的に選択されます。

DeguGW # apt update
DeguGW # apt install degu-manager=1.0.3-1
DeguGW # apt install coap-mqtt-bridge=1.1.0

Deguゲートウェイの更新

以下に、Deguゲートウェイを新ソフトウェアへ移行する手順を示します。

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

AWS IoT Core上で、Deguゲートウェイのモノを削除してください。
登録されているモノのページで、アクション->削除をクリックしてください。

CA証明書を作成し、AWS IoT Coreへ登録

Linux PC上で、Deguゲートウェイのセットアップ の『CA証明書の作成、AWS IoT Coreへの登録、Deguゲートウェイへの設置』を参照し、CA証明書の作成とAWS IoT Coreへの登録を行ってください。

Deguゲートウェイのパッケージを更新

degu-managerを最新バージョンにアップデートします。
関連するパッケージも更新されます。

DeguGW # apt update
DeguGW # apt install degu-manager
DeguGW # apt install coap-mqtt-bridge

Degu v1.0.0-rc1に対応する、Deguゲートウェイ側Debianパッケージのバージョンは以下の通りです。

パッケージ名 パッケージバージョン
degu-manager 2.0.0-1
coap-mqtt-bridge 2.0.0-1
degugw-mqtt-client 2.0.0-1
ibengine-a71ch-openssl 1.0.0-1

パッケージcoap-mqtt-bridgeを更新する際、以下のようなメッセージが表示されることがあります。

configuration file '/etc/coap-mqtt/mqttinfo.json'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** mqttinfo.json (Y/I/N/O/D/Z) [default=N] ?

このメッセージが表示された場合、一旦Dを押し差分を表示します。
更新前の設定ファイルの以下の内容を別な場所に控えておいてください。

"aws_endpoint" : "my_endpoint",
"secretaccesskey" : "my_accesskey",
"accesskeyid" : "my_accesskeyid",
"region" : "my_region",

控えた上で、Yを押して設定ファイルを更新してください。

CA証明書とキーペアをDeguゲートウェイに設置

Deguゲートウェイのセットアップ の『CA証明書をDeguゲートウェイへコピー』を参照し、CA証明書を作成し、AWS IoT Coreへ登録で作成したCA証明書とキーペアを、Deguゲートウェイに設置してください。

AWS情報設定ファイルの編集

Deguゲートウェイのセットアップ 『AWS情報設定ファイルの編集』を参照し、AWS情報設定ファイルを編集してください。 Deguゲートウェイのパッケージを更新で控えた各項目の値はここで使用します。

Degu ゲートウェイをAWS IoT Coreへ再登録

Deguゲートウェイのセットアップ の『DeguゲートウェイをAWS IoTへ登録』を参照し、DeguゲートウェイをAWS IoT Coreへ再登録してください。

Deguの更新

以下に、Deguを新ソフトウェアへ移行する手順を示します。

ネットワーク情報のクリアとAWS IoT Coreへの再登録

AWS IoT Coreのシャドウが更新されないを参照し、Degu内のネットワーク情報をクリアし、AWS IoT Coreへ再登録してください。

Deguファームウェアの更新

最新の状態へのアップデートの手順を参照し、Deguファームウェアを最新にしてください。 v1.0.0-rc1のファームウェアは、https://github.com/open-degu/degu/releases/tag/v1.0.0-rc1 に存在します。

main.py更新

サンプルコードをそのまま使用している場合

サンプルコード から最新のサンプルコードをダウンロードし、Deguに適用してください。

独自のmain.pyをご利用の場合

おおまかな変更方針は以下の通りです。

  • import zcoapの箇所をimport deguに置き換えてください。
  • cli.request_post()をdegu.update_shadow()に置き換えてください。
  • ポート番号の指定など細かい指定が不要となります。

例として、バッテリー残量センサーの差分は以下の通りです。

main.pyの適用方法

MicroPythonコードの変更を参照し、Deguに新しいmain.pyを上書きしてください。