Priestley Place Charge HQ

15kW Fox ESS H3 · CQ6-L8 battery stack (47.92kWh nominal) · 44 panels / 20.9kW array
Monitoring only
 
Data sources

Inverter Connection

FoxESS Cloud
Only change this if you're routing through your own CORS proxy in front of FoxESS Cloud.
Sent as X-Proxy-Secret on both FoxESS and Solcast calls if this and the matching base URL below are set — one worker, one secret, both APIs.

Inverter Schedule Inspector

Read-only — shows exactly what's actually configured on the inverter right now, straight from FoxESS, not from this app's own memory of what it last sent.

Server-Side Setup (Stage 1 + 2a + 2b)

Moving the automatic decision loop off this browser page and onto Cloudflare, so it keeps running whether or not this tab is open. Stage 1: config mirrors into Cloudflare KV. Stage 2a: a Cron Trigger proves FoxESS is reachable directly from Cloudflare's servers, every 5 minutes. Stage 2b: the same reserve-target / cycle-budget / sell-floor engine as this app, ported function-for-function, runs on that same schedule and computes a genuine plan — SHADOW MODE only, it logs what it would decide but never sends anything to the inverter. Compare its decision against what this app itself is deciding for the same moment before trusting it to act for real. See the setup notes at the top of energy-proxy-worker.js.

Test Live Control

A small, deliberate, real command — separate from the automatic system, so the write path can be watched and confirmed once before trusting it to run unattended.
Test curtailment (negative feed-in protection) — export limit is confirmed rejected (FoxESS error 42015) under a regular homeowner-tier API key; it looks to be an installer-only setting. Enter a key generated from an installer login below to test whether that has the right permission — leave blank to keep using the main key above (will just repeat the same rejection).

Forecast Sources

BOM's own open-data feed has had outages during platform upgrades — if a BOM request fails, this automatically falls back to the blended model for that run.

Live Pricing Connection

Polls a live-priced retailer's real price feed and logs actual cost against your real usage from today onward. Past days can't be backfilled. Amber Electric is the only provider actually wired up right now — the Provider field exists so a different live-pricing retailer can be added later without restructuring anything else that reads from this connection.

Site & System

 
System losses (soiling, wiring, inverter) — typical 0.78–0.85

Storm Precaution

In-app banner only — nothing here is sent to the inverter automatically. Watches for a forecast damaging wind gust, heavy rain, or thunderstorm — the three biggest real-world causes of storm-driven outages (wind bringing down trees/branches onto lines is the single most common; lightning and heavy rain/flooding affecting substations are the other two). When triggered, shows how much charge is currently on hand versus how much is recommended to hold back for the EPS/backup circuit, so you can decide whether to top up or hold off selling manually.
90km/h is BOM's own official threshold for a "damaging wind" Severe Weather Warning on the mainland.

Reserve Safety Margin

Extra buffer added on top of the bad-weather reserve target and any peak-window pre-charge, to absorb ordinary forecast error (load or solar coming in worse than predicted) rather than planning to the exact wire. Applies everywhere the plan protects a floor — it makes deliberate selling more conservative, and slightly increases how much gets pre-charged ahead of a peak block.

Battery Cycle Budget

Paces deliberate battery selling against your warranty's cycle allowance, not just price. FoxESS's CQ6 warranty (and most LFP home batteries) guarantees capacity retention until EITHER a cycle count OR a number of years passes, whichever comes first — so cycles you're not on track to use before the years run out cost nothing extra to spend now.
Usage history & accuracy

Usage History

For prediction

Correct Usage from Retailer CSV

FoxESS's CT clamps read badly at low currents — this scales your logged usage to match what your retailer actually billed, so cost and payback figures stay accurate.
Providers
Payback Ledger

Payback Summary

Plan History

One segment per real plan you were actually billed under. When you switch, set this segment's end date and add a new one starting the next day — that locks in what it actually cost/saved for good.
Live-connected to FoxESS for real telemetry and history — solar/load predictions use your actual logged data once enough is available, falling back to a weather/shape-based estimate otherwise. In Monitoring only, the scheduler is read-only: it plans charge/discharge timing but never sends anything. In Live control, it can send real setpoints to the H3, checked and corrected every 5 minutes against the battery's actual live SoC.