IoT Emulator Documentation

Welcome to the documentation for the IoT Emulator — a comprehensive platform for simulating IoT devices across multiple protocols.

Project Overview

The IoT Emulator is a versatile tool designed to simulate IoT devices for testing and development purposes. It supports multiple communication protocols and provides both a graphical web interface and a REST API for automation.

Key Features

  • Multi-Protocol Support — LWM2M, MQTT, CoAP, USP, FSH_HUB, DUSUN

  • Two Operating Modes — Load Test for many devices sharing one configuration, Single Emulator for individual devices with their own server, data model and credentials

  • Web Interface — User-friendly browser-based control panel

  • REST API — Full API for automation and integration

  • Device Simulation — Simulate single or multiple devices simultaneously, with per-device start/stop/delete and configurations persisted to devices.json

  • Parameter Management — Full parameter tree viewer with live filter + alphabetical sort, in-place value edits, and per-parameter autoupdate (min/max/step/period/dataset, optional global mode)

  • Rule Engine — JavaScript hook onParamUpdated(param, device, ctx) editable from the Rules tab and persisted to rules.js

  • Device sets — Export and import the device list + parameter tree, kept on the server as configuration/snapshot.json, from the UI (Export device set / Import device set) or REST

  • Live Log Stream — Raw protocol messages (IN/OUT) and the page’s own actions (UI), dated in the reader’s time zone and polled in real time, with Device/Direction/Event filters, error rows that stand out, and a detail view with the raw message and Copy payload

  • Transport Security — Support for PSK and X.509 certificate authentication

  • Configuration Files — XML-based resource definitions

Use Cases

  • Testing IoT management platforms (ACS, LWM2M servers)

  • Development and debugging of IoT applications

  • Load testing with multiple simulated devices

  • Protocol compliance testing

  • Training and demonstration

Quick Start

The fastest way to get a running emulator (assumes Docker is installed):

docker login hub.friendly-tech.com
docker run -d --name iot-emulator -p 8556:8556 \
  hub.friendly-tech.com/emulator/iot:latest

Then open http://localhost:8556, pick Load Test Mode on the landing page, and simulate your first device:

  1. Select a protocol (e.g., LWM2M) in the toolbar.

  2. Configure the server IP and Port.

  3. Click Initialize tree to build the device data model.

  4. Click Start to begin emulation.

To drive one device at a time instead — its own server, data model and credentials — pick Single Emulator on the landing page and see Single Emulator Mode.

For the full deployment guide, see Installation & Deployment. For a guided tour of the interface, see Getting Started.