Skip to content

Repository files navigation

Pyra — from solar telemetry to maintenance priorities.

Explore the demo · Run & import data · Understand the model

Find the loss. Understand the cause. Decide what to fix.

Pyra is a solar-plant operations and maintenance console. It brings expected-versus-actual production, modeled energy losses, equipment faults, and maintenance priorities into one desktop workspace.

Built for the Energy × AI Hackathon (EnerParc) with Next.js, Python, scikit-learn, pvlib, and an optional Claude-powered copilot.

An operating desk for the plant

View Question it helps answer
Plant Map & Inverter Inspector Which equipment is underperforming, and when did it change?
Loss Ledger How much energy and tariff-valued revenue does the model estimate was lost?
Fault Timeline & DC Diagnostics Which errors, disconnections, or string-level patterns coincide with the loss?
Fault Economics & Fleet Risk Which issues deserve closer investigation?
What-if Simulator How much modeled loss might an intervention recover?
Soiling What does the available soiling dataset suggest?
O&M Copilot & Executive Report How can the evidence be explained and communicated?

Interactive charts and linked windows let you move from the plant overview to an individual inverter's history.

Telemetry becomes an investigation

flowchart LR
    RAW["PV monitoring data"] --> ING["Normalize inputs<br/>detect available signals"]
    ING --> MODEL["Expected-power model<br/>per inverter"]
    MODEL --> GAP["Compare with actual output"]
    GAP --> LOSS["Exclude curtailment<br/>estimate energy & tariff loss"]
    LOSS --> DESK["Pyra desktop"]
    ING --> FAULT["Faults · DC diagnostics<br/>risk · what-if"]
    FAULT --> DESK
    DESK --> COP["Optional copilot<br/>grounded in artifacts"]
    classDef solar fill:#f8e6b2,color:#493817,stroke:#be9842;
    class MODEL,GAP,LOSS solar;
Loading

The Python pipeline produces compact JSON artifacts. The website reads those results; it does not retrain a model every time you open a chart. Methods and interpretation →

Try the bundled demo

Use Node.js 20.9+ and npm. Python and the restricted source dataset are not needed to view the bundled demo.

git clone https://github.com/DocMorphic/pyra.git
cd pyra
npm ci
npm run dev

Open localhost:3000. Anonymized derived artifacts are committed under public/artifacts/. The original monitoring files are restricted and are not included.

To enable the optional copilot, copy .env.example to .env.local and add your own ANTHROPIC_API_KEY. All other demo views can read the bundled artifacts without that key.

Use your own monitoring data

flowchart LR
    U["Upload CSV / Parquet / XLSX"] --> M["Review detected column mapping"]
    M --> P["Run Python pipeline<br/>stream progress"]
    P --> C{"Required signals present?"}
    C -->|"Yes"| A["Show supported analysis"]
    C -->|"Missing or insufficient"| N["Explain what is unavailable"]
Loading

Run the app on a persistent Node host with Python installed. Data → Add dataset supports column mapping and per-session analysis. Features depend on the signals and history you provide: missing DC telemetry cannot produce string diagnostics, and a short record cannot establish a long-term degradation trend.

Environment Bundled dashboard Copilot Upload + Python analysis
Local Node + Python Yes With API key Yes, for supported input mappings.
Vercel Yes With API key Not supported by this deployment path.

Python setup, pipeline order, and data locations →

Read the results as estimates

Expected production is a model baseline, not a direct measurement of what the plant would have produced without faults. Loss valuation depends on telemetry quality, curtailment exclusions, interval duration, tariff data, and model fit. What-if recovery and fleet risk are investigation aids, not guaranteed revenue or calibrated failure probabilities.

The first operating year supplies the usual training baseline, with a fallback for sparse inputs. Some evaluation overlaps the baseline period. Exact method and limitations →

Project map

Path Contains
pipeline/ Ingestion, expected power, losses, faults, DC diagnostics, risk, and scenarios.
components/apps/ The analysis windows and copilot.
lib/artifacts.ts Shared result types.
lib/pipeline.ts Local Python process orchestration.
app/api/ Dataset detection, analysis streaming, artifact serving, and copilot routes.
public/artifacts/ Bundled anonymized demonstration results.
npm run lint
npm run build
npm start

Raw datasets and uploaded sessions remain separate from the public demo. Their data-use restrictions still apply. No repository-wide software license is currently declared; dataset rights are separate from source-code availability.

Good maintenance starts with an explanation you can inspect.

About

A solar-plant operations desk for expected-vs-actual production, modeled losses, fault diagnostics, and maintenance priorities.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages