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.0

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.0
File Size Uploaded Provenance Actions
franklinwh_system_view-0.2.0.tar.gz 32.1 kB With provenance Details for franklinwh_system_view-0.2.0.tar.gz

Built distribution (wheel)

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

Total release size: 61.8 kB

Release files / franklinwh_system_view-0.2.0.tar.gz

Download URL franklinwh_system_view-0.2.0.tar.gz
Size 32.1 kB
Tags Source
SHA-256 checksum
How to use checksums
802f0ed3621c686dcb51d590b4a708ddc6a1fc6faac839bfd7a312b95428db67
BLAKE2b-256 checksum
How to use checksums
056db0000938750d097f440c62fc66d485e5fb4ade6b4ab6a054ada6bf996729
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.0-py3-none-any.whl

Download URL franklinwh_system_view-0.2.0-py3-none-any.whl
Size 29.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
307974eedb72296149bb8162affd7ff4c9bb8629d6f80e0a9644d53a86dbaefc
BLAKE2b-256 checksum
How to use checksums
59409f9b4ec9802f1e9a4bc462da83d7a9af1f9bd21912ed8828a332ee67405e
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.0

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.0.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