EMS för Fronius GEN24 i Home Assistant – peak shaving, tariff & säkringsskydd
Home Assistant • Fronius GEN24 • Modbus TCP

EMS för Fronius GEN24

Ett deterministiskt, batterimedvetet Energy Management System (EMS) för en Fronius GEN24. Optimerar för självförsörjning, peak shaving (“cap mode”), valfri nattladdning och fas/säkringsskydd — utan Nordpool, Solcast eller molnberoenden.

Vad EMS:en gör

Cap mode
Håller importen nära en konfigurerad nivå (t.ex. 3 kW) när batteriet är lågt under dagpris.
Nattladdning
Laddar endast när det är motiverat (SoC vid nattstart) och med begränsning på effekt och faser.
Säkringsskydd
Stoppar tvingad laddning om totalimport eller fasström går över gränsvärden.

Hur det fungerar (översikt)

Home Assistant läser GEN24 + smart meter via Modbus TCP, bygger stabila sensor.ems_*-värden och kör automationslogik. Råa Modbus-sensorer är “plumbing” och bör inte användas för Energy-panelen eller historik.

Home Assistant • Helpers (UI) • Template sensors (ems_*) • Automations (cap / night / safety) • Dashboards Fronius GEN24 Modbus TCP registers • PV power / energy • Battery power + SoC • Control writes: 40348/40355/40356 Smart Meter • Grid power (W) • Phase currents (A) • Import energy (kWh) Modbus TCP Meter data Local data/control (no cloud) Safety clamping (import + phase currents)
Arkitektur: HA läser GEN24 + mätare, beräknar EMS-sensorer och styr batteriet via ett fåtal register.

Flödesscheman

Dagpris: cap mode (peak shaving)

När SoC blir låg under dagpris håller EMS importen kring cap_import_target_w och släpper via hysteresis.

Dayprice active? If NO → normal operation EMS idle, inverter controls battery SoC < cap_soc_start_pct ? Exit when SoC > cap_soc_stop_reset_pct (hysteresis) NO → run on battery YES → enable cap mode Target grid import ≈ cap_import_target_w

Nattpris: besluta + ladda

Vid nattstart avgör EMS om det ska vara en “laddnatt” baserat på cap_night_soc_start_pct.

Nightprice starts cap_night_never_charge = ON ? Summer override: never charge at night YES → skip charging cap_night_charge_active = OFF NO → check SoC SoC < cap_night_soc_start_pct ? Winter/summer inference at night start YES → enable charging NO → skip charging
Winter/summer utan externa sensorer:
Om batteriet ofta är lågt vid solnedgång (vinter) → nattladdning aktiveras.
Om batteriet ofta är fullt vid solnedgång (sommar) → nattladdning hoppas över för att inte “spilla” sol nästa dag.

Nattpris: säkerhetsgränser (faser + totalimport)

Under nattpris övervakas total import och fasströmmar. Om gränser överskrids avbryts tvingad laddning.

Inputs (nightprice) • grid import power (W) • phase currents L1/L2/L3 (A) • user limits: cap_night_max_* Safety checks If grid_import_w > cap_night_max_power_w or any phase > cap_night_max_phase_a → stop forced charging (set power target = 0) Outcome • reduces risk of fuse trips • prevents extreme grid import spikes • keeps behavior deterministic
if grid_import_w > cap_night_max_power_w:
    stop_forced_charging()

if any(phase_a > cap_night_max_phase_a):
    stop_forced_charging()

Installera (kort)

Förutsättningar

  • Home Assistant installerat.
  • Modbus TCP aktiverat i GEN24 och nåbart på LAN.
  • Smart meter-data tillgänglig via GEN24 (vanligtvis slave/unit-id 200 i din setup).

Steg

  1. Klona repot och kopiera ems/ + dashboards/ till din HA config.
  2. Inkludera EMS-filer från configuration.yaml.
  3. Sätt inverter-IP i secrets.yaml (rekommenderat).
  4. Starta om Home Assistant.
  5. Justera hjälpare i EMS-konfigurationsdashboard.

Quick install (copy/paste)

Placera EMS-filerna i /config/ems/ och inkludera dem från configuration.yaml. Sätt inverter-IP i secrets.yaml för att göra installationen portabel mellan flera HA-instanser.

1) Folder layout

/config
  configuration.yaml
  secrets.yaml
  ems/
    modbus_gen24.yaml
    template_sensors.yaml
    cap_mode.yaml
    scripts.yaml
    recorder.yaml
    utility_meters.yaml
    helpers_input_boolean.yaml
    helpers_input_numbers.yaml
    helpers_input_select.yaml

2) configuration.yaml includes

# --- EMS (Fronius GEN24) ---
modbus: !include ems/modbus_gen24.yaml

template: !include ems/template_sensors.yaml

utility_meter: !include ems/utility_meters.yaml

recorder: !include ems/recorder.yaml

automation: !include ems/cap_mode.yaml

script: !include ems/scripts.yaml

input_boolean: !include ems/helpers_input_boolean.yaml
input_number:  !include ems/helpers_input_numbers.yaml
input_select:  !include ems/helpers_input_select.yaml
Viktigt: template_sensors.yaml ska inkluderas under template: eftersom filen innehåller - sensor: och - trigger: template-block.

3) secrets.yaml example

Skapa eller uppdatera /config/secrets.yaml:

fronius_host: 192.168.199.72
fronius_port: 502

Använd sedan secrets i ems/modbus_gen24.yaml:

host: !secret fronius_host
port: !secret fronius_port

4) Restart

Starta om Home Assistant och gå till EMS-konfigurationsdashboard för att justera gränsvärden.

Tips: håll råa Modbus-sensorer utanför recorder/statistik; använd endast sensor.ems_* i dashboards och automations.

SEO (för Yoast/RankMath)

SEO title

EMS för Fronius GEN24 i Home Assistant — Peak Shaving, Tariff & Säkringsskydd

Meta description

Deterministiskt Home Assistant-EMS för Fronius GEN24 via Modbus TCP: cap mode (peak shaving), valfri nattladdning och fas/säkringsskydd – utan Nordpool, Solcast eller molntjänster.

Fokusfraser

Fronius GEN24 Home Assistant EMS
Fronius Modbus TCP batteristyrning
Home Assistant peak shaving batteri
GEN24 nattladdning automation
Fasström säkringsskydd Home Assistant

Projekt: github.com/cnamehst/fronius-ems • Licens: AGPL-3.0