From ca0f9ed1c383cbf9e73d300e592232772dff69d7 Mon Sep 17 00:00:00 2001 From: Lutz Finsterle Date: Mon, 6 Apr 2026 11:19:30 +0200 Subject: [PATCH] house/son: placeholder config for son's installation All house-specific values (IPs, coordinates, Viessmann credentials, kWp) replaced with <...> placeholders. Ready to fill in once hardware is known. Notable differences from house/lutz template: - installation_id left empty (disables WW boost until credentials obtained) - base_load_w set to 400W (adjust after measuring) - forecast lat/lon/declination/azimuth/kwp all require local values Co-Authored-By: Claude Sonnet 4.6 --- configs/ems-config.yaml | 44 +++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/configs/ems-config.yaml b/configs/ems-config.yaml index aafddab..7a45922 100644 --- a/configs/ems-config.yaml +++ b/configs/ems-config.yaml @@ -1,10 +1,11 @@ -# EMS Configuration +# EMS Configuration — house/son +# Fill in all values marked with <...> before deploying. # All thresholds and timing parameters are configurable here. prometheus: - url: "http://192.168.0.23:9090" + url: "http://:9090" - # Metric names from the custom Viessmann exporter + # Metric names from the custom Viessmann exporter (same as house/lutz) metrics: grid_power_exchange: "pcc_transfer_power_exchange_value" # positive = import, negative = export battery_soc: "ess_stateOfCharge_value" # 0-100% @@ -19,32 +20,33 @@ prometheus: # Shelly actuators shelly: sg_ready: - ip: "192.168.42.90" + ip: "" gen: 1 # Gen1: /relay/0?turn=on|off wallbox_a: - ip: "192.168.42.185" + ip: "" gen: 2 # Gen2: /rpc/Switch.Set - power_w: 2000 + power_w: 2000 # rated power of the wallbox (W) password: "" # set Shelly admin password if auth is enabled wallbox_b: - ip: "192.168.42.51" + ip: "" gen: 2 # Gen2: /rpc/Switch.Set - power_w: 4000 + power_w: 4000 # rated power of the wallbox (W) password: "" # set Shelly admin password if auth is enabled # Viessmann API (write access for WW temperature) +# Leave installation_id empty to disable WW boost (EMS runs without it) viessmann: token_file: "/etc/ems/viessmann-token.json" # OAuth2 refresh token - client_id: "5d1235548dfaa01ce37db8f865d2df4d" - installation_id: "1253124" - gateway_serial: "7637415006796210" + client_id: "" + installation_id: "" # leave empty to disable WW boost + gateway_serial: "" device_id: "0" # SOC thresholds — which consumers are allowed at which battery level soc_thresholds: block_all: 50 # below 50%: no consumers sg_ready_only: 70 # 50-70%: only SG-Ready (heating period) - plus_wallbox_a: 90 # 70-90%: + Wallbox A (2kW) + plus_wallbox_a: 90 # 70-90%: + Wallbox A all_consumers: 90 # above 90%: all consumers # Hysteresis settings @@ -68,7 +70,7 @@ thresholds: strategic: forecast_high_kwh: 25 forecast_mid_kwh: 15 - ww_base_c: 48 # normal WW setpoint (°C) + ww_base_c: 48 # normal WW setpoint (°C) — adjust to your heat pump ww_boost_high_c: 5 # +5°C on high-forecast days (>25 kWh) ww_boost_mid_c: 3 # +3°C on medium-forecast days (>15 kWh) ww_window_start: "12:30" # WW boost only allowed from 12:30 @@ -91,16 +93,16 @@ season: # PV forecast — forecast.solar (free, no API key required) forecast: enabled: true - lat: 48.7839 - lon: 9.3889 - declination: 20 # panel tilt in degrees - azimuth: 5 # degrees from south (south=0, west=90, east=-90) - kwp: 7.0 # installed peak power - fetch_interval: "4h" # re-fetch during the day (free tier: 12 req/day → 3 fetches) + lat: # decimal degrees, e.g. 48.7839 + lon: # decimal degrees, e.g. 9.3889 + declination: # panel tilt in degrees from horizontal (0=flat, 90=vertical) + azimuth: # degrees from south (south=0, west=90, east=-90) + kwp: # installed peak power in kWp, e.g. 8.5 + fetch_interval: "4h" # re-fetch during the day (free tier: 12 req/day → 3 fetches) fetch_window_start: "07:00" fetch_window_end: "19:00" - base_load_w: 450 # steady-state house consumption (W) — spikes from kettle/dishwasher are hourly averages and negligible - min_surplus_w: 1800 # min export surplus to trigger wallbox — matches wallbox_a threshold + base_load_w: 400 # steady-state house consumption (W) — measure and adjust + min_surplus_w: 1800 # min export surplus to trigger wallbox charging (W) # EMS operational settings ems: