live · Energy plants

For the owner who can’t tell a cloudy hour from a broken string.

Is it producing what it should?

Solar plants and batteries, read locally over SunSpec.

Solvarra Solar Plant · 72 kWp · its twinlive
Now
60kW · of 60
Performance ratio
0.84today so far · irradiance measured
Battery
64% · CHARGING

RuleProduction judged against the plant’s own expected figure; a string against its siblings; a fault by the inverter’s own event bits.

  • 20:35:05Inverter 2 string 3 (Array A) is out: 0 W while its siblings make 5160 W. · work order #24
  • 20:35:10String back · cleared by the reading
  • 20:35:15Inverter 4 fault OVER_TEMP · the inverter’s own word · work order #25
  • 20:35:25Grid event · 4 of 4 inverters, one alarm
  • 20:35:35Solvarra Solar Plant exports 53.6 kW, over its limit of 20.0 kW.
What the twin holds: inverters · strings · arrays · meter · battery · weather · expected · historydemo run
1The problems

What a plant owner actually hears.

Four sentences from the people who run plants. Each one is answered below, with the screen that answers it.

the owner, looking at the day’s total
“Was today low because of clouds, or because something broke?”
the O&M technician, on the roof
“A string has been dead for a week and nobody saw it.”
the operator, at the inverter fault screen
“The inverter shows a code and nobody knows what it means.”
the grid manager, after a trip
“The grid tripped and every inverter alarmed.”
2How HOLOIN answers each

Four problems, four screens.

Each answer below is something the product did in the demo run, shown on the screen where it did it.

Problem 1 · “Clouds, or broken?”

Expected is your own history. A dim day across the whole plant isn’t blamed on one part.

Expected production is your plant’s own history — this hour, this time of year — never a vendor’s yield model. Plant, array or inverter below its own expected band in daylight is a finding, once the plant knows its normal. An inverter or array is also compared with its siblings, and when everything is low together that comparison stays quiet.

Outcome A low hour is judged against the plant’s own usual, and each array and inverter against its siblings.
Plant · production
now60 kWthe inverters’ AC output, of 60 kWnow

From the demo run. Solvarra Solar Plant at 60 kW. Its expected band is shown once the plant knows its normal — fourteen days of history at this time of year; the demo plant is new on every run, so it is still learning.

Problem 2 · “A dead string.”

A string near zero while its siblings on the same inverter produce is a finding.

A string at zero while its siblings on the same inverter produce. Named by inverter, string and array; cleared when it returns.

Outcome A dead string becomes a work order the same hour, with a string-outage rule in place.
Plant · strings
string outInverter 2 · string 3Array A20:35:05
work order#24opened by the rule20:35:05
backString producingcleared by the reading20:35:10

From the demo run. “Inverter 2 string 3 (Array A) is out: 0 W while its siblings make 5160 W.” at 20:35:05, work order #24; cleared at 20:35:10, when the string came back.

Problem 3 · “A code nobody understands.”

The fault in the standard’s own words, straight into a work order.

The inverter’s state and event bits, by the names the standard gives them — OVER_TEMP (over temperature), GROUND_FAULT (a ground fault), DC_OVER_VOLT (DC over voltage) — straight into a work order.

Outcome The technician reads the fault, not a code.
Plant · inverters
faultInverter 4 · FAULTOVER_TEMP, the inverter’s own word20:35:15
work order#25opened by the rule20:35:15

From the demo run. Inverter 4 reported FAULT, OVER_TEMP, at 20:35:15: work order #25.

Problem 4 · “Every inverter alarmed.”

A grid event is one alarm for the plant.

A grid event seen by every inverter at once is one alarm for the plant, not one per inverter.

Outcome One alarm names the plant and the grid bit; the inverters are listed in it.
Plant · grid
grid event4 of 4 invertersone alarm for the plant20:35:25

From the demo run. “Grid event at Solvarra Solar Plant: GRID_DISCONNECT on 4 of 4 inverters (Inverter 1, Inverter 2, Inverter 3, Inverter 4).”

And the rest of the day’s work

BatteryCharge below the floor or above the ceiling; a status saying idle while power flows; cycles counted per day.
Export limitThe meter at the point of connection against the limit you entered.
Curtailment — est.Throttled with no fault and the sun up: the energy not made is estimated from the expected curve, or from measured irradiance while the plant is still learning, and every figure says “est.”
Performance ratioOnly with an irradiance sensor: plane-of-array when present (global, labelled, if that’s all); without one, no PR.
A drift is a recommendationActual over expected sliding for three weeks with no fault, while the other arrays hold: a recommendation to inspect. It is withdrawn when it stops holding and expires after 30 days.
Discovered, not typedThe Field Agent finds the SunSpec map at the addresses you give and shows each device’s manufacturer, model, firmware and serial as read.
The technician’s phoneWork orders with the inverter and the string; offline-safe.
The plant’s daily figuresOn its page, day by day.
3The twin of a plant

The plant is the record. Everything attaches to it.

A plant is its arrays, its inverters and their strings, the meter at the point of connection, a battery and a weather station, read over SunSpec by a Field Agent at the plant.

Production
Against its own usual

Against the plant’s own expected band, once it knows its normal.

Strings
Each against its siblings

Near zero while the others produce is a finding.

Inverters
In the standard’s names

State and events as SunSpec prints them.

Meter
The point of connection

Export against your limit.

Battery
Charge and state

Charge, status, cycles per day.

Then
History

Every reading, finding and work order against the plant.

4What the twin changes in the day’s work

Fewer guesses. Fewer weeks lost to a dead string.

Stated as changes, not as numbers: your numbers are yours to measure, and Why it pays gives you the arithmetic.

Before
  • A low day could be clouds or a fault.
  • A dead string is found at the monthly report.
  • An inverter shows a code.
  • A grid trip floods the alarm list.
  • Expected comes from a vendor’s model.
With the twin
  • Each array and inverter is judged against its siblings, not the sky.
  • A string near zero is a finding the same hour.
  • The fault in the standard’s words, as a work order.
  • One alarm for the plant.
  • Expected is the plant’s own history.
5OT and IT

OT and IT, in one twin.

Solvarra Solar Plant · grid event · one alarm, not four
Plant · GRID_DISCONNECT, reported by 4 of 4 invertersone alarm
4 of 4 inverters
Inverter 1 · grid lostin the alarm
Inverter 2 · grid lostin the alarm
Inverter 3 · grid lostin the alarm
Inverter 4 · grid lostin the alarm
Grid event at 20:35:25. Every inverter reported the same grid loss; one plant-level alarm named them all. Found by a Field Agent over SunSpec — the agent reads; it never writes to an inverter.

OT and IT, in one twin. Inverters, the meter, the battery and the weather station over SunSpec are the OT; the Field Agent that reads them and the plant’s network are the IT. When every inverter loses the grid at once, the twin knows it is one event for the plant, not four inverter faults.

OT · what is measured

Each inverter’s DC inputs, AC power, state and event bits in the published SunSpec names; the meter at the point of connection; the battery’s charge state and limits; irradiance where measured.

IT · what keeps it reporting

A Field Agent at the plant, outbound only, reading SunSpec with function 03 and nothing else; the addresses you name, never a sweep; the path from any inverter back to the server, with the agent as a hop.

6How it’s deployed

Buy the devices. Everything else comes inside.

One install bundle carries what a plant needs. A Field Agent box on the plant’s network reads the inverters and connects out to your server; the plant appears.

You supply
  • One Linux server with Dockeryours, or one we run for you in the country you choose
  • A small machine on the plant’s network for the Field Agentany Linux box or container
  • The inverters, meter, battery and weather stationany that publishes SunSpec models over Modbus TCP
  • The ports your IT opensthe install guide lists them
Inside the install
  • The Field Agentits image and a standalone package, in the bundle
  • The Field Agent at the plantreads SunSpec with function 03 only, and connects outbound only
  • The database, the backups, the web entryone compose file, one address
Kept running by the install itself
  • One scriptready in 2 min 42 s on the acceptance box (run 39194860273)
  • Nightly backup, monthly restore drilla failed one is an alarm in the product
  • Upgrade in placesame volumes, registrations and readings intact, proven on every release
  • No telemetrythe bundled servers’ phone-home is off; CI fails if any container reaches out

The servers this kind of asset uses, each shown only when its acceptance run passed; statuses from the facts file.

7Without HOLOIN

Five systems, or one.

The same plants, run the usual way. No names: the categories are what matters.

Bought separately
  • An inverter maker’s portal — one per make, its own codes.
  • A yield model subscription — expected from someone else’s weather.
  • A monitoring logger — a box per plant with its own cloud.
  • A ticket tool — findings retyped as tickets.
  • A spreadsheet for the month — kept by whoever remembers.
Five contracts, five logins, no path from one to the other. When a plant runs low, nobody can say why.
In HOLOIN
  • Every inverter in the standard’s words — one plant view.
  • Expected from your own history — no outside model.
  • A Field Agent on your network — nothing goes to a vendor cloud.
  • Findings become work orders — with the inverter and string.
  • The plant’s history — every reading and finding.
One installation, one database you own, one price counted in devices.
8What it costs

Counted in devices. Never in people.

One licence per installation, per year, by device tier. An inverter or a meter is a device; an operator’s login and a technician’s phone are not. Add operators and technicians without a change to the bill.

The whole grid, every tier and every pack, is on Pricing — published, with what counts as a device and what is included.

US$5,500a year
A plant like the demo’s: 4 inverters, the meter at the point of connection, a battery and a weather station — the 100-device tier, from the published grid.
  • The platformUS$2,500
  • The Energy packUS$3,000
  • Operators and techniciansincluded
  • The Field Agent, the phone appincluded
9Secure, and kept running

Your server. Your plant’s data. Nothing phones home.

Not a policy page: each of these is a property of the software you can check on your own server.

One installation, yours

Installed from a bundle that carries everything it needs. Never a shared cloud: one installation per customer, or one your integrator runs for you, each client a company of its own.

PostgreSQL you own

Every reading, alarm and record in a database you administer. A nightly backup you can restore anywhere, drilled monthly.

It reads. It doesn’t write.

SunSpec defines controls; HOLOIN never writes them. Findings become work orders for people. Nothing the twin learns changes a setpoint.

Nothing phones home

No telemetry in the product, none in the bundled servers. Proved with the network sealed on every release.

Your rules stay yours

Lines, rules and what the twin learned are text and arithmetic in your database; they leave with you.

An audit log that can’t be edited

Every change, by whom, from where — append-only in the database itself, for seven years, even for the database’s own administrator.

10The four questions

What you actually want to know.

Do I have to install anything?

No. We run HOLOIN for you on a dedicated server in the country you choose, never shared with another company, and you can take it with you. If you have your own servers, install it there instead; same product.

What do I need?

Inverters, a meter and a battery that publish SunSpec over Modbus TCP, and a Field Agent box on the plant’s network (it only connects outbound). The install guide lists the ports.

What does it cost?

Per installation, per year, by device tier: from US$5,500 a year for the platform and Energy, up to 100 devices. The whole grid is on Pricing. No per-seat fees; every operator and technician is included.

Who do I call?

Hours, channel and response time: on request. Every installation can produce a support bundle on demand, a readable archive with no personal data or secrets, which your IT team can check before it goes to us.

11The way in

See it running on yours.

I’m responsible for the plants

Fifteen minutes on a plant like yours — no slides.

I install systems for clients

One installation per client, each a company of its own. The Field Agent at the plant, the ports in the install guide.

Start a partner conversation →