-
-
Notifications
You must be signed in to change notification settings - Fork 678
Kirmesboxer24: Alpha Innotec WZ S80H (Sole Wasser, Oldtimer), Senec.Home 2.1, ABL eMH1 (Senec‐branded), SMA Sunny Tripower 10.0, Hoymiles HM‐1500, Fiat 500e, Tibber
Als wir 2020 unsere Wohnimmobilie von 2007 kauften, waren wir froh über die eingebaute Erdwärmepumpe, die seit der Erbauung im Haus werkelt. Sie ist jedoch schon ein bisschen angegraut und dem entsprechend „dumm“. Die genauen Mechanismen und Kriterien, die den Energieverbrauch beeinflussen, waren uns anfangs schleierhaft. Die Pumpe lief erratisch, aber bei einem fixen Stromtarif und ohne Solaranlage war das zunächst kein Thema – sie machte ihren Job.
Das änderte sich, als wir 2021 eine 10 kWp PV-Anlage mit einem SMA-Wechselrichter und einem Senec-Speicher installierten. Dazu kam eine Wallbox mit Senec-Logo, die eigentlich eine ABL ist. Der Senec-Speicher gehört zu der Generation, die für viele Probleme bekannt ist – wir warten gerade auf den Austausch gegen ein Modell mit LFP-Zellen.
Die Wallbox sollte eigentlich PV-Überschussladen ermöglichen, aber in der Praxis war das wegen der Verzögerung der Senec-Cloud nahezu unbrauchbar. Wir nannten sie daher scherzhaft den „Wolkenfinder“, da sie bei einem Sonne-Wolken-Mix zuverlässig Strom aus dem Netz zog. Anfangs hatte ich Respekt davor, in die Hardware einzugreifen, doch die bevorstehende Garantieablauf 2024 und erfolgreiche Anleitungen in Verbindung mit EVCC gaben mir Mut.
Ein ungenutzter Raspi 4 und ein USB RS485 Converter Adapter kamen zum Einsatz. Ich wollte EVCC eigentlich in unseren Proxmox-Cluster integrieren, aber dafür wäre eine RS485-zu-Ethernet-Umsetzung nötig gewesen und ein Netzwerkkabel zur Wallbox zu ziehen, war mir zu aufwendig. Deshalb „wohnt“ der Raspi jetzt direkt an der Wallbox, dem vormals größten Schmerzpunkt im System.
Mit den Empfehlungen aus dem EVCC-Konfigurator in der Shell lief die Einrichtung reibungslos.
Ein Problem blieb: Die Stellantis-Cloud, über die unser Fiat verbunden ist, ist ähnlich träge wie die VW-Cloud, die wir vom e-Up! kennen. Das führt dazu, dass die Fahrzeugerkennung Zeit braucht. Daher bleibt die Wallbox standardmäßig auf „off“, um nicht minutenlang mit maximaler Leistung zu laden, während das Auto erkannt wird. Das eigenwillige Konzept der Fiat-Ladestufen, die nur über die App eingestellt werden können, ist eine Geschichte für sich – gerne erzähle ich bei Interesse mehr dazu.
Unsere Alpha Innotec WZ S80H, Baujahr 2006, ist sogar älter als das Haus und bot keinerlei externe Steuerungsmöglichkeit – scheinbar. Nach vielen Anfragen beim Hersteller, Technikergesprächen und Websuchen war ich überzeugt, dass da nichts zu machen ist. Ein entscheidender Hinweis kam aus Marcus Jaschens Wochenrückblick 2023-45 (https://www.marcusjaschen.de/blog/2023/2023-45/), in dem er beschrieb, wie er Daten aus seiner Wärmepumpe ausliest – ein echter Augenöffner. Eine Recherche in diese Richtung zeigte, dass die Steuerplatine Luxtronik 1 sehr wohl in moderne Systeme eingebunden werden kann.
Ich entschied mich für die Anbindung der seriellen Wartungsschnittstelle per RS232 zu Ethernet an den ioBroker, der hier sowieso schon ein wichtiger Bestandteil der Haustechnik ist. Es gibt auch eine ESPHome-Anbindung, die mit Home Assistant hätte funktionieren können, jedoch zu der Zeit nur lesend, nicht schreibend.
Ich sammelte erste Erfahrungen mit der Steuerung der Wärmepumpe, was sich später als essenziell für die EVCC-Integration herausstellte. Die Hauptfaktoren zur Steuerung des Verdichters waren „AbwRLs“ (Abweichung Rücklauf SOLL) und „BWs“ (Brauchwasser SOLL). Mehrere Blockly-Skripte halfen dabei, den Stromverbrauch in günstige und ertragreiche Zeitfenster zu verlegen. Diese Skripte erforderten jedoch immer wieder manuelles Eingreifen, besonders im Winter, um eine kurze Wolkenlücke zu erwischen.
Mit EVCC wird die Automatisierung durch den „enable:“-Befehl gestartet. Die Werte werden in ioBroker zur Visualisierung und Steuerung bereitgehalten und per MQTT gesteuert:
- BWi (Int, Visualisierung)
- evcc-enable (Bool, als Trigger)
- evcc-enabled (Bool, wird durch das Skript aktiviert)
- evcc-status (String, signalisiert Ladebereitschaft des Fahrzeugs)
- evcc-maxcurrent (Int, wahrscheinlich verzichtbar)
Wenn der Trigger aktiv ist, setzt ioBroker „BWs“ auf einen erprobten Wert, der den Verdichter startet. Ein weiteres Skript setzt „AbwRLs“ bei Bedarf auf den Maximalwert, sodass der Verdichterbetrieb auch gleich zur Raumheizung genutzt wird. Da es keinen Pufferspeicher gibt, fungieren der Heizkreis und der Estrich als Wärmespeicher. Der Takt ist auf 60 Minuten begrenzt, dann werden die Parameter zurückgesetzt. EVCC schaltet die Wärmepumpe nach einer Stunde Netzbezug ebenfalls ab, was bisher aber mehr der Visualisierung dient. Die eigentliche Steuerung durch EVCC ist hier noch nicht implementiert.
Ja, der Anlagenzustand kommt als Strings „Bereitschaft“, „Heizung“ und „Warmwasser“ über die Schnittstelle....
Ich bin noch dabei herauszufinden, ob ich die Funktionen „enable:“ und „enabled:“ optimal nutze und ob es hier noch elegantere Lösungen gibt.
Die YAML ist ein Mix aus der Grundkonfig und verschiedenen Umsetzungen hier aus der Doku, die ich an meine Bedürfnisse angepasst habe.
# open evcc at http://evcc.local:7070
network:
schema: http
host: evcc.local # .local suffix announces the hostname on MDNS
port: 7070
log: debug
levels:
cache: error
# unique installation id
plant: *****
interval: 30s # control cycle interval
sponsortoken: *****
# sponsors can set telemetry: true to enable anonymous data aggregation
# see https://github.com/evcc-io/evcc/discussions/4554
telemetry: true
meters:
- type: template
template: senec-home
usage: grid
host: 192.168.2.171
schema: https
name: grid1
- type: template
template: senec-home
usage: pv
host: 192.168.2.171
schema: https
name: pv2
- type: template
template: senec-home
usage: battery
host: 192.168.2.171
schema: https
capacity: 7
name: battery3
- type: template
template: hoymiles-opendtu
usage: pv
host: 192.168.2.96
name: pv4
- name: ShellyLuxTr
type: template
template: shelly-3em
usage: charge
host: 192.168.2.233
chargers:
- type: template
template: abl
id: 1
device: /dev/ttyUSB0
baudrate: 38400
comset: 8E1
modbus: rs485serial
name: wallbox5
- name: LuxTr_Pwr
type: custom
icon: heater
features:
- integrateddevice
- heating
status: # charger status A..F
source: mqtt
topic: 0_userdata/0/Appliances/Heizung/evcc-status
enabled: # charger enabled state (true/false or 0/1)
source: mqtt
topic: 0_userdata/0/Appliances/Heizung/evcc-enabled
enable: # set charger enabled state (true/false or 0/1)
source: mqtt
topic: 0_userdata/0/Appliances/Heizung/evcc-enable
payload: 1
maxcurrent: # set charger max current (A)
source: mqtt
topic: 0_userdata/0/Appliances/Heizung/evcc-maxcurrent
- name: Toploader
type: template
template: shelly
host: 192.168.2.208
- name: Dishwasher
type: template
template: shelly
host: 192.168.2.230
loadpoints:
- title: Wallbox
priority: 3
charger: wallbox5
mode: off
- title: Luxtronik
priority: 2
vehicle: Heizung
charger: LuxTr_Pwr
meter: ShellyLuxTr
mode: pv
enable:
# einschalten, wenn 1 Minute lang mindestens 500 W Überschuss vorhanden ist
delay: 1m
threshold: -1500
disable:
# ausschalten, wenn 45 Minuten lang mehr als 1500 W aus dem Netz bezogen werden
delay: 60m
threshold: 1500
- title: Waschen
priority: 1
charger: Toploader
vehicle: Waschen
mode: now
soc:
estimate: true
- title: Geschirr
priority: 0
charger: Dishwasher
vehicle: Dishwasher
mode: now
soc:
estimate: true
site:
title: Schmiedestate
meters:
grid: grid1
pv:
- pv2
- pv4
battery:
- battery3
# residualpower: -100 # akzeptierter Netzbezug
vehicles:
- type: template
template: fiat
title: Pio
icon: car
user: *****
password: *****
vin: *****
capacity: 42
phases: 3
cache: 15m
pin: *****
mode: pv
minCurrent: 6
maxCurrent: 16
welcomecharge: false
name: ev1
- name: Heizung
title: Heizung
icon: waterheater
type: custom
soc: # SoC = Wassertemeratur
source: mqtt
topic: iobroker/luxtronik1/0/temperaturen/BWi
limitsoc:
source: mqtt
topic: 0_userdata/0/Appliances/Heizung/evcc-bws-fix
- name: Waschen
type: custom
title: Toploader
icon: generic
capacity: 5
soc:
source: const
value: 0.1
- name: Dishwasher
type: custom
title: Dishwasher
icon: generic
capacity: 5
soc:
source: const
value: 0.1
tariffs:
grid:
type: template
template: tibber
token: *****
feedin:
type: fixed
price: 0.08 # [currency]/kWh
mqtt:
broker: 192.168.2.112:1883
topic: evcc
user: *****
password: *****
Version: `0.131.4`
Mein Dank geht jedenfalls an die Teams von EVCC und ioBroker, im Besonderen aber auch an [forelleblau] (https://github.com/forelleblau) für den Luxtronik1-Adapter, der mir den letzten Part überhaupt ermöglicht. Und natürlich an Marcus (https://github.com/mjaschen), der den Groschen geliefert hat, der dann fiel.