📊 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
£37.27
Per Month
£453.49/year
⚡ Grid Avoided
10.8 kWh
Per Day (avg)
323.6 kWh over 30 days
☀️ Solar Captured
12.2 kWh
Per Day (avg)
Currently exported, would be stored
🌱 Self-Sufficiency
Current → With Battery
📅 Est. Payback
11.0 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
£79.41
Per Month
Solar + Arbitrage: £966.19/year
📅 Improved Payback
5.2 years
With Arbitrage
vs 11.0 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: £115.16/month
🏆 Best for Battery
Octopus Flux
Battery savings: £115.16/month
| Tariff |
Spread |
Arbitrage |
Solar |
Monthly |
Payback |
|
🥇 Octopus Flux
Best for battery export
|
22.6p
|
£42.14 |
£91.32 |
£115.16 |
3.6 yrs |
|
🥈 Octopus Go
Best for EV charging
|
22.6p
|
£42.25 |
£64.14 |
£106.39 |
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":"6a51878162ef2","date":"2026-07-10","timestamp":1783641600,"solar_kwh":3.955,"grid_kwh":12.609,"solar_export_kwh":2.929,"heat_pump_kwh":4.288,"rest_of_house_kwh":8.321,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":3.955,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: shelly_em, shelly_205","sources":["shelly_em","shelly_205"],"from_shelly":true,"usage_by_rate":{"cheap_kwh":6.783,"peak_kwh":0.062,"day_kwh":5.764},"solar_source":"shelly_205","net_grid_kwh":9.68,"self_sufficiency":7.52,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":2.8,"export_income":0.29,"cost_method":"half-hourly","total_cost":3.13,"cost_without_solar":4.47,"savings":1.34,"blended_rate":28.22},{"id":"6a52d901f0a51","date":"2026-07-11","timestamp":1783728000,"solar_kwh":13.731,"grid_kwh":24.898,"solar_export_kwh":9.706,"heat_pump_kwh":10.587,"rest_of_house_kwh":14.311,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":13.731,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: shelly_em, shelly_205","sources":["shelly_em","shelly_205"],"from_shelly":true,"weather_code":51,"temp_max":14.5,"temp_min":12.1,"temperature":13.3,"sunrise":"04:23","sunset":"22:13","sunshine_hours":0,"precipitation":0.3,"uv_index":2.5,"cloud_cover":100,"daylight_hours":17.83,"solar_source":"shelly_205","net_grid_kwh":15.192,"self_sufficiency":13.92,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":7.03,"export_income":0.97,"cost_method":"estimated","total_cost":6.68,"cost_without_solar":8.78,"savings":2.1,"blended_rate":28.22},{"id":"6a542a81d3c9a","date":"2026-07-12","timestamp":1783814400,"solar_kwh":31.694,"grid_kwh":32.653,"solar_export_kwh":43.844,"heat_pump_kwh":11.072,"rest_of_house_kwh":21.581,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":31.694,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: shelly_em, shelly_205","sources":["shelly_em","shelly_205"],"from_shelly":true,"solar_source":"shelly_205","net_grid_kwh":-11.191000000000003,"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":9.21,"export_income":4.38,"cost_method":"estimated","total_cost":5.45,"cost_without_solar":9.83,"savings":4.38,"blended_rate":28.22},{"id":"6a557c01c9b8b","date":"2026-07-13","timestamp":1783900800,"solar_kwh":55.628,"grid_kwh":40.169,"solar_export_kwh":25.327,"heat_pump_kwh":10.871,"rest_of_house_kwh":29.298,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":55.628,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: shelly_em, shelly_205","sources":["shelly_em","shelly_205"],"from_shelly":true,"weather_code":3,"temp_max":16.3,"temp_min":5.3,"temperature":10.8,"sunrise":"04:26","sunset":"22:10","sunshine_hours":15.57,"precipitation":0,"uv_index":4.65,"cloud_cover":16,"daylight_hours":17.73,"usage_by_rate":{"cheap_kwh":27.303,"peak_kwh":2.394,"day_kwh":10.472},"solar_source":"shelly_205","net_grid_kwh":14.841999999999995,"self_sufficiency":43,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":8.52,"export_income":2.53,"cost_method":"half-hourly","total_cost":6.61,"cost_without_solar":20.51,"savings":13.9,"blended_rate":28.22},{"id":"6a56cd8173086","date":"2026-07-14","timestamp":1783987200,"solar_kwh":2.672,"grid_kwh":7.951,"solar_export_kwh":52.397,"heat_pump_kwh":7.128,"rest_of_house_kwh":0.823,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":2.672,"shelly_battery_kwh":0,"octopus_consumption_kwh":null,"octopus_cost":null,"meter_variance_kwh":null,"meter_variance_percent":null,"notes":"Auto-imported: shelly_em, shelly_205","sources":["shelly_em","shelly_205"],"from_shelly":true,"weather_code":3,"temp_max":16,"temp_min":9.5,"temperature":12.75,"sunrise":"04:28","sunset":"22:09","sunshine_hours":13.1,"precipitation":0,"uv_index":4.5,"cloud_cover":58,"daylight_hours":17.68,"solar_source":"shelly_205","net_grid_kwh":-44.446,"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":2.24,"export_income":5.23,"cost_method":"estimated","total_cost":-2.37,"cost_without_solar":2.86,"savings":5.23,"blended_rate":28.22},{"id":"6a581f013035f","date":"2026-07-15","timestamp":1784073600,"solar_kwh":0,"grid_kwh":30.746,"solar_export_kwh":41.633,"heat_pump_kwh":6.329,"rest_of_house_kwh":24.418,"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: shelly_em","sources":["shelly_em"],"from_shelly":true,"usage_by_rate":{"cheap_kwh":18.992,"peak_kwh":0.045,"day_kwh":11.709},"solar_source":"none","net_grid_kwh":-10.887000000000004,"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":6.54,"export_income":4.16,"cost_method":"half-hourly","total_cost":3,"cost_without_solar":9.3,"savings":6.3,"blended_rate":28.22},{"id":"6a63fc8223932","date":"2026-07-24","timestamp":1784851200,"solar_kwh":196.49,"grid_kwh":215.15,"solar_export_kwh":133.958,"heat_pump_kwh":83.056,"rest_of_house_kwh":132.094,"battery_kwh":0,"battery_soc":0,"shelly_solar_kwh":196.49,"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, shelly_205","sources":["tigo_api","shelly_em","shelly_205"],"from_shelly":true,"solar_source":"shelly_205","net_grid_kwh":81.19200000000001,"self_sufficiency":22.52,"tariff":"Octopus Flux","rates":{"day":28.22,"cheap":16.93,"peak":39.51},"standing_charge":0.6168,"export_rate":9.98,"energy_cost":60.72,"export_income":13.37,"cost_method":"estimated","total_cost":47.97,"cost_without_solar":78.98,"savings":31.01,"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' }
}
}
}
});
*/