- app/integrations/pricing: profiles.py (pydantic ManualProfile/TibberProfile, load_profile/list_profiles/validate_values), manual.yaml + tibber.yaml (structure-only, no price values), strategies.py (register/get_strategy, manual dual-tariff + tibber strategies, all Decimal). - tibber strategy matches nearest tibber_price with starts_at <= t0. - tests for profiles + strategies (hand-checked dual-tariff & tibber math).
15 lines
641 B
YAML
15 lines
641 B
YAML
kind: tibber
|
||
label: Tibber 动态电价(15 分钟)
|
||
|
||
energy:
|
||
source: tibber_api # buy = total (from API); sell = total − energy_tax − sell_adjust
|
||
energy_tax: { unit: EUR/kWh } # subtracted from total to derive sell price (incl. VAT)
|
||
sell_adjust: { unit: EUR/kWh, default: 0 } # additional sell-price adjustment (residual spread)
|
||
|
||
standing: # fixed charges; UI fills per month, engine prorates to days
|
||
management_fee: { unit: EUR/month, default: 5.99 }
|
||
network_fee: { unit: EUR/month }
|
||
|
||
credits:
|
||
heffingskorting: { unit: EUR/year } # energy-tax credit; deducted at summary layer
|