Skip to content

Getting Started

Everything you need to go from a new Espoirnet account to your first device sending live telemetry.

Espoirnet accounts are provisioned for you — there’s no self-serve signup. Contact us and we’ll set up your tenant account and add you as a user.

Espoirnet uses passwordless sign-in — no passwords to manage. From the login page, click Sign in with Email and you’ll get a one-time code by email. Enter it and you’re in.

Projects group your devices and sensors. From your dashboard, go to Projects → New Project and give it a name.

Inside a project, go to Devices → New Device, give the device a name, then choose:

  • Single sensor — the device itself acts as one sensor. Pick its sensor type (telemetry, binary, or state) and data direction (send, receive, or exchange) now — these can’t be changed later.
  • Multiple sensors — add sensors separately after creating the device.

See Device Provisioning for the full picture on sensor types and data direction.

Devices authenticate with an EC (P-256) key pair. Only the public key ever reaches Espoirnet — your private key never leaves the device.

Generate a key pair with OpenSSL:

Terminal window
openssl ecparam -name prime256v1 -genkey -noout -out private.pem
openssl ec -in private.pem -pubout -out public.pem

On the device’s page, open Register Key and paste in public.pem. If you’d rather skip the CLI, the same dialog has a Generate in Browser option that creates the key pair for you and shows you the private key once to save.

Full detail in Device Provisioning.

Espoirnet publishes official device SDKs. Node.js is available today; more languages are on the roadmap, starting with C/C++ for embedded and microcontroller targets. This walkthrough uses the Node.js SDK.

Install it:

Terminal window
npm install @espoirnet/device-sdk

Connect and publish your first reading:

import { EspoirnetDevice } from '@espoirnet/device-sdk'
const device = new EspoirnetDevice({
accountId: 'acme',
projectId: 'homesetup',
deviceId: 'thermostat1',
privateKeyPath: './private.pem',
brokerUrl: 'mqtts://rayon.espoirnet.io:8883',
})
device.on('error', (err) => console.error(err))
try {
await device.connect()
} catch (err) {
// AuthError: bad or missing private key. ConnectionError / Error: broker unreachable.
console.error('failed to connect:', err)
}
device.publish('temperature', 21.5)

That’s it — your first telemetry reading is on its way in.

  • Device Provisioning — sensors, key rotation, and MQTT identity in full detail.
  • Telemetry — batching multiple sensors in one publish, and querying data back out.
  • Sending Commands — sending commands to a device and confirming they were applied.