Overview
Bring new devices and services onto the hub with a sandboxed community integration.
A community integration is one JavaScript bundle plus a manifest.json, built with
@novon/integration-sdk. Novon's registry signs it, a household installs it from the app, and the
hub runs it inside a sandbox with a small, permissioned API. Its entities are real Novon entities:
they appear on dashboards, in scenes, in Flows and in smart apps exactly like a first-party switch,
light or sensor.
Where a smart app reacts to entities, an integration owns them: it talks to the device or cloud service, publishes entities, keeps their state current, and handles the service calls aimed at them.
What you write
my-thing/
manifest.json identity, permissions, platforms, the install form
src/index.ts the code — calls novon.defineIntegration({...})
dist/ build output (never edit)- Manifest: domain (
x_<vendor>_<name>), version, catalog copy,iotClass, the entity platforms you will create, the permissions you need (http,kv,timers), and the install wizard (configFlow). See Manifest. - Code: a definition with
setupEntry(required) and optionalunloadEntry,handleService,optionsUpdated. The hub injects a singlenovonglobal. See Lifecycle.
Where it runs
Each config entry (one configured instance of your integration) gets its own isolate with
novon.entities, novon.http, novon.kv, timers and console, within fixed
limits. Exceeding the heap or CPU budget stops that entry and marks it
failed; the rest of the hub is unaffected.