nrgonDeveloper My Account

Components

VERSION 0.1 · 2026-10-12 · developer.nrgon.net/components

How software is shaped on every layer. An application is assembled from components. A component does one job, reads from the data layer and writes its result back there.

INPUTSBucketRedisdata.nrgon.netYAML configCOMPONENTOne jobOUTPUTSResult objectsLatest valuesReports

What a component has

One job

Stated in one sentence at the top of its README.

Inputs and outputs

Named objects or keys, each with its format.

An interface

A function, a command-line entry point or an HTTPS endpoint. Often all three.

A check

A script that runs it on known input and compares the output.

Components today

Tariff library

The tariff and time-of-use bands for a site on a date. From data.nrgon.net.

Load study

Daily energy, peaks and a battery size per value case, from interval load and tariff.

Measurement and verification

What a battery saved against a baseline, with the method.

Protocol adapters

Read and write a vendor's equipment through its cloud API or register map.

Day plan

Charge and discharge windows for tomorrow, in the vendor's format, written and read back.

Reports

Proposal, weekly report, final report. PDF and Markdown.

Configurator

A sizing conversation on tablet, phone and browser from one definition file.

Conventions

  • JSON for messages, JSONL for logs, CSV for tables, YAML for configuration, Markdown for text. Anything else is named in the README with the reason.
  • UTC inside, local time at the edge. Stored timestamps are UTC. Conversion happens where a person reads it.
  • Units in field names: power_kw, energy_kwh, soc_pct.
  • One definition, many renderers. Content that appears on several platforms lives in one file. A harness checks the renderers agree.
  • A check before a feature.
  • No secrets in code. Credentials come from the environment. The README names which.

Adding a component

  1. Write the README: job, inputs, outputs, interface.
  2. Own folder, own check script.
  3. Read inputs from the bucket, Redis, data.nrgon.net or YAML. Never from another component's internals.
  4. Write outputs with the naming on the Infrastructure page.
  5. Run the check. Add the component to the list above.