Skip to content
Open source · Self-hosted

Customer-facing IoT UIs from Python

Define devices, properties, and commands once. ODevice turns your Python model into a realtime Web and Mobile interface — no frontend project required.

$ pip install odevice
from odevice import App, Device, Number, Boolean

app = App("Factory Demo")

pump = Device(
    id="pump-01",
    name="Main Pump",
    properties={
        "pressure": Number(unit="bar", min=0, max=10, view="gauge"),
        "power": Boolean(writable=True),
    },
)
app.add(pump)
pump.update(pressure=6.2, power=True)
Pressure
bar
6.2
bar
Power
On
Open Source
Self-hosted
Bring Your Backend
Web + Mobile

The core idea

Bring your own backend

ODevice bridges MQTT, REST, database, or custom Python — it is not a device cloud.

MQTTRESTDatabaseCustom Python
ODevice

Describe meaning, not UI

Semantic properties become useful widgets automatically.

number
Metric
number + min/max
Gauge
boolean writable
Switch

One model → every client

One Python model powers the shared Web and Mobile runtime.

Python ModelWebMobile

How it fits

MQTT
REST
Database
Custom Python
ODevice Runtime
Web
Mobile

Real examples

Open source

MIT licensed. Self-hosted — run it alongside the systems you already operate.

Built for self-hosted IoT runtimes.