|
| 1 | +# AWS IoT Fleetwise Service Scenario Specification |
| 2 | + |
| 3 | +## Overview |
| 4 | +This SDK Basics scenario demonstrates how to interact with AWS IoT Fleetwise using an AWS SDK. |
| 5 | +It demonstrates various tasks such as creating a Fleetwise catelog, creating an fleet, |
| 6 | +creating a vehicle, and so on. Finally this scenario demonstrates how |
| 7 | +to clean up resources. Its purpose is to demonstrate how to get up and running with |
| 8 | +AWS Fleetwise SiteWise and an AWS SDK. |
| 9 | + |
| 10 | +## Resources |
| 11 | +This Basics scenario does not require any additional AWS resources. |
| 12 | + |
| 13 | +## Hello AWS Fleetwise SiteWise |
| 14 | +This program is intended for users not familiar with the AWS IoT Fleetwise Service to easily get up and running. The program uses a `listSignalCatalogsPaginator` to demonstrate how you can read through catalog information. |
| 15 | + |
| 16 | +## Basics Scenario Program Flow |
| 17 | +The AWS IoT Fleetwise Basics scenario executes the following operations. |
| 18 | + |
| 19 | +1. **Create an AWS FleetWise collection**: |
| 20 | + - Description: This step creates an AWS Fleetwise collection by invoking the `createSignalCatalog` method. |
| 21 | + - Exception Handling: Check to see if a `???` is thrown. |
| 22 | + If it is thrown, display the asset model ID and move on. |
| 23 | + |
| 24 | +2. **Create an IoT Fleetwise fleet**: |
| 25 | + - Description: This operation creates an AWS Fleetwise fleet. |
| 26 | + - The method `listSignalCatalogNodes` is called to retrieve a list of nodes. |
| 27 | + - Exception Handling: Check to see if a `???` is thrown. |
| 28 | + |
| 29 | +3. **Create a model manifest**: |
| 30 | + - Description: To create a model manifest, the method `listAssetModelProperties` is called. The node list is used to create the model manifest by calling `createModelManifest()`. |
| 31 | + - Exception Handling: Check to see if an `???` is thrown. If so, display the message and end the program. |
| 32 | + |
| 33 | +4. **Create a decoder manifest**: |
| 34 | + - Description: This operation creates a decoder manifest. |
| 35 | + - This step uses the method `createDecoderManifest`. |
| 36 | + - Exception Handling: Check to see if a `???` is thrown. If so, display the message and end the program. |
| 37 | + |
| 38 | +5. **Check the status of the model manifest**: |
| 39 | + - Description: This operation checks the status of the model manifest. |
| 40 | + - This step uses the `updateModelManifest`and `getModelManifest` methods. |
| 41 | + - Exception Handling: Check to see if a `???` is thrown. If so, display the message and end the program. |
| 42 | + |
| 43 | +6. **Check the status of the decoder**: |
| 44 | + - Description: This operation creates an IoT Thing which is required to create a vehicle. |
| 45 | + - This step uses the `createThing` method. |
| 46 | + - Exception Handling: Check to see if a `???` is thrown. If so, display the message and end the program. |
| 47 | + |
| 48 | + |
| 49 | +7. **Create an IoT Thing**: |
| 50 | + - Description: This operation describes the portal and returns a URL for the portal. |
| 51 | + - The method `describePortal` is called and returns the URL. |
| 52 | + - Exception Handling: Check to see if a `ResourceNotFoundException` is thrown. If so, display the message and end the program. |
| 53 | + |
| 54 | +8. **Create a vehicle**: |
| 55 | + - Description: This operation creates a vehicle. |
| 56 | + - The method `createVehicle` is called. |
| 57 | + - Exception Handling: Check to see if an `???` is thrown. If so, display the message and end the program. |
| 58 | + |
| 59 | +9. **Display vehicle details**: |
| 60 | + - Description: This operation describes the vehicle. |
| 61 | + - The method `getVehicle` is called. |
| 62 | + - Exception Handling: Check to see if a `???` is thrown. If so, display the message and end the program. |
| 63 | + |
| 64 | +10. **Delete the AWS IoT SiteWise Assets**: |
| 65 | + - The `delete` methods are called to clean up the resources. |
| 66 | + - Exception Handling: Check to see if a `???` is thrown. If so, display the message and end the program." |
| 67 | + |
| 68 | +### Program execution |
| 69 | +The following shows the output of the AWS IoT Fleetwise Basics scenario in the console. |
| 70 | + |
| 71 | +``` |
| 72 | + AWS IoT FleetWise is a managed service that simplifies the |
| 73 | + process of collecting, organizing, and transmitting vehicle |
| 74 | + data to the cloud in near real-time. Designed for automakers |
| 75 | + and fleet operators, it allows you to define vehicle models, |
| 76 | + specify the exact data you want to collect (such as engine |
| 77 | + temperature, speed, or battery status), and send this data to |
| 78 | + AWS for analysis. By using intelligent data collection |
| 79 | + techniques, IoT FleetWise reduces the volume of data |
| 80 | + transmitted by filtering and transforming it at the edge, |
| 81 | + helping to minimize bandwidth usage and costs. |
| 82 | +
|
| 83 | +At its core, AWS IoT FleetWise helps organizations build |
| 84 | +scalable systems for vehicle data management and analytics, |
| 85 | +supporting a wide variety of vehicles and sensor configurations. |
| 86 | +You can define signal catalogs and decoder manifests that describe |
| 87 | +how raw CAN bus signals are translated into readable data, making |
| 88 | +the platform highly flexible and extensible. This allows |
| 89 | +manufacturers to optimize vehicle performance, improve safety, |
| 90 | +and reduce maintenance costs by gaining real-time visibility |
| 91 | +into fleet operations. |
| 92 | +
|
| 93 | +
|
| 94 | +Enter 'c' followed by <ENTER> to continue: |
| 95 | +c |
| 96 | +Continuing with the program... |
| 97 | +
|
| 98 | +-------------------------------------------------------------------------------- |
| 99 | +-------------------------------------------------------------------------------- |
| 100 | +1. Creates a collection of standardized signals that can be reused to create vehicle models |
| 101 | +The collection ARN is arn:aws:iotfleetwise:us-east-1:814548047983:signal-catalog/catelogscott1 |
| 102 | +
|
| 103 | +Enter 'c' followed by <ENTER> to continue: |
| 104 | +c |
| 105 | +Continuing with the program... |
| 106 | +
|
| 107 | +-------------------------------------------------------------------------------- |
| 108 | +-------------------------------------------------------------------------------- |
| 109 | +2. Create a fleet that represents a group of vehicles |
| 110 | + Creating an IoT FleetWise fleet allows you to efficiently collect, |
| 111 | + organize, and transfer vehicle data to the cloud, enabling real-time |
| 112 | + insights into vehicle performance and health. |
| 113 | +
|
| 114 | + It helps reduce data costs by allowing you to filter and prioritize |
| 115 | + only the most relevant vehicle signals, supporting advanced analytics |
| 116 | + and predictive maintenance use cases. |
| 117 | +
|
| 118 | +
|
| 119 | +Enter 'c' followed by <ENTER> to continue: |
| 120 | +c |
| 121 | +Continuing with the program... |
| 122 | +
|
| 123 | +The fleet Id is fleetscott1 |
| 124 | +
|
| 125 | +Enter 'c' followed by <ENTER> to continue: |
| 126 | +c |
| 127 | +Continuing with the program... |
| 128 | +
|
| 129 | +-------------------------------------------------------------------------------- |
| 130 | +-------------------------------------------------------------------------------- |
| 131 | +3. Create a model manifest |
| 132 | +An AWS IoT FleetWise manifest defines the structure and |
| 133 | +relationships of vehicle data. The model manifest specifies |
| 134 | +which signals to collect and how they relate to vehicle systems, |
| 135 | +while the decoder manifest defines how to decode raw vehicle data |
| 136 | +into meaningful signals. |
| 137 | +
|
| 138 | +
|
| 139 | +Enter 'c' followed by <ENTER> to continue: |
| 140 | +c |
| 141 | +Continuing with the program... |
| 142 | +
|
| 143 | +The manifest ARN is arn:aws:iotfleetwise:us-east-1:814548047983:model-manifest/manifestscott1 |
| 144 | +
|
| 145 | +Enter 'c' followed by <ENTER> to continue: |
| 146 | +c |
| 147 | +Continuing with the program... |
| 148 | +
|
| 149 | +-------------------------------------------------------------------------------- |
| 150 | +-------------------------------------------------------------------------------- |
| 151 | +4. Create a decoder manifest |
| 152 | +A decoder manifest in AWS IoT FleetWise defines how raw vehicle |
| 153 | +data (such as CAN signals) should be interpreted and decoded |
| 154 | +into meaningful signals. It acts as a translation layer |
| 155 | +that maps vehicle-specific protocols to standardized data formats |
| 156 | +using decoding rules. This is crucial for extracting usable |
| 157 | +data from different vehicle models, even when their data |
| 158 | + formats vary. |
| 159 | +
|
| 160 | +
|
| 161 | +
|
| 162 | +Enter 'c' followed by <ENTER> to continue: |
| 163 | +c |
| 164 | +Continuing with the program... |
| 165 | +
|
| 166 | +The decoder manifest ARN is arn:aws:iotfleetwise:us-east-1:814548047983:decoder-manifest/decManifestscott1 |
| 167 | +
|
| 168 | +Enter 'c' followed by <ENTER> to continue: |
| 169 | +c |
| 170 | +Continuing with the program... |
| 171 | +
|
| 172 | +-------------------------------------------------------------------------------- |
| 173 | +5. Check the status of the model |
| 174 | + The model manifest must be in an ACTIVE state before it can be used |
| 175 | + to create or update a vehicle. |
| 176 | +
|
| 177 | +
|
| 178 | +Enter 'c' followed by <ENTER> to continue: |
| 179 | +c |
| 180 | +Continuing with the program... |
| 181 | +
|
| 182 | +⏱️ Elapsed: 5s | Status: ACTIVE ✅ |
| 183 | +
|
| 184 | +Enter 'c' followed by <ENTER> to continue: |
| 185 | +c |
| 186 | +Continuing with the program... |
| 187 | +
|
| 188 | +-------------------------------------------------------------------------------- |
| 189 | +6. Check the status of the decoder |
| 190 | + The decoder manifest must be in an ACTIVE state before it can be used |
| 191 | + to create or update a vehicle. |
| 192 | +
|
| 193 | +
|
| 194 | +Enter 'c' followed by <ENTER> to continue: |
| 195 | +c |
| 196 | +Continuing with the program... |
| 197 | +
|
| 198 | +⏱️ Elapsed: 5s | Decoder Status: ACTIVE ✅ |
| 199 | +
|
| 200 | +Enter 'c' followed by <ENTER> to continue: |
| 201 | +c |
| 202 | +Continuing with the program... |
| 203 | +
|
| 204 | +-------------------------------------------------------------------------------- |
| 205 | +-------------------------------------------------------------------------------- |
| 206 | +7. Create an IoT Thing |
| 207 | +AWS IoT FleetWise expects an existing AWS IoT Thing with the same |
| 208 | +name as the vehicle name you are passing to createVehicle method. |
| 209 | +Before calling createVehicle(), you must create an AWS IoT Thing |
| 210 | +with the same name using the AWS IoT Core service. |
| 211 | +
|
| 212 | +
|
| 213 | +Enter 'c' followed by <ENTER> to continue: |
| 214 | +c |
| 215 | +Continuing with the program... |
| 216 | +
|
| 217 | +✅ IoT Thing created: vechile1 |
| 218 | +
|
| 219 | +Enter 'c' followed by <ENTER> to continue: |
| 220 | +c |
| 221 | +Continuing with the program... |
| 222 | +
|
| 223 | +-------------------------------------------------------------------------------- |
| 224 | +-------------------------------------------------------------------------------- |
| 225 | +8. Create a vehicle |
| 226 | +Creating a vehicle in AWS IoT FleetWise allows you to digitally |
| 227 | +represent and manage a physical vehicle within the AWS ecosystem. |
| 228 | +This enables efficient ingestion, transformation, and transmission |
| 229 | +of vehicle telemetry data to the cloud for analysis. |
| 230 | +
|
| 231 | +
|
| 232 | +Enter 'c' followed by <ENTER> to continue: |
| 233 | +c |
| 234 | +Continuing with the program... |
| 235 | +
|
| 236 | +✅ Vehicle 'vechile1' created successfully. |
| 237 | +
|
| 238 | +Enter 'c' followed by <ENTER> to continue: |
| 239 | +c |
| 240 | +Continuing with the program... |
| 241 | +
|
| 242 | +-------------------------------------------------------------------------------- |
| 243 | +-------------------------------------------------------------------------------- |
| 244 | +9. Display vehicle details |
| 245 | +
|
| 246 | +Enter 'c' followed by <ENTER> to continue: |
| 247 | +c |
| 248 | +Continuing with the program... |
| 249 | +
|
| 250 | +🚗 Vehicle Details: |
| 251 | +• modelManifestArn : arn:aws:iotfleetwise:us-east-1:814548047983:model-manifest/manifestscott1 |
| 252 | +• vehicleName : vechile1 |
| 253 | +• creationTime : 2025-04-16T18:10:00.332Z |
| 254 | +• lastModificationTime : 2025-04-16T18:10:00.332Z |
| 255 | +• decoderManifestArn : arn:aws:iotfleetwise:us-east-1:814548047983:decoder-manifest/decManifestscott1 |
| 256 | +• attributes : {} |
| 257 | +• arn : arn:aws:iotfleetwise:us-east-1:814548047983:vehicle/vechile1 |
| 258 | +
|
| 259 | +Enter 'c' followed by <ENTER> to continue: |
| 260 | +c |
| 261 | +Continuing with the program... |
| 262 | +
|
| 263 | +-------------------------------------------------------------------------------- |
| 264 | +-------------------------------------------------------------------------------- |
| 265 | +10. Delete the AWS IoT Fleetwise Assets |
| 266 | +Would you like to delete the IoT Fleetwise Assets? (y/n) |
| 267 | +y |
| 268 | +✅ vechile1 was successfully deleted |
| 269 | +✅ decManifestscott1 was successfully deleted |
| 270 | +✅ manifestscott1 was successfully deleted |
| 271 | +✅ fleetscott1 was successfully deleted |
| 272 | +✅ catelogscott1 was successfully deleted |
| 273 | +-------------------------------------------------------------------------------- |
| 274 | +You have successfully completed the AWS IoT Fleetwise scenario. |
| 275 | +-------------------------------------------------------------------------------- |
| 276 | +
|
| 277 | +
|
| 278 | +
|
| 279 | +``` |
| 280 | + |
| 281 | +## SOS Tags |
| 282 | + |
| 283 | +The following table describes the metadata used in this Basics Scenario. |
| 284 | + |
| 285 | + |
| 286 | +| action | metadata file | metadata key | |
| 287 | +|-----------------------|---------------------------|------------------------------------- | |
| 288 | +|`createSignalCatalog` |iot_fleetwise_metadata.yaml|iotfleetwise_CreateSignalCatalog | |
| 289 | +|`createFleet` |iot_fleetwise_metadata.yaml| iotfleetwise_CreateFleet | |
| 290 | +|`createGateway ` |iot_fleetwise_metadata.yaml| iotfleetwise_CreateGateway | |
| 291 | +|`createModelManifest` iot_fleetwise_metadata.yaml | iotfleetwise_CreateModelManifest | |
| 292 | +|`createDecoderManifest`|iot_fleetwise_metadata.yaml| iotfleetwise_CreateDecoderManifest | |
| 293 | +|`updateModelManifest` |iot_fleetwise_metadata.yaml|iotfleetwise_UpdateModelManifest | |
| 294 | +| `createPortal` |iot_fleetwise_metadata.yaml|iotfleetwise_CreatePortal | |
| 295 | +|`waitForModelManifest` |iot_fleetwise_metadata.yaml|iotfleetwise_WaitForModelManifest | |
| 296 | +|`updateDecoderManifest`|iot_fleetwise_metadata.yaml|iotfleetwise_updateDecoder | |
| 297 | +| `describeAssetModel` | iot_fleetwise_metadata.yaml|iotfleetwise_DescribeAssetModel | |
| 298 | +| `waitForDecoder ` | iot_fleetwise_metadata.yaml|iotfleetwise_WaitForDecoder | |
| 299 | +| `createVehicle` | iot_fleetwise_metadata.yaml|iotfleetwise_CreateVehicle | |
| 300 | +| `getVehicle` | iot_fleetwise_metadata.yaml|iotfleetwise_GetVehicle | |
| 301 | +| `deleteVehicle ` | iot_fleetwise_metadata.yaml|iotfleetwise_DeleteVehicle | |
| 302 | +| `deleteVehicle ` | iot_fleetwise_metadata.yaml|iotfleetwise_DeleteVehicle | |
| 303 | +| `deleteFleet ` | iot_fleetwise_metadata.yaml|iotfleetwise_DeleteFleet | |
| 304 | +| `deleteModel` | iot_fleetwise_metadata.yaml|iotfleetwise_DeleteModel | |
| 305 | +| `deleteSignal ` | iot_fleetwise_metadata.yaml|iotfleetwise_DeleteSignal | |
| 306 | +| `scenario` | iot_fleetwise_metadata.yaml|iotfleetwise_Scenario | |
| 307 | +| `hello` | iot_fleetwise_metadata.yaml|iotfleetwise_Hello | |
| 308 | + |
| 309 | + |
| 310 | + |
0 commit comments