📊 Energy Analytics
Comprehensive energy flow analysis with battery, solar, and consumption metrics
No analytics data available. Battery data will appear after running smart_merge.php
🔋 Battery Storage
Solar battery storage system • Watten, Scottish Highlands
🔧
Duracell Battery System
Battery integration in progress • API connectivity being established
🔋
Battery Storage System
Installation Scheduled: February 2026
Warning: Undefined variable $hanchuConnected in
/var/www/html/index.php on line
2504
Battery Capacity
15 kWh
3× Duracell Dura5 5.12kWh
Solar System
12.6 kW
28 × 450W Panels
Inverters
2× Dura-i
Hybrid Master/Slave
📊 Battery Simulation (Based on Last 30 Days)
What would an 18.8kWh battery save you based on your actual usage patterns?
💷 Projected Savings
£36.70
Per Month
£446.53/year
⚡ Grid Avoided
10.4 kWh
Per Day (avg)
312.3 kWh over 30 days
☀️ Solar Captured
11.6 kWh
Per Day (avg)
Currently exported, would be stored
🌱 Self-Sufficiency
Current → With Battery
📅 Est. Payback
11.2 years
At ~£5,000 system cost
📈 Simulation Details
Assumptions:
- 15kWh capacity (3× Duracell Dura5 5.12kWh)
- 90% usable capacity (10-100% DoD)
- 90% round-trip efficiency
- Blended rate: 28.42p/kWh
Notes:
- Based on your actual 30-day history
- Real savings may be higher with Flux tariff optimisation
- Doesn't account for seasonal variation
- Summer months will show better returns
⚡ Flux Tariff Arbitrage
Extra savings by charging during Cheap period (16.93p) and discharging during Peak (39.51p)
💰 Arbitrage Spread
29.5p/kWh
Peak (39.51p) - Cheap (16.93p)
After 90% efficiency: 20.3p/kWh profit
🔄 Daily Arbitrage
£1.40
Per Day (est.)
Using ~6.9 kWh for arbitrage
🎯 Combined Savings
£78.84
Per Month
Solar + Arbitrage: £959.23/year
📅 Improved Payback
5.2 years
With Arbitrage
vs 11.2 years solar only
📊 Monthly Savings Breakdown
⏰ Optimal Battery Schedule for Flux
🔋 CHARGE (Cheap: 16.93p)
- 04:00 - 07:00 (3 hours)
- 13:00 - 16:00 (3 hours)
- 22:00 - 00:00 (2 hours)
⚡ DISCHARGE (Peak: 39.51p)
- 16:00 - 19:00 (3 hours)
- Power home from battery
- Avoid expensive peak grid
☀️ SOLAR PRIORITY
- Daytime: Store excess solar
- Evening: Use solar first
- Export only when full
💷 Battery Savings by Tariff
Compare potential battery savings across different Octopus tariffs
✓ Your Current Tariff
Octopus Flux
Battery savings: £112.84/month
🏆 Best for Battery
Octopus Flux
Battery savings: £112.84/month
| Tariff |
Spread |
Arbitrage |
Solar |
Monthly |
Payback |
|
🥇 Octopus Flux
Best for battery export
|
22.6p
|
£42.14 |
£88.12 |
£112.84 |
3.6 yrs |
|
🥈 Octopus Go
Best for EV charging
|
22.6p
|
£42.25 |
£61.89 |
£104.14 |
3.9 yrs |
💡
Key Insights:
- Flux has a 22.58p arbitrage spread plus 28.73p peak export rate
- Go has cheap overnight rates but smaller spread for arbitrage
- Flux offers better export rates which boosts returns if you export
- Agile rates vary - can be very profitable on high-spread days
- Flexible has no arbitrage benefit (flat rate)
📅 Seasonal Projections
Projected battery savings across seasons based on Scottish Highlands solar potential and heating patterns
☀️ Annual Solar
6,325 kWh
Projected generation
🔥 Annual Heat Pump
6,552 kWh
Projected usage
💷 Annual Battery Savings
£389.43
Projected total
📅 Realistic Payback
12.8 years
Seasonal adjusted
Minimal solar, high heating
Good solar, moderate heating
Peak solar, minimal heating
Declining solar, rising heating
🌍
Scottish Highlands Factors:
- Summer: Up to 18+ hours daylight, solar panels can generate 15+ kWh/day. Battery captures excess for evening use.
- Winter: Only ~7 hours daylight with low sun angle. Battery value comes mainly from tariff arbitrage, not solar storage.
- Heat Pump: Major consumer in winter (~35 kWh/day), minimal in summer (~2 kWh for hot water only).
- Best ROI: Summer months provide best battery returns due to excess solar capture.
/* Battery chart disabled - awaiting Duracell integration
const last7Bat = [{"id":"6a123f8180e1d","date":"2026-05-23","timestamp":1779494400,"solar_kwh":36.762,"grid_kwh":21.467,"solar_export_kwh":23.097,"heat_pump_kwh":11.785,"rest_of_house_kwh":9.681,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":0,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: tigo_api, shelly_em","sources":["tigo_api","shelly_em"],"from_shelly":true,"usage_by_rate":{"cheap_kwh":9.301,"peak_kwh":0.015,"day_kwh":12.151},"solar_source":"tigo","net_grid_kwh":-1.6300000000000026,"self_sufficiency":38.9,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":5.01,"export_income":2.3,"cost_method":"half-hourly","total_cost":3.33,"cost_without_solar":10.53,"savings":7.2,"blended_rate":28.22},{"id":"6a1391021c564","date":"2026-05-24","timestamp":1779580800,"solar_kwh":15.085,"grid_kwh":17.477,"solar_export_kwh":5.268,"heat_pump_kwh":9.206,"rest_of_house_kwh":8.271,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":0,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: tigo_api, shelly_em","sources":["tigo_api","shelly_em"],"from_shelly":true,"weather_code":51,"temp_max":17.7,"temp_min":12.2,"temperature":14.95,"sunrise":"04:27","sunset":"21:52","sunshine_hours":1.41,"precipitation":0.7,"uv_index":3.4,"cloud_cover":99,"daylight_hours":17.42,"usage_by_rate":{"cheap_kwh":8.599,"peak_kwh":0.203,"day_kwh":8.675},"solar_source":"tigo","net_grid_kwh":12.209,"self_sufficiency":35.97,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":3.98,"export_income":0.53,"cost_method":"half-hourly","total_cost":4.07,"cost_without_solar":8.32,"savings":4.25,"blended_rate":28.22},{"id":"6a14e2820ce5a","date":"2026-05-25","timestamp":1779667200,"solar_kwh":42.525,"grid_kwh":20.277,"solar_export_kwh":28.464,"heat_pump_kwh":10.817,"rest_of_house_kwh":9.46,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":0,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: tigo_api, shelly_em","sources":["tigo_api","shelly_em"],"from_shelly":true,"weather_code":3,"temp_max":18.5,"temp_min":11.9,"temperature":15.2,"sunrise":"04:26","sunset":"21:53","sunshine_hours":10.83,"precipitation":0,"uv_index":3.2,"cloud_cover":69,"daylight_hours":17.45,"usage_by_rate":{"cheap_kwh":11.821,"peak_kwh":0.292,"day_kwh":8.163},"solar_source":"tigo","net_grid_kwh":-8.186999999999998,"self_sufficiency":40.95,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":4.42,"export_income":2.84,"cost_method":"half-hourly","total_cost":2.2,"cost_without_solar":10.31,"savings":8.11,"blended_rate":28.22},{"id":"6a163401d940d","date":"2026-05-26","timestamp":1779753600,"solar_kwh":20.643,"grid_kwh":22.327,"solar_export_kwh":45.406,"heat_pump_kwh":11.748,"rest_of_house_kwh":10.579,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":20.643,"shelly_battery_kwh":2.75,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: tigo_api, shelly_em, shelly_205","sources":["tigo_api","shelly_em","shelly_205"],"from_shelly":true,"usage_by_rate":{"cheap_kwh":8.579,"peak_kwh":0,"day_kwh":13.748},"solar_source":"shelly_205","net_grid_kwh":-23.078999999999997,"self_sufficiency":0,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":5.33,"export_income":4.53,"cost_method":"half-hourly","total_cost":1.42,"cost_without_solar":6.92,"savings":5.5,"blended_rate":28.22},{"id":"6a17858221301","date":"2026-05-27","timestamp":1779840000,"solar_kwh":66.651,"grid_kwh":24.22,"solar_export_kwh":59.963,"heat_pump_kwh":13.38,"rest_of_house_kwh":10.84,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":66.651,"shelly_battery_kwh":3.259,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: tigo_api, shelly_em, shelly_205","sources":["tigo_api","shelly_em","shelly_205"],"from_shelly":true,"usage_by_rate":{"cheap_kwh":13.147,"peak_kwh":2.787,"day_kwh":8.286},"solar_source":"shelly_205","net_grid_kwh":-35.743,"self_sufficiency":21.64,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":5.67,"export_income":5.98,"cost_method":"half-hourly","total_cost":0.31,"cost_without_solar":9.34,"savings":9.03,"blended_rate":28.22},{"id":"6a18d701ba2c0","date":"2026-05-28","timestamp":1779926400,"solar_kwh":60.382,"grid_kwh":16.284,"solar_export_kwh":55.642,"heat_pump_kwh":9,"rest_of_house_kwh":7.285,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":60.382,"shelly_battery_kwh":4.135,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: tigo_api, shelly_em, shelly_205","sources":["tigo_api","shelly_em","shelly_205"],"from_shelly":true,"usage_by_rate":{"cheap_kwh":10.154,"peak_kwh":0,"day_kwh":6.13},"solar_source":"shelly_205","net_grid_kwh":-39.358000000000004,"self_sufficiency":22.55,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":3.45,"export_income":5.55,"cost_method":"half-hourly","total_cost":-1.48,"cost_without_solar":6.55,"savings":8.03,"blended_rate":28.22},{"id":"6a1a2881de1cf","date":"2026-05-29","timestamp":1780012800,"solar_kwh":14.648,"grid_kwh":20.299,"solar_export_kwh":6.881,"heat_pump_kwh":10.52,"rest_of_house_kwh":9.779,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":14.648,"shelly_battery_kwh":7.039,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: tigo_api, shelly_em, shelly_205","sources":["tigo_api","shelly_em","shelly_205"],"from_shelly":true,"weather_code":3,"temp_max":18,"temp_min":10.9,"temperature":14.45,"sunrise":"04:19","sunset":"22:01","sunshine_hours":6.2,"precipitation":0,"uv_index":3.7,"cloud_cover":78,"daylight_hours":17.7,"usage_by_rate":{"cheap_kwh":6.762,"peak_kwh":3.249,"day_kwh":10.288},"solar_source":"shelly_205","net_grid_kwh":13.418,"self_sufficiency":27.67,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":5.33,"export_income":0.69,"cost_method":"half-hourly","total_cost":5.26,"cost_without_solar":8.54,"savings":3.28,"blended_rate":28.22}];
const datesBat = last7Bat.map(e => new Date(e.date).toLocaleDateString('en-GB', { day: 'numeric', month: 'short' }));
const batData = last7Bat.map(e => e.battery_kwh || 0);
new Chart(document.getElementById('batteryChart'), {
type: 'bar',
data: {
labels: datesBat,
datasets: [{
label: 'Battery kWh',
data: batData,
backgroundColor: '#8b5cf6',
borderRadius: 4
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: { legend: { display: false } },
scales: {
x: { ticks: { color: '#6b6b6b' }, grid: { display: false } },
y: {
ticks: { color: '#6b6b6b' },
grid: { color: '#333333' },
title: { display: true, text: 'kWh', color: '#6b6b6b' }
}
}
}
});
*/