From ebb9dd7fc3873ef0316d9f4fc3fdc1a7ffc90553 Mon Sep 17 00:00:00 2001 From: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> Date: Fri, 22 Aug 2025 16:13:38 +0200 Subject: [PATCH 1/5] DOCS-4306: Improve provisioning docs --- docs/manage/fleet/provision/setup.md | 14 +++++++++----- docs/tutorials/control/air-quality-fleet.md | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/manage/fleet/provision/setup.md b/docs/manage/fleet/provision/setup.md index 3922f52400..0a21ddc335 100644 --- a/docs/manage/fleet/provision/setup.md +++ b/docs/manage/fleet/provision/setup.md @@ -89,7 +89,8 @@ The defaults file allows you to configure the provisioning experience for the us If you are using the captive portal, this step is optional. If you are using a mobile app, you must create a provisioning configuration file, specifying at least a `fragment_id`. -Create a defaults file called viam-defaults.json with the following format and customize the [attributes](/manage/fleet/provision/setup/#configure-defaults): +Create a defaults file called viam-defaults.json with the following format and customize the [attributes](/manage/fleet/provision/setup/#configure-defaults). +You will later pass this file to a script, so you can save it anywhere. {{< tabs >}} {{% tab name="Template" %}} @@ -101,7 +102,7 @@ Create a defaults file called viam-defaults.json with the following "model": "", # the machine's model "fragment_id": "", # the fragment id, required for mobile app "hotspot_interface": "", # the interface to use for hotspot/provisioning/wifi management - "hotspot_prefix": "", # machine creates a hotspot during setup + "hotspot_prefix": "", # machine creates a hotspot during setup with this prefix in the name "disable_captive_portal_redirect": false, # set to true if using a mobile app "hotspot_password": "", # password for the hotspot "disable_bt_provisioning": false, # set to true to disable Bluetooth provisioning @@ -154,7 +155,7 @@ It also configures timeouts to control how long `viam-agent` waits for a valid l | `model` | string | Optional | Purely informative. May be displayed on captive portal or provisioning app. Default: `"custom"`. | | `fragment_id` | string | Optional | The `fragment_id` of the fragment to configure machines with. Required when using the Viam mobile app for provisioning. The Viam mobile app uses the fragment to configure the machine. | | `hotspot_interface` | string | Optional | The interface to use for hotspot/provisioning/wifi management. Example: `"wlan0"`. Default: first discovered 802.11 device. | -| `hotspot_prefix` | string | Optional | `viam-agent` will prepend this to the hostname of the device and use the resulting string for the provisioning hotspot SSID. For Bluetooth provisioning the device name will be the hotspot prefix and the model (`-`). Default: `"viam-setup"`. | +| `hotspot_prefix` | string | Optional | `viam-agent` will prepend this to the hostname of the device and use the resulting string for the provisioning hotspot SSID or the bluetooth device name(`-`). Default: `"viam-setup"`. | | `hotspot_password` | string | Optional | The Wifi password for the provisioning hotspot. Default: `"viamsetup"`. | | `disable_captive_portal_redirect` | boolean | Optional | By default, all DNS lookups are redirected to the "sign in" portal, which can cause mobile devices to automatically display the portal. When set to true, only DNS requests for domains ending in .setup, like `viam.setup` are redirected, preventing the portal from appearing unexpectedly, especially convenient when using a mobile app for provisioning. Default: `false`. | | `disable_bt_provisioning` | boolean | Optional | When set to true, disables Bluetooth provisioning. The machine will not advertise Bluetooth services for provisioning. Default: `false`. | @@ -170,10 +171,13 @@ It also configures timeouts to control how long `viam-agent` waits for a valid l {{% /tablestep %}} {{% tablestep number=2 %}} -**Configure Networks (optional)** +**Configure Networks** During the provisioning process, a machine connects to a network to install `viam-server`. -If you provide an app to your end user or are asking them to use the Viam mobile app, the user will provide network details through that app. +If you know in advance which WiFi a machine will connect to, this step allows you to configure it. + +If you do not know this, skip this step. +In this case the end user will have to provide network details later in the process. If you know in advance which other networks a machine should be able to connect to, we recommend that you add WiFi settings in the operating system (for example, directly in NetworkManager). If that is not possible, you can add networks with the `additional_networks` field. diff --git a/docs/tutorials/control/air-quality-fleet.md b/docs/tutorials/control/air-quality-fleet.md index c1adb89e33..736e94a3f4 100644 --- a/docs/tutorials/control/air-quality-fleet.md +++ b/docs/tutorials/control/air-quality-fleet.md @@ -923,8 +923,8 @@ In other words, you want to provision devices. Before an air sensing machine leaves your factory, you'd complete the following steps: -1. You'd flash the single-board computer with an operating system. -2. You'd install `viam-agent`. +1. You'd flash the SD card for the single-board computer with an operating system. +2. You'd install `viam-agent` with the `preinstall` script. 3. You'd provide a machine configuration template: a _{{< glossary_tooltip term_id="fragment" text="fragment" >}}_. Once a customer receives your machine, they will: From 3f6ae9f29d0c563fe908b0d874a3cc80cc68826e Mon Sep 17 00:00:00 2001 From: Naomi Pentrel <5212232+npentrel@users.noreply.github.com> Date: Fri, 22 Aug 2025 19:32:15 +0200 Subject: [PATCH 2/5] Good draft --- docs/data-ai/capture-data/conditional-sync.md | 4 +- .../capture-data/filter-before-sync.md | 16 +- docs/data-ai/data/export.md | 6 +- docs/data-ai/data/query.md | 10 +- docs/data-ai/data/visualize.md | 14 +- docs/data-ai/train/train-tf-tflite.md | 12 +- docs/data-ai/train/train.md | 30 +- docs/data-ai/train/upload-external-data.md | 18 +- docs/manage/fleet/provision/end-user-setup.md | 94 ++-- docs/manage/fleet/provision/setup.md | 417 +++++++++--------- docs/manage/fleet/reuse-configuration.md | 18 +- docs/manage/manage/oauth.md | 10 +- docs/manage/manage/white-labelled-billing.md | 12 +- docs/manage/reference/viam-agent/_index.md | 8 +- docs/manage/software/update-software.md | 22 +- docs/manage/troubleshoot/alert.md | 22 +- docs/manage/troubleshoot/monitor.md | 6 +- .../teleoperate/custom-interface.md | 6 +- docs/operate/control/viam-applications.md | 10 +- .../other-hardware/create-module/_index.md | 48 +- .../create-module/hello-world-module.md | 26 +- docs/operate/mobility/move-arm/arm-motion.md | 8 +- docs/operate/mobility/move-base.md | 6 +- docs/operate/mobility/move-gantry.md | 6 +- docs/operate/mobility/use-input-to-act.md | 6 +- docs/tutorials/control/air-quality-fleet.md | 76 ++-- layouts/shortcodes/table.html | 4 +- layouts/shortcodes/tablestep.html | 55 ++- 28 files changed, 468 insertions(+), 502 deletions(-) diff --git a/docs/data-ai/capture-data/conditional-sync.md b/docs/data-ai/capture-data/conditional-sync.md index dd45a87fb7..c2ec766911 100644 --- a/docs/data-ai/capture-data/conditional-sync.md +++ b/docs/data-ai/capture-data/conditional-sync.md @@ -126,7 +126,7 @@ In this example we will continue to use [`sync-at-time:timesyncsensor`](https:// You will need to follow the same steps with your module: {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Add the sensor to your machine** On your machine's **CONFIGURE** page, click the **+** button next to your machine part in the left menu. @@ -138,7 +138,7 @@ Click **Add module**, then enter a name or use the suggested name for your senso -{{% tablestep number=2 %}} +{{% tablestep %}} **Configure your time frame** Go to the new component panel and copy and paste the following attribute template into your sensor’s attributes field: diff --git a/docs/data-ai/capture-data/filter-before-sync.md b/docs/data-ai/capture-data/filter-before-sync.md index d116111b9a..157ca1e357 100644 --- a/docs/data-ai/capture-data/filter-before-sync.md +++ b/docs/data-ai/capture-data/filter-before-sync.md @@ -16,20 +16,20 @@ Contributors have written several filtering {{< glossary_tooltip term_id="module The following steps use the [`filtered_camera`](https://app.viam.com/module/viam/filtered-camera) module: {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Add an ML model service to your machine** Add an ML model service on your machine that is compatible with the ML model you want to use, for example [TFLite CPU](https://github.com/viam-modules/mlmodel-tflite). {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Select a suitable ML model** Click **Select model** on the ML model service configuration panel, then select an [existing model](https://app.viam.com/registry?type=ML+Model) you want to use, or click **Upload a new model** to upload your own. If you're not sure which model to use, you can use [`EfficientDet-COCO`](https://app.viam.com/ml-model/viam-labs/EfficientDet-COCO) from the **Registry**, which can detect people and animals, among other things. {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Add a vision service to use with the ML model** You can think of the vision service as the bridge between the ML model service and the output from your camera. @@ -38,7 +38,7 @@ Add and configure the `vision / ML model` service on your machine. From the **Select model** dropdown, select the name of your ML model service (for example, `mlmodel-1`). {{% /tablestep %}} -{{% tablestep number=4 %}} +{{% tablestep %}} **Configure the filtered camera** The `filtered-camera` {{< glossary_tooltip term_id="modular-resource" text="modular component" >}} pulls the stream of images from the camera you configured earlier, and applies the vision service to it. @@ -68,7 +68,7 @@ Additionally, you can also add a buffer window with `window_seconds` which contr If you were to set `window_seconds` to `3`, the camera would also capture and sync images from the 3 seconds before a person appeared in the camera stream. {{% /tablestep %}} -{{% tablestep number=5 %}} +{{% tablestep %}} **Configure data capture and sync on the filtered camera** Configure data capture and sync on the filtered camera just as you did before for the physical camera. @@ -77,14 +77,14 @@ The filtered camera will only capture image data that passes the filters you con Turn off data capture on your original camera if you haven't already, so that you don't capture duplicate or unfiltered images. {{% /tablestep %}} -{{% tablestep number=6 %}} +{{% tablestep %}} **Save to start capturing** Save the config. With cloud sync enabled, captured data is automatically uploaded to Viam after a short delay. {{% /tablestep %}} -{{% tablestep number=7 %}} +{{% tablestep %}} **View filtered data on Viam** Once you save your configuration, place something that is part of your trained ML model within view of your camera. @@ -96,7 +96,7 @@ If no data appears after the sync interval, check the [**Logs**](/manage/trouble You can test the vision service from the [**CONTROL** tab](/manage/troubleshoot/teleoperate/default-interface/) to see its classifications and detections live. {{% /tablestep %}} -{{% tablestep number=8 %}} +{{% tablestep %}} **(Optional) Trigger sync with custom logic** By default, the captured data syncs at the regular interval you specified in the data capture config. diff --git a/docs/data-ai/data/export.md b/docs/data-ai/data/export.md index c9e19142a7..26ffcf0946 100644 --- a/docs/data-ai/data/export.md +++ b/docs/data-ai/data/export.md @@ -40,7 +40,7 @@ Then authenticate your CLI session with Viam using one of the following options: To export your data from the cloud using the Viam CLI: {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Filter the data you want to download** Navigate to the [**DATA**](https://app.viam.com/data/view) page. @@ -48,7 +48,7 @@ Navigate to the [**DATA**](https://app.viam.com/data/view) page. Use the filters on the left side of the page to filter only the data you wish to export. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Copy the export command from the DATA page** In the upper right corner of the **DATA** page, click the **Export** button. @@ -57,7 +57,7 @@ Click **Copy export command**. This copies the command, including your org ID and the filters you selected, to your clipboard. {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Run the command** Run the copied command in a terminal: diff --git a/docs/data-ai/data/query.md b/docs/data-ai/data/query.md index 82385946cb..57af2b6192 100644 --- a/docs/data-ai/data/query.md +++ b/docs/data-ai/data/query.md @@ -42,14 +42,14 @@ You must have the [owner role](/manage/manage/rbac/) in order to query data on V {{% tab name="Web UI" %}} {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Query with SQL or MQL** Navigate to the [**Query** page](https://app.viam.com/data/query). Then, select either **SQL** or **MQL** from the **Query mode** dropdown menu on the right-hand side. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Run your query** This example query returns the last 5 readings from any components named `my-sensor` in your organization: @@ -203,7 +203,7 @@ WHERE component_name = 'sensor-1' {{% /expand %}} {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Review results** Click **Run query** when ready to perform your query and get matching results. @@ -299,7 +299,7 @@ If you want to query data from third party tools, you have to configure data que You can use third-party tools, such as the [`mongosh` shell](https://www.mongodb.com/docs/mongodb-shell/) or [MongoDB Compass](https://www.mongodb.com/docs/compass/current/), to query captured sensor data. {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Connect to your Viam organization's data** Run the following command to connect to your Viam organization's MongoDB Atlas instance from `mongosh` using the connection URI you obtained during query configuration: @@ -309,7 +309,7 @@ mongosh "mongodb://db-user-abcd1e2f-a1b2-3c45-de6f-ab123456c123:YOUR-PASSWORD-HE ``` {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Query data from a compatible client** Once connected, you can run SQL or MQL statements to query captured data directly. diff --git a/docs/data-ai/data/visualize.md b/docs/data-ai/data/visualize.md index 9cab8d6448..bd88030d64 100644 --- a/docs/data-ai/data/visualize.md +++ b/docs/data-ai/data/visualize.md @@ -205,14 +205,14 @@ Select a tab below to learn how to configure your visualization tool for use wit #### Grafana {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Choose Grafana instance** [Install](https://grafana.com/docs/grafana/latest/setup-grafana/installation/) or set up Grafana. You can use either a local instance of Grafana Enterprise or Grafana Cloud, and can use the free trial version of Grafana Cloud if desired. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Install connector to MongoDB data source** Navigate to your Grafana web UI. @@ -223,7 +223,7 @@ Go to **Connections > Add new connection** and add the [Grafana MongoDB data sou Install the datasource plugin. {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Configure a data connection** Navigate to the Grafana MongoDB data source that you just installed. @@ -249,7 +249,7 @@ Enter the following information in the configuration UI for the plugin: {{}} {{< /tablestep >}} -{{% tablestep number=4 %}} +{{% tablestep %}} **Use Grafana for dashboards** With your data connection established, you can then build dashboards that provide insight into your data. @@ -282,7 +282,7 @@ See the [guide on querying data](/data-ai/data/query/) for more information. #### Other visualization tools {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Install connector to MongoDB data source** Some visualization clients are able to connect to the Viam MongoDB Atlas Data Federation instance natively, while others require that you install and configure an additional plugin or connector. @@ -291,7 +291,7 @@ For example, Tableau requires both the [Atlas SQL JDBC Driver](https://www.mongo Check with the documentation for your third-party visualization tool to be sure you have the required additional software installed to connect to a MongoDB Atlas Data Federation instance. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Configure a data connection** Most third-party visualization tools require the _connection URI_ (also called the connection string) to that database server, and the _credentials_ to authenticate to that server in order to visualize your data. @@ -344,7 +344,7 @@ Substitute your organization ID for ``. {{% /tabs %}} {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Use visualization tools for dashboards** Some third-party visualization tools support the ability to directly query your data within their platform to generate more granular visualizations of specific data. diff --git a/docs/data-ai/train/train-tf-tflite.md b/docs/data-ai/train/train-tf-tflite.md index b632ef85f8..4566aec57d 100644 --- a/docs/data-ai/train/train-tf-tflite.md +++ b/docs/data-ai/train/train-tf-tflite.md @@ -54,13 +54,13 @@ Follow the guide to [create a dataset](/data-ai/train/create-dataset/). Now that you have a dataset that contains your labeled images, you are ready to train a machine learning model. {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Find your training dataset** Navigate to your list of [**DATASETS**](https://app.viam.com/data/datasets) and select the one you want to train on. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Train an ML model** Click **Train model** and follow the prompts. @@ -71,7 +71,7 @@ You can train a TFLite model using **Built-in training**. Click **Next steps**. {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Select model type** Select between: @@ -83,7 +83,7 @@ Select between: | **TensorFlow (TF)** | Best for general-purpose tasks with more computational power. | {{% /tablestep %}} -{{% tablestep number=4 %}} +{{% tablestep %}} **Fill in the details for your ML model** Enter a name for your new model. @@ -102,7 +102,7 @@ Click **Train model**. {{< imgproc src="/tutorials/data-management/train-model.png" alt="The data tab showing the train a model pane" style="width:500px" resize="1200x" class="imgzoom fill shadow" >}} {{% /tablestep %}} -{{% tablestep number=5 %}} +{{% tablestep %}} **Wait for your model to train** The model now starts training and you can follow its process on the [**TRAINING** tab](https://app.viam.com/training). @@ -112,7 +112,7 @@ Once the model has finished training, it becomes visible on the [**MODELS** tab] You will receive an email when your model finishes training. {{% /tablestep %}} -{{% tablestep number=6 %}} +{{% tablestep %}} **Debug your training job** From the [**TRAINING** tab](https://app.viam.com/training), click on your training job's ID to see its logs. diff --git a/docs/data-ai/train/train.md b/docs/data-ai/train/train.md index 6b5703db12..474e20ed67 100644 --- a/docs/data-ai/train/train.md +++ b/docs/data-ai/train/train.md @@ -45,7 +45,7 @@ You must have the Viam CLI installed to upload training scripts to the registry. ## Create a training script {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Create files** Create the following folders and empty files: @@ -59,7 +59,7 @@ my-training/ ``` {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Add `setup.py` code** Add the following code to `setup.py`: @@ -79,7 +79,7 @@ setup( ``` {{% /tablestep %}} -{{< tablestep number=3 >}} +{{< tablestep >}}

Add training.py code

@@ -524,7 +524,7 @@ if __name__ == "__main__": {{% /expand %}} {{% /tablestep %}} -{{< tablestep number=4 >}} +{{< tablestep >}}

Understand template script parsing functionality

When a training script is run, the Viam platform passes the dataset file for the training and the designated model output directory to the script.

@@ -627,7 +627,7 @@ Depending on if you are training a classification or detection model, the templa

If the script you are creating does not use an image dataset, you only need the model output directory.

{{% /tablestep %}} -{{% tablestep number=5 %}} +{{% tablestep %}} **Add logic to produce the model artifact** Fill in the `build_and_compile_model` function. @@ -636,7 +636,7 @@ In this part of the script, you use data and annotations from the dataset file t As an example, you can refer to the logic from model/training.py from this [example classification training script](https://github.com/viam-modules/classification-tflite) that trains a classification model using TensorFlow and Keras. {{% /tablestep %}} -{{% tablestep number=6 %}} +{{% tablestep %}} **Save the model artifact** In this example template, the training job produces a model artifact. @@ -649,13 +649,13 @@ You must fill in the `save_model()` and `save_labels()` functions. As an example, refer to the logic from model/training.py from this [example classification training script](https://github.com/viam-modules/classification-tflite) that trains a classification model using TensorFlow and Keras. {{% /tablestep %}} -{{% tablestep number=7 %}} +{{% tablestep %}} **Update the main method** Update the main to call the functions you have just created. {{% /tablestep %}} -{{% tablestep number=8 %}} +{{% tablestep %}} **Use Viam APIs in a training script** To access [Viam APIs](/dev/reference/apis/) within a custom training script, use the environment variables `API_KEY` and `API_KEY_ID` to establish a connection. @@ -682,7 +682,7 @@ async def connect() -> ViamClient: You can export one of your Viam datasets to test your training script locally. {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Export your dataset** You can get the dataset ID from the dataset page or using the [`viam dataset list`](/dev/tools/cli/#dataset) command: @@ -695,7 +695,7 @@ The dataset will be formatted like the one Viam produces for the training. Use the `parse_filenames_and_labels_from_json` and `parse_filenames_and_bboxes_from_json` functions to get the images and annotations from your dataset file. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Run your training script locally** Install any required dependencies and run your training script specifying the path to the dataset.jsonl file from your exported dataset: @@ -713,7 +713,7 @@ python3 -m model.training --dataset_file=/path/to/dataset.jsonl \ To be able to use your training script in the Viam platform, you must upload it to the Viam Registry. {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Package the training script as a tar.gz source distribution** Before you can upload your training script to Viam, you have to compress your project folder into a tar.gz file: @@ -727,7 +727,7 @@ You can refer to the directory structure of this [example classification trainin {{% /alert %}} {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Upload a training script** To upload your custom training script to the registry, use the `viam training-script upload` command. @@ -776,7 +776,7 @@ You can view uploaded training scripts by navigating to the [registry's **Traini After uploading the training script, you can run it by submitting a training job using the web UI, the CLI or the [ML training client API](/dev/reference/apis/ml-training-client/#submittrainingjob). {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Create the training job** {{< tabs >}} @@ -813,7 +813,7 @@ You can get the dataset id from the **DATASET** tab of the **DATA** page or by r {{< /tabs >}} {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Check on training job process** You can view your training job on the **DATA** page's [**TRAINING** tab](https://app.viam.com/training). @@ -829,7 +829,7 @@ viam train list --org-id= --job-status=unspecified ``` {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Debug your training job** From the **DATA** page's [**TRAINING** tab](https://app.viam.com/training), click on your training job's ID to see its logs. diff --git a/docs/data-ai/train/upload-external-data.md b/docs/data-ai/train/upload-external-data.md index 6b40e0a712..6d736e113b 100644 --- a/docs/data-ai/train/upload-external-data.md +++ b/docs/data-ai/train/upload-external-data.md @@ -60,14 +60,14 @@ If you do not want the data deleted from your machine, copy the data to a new fo {{% /alert %}} {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Organize your data** Put the data you want to sync in a directory on your machine. All of the data in the folder will be synced, so be sure that you want to upload all of the contents of the folder. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Configure sync from the additional folder** In the **Additional paths**, enter the full path to the directory where the data you want to upload is stored, for example, `/Users/Artoo/my_cat_photos`. @@ -79,14 +79,14 @@ Toggle **Syncing** to on (green) if it isn't already on. Click **Save** in the top right corner of the page. {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Confirm that your data uploaded** Navigate to your [**DATA** page](https://app.viam.com/data/view) and confirm that your data appears there. If you don't see your files yet, wait a few moments and refresh the page. {{% /tablestep %}} -{{% tablestep number=4 %}} +{{% tablestep %}} **Remove the folder path** Once the data has uploaded, navigate back to your data service config. @@ -123,13 +123,13 @@ pip install viam-sdk ### Instructions {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Get API key** Go to your organization's setting page and create an API key for your individual {{< glossary_tooltip term_id="part" text="machine part" >}}, {{< glossary_tooltip term_id="part" text="machine" >}}, {{< glossary_tooltip term_id="location" text="location" >}}, or {{< glossary_tooltip term_id="organization" text="organization" >}}. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Add a `file_upload_from_path` API call** Create a Python script and use the `file_upload_from_path` method to upload your data, depending on whether you are uploading one or multiple files: @@ -234,7 +234,7 @@ if __name__ == "__main__": {{< /tabs >}} {{% /tablestep %}} -{{% tablestep number=3 %}} +{{% tablestep %}} **Run your code** Save and run your code once. @@ -268,7 +268,7 @@ Install the mobile app from the [App Store](https://apps.apple.com/vn/app/viam-r ### Instructions {{< table >}} -{{% tablestep number=1 %}} +{{% tablestep start=1 %}} **Navigate to your machine** In the Viam mobile app, select an organization by clicking on the menu icon in the top left corner and tapping an organization. @@ -276,7 +276,7 @@ In the Viam mobile app, select an organization by clicking on the menu icon in t Tap the **Locations** tab and select a location, then select the machine you want your data to be associated with. {{% /tablestep %}} -{{% tablestep number=2 %}} +{{% tablestep %}} **Upload images** Tap the menu button marked "**...**" in the upper right corner. diff --git a/docs/manage/fleet/provision/end-user-setup.md b/docs/manage/fleet/provision/end-user-setup.md index 1f6b3ec644..d914312c97 100644 --- a/docs/manage/fleet/provision/end-user-setup.md +++ b/docs/manage/fleet/provision/end-user-setup.md @@ -3,7 +3,7 @@ title: "Complete end-user setup for a machine" linkTitle: "Set up machine (end-user)" weight: 69 type: "docs" -description: "If you have received a machine that uses Viam and have been pointed to this guide, this guide will show you how to set it up." +description: "If you have a machine that uses Viam and have been pointed to this guide, this guide will show you how to set it up." images: ["/platform/provisioning-demo.gif"] videos: ["/platform/provisioning-demo.webm", "/platform/provisioning-demo.mp4"] languages: [] @@ -18,9 +18,9 @@ aliases: cost: "0" --- -If you have received a machine with Viam pre-installed on it, this guide will show you how to complete your device setup using either the [Viam mobile app](#set-up-your-machine-using-the-viam-mobile-app) or the [{{< glossary_tooltip term_id="captive-web-portal" text="captive portal" >}}](#set-up-your-machine-using-the-captive-portal). +If you have a machine with Viam pre-installed on it, this guide will show you how to complete your device setup using either the [Viam mobile app](#set-up-your-machine-using-the-viam-mobile-app) or the [{{< glossary_tooltip term_id="captive-web-portal" text="captive portal" >}}](#set-up-your-machine-using-the-captive-portal). -Unless you have been told to use the captive portal, we recommend you use the Viam mobile app. +Whether you need to use the Viam mobile app or the captive portal, depends on how [provisioning was set up](/manage/fleet/provision/setup/) on your machine. ## Prerequisites @@ -32,7 +32,7 @@ Unless you have been told to use the captive portal, we recommend you use the Vi {{