2025-12-30 22:08:21 +01:00
|
|
|
# Home Assistant - Add-on Configuration
|
|
|
|
|
# -------------------------------------
|
|
|
|
|
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-configuration
|
|
|
|
|
#
|
|
|
|
|
# The Akkudoktor-EOS add-on repo is special because there is only one add-on and it is in
|
|
|
|
|
# the root directory (no add-on folder as usual).
|
|
|
|
|
|
|
|
|
|
name: "Akkudoktor-EOS"
|
feat: add cloud PV forecast providers: pvnode.com, forecast-solar and solcast (#1150)
This PR adds three native PV power forecast providers, giving operators more
cloud forecast sources to choose from via pvforecast.provider, alongside the
existing PVForecastAkkudoktor, PVForecastVrm and PVForecastImport:
PVForecastPVNode — native 15-minute forecasts from the pvnode.com
V2 API. Saved-site mode (GET /v2/forecast/{site_id}) where the operator enters their API key +
site id, or inline mode (POST /v2/forecast/inline) using the configured planes.
PVForecastForecastSolar — the free Forecast.Solar API (no key
required for the public endpoint). Multi-plane systems issue one request per plane and the
instantaneous powers are summed per timestamp.
PVForecastSolcast — the Solcast rooftop-site API (API key + resource id).
Implementation notes
All three populate the existing pvforecast_ac_power (and mirror pvforecast_dc_power)
prediction keys, so they slot into the optimizer unchanged.
Timezone handling: pvnode and Forecast.Solar return site-local wall-clock timestamps with an
IANA timezone field, which are resolved to absolute instants before resampling; Solcast returns
UTC period_end and is normalised to the period start.
Each provider follows the existing provider pattern (provider_id(), _request_forecast() with
@cache_in_file, _update_data()), is registered in pvforecast.py and prediction.py, and is
upstream-neutral.
Validation
27 unit tests (timezone resolution, null/zero handling, kW→W and period-start conversion,
azimuth conversion, multi-plane summation, request URL/auth, HTTP-error handling).
ruff check (F/D/S/bandit) and ruff format clean.
Each provider was additionally validated against its live API with a real plant, confirming
the response shapes (pvnode: 288 native 15-min slots; Forecast.Solar: instantaneous watts;
Solcast: kW estimates with period_end/PT30M).
Documentation
Provider descriptions and configuration examples added to docs/akkudoktoreos/prediction.md.
CHANGELOG.md entry under Unreleased.
Regenerated docs/_generated/configpvforecast.md and configexample.md.
Notes for reviewers
Forecast.Solar's free endpoint is rate-limited (12 req/hour) and Solcast's free tier limits daily
calls; both providers rely on the standard 1-hour cache_in_file TTL to stay within budget.
Authors:
The code is created by Christin. Only minor adaptions by Bobby.
Signed-off-by: Christin <info@bikinibottom.capital>
Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
Co-authored-by: Christin <info@bikinibottom.capital>
2026-07-17 16:51:00 +02:00
|
|
|
version: "0.3.0.dev2607161979035365"
|
2025-12-30 22:08:21 +01:00
|
|
|
slug: "eos"
|
|
|
|
|
description: "Akkudoktor-EOS add-on"
|
|
|
|
|
url: "https://github.com/Akkudoktor-EOS/EOS"
|
|
|
|
|
|
|
|
|
|
arch:
|
|
|
|
|
- aarch64
|
|
|
|
|
- amd64
|
|
|
|
|
|
|
|
|
|
startup: "application"
|
|
|
|
|
init: false
|
|
|
|
|
boot: "auto"
|
|
|
|
|
|
|
|
|
|
# Map home assistant persistent folders
|
|
|
|
|
# /data is automatically mapped - do not list here
|
|
|
|
|
map:
|
|
|
|
|
- share:rw
|
|
|
|
|
- config:rw
|
|
|
|
|
|
|
|
|
|
# API access
|
|
|
|
|
homeassistant: true
|
|
|
|
|
homeassistant_api: true
|
|
|
|
|
|
|
|
|
|
# Ports exposed by the add-on
|
|
|
|
|
ports:
|
|
|
|
|
8503/tcp: 8503
|
|
|
|
|
# 8504/tcp: 8504
|
|
|
|
|
|
|
|
|
|
ports_description:
|
|
|
|
|
8503/tcp: "EOS REST server"
|
|
|
|
|
# 8504/tcp: "EOSdash dashboard server"
|
|
|
|
|
|
|
|
|
|
# EOSdash interface (if not ingress)
|
|
|
|
|
# webui: "http://[HOST]:[PORT:8504]"
|
|
|
|
|
|
|
|
|
|
# EOSdash by ingress
|
|
|
|
|
ingress: true
|
|
|
|
|
ingress_port: 8504
|
|
|
|
|
ingress_stream: true
|
|
|
|
|
panel_icon: "mdi:web"
|
|
|
|
|
|
|
|
|
|
# EOS uses several directories under /data - config, cache, output
|
|
|
|
|
backup_exclude:
|
|
|
|
|
- /data/cache
|
|
|
|
|
- /data/output
|
|
|
|
|
|
|
|
|
|
# We do not use options
|
|
|
|
|
options: {}
|
|
|
|
|
schema: {}
|