Skip to main content

franklinwh-system-view

A friendly picture of a FranklinWH site, shared by the FranklinWH bridges: grid, aGate, batteries, solar, home, smart circuits and generator, with live flows. It opens as a full-page overlay over a bridge's own dashboard, and can be the page a browser starts on.

  • Simple by default. Pictures and plain words: battery charge, mode, what the inverter is doing, grid up or down, solar, home use, circuits. Hover for a sentence, click for details.
  • Fits any screen. Desktop and tablet get a landscape layout, phones a portrait one. Zoom with − / Fit / +, pinch, or Ctrl+wheel; drag to pan when zoomed.
  • Colours mean state. Green normal, grey offline or disabled, amber warning, red critical.
  • Only what's there is drawn. A site with no solar shows no solar.

How a bridge uses it

from fastapi.staticfiles import StaticFiles
import franklinwh_system_view as sv

app.mount("/system-view", StaticFiles(directory=sv.static_dir()), name="system-view")

@app.get("/api/system")
def api_system():
    return sv.build(my_payload())      # validates, then adds both layouts per gateway
<link rel="stylesheet" href="system-view/system-view.css">
<script src="system-view/system-view.js"></script>
<script>FWHSystemView.mount({endpoint: "api/system"});</script>
<button onclick="FWHSystemView.open()">System view</button>

Customise diagram. Where no reading tells the bridge how a site is built, the user tells it. The bridge stores the answers (one JSON object) and lets the package do the rest:

raw = my_payload()
p = sv.customise.apply(raw, saved)                     # names, legs, models, solar, appliances
p["customise"] = {"endpoint": "api/system/customise", "fields": sv.customise.fields(raw, saved)}
return sv.build(p)

@app.put("/api/system/customise")
def save(values: dict):
    store(sv.customise.clean(values, my_payload()))   # ValueError → 400

Weather. Put the current Open-Meteo reading in site.weather (code, condition, temp_c); the page draws it next to the site's name.

The payload is described in schema.py; fixtures/ holds examples. Signs: grid power_w > 0 imports, battery power_w > 0 discharges. Leave out what you can't read.

Try it

python -m franklinwh_system_view.demo us_tou_two_apowers_solar

Design: franklinwh-direct-connect-bridge #428.

Metadata

Release files for franklinwh-system-view 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for franklinwh-system-view 0.2.1
File Size Uploaded Provenance Actions
franklinwh_system_view-0.2.1.tar.gz 32.6 kB With provenance Details for franklinwh_system_view-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for franklinwh-system-view 0.2.1
File Interpreter ABI Platform Actions
franklinwh_system_view-0.2.1-py3-none-any.whl Python 3 none any Details for franklinwh_system_view-0.2.1-py3-none-any.whl

Total release size: 62.6 kB

Release files / franklinwh_system_view-0.2.1.tar.gz

Download URL franklinwh_system_view-0.2.1.tar.gz
Size 32.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dcf742006b9809c816e4e7f9b8e19045375728b021715c14359339ebaeec0eec
BLAKE2b-256 checksum
How to use checksums
54524a36a3b5af82d1caaa990b08afb9f09fad7ce0aea010f36375d25b5e05dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / franklinwh_system_view-0.2.1-py3-none-any.whl

Download URL franklinwh_system_view-0.2.1-py3-none-any.whl
Size 30.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e284fedbd3bf7c7c7b733edb96387db910179aec92579bc760764702ba9bf712
BLAKE2b-256 checksum
How to use checksums
1799ddc6f4b897bd00eb5f63d257477f863fcae15707630b36a143766de10d0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Security for franklinwh-system-view 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for franklinwh_system_view-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page