Skip to content

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.

  1. Log in to your Dashboard
  2. Click “Add Device” on the devices page
  3. Fill in the required details (see sections below)
  4. Click “Create Device”
  5. Copy and save your Device ID and Access Token
FieldRequiredDescription
NameYesA descriptive name (e.g., “Living Room Sensor”)
TypeYesSensor, Actuator, Controller, Tracker, Meter, or Gateway
DescriptionNoOptional 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

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.

Choose how your device connects:

  • WiFi + MQTT, Ethernet + MQTT, 4G/LTE + MQTT, 2G/GPRS + MQTT
  • WiFi + HTTP, 4G/LTE + HTTP
  • NB-IoT, LoRaWAN

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.

  • 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

Enable this if your device uploads images via HTTP POST. Images are stored and viewable on the device detail page.

Data fields define the telemetry values your device sends. Each field has:

PropertyRequiredDescription
NameYesMachine-readable key (lowercase, numbers, underscores, 1-50 chars). Example: temp
LabelYesHuman-readable display name (1-100 chars). Example: Temperature
UnitNoMeasurement unit. Example: °C

Plan limits:

PlanMax Fields
Free5
Starter20
Business50
Scale50
EnterpriseAdmin-configured

Click Add in the Data Fields section header to add fields one at a time. Fill in the name, label, and unit for each.

For devices with many data points, use the JSON import tool instead of adding fields one by one:

  1. Click Import in the Data Fields section header
  2. Paste a JSON array or click Browse File to load a .json file
  3. Click Validate to check for errors
  4. 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" }
]
  • Copy - Copies current fields to clipboard as JSON
  • Clear - Removes all fields at once
  • Trash icon - Removes a single field

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:

PropertyRequiredDescription
NameYesMachine-readable key (same rules as field names)
LabelYesHuman-readable display name
TypeYesToggle, Button, Slider, or JSON

Command types:

TypeDescriptionExample
ToggleOn/off switchRelay control, LED on/off
ButtonOne-shot triggerReboot device, take a reading
SliderNumeric range (requires min and max)Fan speed 0-100, brightness 0-255
JSONCustom JSON payload (paid plans only)Multi-field configuration

Works the same way as field import:

  1. Click Import in the Commands section header
  2. Paste or browse for a JSON array
  3. 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.

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)