top of page
IoTPapa — connected technology, clearly explained

CONNECTED TECHNOLOGY. CLEARLY EXPLAINED.

Replay synthetic telemetry. Explain every alert.

Run an original offline telemetry project with synthetic data, a source archive, 29 passing tests and an audit trail for valid, duplicate, rejected and stale observations.

Practical project · Original synthetic software · By Admin · Version 1.0.0 · Reviewed 20 October 2026.

A useful alert starts with a reading you can explain. Run this small offline pipeline and follow each input into accepted data, a duplicate, quarantine, stale status or a demo review event. The invented fan and pump labels do not represent real equipment.

Download the source project ZIP · v1.0.0 · 12.1 KiB

Includes the code, fixture, observed report, tests, README, MIT licence and file checksums. No sign-up, package installation or external service is required to run the archive with an existing supported Node.js installation.

Before the first replay

Know what was tested

This release was executed with Node v24.19.0 on Windows. All 29 behavioral, boundary, fixture and CLI tests passed. The fixture result is available in the archive. Other operating systems and any live equipment were not tested.

Separate a reading from an action

An observation must pass identity, unit, value, timestamp and ordering checks before it can affect demo state. A review event is a prompt to inspect an arbitrary teaching rule. It is not a machine diagnosis, control instruction or completed maintenance action.

Keep the demonstration bounded

The replay accepts only two invented device names and one demo boot identifier, up to 1000 lines and 1 MiB. State is kept in memory for one run. There is no network connection, persistent deduplication, cloud service, notification or actuator.

Six steps from input to an explained result

1 · Open the contract

Start with observation.schema.json and one line of fixtures/telemetry.ndjson. Each record declares schema version, synthetic status, device, boot, sequence, UTC observation time, demo metric, unit and value. The runtime enforces this contract directly; the companion JSON Schema is documentation.

Checkpoint: Explain why a plausible number with the wrong unit must still be rejected.

2 · Run the tests

Extract the ZIP and open a terminal in the extracted folder. With Node.js available, run the command below. This uses the built-in test runner and needs no npm install.

node --test test/pipeline.test.mjs

Observed: 29 tests passed, none failed or skipped, on 20 October 2026. Passing these tests establishes the stated offline behavior; it is not a production-readiness certification.

3 · Replay the fixed fixture

Use the command below with the supplied fixture and explicit clock. The clock is part of the experiment: replacing it with today’s time changes freshness. The CLI prints JSON to the terminal and creates no server or output file itself.

node run.mjs fixtures/telemetry.ndjson --as-of 2026-10-20T09:00:45.000Z

Observed: 16 input lines: 7 accepted, 8 rejected and 1 duplicate. One accepted observation is stale. Four demo state-transition events are emitted.

4 · Trace a rejected or stale record

Read the line-number audit in expected-report.json. Wrong units, malformed JSON, future observations and backward time do not overwrite accepted state. An identical accepted identity is a duplicate; a changed payload under that identity is a conflict. A rejected record does not reserve a sequence identity.

Checkpoint: Trace the stale high fan value to an accepted-stale record and explain why it emits no fresh exception.

5 · Change one rule or observation

Change a copy of the fixture, predict the resulting counts and replay it with the same clock. Fresh demo values above 50 enter review, 45 or below clear it, and values between hold the previous state. More than 60 seconds old is stale. These are arbitrary teaching values, unrelated to a real machine or sensor specification.

Checkpoint: Explain why an in-between value does not repeatedly emit a new alert, and test the exact freshness boundary.

6 · State the deployment gaps

Write down what a live system would add: approved source/session identity, trusted time, real measurement validation, durable storage, restart recovery, authenticated transport, review routing and accountable response. This project supports one demonstration boot; it does not solve session rotation or distributed delivery.

Checkpoint: Keep observed software results separate from untested sensor accuracy, broker/network behavior, notification delivery, operator response and financial outcomes.

Read the observed result

The final fan and pump states both need demo review. The four transitions are a pump review, a pump clear, a fan review and another pump review. These are outputs of the shipped fixture and arbitrary rules. They establish no real fault, predictive-maintenance benefit or saving.

Understand the limits

Records are processed in file order. The same whole fixture produces the same report at the same clock; separate runs do not share a durable duplicate store. Gaps are allowed, backward sequence/time is rejected and only the configured demo boot is supported. This is an educational replay, not a live monitoring installation.

Use and maintain the source

Version 1.0.0 is original IoTPapa work under the MIT licence. The ZIP contains the observed test result and SHA256SUMS.txt for its source files. Re-run the tests after changing the code. Return to this page for a later version; no automatic update or support service is promised.

Download the source project ZIP · v1.0.0 · 12.1 KiB

Includes the code, fixture, observed report, tests, README, MIT licence and file checksums. No sign-up, package installation or external service is required to run the archive with an existing supported Node.js installation.

Sources and evidence

The code, fixture, rules and exercises are original work. The linked official Node.js references explain the runtime and built-in test runner. Only the offline software behavior stated above was tested; no physical measurement, broker, network, restore process, notification or operational return was assessed.

Official Node 24 test runner reference

Official Node 24 command-line reference

Build the wider understanding

Original IoTPapa laboratory illustration; the downloadable project is offline software with synthetic data, not a tested physical installation

NEXT READING

Plan a sensor build

Move from a reading to versioned firmware, logging and recovery questions.

Explore the evidence →

Original IoTPapa laboratory illustration; the downloadable project is offline software with synthetic data, not a tested physical installation

NEXT READING

Prepare an industrial pilot

Connect software evidence to responsibilities and a fair go/no-go decision.

Explore the evidence →

Original IoTPapa laboratory illustration; the downloadable project is offline software with synthetic data, not a tested physical installation

NEXT READING

Read the evidence framework

Keep observed tests, documented features and unassessed claims distinct.

Explore the evidence →

bottom of page