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”Click “Add Device” (visible in the top navigation on any dashboard page) to see three options - the same three every time, no matter how many devices you already have:
- Try it now - the fastest way to explore SiliconWit. Click “Show me a working device” and you get a real device in your account instantly, already filled with about an hour of realistic sample data - explore charts, insights, and alerts with nothing to install. If you’d rather send your own data instead of the sample data, choose “I’ll send my own data (curl/Python)” for a device with real credentials and a ready-to-copy command.
- I have hardware - for anyone connecting something real. Choose “Flash an ESP32 (browser, no IDE)” to flash a board directly from your browser (see ESP32 Setup), or “Define my own device” to set your own fields and commands, or start from a template - this is the path described in the rest of this page. Once your device exists, you can wire up relays and common sensors (temperature, humidity, motion) from its Settings tab without reflashing.
- I bought a SiliconWit device - already has an ID and works out of the box; just enter the claim code that came with it. See Claiming a Device for the full walkthrough, including QR code scanning.
For I have hardware → Define my own device:
- Click “Add Device” → “I have hardware” → “Define my own device”
- 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”When adding a device, choose how its data fields are defined:
- I’ll define my fields (strict) - only data matching your declared fields is accepted. If your device later sends a field that isn’t declared, it’s not silently dropped - it shows up in the device’s Settings tab with one click to add it to the schema or ignore it.
- Auto-detect from my data (flexible) - skip defining fields upfront. The first payload your device sends is used to infer the schema automatically, and the device switches to strict mode from that point on.
Existing devices can also have fields added later from their Settings tab, without recreating the device - useful as your device grows or you upgrade your plan for more field capacity.
See the Field Schema guide for nested fields, roles, and examples.
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 | 10 |
| 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