How it works

From a sensor on the wall to decisions you can defend.

Falyren Platform turns low-cost ESP32 sensor nodes into a live picture of every room — environment, occupancy, energy and the lamps and fans you control — and then into alerts, reports and AI recommendations grounded in that data.

The pipeline

Five steps from a reading to an insight.

  1. 1. The sensor node

    An ESP32 reads its sensors — temperature and humidity (DHT22), light, motion (PIR), optional voltage/current — and knows the on/off state of the lamp and fan it controls.

  2. 2. Secure ingestion

    Every few seconds the node posts one JSON frame over HTTPS to https://falyren.com. The request carries a device ingest key; unknown devices and bad payloads are rejected, never half-stored.

  3. 3. Structured storage

    Each frame is validated against the published schema and written against the right organization → building → floor → room → device, so history stays queryable as the estate grows.

  4. 4. Live operations

    Dashboards, room pages, the digital twin, live timeline and alerts update from the same stored telemetry — no demo values, and an explicit "no live data" state when a node goes quiet.

  5. 5. Analytics and AI

    Duty cycles, occupancy, energy and carbon aggregates feed the AI analytics centre and recommendations, so advice is backed by frames the platform actually received.

Benefits

Why teams run their spaces on Falyren.

See every room, live

Temperature, humidity, light, occupancy and output states per room — refreshed continuously across the whole portfolio.

Cut wasted energy

Lamp and fan duty cycles are measured, not estimated, so you can see output left running in vacant rooms.

Know your hardware is healthy

Wi-Fi signal, uptime, free heap, firmware version and last-seen time score fleet health and surface failing nodes early.

Act before complaints

Threshold and anomaly alerts can be acknowledged and resolved with the telemetry that triggered them attached.

Report without spreadsheets

Filtered reports export to PDF and CSV with the same numbers the dashboards show.

Grow without rebuilding

One data model spans a single room to a multi-campus estate; firmware only ever needs the endpoint and the payload.

Deploy a device

Get an ESP32 reporting in an afternoon.

The ingestion API is plain HTTPS and JSON — no SDK, no broker, no agent. Payload schema v1.3 is additive-only, so firmware you flash today keeps working as new sensor groups are added.

What you need

  • ESP32 dev board with Wi-Fi (2.4 GHz network)
  • DHT22 temperature/humidity sensor (LDR, PIR and relay outputs optional)
  • Arduino IDE or PlatformIO with a recent ESP32 core (TLS 1.2+)
  • A Falyren account and the device ingest key from your administrator

The ingest key identifies your fleet — keep it in firmware, never in a public repository, and ask an administrator to rotate it if a board is lost.

  1. 1

    Register the space and the device

    Sign in and create the building and room under Management, then add the device with the exact ID the firmware will send (for example ESP32-B1-104). Frames from unregistered IDs are refused, so registration comes first.

  2. 2

    Wire the node

    DHT22 data to a GPIO with a 10 kΩ pull-up, PIR to any input GPIO, LDR on an ADC pin, and the lamp and fan relays on two output GPIOs. The node reports the lamp and fan states it drives, so the platform sees real output activity rather than an assumption.

  3. 3

    Flash the firmware

    Set your Wi-Fi credentials, the ingest URL, the ingest key and the device ID, then flash. Always post to https://falyren.com — other hostnames answer with a redirect that simple HTTP clients silently drop.

  4. 4

    Check the connection

    Confirm reachability with a plain GET to https://falyren.com/api/public/health. A 200 means the network path and TLS are fine and only the payload or key can be at fault.

  5. 5

    Watch the data land

    Open the room page for live readings, the ingestion health page for last-seen and lag, and the ingest monitor to inspect the exact payloads received. Sensor error values such as −999 are normalised to “no reading” instead of failing the frame.

Minimal Arduino sketch

#include <WiFi.h>
#include <HTTPClient.h>

const char* WIFI_SSID = "your-ssid";
const char* WIFI_PASS = "your-password";
const char* INGEST_URL = "https://falyren.com/api/public/ingest/telemetry";
const char* INGEST_KEY = "your-device-ingest-key";
const char* DEVICE_ID  = "ESP32-B1-104";

void postFrame(float t, float h, bool motion, bool lamp, bool fan) {
  HTTPClient http;
  http.begin(INGEST_URL);                 // post to the primary domain
  http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
  http.addHeader("Content-Type", "application/json");
  http.addHeader("X-Ingest-Key", INGEST_KEY);
  http.addHeader("X-Schema-Version", "1.3");

  String body = String("{\"deviceId\":\"") + DEVICE_ID + "\","
    + "\"schemaVersion\":\"1.3\","
    + "\"environment\":{\"temperature\":" + t + ",\"humidity\":" + h
    + ",\"motion\":" + (motion ? "true" : "false") + "},"
    + "\"devices\":{\"lamp\":" + (lamp ? "true" : "false")
    + ",\"fan\":" + (fan ? "true" : "false") + "},"
    + "\"meta\":{\"firmwareVersion\":\"1.3.0\",\"wifiRssi\":" + WiFi.RSSI() + "}}";

  int code = http.POST(body);             // 200 = stored, 401 = bad key, 400 = payload
  Serial.println(code);
  http.end();
}

Signed-in users get the full field reference, batch frames, diagnostics fields and error codes on the Device API page inside the platform.

Ready to bring your first room online?

Register the space, flash a node, and watch the readings arrive within minutes.