FastAPI app that pulls interval usage from Sungrow iSolarCloud (OAuth2), caches AER Consumer Data Right electricity plan data, and compares actual metered usage against every available plan to estimate real annual cost (TOU, tiered feed-in, and flat tariffs). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
28 lines
753 B
Python
28 lines
753 B
Python
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Request
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
from app.config import settings
|
|
|
|
router = APIRouter()
|
|
templates = Jinja2Templates(directory="app/web/templates")
|
|
|
|
|
|
@router.get("/")
|
|
def dashboard(request: Request):
|
|
return templates.TemplateResponse(request, "dashboard.html", {})
|
|
|
|
|
|
@router.get("/plans")
|
|
def plans_page(request: Request):
|
|
return templates.TemplateResponse(request, "plans.html", {})
|
|
|
|
|
|
@router.get("/settings")
|
|
def settings_page(request: Request):
|
|
return templates.TemplateResponse(
|
|
request,
|
|
"settings.html",
|
|
{"use_mock_isolarcloud": settings.use_mock_isolarcloud, "isolarcloud_auth_mode": settings.isolarcloud_auth_mode},
|
|
)
|