Creates a profile of the program's own from its parts, with no description and no presentation.
a stable, human-readable name, such as raised-bed-drip.
the topic each reading is published to.
the control policy; only the fields belonging to its kind are
read, and cooling and rising are false unless given.
how often the node samples as the battery drains.
The control policy applied to each reading.
What the profile is for, in the words its manifest carries, or null.
The profile's stable, human-readable name.
The sampling schedule kept as the battery drains.
How the profile presents itself on the dashboard, or null when it declares
nothing beyond the built-in set.
What the profile reads, the quantity and the unit its numbers are in, or null
when the manifest does not say.
The topic each reading is published to.
Builds the decision logic this profile describes.
Each call builds a new controller, so keep the one it returns for the life of the node: one built again for each reading forgets whether its output was on and what the reading before was.
The schedule assembled into the power governor, which says what mode a charge puts the node in and how long it waits between samples there.
Serializes this profile to its JSON manifest.
A copy of this profile carrying a description of what it is for.
A copy of this profile carrying a dashboard presentation.
Throws if a band is not two numbers, or the presentation holds something the dashboard could not draw, such as a band whose low end comes second.
A copy of this profile that says what it reads.
the quantity its control decides on, such as temperature.
the unit its numbers are in, such as celsius.
StaticfloodA flood sensor, which warns when a level rises too fast.
StaticfromLoads a profile from its JSON manifest.
Throws if the manifest is malformed, or describes a profile no node could run.
StaticirrigationAn irrigation node, which opens a valve as soil moisture falls.
StaticvaccineA cold-chain fridge monitor, which holds 5 C and flags an excursion.
StaticwellA well-level monitor, which warns before a tank runs dry.
A named, ready-to-run node assembled from pamoja capabilities.