Adding Devices
Learn how to add new devices to your SiliconWit.IO account, configure data fields and commands, and use the JSON import tool for quick setup.
From the Dashboard
Section titled “From the Dashboard”- Log in to your Dashboard
- Click “Add Device” on the devices page
- Fill in the required details (see sections below)
- Click “Create Device”
- Copy and save your Device ID and Access Token
Basic Information
Section titled “Basic Information”| Field | Required | Description |
|---|---|---|
| Name | Yes | A descriptive name (e.g., “Living Room Sensor”) |
| Type | Yes | Sensor, Actuator, Controller, Tracker, Meter, or Gateway |
| Description | No | Optional notes about this device |
Device types explained:
- Sensor - Collects and sends data (temperature, humidity, motion)
- Actuator - Receives commands and performs actions (relay, motor, LED)
- Controller - Runs logic and controls processes (PLC, RTU, ESP32)
- Tracker - Reports location or movement (GPS, asset, fleet)
- Meter - Measures consumption or flow (energy, water, gas)
- Gateway - Bridges multiple devices or protocols
Configuration
Section titled “Configuration”Data Direction
Section titled “Data Direction”Controls whether the device sends data, receives commands, or both:
- Send Only - Device sends telemetry data to the cloud
- Receive Only - Device receives commands from the dashboard
- Bidirectional - Device sends data and receives commands
Selecting Bidirectional (or choosing Actuator/Controller as the device type) reveals the Commands section.
Connectivity
Section titled “Connectivity”Choose how your device connects:
- WiFi + MQTT, Ethernet + MQTT, 4G/LTE + MQTT, 2G/GPRS + MQTT
- WiFi + HTTP, 4G/LTE + HTTP
- NB-IoT, LoRaWAN
Data Interval
Section titled “Data Interval”How often the device sends data. Choose from presets (1s, 10s, 30s, 1m, 5m, 15m, 1h, 6h, 24h) or set a custom value in seconds, minutes, or hours.
Schema Mode
Section titled “Schema Mode”- Strict (default for free plan) - Only data matching your defined fields is accepted; unknown fields are silently dropped
- Flexible (paid plans) - Any valid JSON payload is accepted and stored
Camera Snapshots
Section titled “Camera Snapshots”Enable this if your device uploads images via HTTP POST. Images are stored and viewable on the device detail page.
Data Fields
Section titled “Data Fields”Data fields define the telemetry values your device sends. Each field has:
| Property | Required | Description |
|---|---|---|
| Name | Yes | Machine-readable key (lowercase, numbers, underscores, 1-50 chars). Example: temp |
| Label | Yes | Human-readable display name (1-100 chars). Example: Temperature |
| Unit | No | Measurement unit. Example: °C |
Plan limits:
| Plan | Max Fields |
|---|---|
| Free | 5 |
| Starter | 20 |
| Business | 50 |
| Scale | 50 |
| Enterprise | Admin-configured |
Adding Fields Manually
Section titled “Adding Fields Manually”Click Add in the Data Fields section header to add fields one at a time. Fill in the name, label, and unit for each.
JSON Import for Fields
Section titled “JSON Import for Fields”For devices with many data points, use the JSON import tool instead of adding fields one by one:
- Click Import in the Data Fields section header
- Paste a JSON array or click Browse File to load a
.jsonfile - Click Validate to check for errors
- Click Import Fields to populate the form
Example JSON:
[ { "name": "temp", "label": "Temperature", "unit": "°C" }, { "name": "humidity", "label": "Humidity", "unit": "%" }, { "name": "pressure", "label": "Pressure", "unit": "hPa" }, { "name": "battery", "label": "Battery Level", "unit": "%" }, { "name": "rssi", "label": "Signal Strength", "unit": "dBm" }]Other Field Actions
Section titled “Other Field Actions”- Copy - Copies current fields to clipboard as JSON
- Clear - Removes all fields at once
- Trash icon - Removes a single field
Commands
Section titled “Commands”Commands let you control your device from the dashboard. They appear when the device type is Actuator or Controller, or the direction is Receive Only or Bidirectional.
Each command has:
| Property | Required | Description |
|---|---|---|
| Name | Yes | Machine-readable key (same rules as field names) |
| Label | Yes | Human-readable display name |
| Type | Yes | Toggle, Button, Slider, or JSON |
Command types:
| Type | Description | Example |
|---|---|---|
| Toggle | On/off switch | Relay control, LED on/off |
| Button | One-shot trigger | Reboot device, take a reading |
| Slider | Numeric range (requires min and max) | Fan speed 0-100, brightness 0-255 |
| JSON | Custom JSON payload (paid plans only) | Multi-field configuration |
JSON Import for Commands
Section titled “JSON Import for Commands”Works the same way as field import:
- Click Import in the Commands section header
- Paste or browse for a JSON array
- Validate and import
Example JSON:
[ { "name": "relay", "label": "Light Relay", "type": "toggle" }, { "name": "fan_speed", "label": "Fan Speed", "type": "slider", "min": 0, "max": 255 }, { "name": "reboot", "label": "Reboot Device", "type": "button" }]For slider commands, min and max are required and min must be less than max.
After Creating a Device
Section titled “After Creating a Device”Once created, the device detail page shows:
- Device ID and Access Token for MQTT/HTTP connection
- Connection code snippets in Arduino, Python, MicroPython, and Node.js
- Telemetry chart once data starts arriving
- Control panel for sending commands (if applicable)
Next Steps
Section titled “Next Steps”- ESP32 Setup - Connect an ESP32 sensor
- ESP32 Relay Control - Bidirectional control example
- MQTT Topics & Payloads - Message format reference
- Dashboard Alerts - Set up threshold alerts