Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 2.05 KB

File metadata and controls

61 lines (44 loc) · 2.05 KB

PVS protocol notes

Authority: SunStrong Management's maintained pypvs repository and doc/LocalAPI.md, reviewed 2026-07-23.

Example tested firmware family: modern PVS6 Varserver firmware.

Public probe

GET http://<private-ip>/vars?name=/sys/info/sw_rev

Authentication

GET https://<private-ip>/auth?login
Authorization: Basic <ssm_owner:last-five-serial-characters>

Successful login returns a session cookie. Logout is GET /auth?logout. Authenticated reads use the cookie.

Approved reads

/vars?name=<absolute-var-paths>
/vars?match=<substring>&fmt=obj
/vars?tag=<tag>&fmt=obj
/vars?cache=<cache-id>&fmt=obj

Repeated match/tag reads should create and then reuse cache identifiers. Polling must not be faster than every few seconds. HelioSlate defaults to ten seconds.

Discovery starts with:

  • match=livedata
  • match=meter
  • match=inverter

The tested modern firmware exposes meter data as flattened variables such as /sys/devices/meter/0/p3phsumkw, rather than the object-valued /sys/devices/<id>/meter/data shape in the published example. It also returns HTTP 400 when a match has no results. HelioSlate supports both shapes and treats an empty optional device match as an empty device collection.

Device identifiers and field meanings are not assumed. Raw values are retained until daylight/nighttime and energy-balance evidence establishes units and sign semantics.

Field mapping ledger

Raw path/field Unit Normalized meaning Confidence Evidence
/sys/info/sw_rev text firmware verified Public gateway response
/sys/livedata/pv_p unknown pending capture solar power candidate documented, unverified locally SunStrong sample
/sys/livedata/site_load_p unknown pending capture home load candidate documented, unverified locally SunStrong sample
/sys/livedata/net_p unknown pending capture grid exchange candidate documented, sign unknown SunStrong sample

No production meter, consumption meter, or grid sign has been assigned yet.