- app/integrations/tibber/client.py: fetch_price_range/fetch_current_price (priceInfoRange QUARTER_HOURLY, startsAt->UTC, no fixed node count assumption), TibberError/TibberAuthError; token never logged or put in exception text. - app/services/tibber_prices.py: refresh_prices upserts by starts_at (idempotent), no-op unless an active kind=tibber contract + token exist. - main.py: hourly tibber-refresh job (existing jobs/MQTT untouched). Tests added.
11 lines
330 B
Python
11 lines
330 B
Python
"""Tibber dynamic electricity pricing integration.
|
|
|
|
This package provides:
|
|
- ``client``: HTTP client for the Tibber GraphQL API (price fetching).
|
|
- Custom exceptions: ``TibberError`` (base) and ``TibberAuthError`` (auth failure).
|
|
|
|
Usage::
|
|
|
|
from app.integrations.tibber.client import fetch_price_range, TibberAuthError
|
|
"""
|