Complete Guide to Settings & Tariff Configuration
Step-by-step walkthrough of every field on the BatteryWiz Settings and Tariff pages. Covers currency setup, time-of-use rate windows, battery constraints, inverter integration, Solcast solar forecasts, and scheduling - with a quick-start checklist to get your system optimising from day one.

Last updated: 2026-05-25 (May 25, 2026)
Get the most out of BatteryWiz by correctly configuring your tariff rates and system settings. This guide walks through every field on both the Tariff and Settings pages so the optimiser can make accurate, cost-saving decisions for your home battery.
Tip: If you're starting fresh, configure the Tariff page first (your electricity rates), then move to Settings (your hardware and integrations). The optimizer needs both to produce meaningful results.
Table of Contents
- Tariff Page
- Settings Page
- 2.1 General & Scheduling
- 2.2 Subscription Status
- 2.3 Battery & Inverter Constraints
- 2.4 Behaviour
- 2.5 Inverter Integration
- 2.6 Solcast PV Forecast
- 2.7 Load Forecasting
- 2.8 Saving Your Settings
- Frequently Asked Questions
1. Tariff Page
The Tariff page is where you tell BatteryWiz how much you pay for electricity and how much you earn when you export. Getting these rates right is critical - they drive every optimization decision.
1.1 Basic Settings
Tariff Name
A friendly label for your tariff configuration. This is for your own reference - use something descriptive like "Octopus Flux", "Agile Oct 2025", or "Economy 7".
Load Flux Preset
If you're on the Octopus Flux tariff in the UK, tap Load Flux Preset to instantly populate all fields with typical Flux rates. This sets up:
- Import: 27.68p/kWh default, 16.61p/kWh off-peak (02:00-05:00), 38.75p/kWh peak (16:00-19:00)
- Export: 10.24p/kWh default, 5.05p/kWh off-peak (02:00-05:00), 29.79p/kWh peak (16:00-19:00)
You can then adjust individual rates to match your actual contract. This is the fastest way to get started for Flux customers.
1.2 Currency Configuration
BatteryWiz supports multiple currencies out of the box, plus fully custom currencies for any country.
Preset Currencies
Choose from the currency dropdown:
| Currency | Code | Rate Format | Example |
|---|---|---|---|
| British Pound | GBP | p/kWh (pence) | 27.68p/kWh |
| US Dollar | USD | $/kWh | $0.12/kWh |
| Euro | EUR | €/kWh | €0.30/kWh |
| Australian Dollar | AUD | A$/kWh | A$0.25/kWh |
Important: GBP rates are entered in pence (subunits), while USD, EUR, and AUD rates are entered in the main currency unit. This matches how energy rates are typically quoted in each market.
Custom Currency
If your currency isn't listed or you want a different subunit (or unit) for a preset currency, tick Use custom currency and fill in:
| Field | Description | Example (Nigerian Naira) |
|---|---|---|
| Currency Code | ISO currency code (3 letters) | NGN |
| Symbol | Currency symbol for display | ₦ |
| Subunit abbreviation | Short label for the minor unit | k |
| Rates in subunits | Toggle on if you enter rates in the minor unit (like pence for GBP) rather than the main unit | Off |
A Rate label preview appears below to show how rate fields will be labelled throughout the app (e.g., "₦/kWh" or "k/kWh").
1.3 Import Pricing (Buying from Grid)
This section tells BatteryWiz how much you pay when you draw electricity from the grid. The optimizer uses these rates to decide when it's cheapest to charge your battery.
Pricing Type
Choose your pricing model from the dropdown:
- Fixed Windows - You have set rates that apply at specific times of day (most common for tariffs like Flux, Economy 7, Go, etc.). This is the recommended option for most users.
- Octopus Agile (API) - Rates are fetched live from the Octopus Energy API and change every 30 minutes. When selected, configure your GSP region below and set a fallback rate (see below) in case prices cannot be fetched.
Agile Fallback Rate
Appears when Octopus Agile (API) is selected. This is the rate used as a last resort if BatteryWiz has no cached Agile prices at all - typically only on a fresh install before the first successful API fetch. Once prices have been retrieved at least once, subsequent API outages are covered by the cached data and this rate is not needed. Set it to a reasonable mid-range value for your area so the optimiser can still make sensible decisions on a clean install.
Default Rate
The rate that applies during any time period not covered by a rate window. Think of this as your "standard" or "daytime" rate.
- For GBP tariffs, enter the value in pence (e.g.,
27.68for 27.68p/kWh) - For USD/EUR/AUD tariffs, enter the value in the main unit (e.g.,
0.12for $0.12/kWh)
1.4 Export Pricing (Selling to Grid)
This section mirrors the Import section but for electricity you sell back to the grid. If you don't have an export tariff, you can leave the default rate at 0.
The same pricing type options (Fixed Windows / Octopus Agile (API)) and rate windows are available for export pricing, configured independently from import. You can mix pricing types - for example, Octopus Agile for import and a fixed rate for export, or vice versa.
1.5 Octopus Agile Configuration
This section appears automatically when either import or export (or both) is set to Octopus Agile (API). Settings here apply to whichever directions use Agile pricing.
GSP Region (Grid Supply Point)
Select the electricity distribution region your property falls in. Octopus Agile prices vary slightly by region, so choosing the wrong region will give you inaccurate prices.
The dropdown lists all 14 UK GSP regions. If you're unsure which region applies to you, use the postcode lookup below - it's the easiest way to get this right.
Auto-detect Region from Postcode
Enter your postcode and tap Lookup to automatically identify and select the correct GSP region. This makes a single call to the Octopus Energy API and requires an internet connection.
Refresh Agile Prices Now
Tap this button to immediately fetch the latest prices from Octopus. Under normal operation this is not needed - prices are refreshed automatically:
- On each optimization run
- On each Generate Preview tap
- After 4 PM UK time each day, when Octopus publishes the next day's half-hourly prices
Use the button if you suspect the cached prices are stale or after changing your GSP region.
Note: If only one direction (import or export) uses Octopus Agile, the refresh updates only that direction's prices. The other direction is unaffected.
Status & Last Updated
A status line confirms the result of the last refresh (e.g., "Prices refreshed successfully") or shows an error message if the fetch failed. The time of the last successful update is displayed alongside it.
1.6 Rate Windows
Rate windows let you define time-of-use pricing bands that override the default rate during specific hours.
Each rate window has the following fields:
Start Time / End Time
The local-time boundaries for this pricing band. Use 24-hour format. For example:
| Band | Start | End |
|---|---|---|
| Off-Peak (Night) | 02:00 | 05:00 |
| Peak (Evening) | 16:00 | 19:00 |
Important - End time is exclusive. A window from 02:00 to 05:00 covers the half-open interval [02:00, 05:00) - it applies to slots starting at 02:00, 02:30, 03:00 … 04:30, but not the 05:00 slot. This means you can set consecutive windows like 02:00-05:00 and 05:00-07:00 without creating a gap or overlap.
Note: Windows that cross midnight are supported. For example, Start = 23:00, End = 06:00 would cover 11 PM up to (but not including) 6 AM.
Rate
The per-kWh rate for this window, in your configured currency unit. For Octopus Flux on GBP, the night off-peak import might be 16.61 (pence/kWh).
Label (Optional)
A descriptive name for the window - "Off-Peak", "Peak", "Super Off-Peak", etc. Labels appear in the preview table and help you identify windows at a glance.
Applies To
Controls which days of the week this window is active:
| Option | Days |
|---|---|
| Every Day | Monday - Sunday |
| Weekdays Only | Monday - Friday |
| Weekends Only | Saturday - Sunday |
This is useful for tariffs where weekend rates differ from weekdays.
Adding and Removing Windows
- Tap + Add Window to create a new rate window with default values
- Tap the red X button on any window to remove it
- There is no limit to the number of windows, but overlapping windows that share the same days are treated as validation errors and will block saving (see Preview & Validation)
Tip for Flux users: The preset creates two import windows (Off-Peak 02:00-05:00 and Peak 16:00-19:00) and two export windows with the same time bands. Any time outside these windows uses the default rate.
1.7 Preview & Validation
Generate Preview
Tap Generate Preview to see what the next 24 hours of pricing looks like based on your current configuration. The preview shows:
- A summary line with the min, max, and average rates for both import and export
- A table with one row per 30-minute slot showing the slot start time, import rate, and export rate
For Octopus Agile (API) tariffs, the preview fetches live prices from the Octopus API and displays real half-hourly rates. Slots where prices have not yet been published - typically from 11 PM onwards, until Octopus releases the next day's prices after 4 PM - are filled with the equivalent slot from the previous day as a best-guess estimate. These estimated slots are marked with a ~ symbol and a light grey background. The Est. column header only appears when at least one estimated slot is shown.
This is the best way to verify your tariff is configured correctly before saving.
Validation
BatteryWiz validates your tariff automatically before saving. You may see:
- Validation Errors (red) - Must be fixed before saving. Common errors: missing tariff name, invalid timezone, empty currency code, overlapping rate windows on the same days.
- Warnings (amber) - Non-blocking issues that may affect results but don't prevent saving (e.g., a rate window with no days selected).
How overlap detection works: The app checks every pair of windows that share at least one day. Because end times are exclusive (half-open intervals), adjacent windows like 02:00-05:00 and 05:00-07:00 are not considered overlapping. Windows that cross midnight (e.g., 23:00-02:00) are handled correctly.
Note on window priority: If windows somehow share the same time range (different import/export side), windows are evaluated in list order - the first matching window wins. This is also how rate resolution works for each 30-minute optimisation slot: the slot's start time is looked up against the windows, and the first match determines the rate.
1.8 Saving Your Tariff
At the bottom of the page:
- Cancel - Reloads the last saved tariff, discarding any changes
- Save - Validates and persists your tariff configuration. The save button is disabled while a save is in progress.
2. Settings Page
The Settings page configures everything except your electricity rates - your battery hardware, inverter connection, solar forecast, scheduling behaviour, and more.
2.1 General & Scheduling
Timezone
Enter your IANA timezone identifier (e.g., Europe/London).
Note: In the latest release, the app uses your device's system timezone for all time-based operations - tariff window interpretation, scheduling, forecast alignment, and display. This setting is saved but not yet active. A future update will allow overriding the system timezone, which is useful if you travel away from the location of your inverter or manage a site in a different timezone to your device.
Common timezone IDs:
| Region | Timezone ID |
|---|---|
| UK | Europe/London |
| US Eastern | America/New_York |
| US Pacific | America/Los_Angeles |
| Central Europe | Europe/Berlin |
| Australia Eastern | Australia/Sydney |
| India | Asia/Kolkata |
| Japan | Asia/Tokyo |
Tip: Use the IANA format (e.g.,
Europe/London), not the Windows format (e.g., "GMT Standard Time"). The app validates your entry and will show an error if the timezone is unrecognised.
Slot Duration & Horizon
These fields are fixed and cannot be changed:
- Slot Duration: 30 minutes - each optimization time slot is 30 minutes long
- Horizon: 48 slots - the optimizer looks 24 hours ahead (48 × 30 min)
These are displayed for informational purposes so you understand how the optimizer segments the day.
Enable Automatic Optimization Runs
When enabled, BatteryWiz will automatically run the optimization and (if configured) send commands to your inverter at regular intervals. Runs are aligned to clock boundaries (e.g., 3:00, 3:30, 4:00).
On Android, BatteryWiz uses AlarmManager with exact timing combined with a short foreground service to run optimizations at precise 30-minute boundaries - even when the device is in Doze mode. This is significantly more reliable than the older WorkManager-only approach.
- Auto-run interval: Fixed at 30 minutes
- Requires: Premium subscription (free trial or paid). A gating message will appear if you're on the free tier.
Android Scheduling Mode
On Android 12 and later, BatteryWiz requests the "Schedule exact alarms" permission to enable precise timing. When this permission is granted, the app operates in AlarmManager mode - schedules fire at exact clock boundaries and are not subject to OS deferral. A background watchdog alarm (every 2 hours) automatically re-arms the scheduler if it was interrupted, so silent failures are self-healing.
If the exact alarm permission is not granted (or is later revoked), the app falls back to WorkManager mode. In this mode, Android's Doze, App Standby, and OEM battery-management layers (Samsung Device Care, MIUI, etc.) may defer a run by several minutes past its scheduled boundary. For this reason, in WorkManager fallback mode it is recommended to set Slots to Apply Per Run to 3 or more (see Slots to Apply Per Run below) so the inverter still has valid upcoming commands even if the next auto-run is delayed. A banner will appear in Settings indicating which mode is active.
Granting exact alarm permission (Android 12+): When you first enable Auto-Run, the app will prompt you to open the system Alarms & reminders settings screen. Tap the BatteryWiz entry and enable it. This is a standard Android system screen - it is not a security risk.
Note: On Android, ensure BatteryWiz is allowed to run in the background via the device's App info → Battery settings (enable background activity / disable battery optimisation for the app).
For best reliability, set Background battery usage to "Unrestricted" in App info. This applies regardless of scheduling mode and helps prevent OEM battery-management layers (Samsung Device Care, MIUI, etc.) from terminating background execution prematurely.
When disabled, you must manually trigger optimization runs from the Dashboard.
2.2 Subscription Status
This section shows your current subscription tier and lets you manage it.
Status Badge
Displays one of:
| Badge | Meaning |
|---|---|
| Lifetime | You have a lifetime premium licence |
| Premium | Active paid subscription |
| Trial | Free trial in progress (shows days remaining) |
| (no badge) | Free tier |
Action Buttons
- Manage - Opens the Premium & Free Trial page where you can subscribe or manage your plan
- Refresh - Re-checks your subscription status (useful after redeeming a promo code or completing a purchase)
Promo Codes
If you have a promotional code, redeem it through your device's app store (Google Play or Apple App Store), then tap Refresh in this section to update your status.
2.3 Battery & Inverter Constraints
These settings describe the physical characteristics of your battery system. Accurate values are essential for the optimizer to produce realistic schedules.
Battery Capacity (kWh)
The total usable capacity of your battery in kilowatt-hours. Check your inverter's spec sheet or monitoring portal.
| Example System | Typical Value |
|---|---|
| FoxESS ECS4100 (single) | 4.1 kWh |
| FoxESS ECS4100 (double stack) | 8.2 kWh |
| Tesla Powerwall 2 | 13.5 kWh |
| GivEnergy 9.5 | 9.5 kWh |
Default: 8.6 kWh
Min SOC (%)
The minimum state of charge the optimizer should maintain, as a percentage. This protects your battery from deep discharge and ensures a reserve for unexpected usage.
- Set this to your inverter's recommended minimum (often 10-20%)
- Setting it higher preserves more emergency backup capacity
Default: 20%
Max SOC (%)
The maximum state of charge the optimizer will target. Most systems use 100%, but some users cap it lower to extend battery longevity.
Default: 100%
Validation: Min SOC must be less than Max SOC. Both must be between 0% and 100%.
Max Charge Power (kW)
The maximum rate at which your battery can charge from the grid or solar, in kilowatts. This is determined by your inverter hardware.
Default: 4.5 kW
Max Discharge Power (kW)
The maximum rate at which your battery can discharge to power your home or export, in kilowatts.
Default: 3.4 kW
Tip: You can find these values on your inverter's datasheet or in the manufacturer's monitoring app. If your inverter supports different rates for AC and DC coupling, use the AC-coupled rate.
Charge Efficiency (%)
The round-trip charging efficiency of your battery. A value of 95% means that for every 1 kWh drawn from the grid, 0.95 kWh is actually stored in the battery.
Default: 95%
Discharge Efficiency (%)
The discharge-side efficiency. A value of 95% means for every 1 kWh discharged from the battery, 0.95 kWh is delivered to your home.
Default: 95%
Note: The combined round-trip efficiency at the defaults is 95% × 95% ≈ 90.25%, which is typical for modern lithium battery systems.
Degradation Penalty
A cost per kWh of battery cycling that the optimizer adds to discourage unnecessary charge/discharge cycles. This models real-world battery wear.
- The unit label adapts to your tariff currency (e.g., "p/kWh" for GBP, "$/kWh" for USD)
- Higher values make the optimizer more conservative about cycling
- Set to
0to ignore degradation costs entirely
Default: 7 (in the tariff's native rate unit - e.g., 7p/kWh for GBP tariffs)
Guidance: A reasonable range is 3-10 p/kWh (or equivalent). If your battery has a long warranty and you don't mind cycling, use the lower end. If you want to preserve your battery, use the higher end.
Care: Don't set the degradation penalty so high that it outweighs real savings - otherwise the optimizer may avoid charging when electricity is cheap and discharging when import prices are high or export opportunities are favourable. As a rule of thumb, keep the penalty smaller than the price difference between your best charging cost and either your peak import rate or the best export rate.
Export Limit (kW)
The maximum power you're allowed to export to the grid, in kilowatts. This must comply with the limit set by your Distribution Network Operator (DNO) or local regulations.
- In the UK, the G98/G99 limit is typically 3.68 kW for single-phase domestic installations
- The optimizer will never schedule exports exceeding this value
Default: 3.4 kW
Battery Buffer SOC (% points)
An additional SOC buffer (percentage points) that the optimizer reserves when creating schedules to provide headroom for real‑time variability. For example, if the battery is prioritized over grid and a slot's plan would leave the battery at X% SOC and the buffer is Y%, the optimizer reserves Y percentage points so the battery can fall up to Y points below the predicted X% if needed to handle unexpected changes such as:
- a shortfall in actual solar generation compared with the forecast, or
- a sudden increase in household load above the forecast.
Default: 2.0 percentage points
2.4 Behaviour
Send Commands to Inverter
Controls whether optimization results are actually sent to your inverter:
- Off (default): Simulation mode - the app computes optimal schedules and displays them on the Dashboard, but does not change your inverter settings. Use this to verify the optimizer's decisions before going live.
- On: Live mode - scheduled commands are sent to the inverter via its cloud API. Requires Premium subscription.
Recommendation: Start with this off and review the optimizer's recommendations on the Dashboard for a few days before enabling live control.
Slots to Apply Per Run (1-5)
The number of 30-minute time slots to schedule per optimization run:
- Slot 1 is applied immediately
- Slots 2-N are scheduled on the inverter for future execution
| Value | Behaviour |
|---|---|
| 1 | Only the current slot is applied. New optimization required every 30 min. |
| 3 (default) | Current slot + 2 future slots (1.5 hours ahead). Good balance of responsiveness and stability. |
| 5 | Current slot + 4 future slots (2.5 hours ahead). More stable. |
In simulation mode, all N slots are computed and displayed but not sent to the inverter.
Note: each time the optimizer runs it overwrites any previously scheduled future slots on the inverter; applying multiple slots ensures the inverter still has valid upcoming commands if a subsequent auto-run is delayed.
On Android in the default AlarmManager mode, 2 slots is usually sufficient due to the improved timing precision, though 3 remains the recommended default for extra resilience. If the app is operating in WorkManager fallback mode (exact alarm permission not granted), choosing 3 or more slots is strongly recommended to reduce the risk of missed updates when the OS defers an auto-run.
2.5 Inverter Integration
This section configures the connection to your inverter's cloud API so BatteryWiz can read battery status and send control commands.
Enable Inverter Integration
Toggle this on to connect to your inverter. When disabled, BatteryWiz operates in offline/simulation mode with no inverter communication.
Inverter Vendor
Select your inverter manufacturer:
| Vendor | Status |
|---|---|
| None | No integration (default) |
| FoxESS Cloud | Supported - connects via FoxESS Cloud API |
More vendors (SolarEdge, GivEnergy, Huawei, SMA, Enphase) are planned for future releases.
Display Name
A friendly name for your inverter (e.g., "My FoxESS H3" or "Garage Inverter"). This is for your reference only.
Device ID
A generic device identifier. For FoxESS, this is typically your inverter's serial number.
FoxESS Cloud Settings
These fields appear when FoxESS Cloud is selected as the vendor.
API Base URL
The FoxESS Cloud API endpoint. Leave as the default unless directed otherwise by FoxESS support.
Default: https://www.foxesscloud.com
API Key
Your FoxESS private token for authentication. You can find this in the FoxESS Cloud portal under your account settings.
- The key is stored securely in your device's encrypted keychain/keystore - it is never stored in plain text
- After saving, the field shows "Saved" and is cleared for security
- Use the Clear button to remove a saved key
How to get your API key: Log in to foxesscloud.com → click your profile icon → User Profile → API Management → Optionally generate a new key and copy your API key.
Language
The language code for API requests. Default is en (English).
User Agent
The user agent string sent with API requests. Default is HomeEnergyOptimizer/1.0. You generally don't need to change this.
Plant ID (Optional)
Your FoxESS plant identifier. If you only have one plant, this can be left blank and will be detected automatically.
Device Serial Number
Your inverter's serial number. This identifies which inverter to send commands to. You can find this:
- On the physical label on your inverter
- In the FoxESS Cloud portal under your plant's device list
Validation: The app will warn if the serial number is not set, as it's needed for sending commands.
2.6 Solcast PV Forecast
BatteryWiz uses Solcast to predict your solar generation, which is critical for the optimizer to know when free solar energy will be available.
Enable Solcast Integration
Toggle on to use Solcast solar forecasts. When disabled, the optimizer assumes zero solar generation.
API Key
Your Solcast API key. Get one free at solcast.com - the free "Home User" tier provides 10 API calls per day, which is sufficient for BatteryWiz.
- Stored securely in your device's encrypted keychain/keystore
- After saving, shows "Saved" status
- Use Clear to remove a saved key
How to get your Solcast API key: Sign up at toolkit.solcast.com.au → Create a free rooftop site matching your location and panel specs → copy the API key from your account page.
Site ID / Resource ID
The unique identifier for your Solcast rooftop site. After creating a site in the Solcast dashboard, you'll find this ID on the site's detail page.
Important: Make sure the rooftop site in Solcast matches your actual panel orientation, tilt, and capacity for accurate forecasts.
Use Synthetic PV Data (Developer)
A testing option that generates simulated solar data instead of calling the Solcast API. Leave this off unless you're testing out how test solar data integrates in the app's solver. This is a relic of development and will be removed in a future release.
Rate Limiting
These settings prevent you from exceeding your Solcast API quota:
Refresh Interval (hours)
The minimum time between Solcast API calls. The app caches the latest forecast and reuses it until this interval elapses.
| Value | Calls/Day (approx.) | Recommendation |
|---|---|---|
| 0.5 | ~48 | Only for paid Solcast plans |
| 2.0 (default) | ~12 | Good for free tier if budget allows |
| 4.0 | ~6 | Conservative, suitable for free tier |
| 8.0 | ~3 | Very conservative |
Default: 2 hours
Valid range: 0.5 - 24 hours
Daily Call Budget
The maximum number of Solcast API calls per UTC day. Set to 0 for unlimited (not recommended on the free tier).
Default: 10 (matches the Solcast free tier limit)
Consistency check: If your refresh interval would result in more calls than your daily budget, some refreshes will be skipped, and a validation warning will appear.
Forecast Estimate Preference
Choose which statistical estimate from Solcast's forecast to use:
| Option | Percentile | Behaviour |
|---|---|---|
| Pessimistic | 10th | Assumes lower solar generation. The optimizer will be more cautious and may charge from the grid more often. Good for reliability. |
| Median (default) | 50th | The most likely outcome. Balanced approach. |
| Optimistic | 90th | Assumes higher solar generation. The optimizer will rely more on solar and charge from the grid less. Risk of deficit if clouds appear. |
Recommendation: Start with Median. Switch to Pessimistic if you find that Solcast usually overestimates your solar generation, or Optimistic if it usually underestimates it. This can be inferred by occasionally comparing sum of the past 24 hours solar forecast shown in the Solcast section of BatteryWiz's dashboard against actual solar generation recorded in your inverter's app. It might be worth cross-checking that the rooftop site in Solcast matches your actual solar panel orientation, tilt, and capacity to improve the solar forecasts.
2.7 Load Forecasting
BatteryWiz automatically learns your household energy consumption patterns over time. No configuration is needed - this section provides visibility into the forecaster's state and tools for backup/restore.
Forecaster Status
Shows whether the forecaster has completed its "warm start" (initial learning period) and how many 30-minute time slots it has processed.
- "Awaiting warm start" - Not enough data yet. The forecaster will use a fixed baseline until it has observed enough slots.
- "Ready (X slots learned)" - The forecaster is actively predicting your load. More slots = better accuracy.
Export / Import / Reset
| Button | Purpose |
|---|---|
| Export | Save the forecaster's learned model to a JSON file. Useful for backup or transferring to a new device. |
| Import | Load a previously exported model. Restores learned patterns without needing to re-learn. |
| Reset | Erases all learned data. The forecaster will start from scratch. A confirmation dialog prevents accidental resets. |
Tip: Export your forecaster state periodically as a backup. If you switch devices, import the state file on the new device to avoid the cold-start learning period.
2.8 Saving Your Settings
At the bottom of the Settings page:
| Button | Action |
|---|---|
| Restore Defaults | Resets all fields to factory defaults (does not save - you must tap Save to persist) |
| Cancel | Reloads the last saved settings, discarding all changes |
| Save | Validates all fields and persists your settings. API keys are stored securely. If auto-run is enabled, the scheduler is updated immediately. |
After a successful save, a "Settings saved successfully!" message appears briefly.
Validation
The Settings page validates your configuration before saving:
- Errors (red) block saving - e.g., invalid timezone, SOC min ≥ SOC max, missing API key when inverter is enabled
- Warnings (amber) allow saving but flag potential issues - e.g., unusually high battery capacity, Solcast enabled without credentials
Quick-Start Checklist
Use this checklist to verify you've configured everything needed for the optimizer to run:
- Tariff Page: Tariff name set
- Tariff Page: Correct currency selected
- Tariff Page: Import rates configured (default rate + any time-of-use windows, or Octopus Agile (API) selected)
- Tariff Page: Export rates configured (or default left at 0 if no export tariff)
- (Octopus Agile only) Tariff Page: GSP region set - use the postcode lookup if unsure
- (Octopus Agile only) Tariff Page: Fallback rate set for each Agile direction (import and/or export)
- (Octopus Agile only) Tariff Page: Tap Refresh Agile Prices Now and confirm the status line shows a successful fetch
- Tariff Page: Preview looks correct - for Agile, verify live prices appear and the ~ indicator shows where estimates are used
- Tariff Page: Saved successfully
- Settings: Timezone set correctly
- Settings: Battery capacity matches your system
- Settings: Min/Max SOC set to your preferences
- Settings: Charge and discharge power limits match your inverter
- Settings: Degradation penalty set (or 0 if you don't want to model battery wear)
- Settings: Export limit compliant with your DNO/regulations
- Settings: Solcast enabled with API key and Site ID (if you have solar panels)
- Settings: Inverter integration enabled with correct vendor settings and API key (when ready for live control)
- Settings: Saved successfully
Once both pages are saved and validated, head to the Dashboard to run your first optimization!
3. Frequently Asked Questions
3.1 What happens if I leave the default rate at 0?
A default rate of 0 means the optimizer treats any time outside your rate windows as free electricity. If you don't have windows covering all 24 hours, make sure the default rate is set to your standard/daytime rate.
3.2 Can I have overlapping rate windows?
No - overlapping windows that share the same days are flagged as validation errors and will block saving. The app checks every pair of windows within each direction (import/export) and enforces non-overlapping half-open intervals. Adjacent windows (e.g., 02:00-05:00 followed by 05:00-07:00) are fine because end times are exclusive.
3.3 What if I don't have solar panels?
Leave Solcast disabled in Settings. The optimizer will still work - it just won't factor in solar generation. You'll benefit from time-of-use rate optimization and battery arbitrage.
3.4 What if I change my tariff?
Go to the Tariff page, update your rates, tap Generate Preview to verify, then Save. Changes take effect on the next optimization run.
3.5 Why is Auto-Run greyed out?
Auto-Run and Send Commands to Inverter require a Premium subscription. Start a free 60-day trial from the Subscription section or the trial banner at the top of the page.
3.6 What's the difference between Simulation and Live mode?
In Simulation mode (Send Commands to Inverter = off), the optimizer computes and displays optimal schedules but doesn't touch your inverter. In Live mode (on), it actively controls your inverter's charge/discharge behaviour via the cloud API.
3.7 What does the ~ symbol mean in the Agile preview?
A ~ symbol on a preview row means the price shown is an estimate - the actual Octopus Agile price for that slot has not been published yet. BatteryWiz fills the gap using the price from the same half-hour slot the day before as a best guess. Octopus typically publishes the next day's prices after 4 PM UK time; once published, the ~ slots will show real prices on the next preview or optimization run.
3.8 When are Octopus Agile prices refreshed?
Prices are fetched automatically:
- On every optimization run - so the optimizer always uses the freshest available prices.
- On every Generate Preview tap - so the preview reflects current prices.
- After 4 PM UK time - the app checks for the next day's prices once Octopus publishes them.
You can also force an immediate refresh using the Refresh Agile Prices Now button in the Octopus Agile Configuration section.
3.9 What happens if Agile prices can't be fetched?
It depends on whether BatteryWiz has any cached prices:
- Cached prices exist - the optimizer uses the cached data. For slots where the next day's prices haven't been published yet, it fills in yesterday's prices for the same half-hour slot as a best estimate (shown with ~). The fallback rate is not used.
- No cached prices at all (e.g., first launch with no internet connection) - BatteryWiz falls back to the Agile Fallback Rate you configured, so the optimizer can still run with a sensible fixed rate.
In practice, the fallback rate is only ever needed on a clean install before a successful fetch has completed. Once prices have been retrieved at least once, the cache is sufficient to cover any future API outages.
3.10 Can I use Octopus Agile for import but a fixed rate for export (or vice versa)?
Yes - import and export pricing types are configured independently. You can set import to Octopus Agile (API) and leave export on Fixed Windows (or vice versa), and both will work correctly. The refresh button and automatic refresh will only update the direction(s) that use Agile pricing.