OTAアップデートプロセス(Bluetooth Low Energy)
このトピックでは、EchoデバイスとガジェットがBluetooth Low Energy(BLE)経由で通信してOTA(ワイヤレス)アップデートを実行するプロセスについて説明します。
OTAアップデートのためにガジェットが満たすべき要件については、OTAアップデートの前提条件を参照してください。
概要
次の図はOTAプロセスの概要を示しており、その下に各手順の説明があります。このプロセスでは、制御ストリーム、Alexaストリーム、OTAストリームという3つのストリームを使います。

BLEを使った接続
まず、EchoデバイスとガジェットがBLEを介してハンドシェイクまで(ハンドシェイクを含む)の手順をすべて実行します。手順は、従来のペアリングと接続や再接続のフローと同じです。
ガジェットファームウェアのバージョン確認
Echoデバイスとガジェットが接続されると、EchoデバイスはガジェットにDiscover
ディレクティブを送信します(これは、Echoデバイスとガジェットが接続されるたびに行われます)。 ガジェットは、ガジェットの現在のファームウェアバージョンを含むDiscover.Response
イベントとその他の情報で応答します。Alexaサービスはこの情報を使って、どのガジェットにファームウェアアップデートが必要かを判断します。Alexa.Discovery
はAlexa Gadgets Toolkitのインターフェースなので、Discover
ディレクティブとDiscover.Response
イベントはAlexaストリームを使用します。
OTAアップデートの開始
Alexaサービスがガジェットにファームウェアアップデートが必要と判断した場合、Echoデバイスは制御ストリーム経由でガジェットにUpdateComponentSegment
メッセージを送信します。UpdateComponentSegment
メッセージを含むトランザクションの最終パケットには、ヘッダーにACKフラグがセットされるため、ガジェットはトランザクションの最終パケットへの応答としてACK/NACKパケットを送信する必要があります。
ファームウェアイメージの転送
Echoデバイスは、OTAストリームを使って1つ以上のUpdateComponent
メッセージを送信することにより、チャンクとしてガジェットにファームウェアイメージを転送します。チャンクサイズは、ガジェットがプロトコルバージョンパケットでレポートした最大転送データサイズ以内です。たとえばファームウェアイメージのサイズが540 KBで最大転送データサイズが100 KBの場合、Echoデバイスはガジェットに6個のUpdateComponent
メッセージ(100 KBのチャンク5個と40 KBのチャンク1個)を送信します。
アップデートの適用
ガジェットがファームウェアイメージ全体を受け取ったら、制御ストリームを使ってUpdateComponentSegment
メッセージに応答します。次に、Echoデバイスが制御ストリーム経由でガジェットにApplyFirmware
メッセージを送信し、ガジェットに新しいファームウェアを使うよう指示します。
EchoデバイスからのApplyFirmware
メッセージを含むパケットのヘッダーにはACKフラグがセットされているため、ガジェットはトランザクションの最終パケットへの応答としてACK/NACKパケットを送信する必要があります。
ガジェットが最後の応答をApplyFirmware
コマンドに送信すると、アップデートは完了です。