Skip to main content

Solar Yield Optimizer

SOLAR_OPTIMIZE on irradiance + temperature: tracking → curtail when output exceeds inverter/grid limits, derate on over-temperature. Maximises captured energy safely.

CategoryEnergy & Grid
Template IDsolar-yield-optimizer
Definitionsolar_yield_optimizer v1.0
States4 (initial: tracking; terminal: nominal)
Transitions5
Operators composedSOLAR_OPTIMIZE, SOLAR_POWER, KO42
Audit clockon · tick rate 1

What it's for

  • Utility-scale PV
  • Behind-the-meter solar
  • Inverter protection

States

StateRole
trackinginitial
curtailintermediate
derateintermediate
nominalterminal

Transitions

FromToOperatorFires whenProofTrigger / actions
trackingcurtailSOLAR_POWERinput.output_kw > input.inverter_limit_kwrequired
trackingderateSOLAR_OPTIMIZEinput.panel_temp_c > input.derate_temp_crequired
curtailtrackingSOLAR_POWERinput.output_kw <= input.inverter_limit_kwrequired
deratetrackingSOLAR_OPTIMIZEinput.panel_temp_c <= input.derate_temp_crequired
trackingnominalKO42input.day_complete == trueno

Operators it composes

Each transition fires a registry operator through the master equation (compute → prove → verify). This template composes:

  • SOLAR_OPTIMIZE
  • SOLAR_POWER
  • KO42

Browse the operators at /operators/; the building blocks a transition calls are the framework's protocols. KO42 is the always-on substrate operator; physics operators carry proof_required: true, so each fire runs the full compute → prove → verify path and lands a verifiable proof digest on your entangled state.

Deploy it

Inspect the full definition, then deploy it onto your state machine. Every fire is Zeqond-stamped onto your entangled state.

# 1. Inspect — the full definition (states, transitions, operators) as served
curl -sS https://zeqsdk.com/api/contracts/templates/solar-yield-optimizer

# 2. Deploy onto your machine (auth: session; body carries your machine slug)
curl -sS -X POST https://zeqsdk.com/api/contracts/templates/solar-yield-optimizer/deploy \
-H "Content-Type: application/json" \
-b "<your session cookie>" \
-d '{"slug":"<your-machine>"}'
# → 201 { "ok": true, "contract": { "id": "…", "currentState": "tracking", … },
# "template_id": "solar-yield-optimizer" }

The deploy path runs the same two-stage validation as the canonical create route (ContractDefinitionSchema.parse + validateContractDefinition against the live registry), writes the creation row onto your entangled state, and schedules the first fire. From there, drive transitions with POST /api/chain/<your-machine>/contracts/<id>/transition or let any triggers fire them autonomously.

Next

  • Contract IDE — author, preview, and deploy contracts (this template is in the Templates tab).
  • State Contracts — the full contract model: conditions, triggers, pre/post actions, lifecycle.
  • Templates Library — every ready-to-deploy contract, grouped by category.
  • Protocols — the named building blocks a transition composes.