Skip to content

docs: point data models to srcful-data-models - #31

Open
davmoz wants to merge 7 commits into
mainfrom
docs/data-models-source-of-truth
Open

davmoz wants to merge 7 commits into
mainfrom
docs/data-models-source-of-truth

Conversation

@davmoz

@davmoz davmoz commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Status: srcful-data-models v2 (package 2.3.0) is on main (8432bf0). NovaCore's v2 path and the inverter DER type (srcfl/srcful-novacore#174) are merged and run on devnet. Merge this after the v2 rollout; David decides when.

What

DER field definitions have one owner: srcful-data-models (names, units, sign, SoC window, derived values, control command and ack). DER and device types are owned by the device-support API (GET /der-types, GET /device-types). This page had drifted from both, so it now links instead of copying.

  • docs/technical/data-models.md: hierarchy kept (gateway-neutral wording, v2 default DER names in the example). The field tables, examples, naming rules and electrical definitions are replaced by links to the data-models README and docs/REFERENCE.md, a four-line summary (versioned json.v2 subjects, null never 0, v: 2 control with ack executed/nack/failed and NovaCore's command status from the final ack) and the sign table.
  • docs/technical/ems.md, docs/technical/hardware/README.md: link text only.

The data-models repo is private, so its links return 404 publicly; that is accepted.

🤖 Generated with Claude Code

davmoz and others added 4 commits October 1, 2026 16:40
Field definitions live in srcful-data-models (v2.0.0) and DER/device
types in the device-support API. Replace the stale telemetry tables
(pv, v2x_charger, connector_status) with a link and a rule summary, and
move the hierarchy from Wallet to Organization -> Site -> Device -> DER.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
srcful-data-models 2.1.0 adds the inverter DER type (the inverter's AC
output), registered in NovaCore alongside solar, battery, meter and
ev_charger_port. Drop the "inverter AC side is a meter DER" mapping,
list inverter among the DER types, and add its sign row
(+ absorbing AC / - delivering AC).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v3.0.0 names quantities that can be AC or DC with a lowercase _ac/_dc
postfix (W_ac, W_dc, total_charge_Wh_dc, ...), sends both when both are
measured, requires at least one of W_ac/W_dc, and uses power_W_dc /
actual_power_W_dc for control. Replace the earlier bare-names rule,
restate the sign convention (+ import / - export seen from the DER),
and note NovaCore still accepts bare names for now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every field is always present and an unread value is null, never 0.
Everything that is not a unit is lowercase (soc_nom_fract, l1_V) while
units keep physical casing (W, Wh, VA, var). No aliases: consumers move
to the 3.0 names; NovaCore ingest still accepts the old names for now.
W_ac/W_dc is required for solar, battery, inverter and meter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@miravoss26 miravoss26 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mira's review (pr-steward sweep).

Summary: moves the telemetry field definitions out of this page into srcful-data-models v3.0.0, and renames WALLET to ORGANIZATION in the hierarchy and examples. Docs only, no code.

Findings:

  • Medium: the links point to github.com/srcfl/srcful-data-models. From my account that repo doesn't resolve. This repo is public, so if that repo is private or not created yet, the links are dead on the public docs. Please confirm it exists, is public, and has the v3.0.0 tag on main before merge.
  • Low: WALLET to ORGANIZATION is a user-facing term change. I only checked this PR, not the rest of the docs or the API reference. Worth a grep for "wallet" elsewhere.

Safe to merge from my read, once the link target is confirmed. Comment only: this repo isn't on the steward's merge allowlist.

davmoz and others added 3 commits October 6, 2026 10:40
srcful-data-models v3.0.0 merged on main with an _ac/_dc postfix on
every W, V, A and Wh field, even where only one side is possible
(l1_V_ac, mppt1_V_dc, capacity_Wh_dc, installed_power_W_dc). Only Hz,
VA and var have none. Update the rule summary and examples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The data model is published as v2 on main, not v3. Cite v2, and describe
the final contract: json.v2 subjects next to the legacy json.v1 with no
translation between them, the DER type as the default topic segment
(solar, was pv), an _ac/_dc postfix on every W/V/A/VA/Wh field with
only Hz left bare, reactive_VA_ac and apparent_VA_ac, the inverter DER
as the AC output stage only, the electrical definitions, and v: 2
control with power_W_dc and actual_power_W_dc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Point to the data-models README/REFERENCE for the rules instead of
copying them; keep the hierarchy, a short summary and the sign table.
Control acks executed/nack/failed and NovaCore's command status from
the final ack. Example DER names are the v2 defaults.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@miravoss26 miravoss26 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs-only: replaces the duplicated DER field tables with links to srcful-data-models (v2, 2.3.0) and renames WALLET → ORGANIZATION in the hierarchy diagram, consistent with the body's stated identity model. Checked the new field tables against what's quoted (sign convention, v2 subject naming, null-never-0, ack states) — internally consistent, no drift introduced. Private-repo 404 on the data-models links for public readers is called out and accepted.

No correctness or security issues — pure markdown, no code, no secrets.

Safe to merge from my read, but the PR's own note holds the gate: merge after the v2 rollout, David's call on timing.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants