Repository navigation
Commit d654e10
committed
feat(forecast): add weather-based solar PV forecast (Option A)
- New collector/forecast.py: fetches Open-Meteo hourly weather, computes
clear-sky PV via pvlib for array tilt/azimuth, applies cloud cover and
bifacial gain, stores predicted watts.
- Adds forecast settings (lat/lon, array kWp/azimuth/tilt/bifacial gain,
provider, horizon, refresh interval) with UI metadata.
- New MariaDB table lux_solar_forecast and /api/forecast endpoint.
- Writes same forecast to InfluxDB as 'PV power predicted' and
'Cloud cover' so existing Grafana panels render it.
- Dashboard card shows next 24h peak and today's predicted kWh.
- Refresh scheduler piggybacks the collector writer loop.
Specs for this deployment: 1.56 kWp, due south, 21° tilt, 10% bifacial
gain, Waller TX (30.0591N, -95.9324W).1 parent 802ac8c commit d654e10
7 files changed
Lines changed: 615 additions & 1 deletion
File tree
- api
- static
- collector
- docker
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
441 | 441 | | |
442 | 442 | | |
443 | 443 | | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
444 | 492 | | |
445 | 493 | | |
446 | 494 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
| 152 | + | |
| 153 | + | |
152 | 154 | | |
153 | 155 | | |
154 | 156 | | |
| |||
704 | 706 | | |
705 | 707 | | |
706 | 708 | | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
707 | 746 | | |
708 | 747 | | |
709 | 748 | | |
| |||
1270 | 1309 | | |
1271 | 1310 | | |
1272 | 1311 | | |
| 1312 | + | |
1273 | 1313 | | |
1274 | 1314 | | |
1275 | 1315 | | |
1276 | | - | |
| 1316 | + | |
1277 | 1317 | | |
1278 | 1318 | | |
1279 | 1319 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
432 | 432 | | |
433 | 433 | | |
434 | 434 | | |
| 435 | + | |
435 | 436 | | |
436 | 437 | | |
437 | 438 | | |
| |||
703 | 704 | | |
704 | 705 | | |
705 | 706 | | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
706 | 710 | | |
707 | 711 | | |
708 | 712 | | |
709 | 713 | | |
710 | 714 | | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
711 | 764 | | |
712 | 765 | | |
713 | 766 | | |
| |||
0 commit comments