

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Operasi templat status untuk pengumpulan dan pemrosesan data
<a name="state-template-api-operations"></a>

**penting**  
Akses ke FleetWise fitur AWS IoT tertentu saat ini terjaga keamanannya. Untuk informasi selengkapnya, lihat [AWS Ketersediaan wilayah dan fitur di AWS IoT FleetWise](fleetwise-regions.md).

Bagian berikut menjelaskan cara menggunakan templat status untuk mengaktifkan dan menonaktifkan pengumpulan data, melakukan operasi pengambilan, dan memproses data status dari kendaraan Anda.

**Topics**
+ [Aktifkan dan nonaktifkan pengumpulan data negara menggunakan templat negara](start-stop-data-ingestion.md)
+ [Ambil snapshot status kendaraan menggunakan templat status](on-demand-operations.md)
+ [Memproses data kendaraan negara terakhir yang diketahui menggunakan pesan MQTT](process-last-known-state-vehicle-data.md)

# Aktifkan dan nonaktifkan pengumpulan data negara menggunakan templat negara
<a name="start-stop-data-ingestion"></a>

**penting**  
Akses ke FleetWise fitur AWS IoT tertentu saat ini terjaga keamanannya. Untuk informasi selengkapnya, lihat [AWS Ketersediaan wilayah dan fitur di AWS IoT FleetWise](fleetwise-regions.md).

Bagian berikut menjelaskan cara mengaktifkan dan menonaktifkan konsumsi data dengan templat status menggunakan. AWS CLI

**penting**  
Sebelum Anda mulai, pastikan bahwa Anda sudah membuat [template status](state-templates.md), dan mengaitkannya dan strategi pembaruannya dengan kendaraan.

Anda harus mengaktifkan templat status sehingga Agen Edge dapat mengirim pembaruan sinyal ke cloud.

Untuk melakukan operasi ini dengan template status, pertama buat sumber daya perintah dan kemudian mulai eksekusi perintah pada kendaraan. Bagian berikut menjelaskan cara menggunakan API ini dan cara mengaktifkan dan menonaktifkan konsumsi data.

**Topics**
+ [Menggunakan API `CreateCommand` ini](#start-stop-ingestion-create-command)
+ [Contoh: Aktifkan templat negara](#start-stop-ingestion-activate-template)
+ [Contoh: Nonaktifkan template status](#start-stop-ingestion-deactivate-template)

## Menggunakan API `CreateCommand` ini
<a name="start-stop-ingestion-create-command"></a>

Buat sumber daya perintah di namespace `AWS-IoTFleetwise` "”, dan gunakan parameter berikut saat Anda membuat atau mengirim sumber daya perintah untuk templat status:
+ `$stateTemplate.name`— Nama template negara tempat untuk melakukan operasi. Template status harus diterapkan pada kendaraan sebelum Anda dapat melakukan operasi. Untuk informasi selengkapnya, lihat [Kaitkan templat FleetWise status AWS IoT dengan kendaraan](state-templates.md#apply-state-templates).
+ `$stateTemplate.operation`— Operasi yang akan dilakukan pada template negara. Gunakan salah satu nilai berikut untuk parameter ini:
  + `activate`— Agen Edge mulai mengirim pembaruan sinyal ke cloud berdasarkan yang `stateTemplateUpdateStrategy` Anda tentukan (on-change atau periodik) saat Anda menerapkan templat status ke kendaraan. Untuk informasi selengkapnya, lihat [Kaitkan templat FleetWise status AWS IoT dengan kendaraan](state-templates.md#apply-state-templates).

    Selain itu, Anda dapat menentukan waktu penonaktifan templat status otomatis untuk menghentikan pembaruan setelah jangka waktu tertentu. Jika waktu penonaktifan otomatis tidak disediakan, templat status akan terus mengirimkan pembaruan hingga panggilan nonaktif dikeluarkan. 

    Segera setelah `activate` perintah diterima, perangkat harus mengirim sinyal yang ditentukan dalam templat status sesuai dengan strategi pembaruan. AWS IoT FleetWise merekomendasikan bahwa ketika perintah aktifkan diterima oleh perangkat, pesan pertama yang dikirim harus berisi snapshot dari semua sinyal dalam template status. Pesan selanjutnya harus dikirim sesuai dengan strategi pembaruan.
  + `deactivate`— Agen Edge berhenti mengirim pembaruan sinyal ke cloud.
  + `fetchSnapshot`— Agen Edge mengirimkan snapshot satu kali dari sinyal yang ditentukan dalam templat status terlepas dari yang `stateTemplateUpdateStrategy` Anda tentukan saat Anda menerapkan templat status ke kendaraan. 
+ (Opsional) `$stateTemplate.deactivateAfterSeconds` - Template status secara otomatis dinonaktifkan setelah waktu yang ditentukan. Parameter ini hanya dapat digunakan ketika nilai `$stateTemplate.operation` parameter adalah “aktifkan”. Jika parameter ini tidak ditentukan, atau jika nilai parameter ini adalah 0, Agen Edge terus mengirimkan pembaruan sinyal ke cloud hingga operasi “nonaktifkan” diterima untuk templat status. Template status tidak pernah dinonaktifkan secara otomatis.

  Nilai minimum: 0, nilai maksimum: 4294967295.

**catatan**  
API mengembalikan keberhasilan dalam menanggapi permintaan aktivasi untuk template yang sudah dalam status aktif.
API mengembalikan keberhasilan dalam menanggapi permintaan penonaktifan untuk template yang sudah dalam status penonaktifan.
Permintaan terbaru yang Anda buat pada templat status adalah permintaan yang berlaku. Misalnya, jika Anda membuat permintaan untuk template status untuk dinonaktifkan dalam satu jam, kemudian membuat permintaan kedua untuk template yang sama untuk dinonaktifkan dalam empat jam, penonaktifan empat jam akan berlaku karena itu menjadi permintaan terbaru. 

**penting**  
Pengecualian validasi dapat terjadi dalam salah satu skenario berikut:  
Templat negara disediakan yang tidak `ASSOCIATED` dengan kendaraan.
Permintaan dibuat untuk mengaktifkan templat status tetapi belum ada `DEPLOYED` di kendaraan.
Permintaan dibuat ke templat negara tetapi sedang berada `DELETED` di kendaraan.

## Contoh: Aktifkan templat negara
<a name="start-stop-ingestion-activate-template"></a>

Untuk mengaktifkan templat status, pertama-tama buat sumber daya perintah. Anda kemudian dapat mengirim perintah berikut ke kendaraan tempat Anda ingin mengaktifkan templat status. Contoh ini menunjukkan bagaimana Anda dapat menentukan nilai default untuk parameter saat membuat perintah. Parameter ini dan nilai-nilainya digunakan saat memulai eksekusi perintah untuk mengaktifkan template status.

1. 

**Buat sumber daya perintah**

   Sebelum Anda dapat mengirim perintah ke kendaraan, Anda harus membuat sumber daya perintah. Anda dapat menentukan nilai alternatif untuk parameter wajib saat Anda mengirim perintah ke kendaraan. Untuk informasi selengkapnya, lihat [Buat sumber daya perintah](create-manage-remote-command-cli.md#create-remote-command-cli).
**penting**  
`$stateTemplate.name`dan `$stateTemplate.operation` parameter harus disediakan sebagai tipe data string. Jika ada tipe data lain yang disediakan, atau jika salah satu dari dua parameter ini hilang, eksekusi perintah gagal dengan pengecualian validasi. `$stateTemplate.deactivateAfterSeconds`Parameter harus disediakan sebagai tipe `Long` data.

   ```
   aws iot create-command \
       --description "This command activates a state template on a vehicle"
       --command-id ActivateStateTemplate \
       --display-name "Activate State Template" \
       --namespace AWS-IoTFleetWise \
       --mandatory-parameters '[
       {
           "name": "$stateTemplate.name",
           "defaultValue": {"S": "ST123"}
       },
       {
           "name": "$stateTemplate.operation",
           "defaultValue": {"S": "activate"}
       },
       {
           "name": "$stateTemplate.deactivateAfterSeconds",
           "defaultValue": {"L": "120"}
       } 
   ]'
   ```

1. 

**Mulai eksekusi perintah pada kendaraan**

   Setelah perintah dibuat, kirim perintah ke kendaraan. Jika Anda tidak menentukan nilai untuk parameter wajib saat Anda membuat sumber daya perintah, Anda harus menentukannya sekarang. Untuk informasi selengkapnya, lihat [Kirim perintah (AWS CLI)](send-monitor-remote-command-cli.md#send-remote-command-cli).
**penting**  
Pastikan Anda menggunakan titik akhir API bidang data AWS IoT pekerjaan khusus akun untuk operasi API.

   ```
   aws iot-jobs-data start-command-execution \
       --endpoint-url <endpoint-url> \
       --command-arn arn:aws:iot:region:111122223333:command/ActivateStateTemplate \
       --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME>
   ```

1. 

**Mengambil status operasi template negara**

   Setelah Anda memulai eksekusi perintah, Anda dapat menggunakan `GetCommandExecution` API untuk mengambil template status.

   ```
   aws iot get-command-execution --execution-id <EXECUTION_ID> 
   ```

## Contoh: Nonaktifkan template status
<a name="start-stop-ingestion-deactivate-template"></a>

Untuk menonaktifkan templat status, pertama-tama buat sumber daya perintah. Anda kemudian dapat mengirim perintah berikut ke kendaraan tempat Anda ingin menonaktifkan templat status. Contoh ini menunjukkan bagaimana Anda dapat menentukan nilai default untuk parameter saat membuat perintah. Parameter ini dan nilai-nilainya digunakan saat memulai eksekusi perintah untuk menonaktifkan template status.

1. 

**Buat sumber daya perintah**

   Sebelum Anda dapat mengirim perintah ke kendaraan, Anda harus membuat sumber daya perintah. Anda dapat menentukan nilai alternatif untuk parameter wajib saat Anda mengirim perintah ke kendaraan. Untuk informasi selengkapnya, lihat [Buat sumber daya perintah](create-manage-remote-command-cli.md#create-remote-command-cli).

   ```
   aws iot create-command \
       --description "This command deactivates a state template on a vehicle"
       --command-id DeactivateStateTemplate \
       --display-name "Deactivate State Template" \
       --namespace AWS-IoTFleetWise \
       --mandatory-parameters '[
       {
           "name": "$stateTemplate.name",
           "defaultValue": {"S": "ST123"}
       },
       {
           "name": "$stateTemplate.operation",
           "defaultValue": {"S": "deactivate"}
       }    
   ]'
   ```

1. 

**Mulai eksekusi perintah pada kendaraan**

   Setelah perintah dibuat, kirim perintah ke kendaraan. Jika Anda tidak menentukan nilai untuk parameter wajib saat Anda membuat sumber daya perintah, Anda harus menentukannya sekarang. Untuk informasi selengkapnya, lihat [Kirim perintah (AWS CLI)](send-monitor-remote-command-cli.md#send-remote-command-cli).

   ```
   aws iot-jobs-data start-command-execution \
       --endpoint-url <endpoint-url> \
       --command-arn arn:aws:iot:region:111122223333:command/DeactivateStateTemplate \
       --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME>
   ```

1. 

**Mengambil status operasi template negara**

   Setelah Anda memulai eksekusi perintah, Anda dapat menggunakan `GetCommandExecution` API untuk mengambil template status.

   ```
   aws iot get-command-execution  --execution-id <EXECUTION_ID> 
   ```

# Ambil snapshot status kendaraan menggunakan templat status
<a name="on-demand-operations"></a>

**penting**  
Akses ke FleetWise fitur AWS IoT tertentu saat ini terjaga keamanannya. Untuk informasi selengkapnya, lihat [AWS Ketersediaan wilayah dan fitur di AWS IoT FleetWise](fleetwise-regions.md).

Anda dapat mengambil status terakhir kendaraan yang diketahui menggunakan operasi API bidang [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCommand.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCommand.html) AWS IoT Core kontrol atau konsol AWS FleetWise IoT.

**penting**  
Pengecualian validasi dapat terjadi dalam salah satu skenario berikut:  
Templat negara disediakan yang tidak `ASSOCIATED` dengan kendaraan.
Permintaan dibuat untuk mengaktifkan templat status tetapi belum ada `DEPLOYED` di kendaraan.
Permintaan dibuat ke templat negara tetapi sedang berada `DELETED` di kendaraan.

## Ambil snapshot status kendaraan (konsol)
<a name="fetch-state-console"></a>

Anda dapat menggunakan FleetWise konsol AWS IoT untuk mengambil status terakhir kendaraan yang diketahui. AWS IoT FleetWise akan membuat perintah bagi Anda untuk mengambil data.

**Untuk mengambil status kendaraan**

1. Buka konsol [AWS IoT FleetWise ](https://console.aws.amazon.com/iotfleetwise).

1. Pada panel navigasi, pilih **Kendaraan**.

1. Pilih kendaraan dari daftar untuk membuka halaman detailnya.

1. Pada tab **Templat negara**, pilih **Ambil data**.

1. Pilih peran IAM yang memberikan FleetWise izin AWS IoT untuk mengirim perintah dan mengambil data. Lihat [Mengontrol akses](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/controlling-access.html#generate-command-payload).

1. Pilih **status Ambil**.

## Ambil snapshot status kendaraan ()AWS CLI
<a name="fetch-state-cli"></a>

Untuk mengambil snapshot status, pertama-tama buat sumber daya perintah. Anda kemudian dapat mengirim perintah berikut ke kendaraan yang ingin Anda ambil snapshot statusnya. Untuk informasi selengkapnya tentang penggunaan `CreateCommand` API dan parameternya, lihat[Menggunakan API `CreateCommand` ini](start-stop-data-ingestion.md#start-stop-ingestion-create-command).

1. 

**Buat sumber daya perintah**

   Contoh berikut menunjukkan cara membuat sumber daya perintah untuk melakukan operasi pengambilan. Anda dapat menentukan nilai alternatif untuk parameter wajib saat Anda mengirim perintah ke kendaraan. Untuk informasi selengkapnya, lihat [Buat sumber daya perintah](create-manage-remote-command-cli.md#create-remote-command-cli).

   ```
   aws iot create-command \
       --command-id <COMMAND_ID> \
       --display-name "FetchSnapshot State Template" \
       --namespace AWS-IoTFleetWise \
       --mandatory-parameters '[
         {
             "name": "$stateTemplate.name",
             "defaultValue": {"S": "ST123"}
         }, 
         {
             "name": "$stateTemplate.operation",
             "defaultValue": {"S": "fetchSnapshot"}
         }
       ]'
   ```

   Respons:

   ```
   { 
       "commandId": "<COMMAND_ID>",
       "commandArn": "arn:aws:iot:<REGION>:111122223333:command/<COMMAND_ID>"
   }
   ```

1. 

**Mulai eksekusi perintah untuk mengambil snapshot status**

   Setelah perintah dibuat, kirim perintah ke kendaraan. Jika Anda tidak menentukan nilai untuk parameter wajib saat Anda membuat sumber daya perintah, Anda harus menentukannya sekarang. Untuk informasi selengkapnya, lihat [Kirim perintah (AWS CLI)](send-monitor-remote-command-cli.md#send-remote-command-cli).

   ```
   aws iot-jobs-data start-command-execution \
       --command-arn arn:aws:iot:region:111122223333:command/<COMMAND_ID> \
       --target-arn arn:aws:iot:region:111122223333:thing/<VEHICLE_NAME>
   ```

   Respons:

   ```
   {
       "executionId": "<UNIQUE_UUID>"
   }
   ```

1. Mengambil status operasi template negara

   Setelah Anda memulai eksekusi perintah, Anda dapat menggunakan `GetCommandExecution` API untuk mengambil template status.

   ```
   aws iot get-command-execution --execution-id <EXECUTION_ID> 
   ```

# Memproses data kendaraan negara terakhir yang diketahui menggunakan pesan MQTT
<a name="process-last-known-state-vehicle-data"></a>

**penting**  
Akses ke FleetWise fitur AWS IoT tertentu saat ini terjaga keamanannya. Untuk informasi selengkapnya, lihat [AWS Ketersediaan wilayah dan fitur di AWS IoT FleetWise](fleetwise-regions.md).

Untuk menerima pembaruan dari kendaraan Anda dan memproses datanya, berlangganan topik MQTT berikut. Untuk informasi selengkapnya, lihat [topik MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-devices.html) di *Panduan Developer AWS IoT Core *.

```
$aws/iotfleetwise/vehicles/$vehicle_name/last_known_state/$state_template_name/data
```

Pesan pembaruan sinyal status terakhir yang diketahui mungkin diterima rusak, karena MQTT tidak menjamin pemesanan. Setiap klien yang menggunakan MQTT untuk menerima dan memproses data kendaraan harus menangani hal ini. Pesan pembaruan sinyal status terakhir yang diketahui mengikuti protokol pesan MQTT 5.

Header pesan untuk setiap pesan MQTT memiliki properti pengguna berikut:
+ **VehicleName** [— Pengidentifikasi unik kendaraan.](vehicles.md)
+ **stateTemplateName**— Pengidentifikasi unik dari [template status status](state-templates.md) terakhir yang diketahui.

Selain itu, Anda dapat menentukan [atribut kendaraan](signal-catalogs.md) yang akan disertakan dalam header pesan MQTT dengan menentukan parameter `metadataExtraDimensions` permintaan saat memperbarui atau membuat templat status. (Lihat [Templat Negara](state-templates.md).)

Properti pengguna di header pesan MQTT berguna untuk merutekan pesan ke tujuan yang berbeda tanpa memeriksa payload. 

Muatan pesan MQTT berisi data yang dikumpulkan dari kendaraan. Anda dapat menentukan atribut kendaraan yang akan disertakan dalam muatan pesan MQTT dengan menentukan parameter `extraDimensions` permintaan saat membuat atau memperbarui templat status (lihat). [Buat template AWS status IoT FleetWise](state-templates.md) Dimensi ekstra memperkaya data yang dikumpulkan dari kendaraan dengan mengaitkan dimensi ekstra dengan mereka.

Payload pesan MQTT adalah buffer protokol (Protobuf) yang dikodekan, dan header pesan MQTT berisi indikator tipe konten yang didefinisikan sebagai application/octet-stream. Skema pengkodean Protobuf adalah sebagai berikut:

```
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

syntax = "proto3";

option java_package = "com.amazonaws.iot.autobahn.schemas.lastknownstate";
package Aws.IoTFleetWise.Schemas.CustomerMessage;

message LastKnownState {

  /*
   * The absolute timestamp in milliseconds since Unix Epoch of when the event was triggered in vehicle.
   */
  uint64 time_ms = 1;

  /*
   * This field is deprecated, use signals instead
   */
  repeated Signal signal = 2 [ deprecated = true ];

  repeated Signal signals = 3;

  repeated ExtraDimension extra_dimensions = 4;
}

message Signal {

  /*
   * The Fully Qualified Name of the signal is the path to the signal plus the signal's name.
   * For example, Vehicle.Chassis.SteeringWheel.HandsOff.HandsOffSteeringState
   * The fully qualified name can have up to 150 characters. Valid characters: a-z, A-Z, 0-9, : (colon), and _ (underscore).
   */
  string name = 1;

  /*
   * The FWE reported signal value can be one of the following data types.
   */
  oneof SignalValue {
    double double_value = 2;

    bool boolean_value = 3;

    sint32 int8_value = 4;

    uint32 uint8_value = 5;

    sint32 int16_value = 6;

    uint32 uint16_value = 7;

    sint32 int32_value = 8;

    uint32 uint32_value = 9;

    sint64 int64_value = 10;

    uint64 uint64_value = 11;

    float float_value = 12;
    /*
     * An UTF-8 encoded or 7-bit ASCII string
     */
    string string_value = 13;
  }
}

message ExtraDimension {
  /*
   * The Fully Qualified Name of the attribute is the path to the attribute plus the attribute's name.
   * For example, Vehicle.Model.Color
   * The fully qualified name can have up to 150 characters. Valid characters: a-z, A-Z, 0-9, : (colon), and _ (underscore).
   */
  string name = 1;

  oneof ExtraDimensionValue {
    /*
     * An UTF-8 encoded or 7-bit ASCII string
     */
    string string_value = 2;
  }
}
```

Di mana:
+ `time_ms`:

  Timestamp absolut (dalam milidetik sejak Unix Epoch) saat peristiwa dipicu di dalam kendaraan. Perangkat lunak Edge Agent menggunakan jam kendaraan untuk stempel waktu ini.
+ `signal`:

  Array `Signal` s yang berisi informasi sinyal: `name` (string) dan `signalValue` yang mendukung tipe data berikut -`double`,,`bool`,`int8`,`uint8`,`int16`, `uint16``int32`,`uint32`,`int64`,`uint64`,`float`,`string`.
+ `extra_dimensions`:

  Array `ExtraDimensions` yang berisi informasi atribut kendaraan: `name` (string) dan `extraDimensionValue` yang saat ini hanya mendukung tipe `string` data.