Introduction
Iottly is a platform for remote control and telemetry of embedded Linux devices — Raspberry Pi, ARM boards, x86 machines. It lets your engineering team write Python scripts in the browser, flash them to devices over-the-air, send commands, and receive telemetry — all without VPNs, custom servers or touching the hardware.
How Iottly works
The core idea is simple: you write Python code in the Iottly web interface and deploy it to your devices with a single click — Flash over-the-air. The Iottly Agent, installed on each device, receives the new code and runs it.
Communication between devices and the cloud is secured with MQTT + X.509 mutual authentication (client certificates): both the device and the broker verify each other’s identity using an internal CA.
Key concepts
Projects
A project is a collection of devices that share the same hardware architecture and run the same Python scripts. Before connecting any device you must create a project and choose the right device type:
| Device type | When to use |
|---|---|
| Raspberry Pi | RPi boards — agent can interact with GPIOs and I2C |
| ARMv5 | ARM7EJ / ARM9E / ARM10E processors (armel, no hardware FP) |
| ARMv6 | ARMv6+ processors, e.g. ARM11 (armhf, hardware FP) |
| AMD64 | Intel/AMD 64-bit |
| i386 | Intel/AMD 32-bit |
Management Scripts
Each project has a set of Python scripts, organized in two sections:
global— variable definitions, imports, helper functions. Executed once at startup.loop— the main device loop, runs continuously in a dedicated process.
Messages & Commands
You can define structured messages (JSON commands) to interact with your devices remotely. Iottly automatically generates the Python handler function for each message type. The handler receives the command parameters and can reply using the built-in send_msg() function.
The Elastic Pi
Every new account comes with a Getting Started project that includes an Elastic Pi — a virtual device already connected and running in the cloud. It lets you explore all Iottly features without any physical hardware.
Dashboard panels
| Panel | Purpose |
|---|---|
| Device Configuration | See connected devices and their status |
| Management Scripts | Write and edit the Python code (global + loop) |
| Messages | Define commands and their JSON structure |
| Console | Send commands interactively to a device |
| Logs | Read messages sent back by the device via send_msg() |
Next steps
Follow the Quick Start guide to explore the Getting Started project with the Elastic Pi — no hardware required.