Manfred Tremmels Homepage - Smart Home mit Home Assistant
- Smart Home mit Home Assistant
- RCT Power Wechselrichter und Home Assistant
- SMA Wechselrichter und Home Assistant
- Vitocal 350-A Wärmepumpe und Home Assistant
- PV-Live Dashboard
- Wärmepumpen Dashboard
- Automatisierungen
Smart Home mit Home Assistant
Warum ein Smart Home System?
Im Prinzip läuft die PV-Anlage problemlos ohne Smart Home System, mein SMA-Wechselrichter wird als externer Generator beim RCT-Wechselrichter eingebunden und so laufen die Daten zusammen. Wenn ich aber Informationen z.B. eines gewissen Strings überprüfen will, muss ich mich im Webinterface des SMA-Wechselrichters anmelden und dort nachschauen. Die Auswertungsmöglichkeiten dort sind begrenzt, SMA hat defür die Energy App und das Sunny Portal im Programm, aber da bekomme ich die RCT-Daten nicht rein und die Daten sollen ja auch schön bei mir bleiben und nicht ins Internet!
Einige Funktionen, wie das Prognose basierte Laden des Akkus, scheint mir nicht optimal umgesetzt, irgendwie ist der Akku immer früh voll, oder blieb zu lange leer. Da sollte mit mehr Daten und eigenen Erfahrungswerten mehr möglich sein.
Und dann ist ja auch noch die Wärmepumpe, die keine SG Ready Schnittstelle bietet und so nicht über den Wechselrichter angesteuert werden konnte. Da sollte doch auch was machbar sein, oder?
Warum Home Assistant?
Wer hier einen großen Vergleich von Smart Home Systemen erhofft, wird leider enttäuscht werden. Ich hatte einen Raspberry Pi 3 herumliegen, das System sollte Open Source sein und ich hab im PV-Forum gelesen, dass sich die Wechselrichter recht problemlos einbinden lassen.
Also installiert, für gut befunden und dabei geblieben, das wars auch schon ☺
Home Assistant Installation
Die Installation ist auf der Seite des Projekts gut erklärt, mit dem Raspberry Pi Imager eine SD-Karte beschrieben, in den Raspberry Pi gesteckt, diesen die Grundeinrichtung vornehmen lassen. Bei dem alten 3er dauert das durchaus eine Weile, eventuell wird der künftig mal durch ein leistungsfähigeres Modell ersetzt. Im laufenden Betrieb aber kann ich nicht klagen.
Sobald die Basiseinrichtung erledigt ist, erkundet Home Assistant seine Umgebung, ob Netzwerk, Bluetooth oder andere zur Verfügung stehende Schnittstellen, was gefunden und erkannt wird, wird zur Einrichtung angeboten. Die Wechselrichter sind nicht darunter, sie erfordern weitere Plugins.
RCT Power Wechselrichter und Home Assistant
Home Assistant Community Store
Basis für die Einbindung der meisten Wechselrichter ist der Home Assistant Community Store (HACS), so auch für RCT-Power und SMA. Die Installation ist mit wenigen Klicks entsprechend der Anleitung erledigt. Nach der Installation und dem Neustart findet sich der HACS-Eintrag in der Seitenleiste.
Über diesen Eintrag in der Seitenleiste HACS aufrufen, im Filter oben RCT eintippen und das passende Plugin "RCT Power" installieren.
Home Assistant RCT Erweiterung per HACS
In „Einstellungen‟ → „Geräte und Dienste‟ → „RCT Power‟ kann per „Eintrag hinzufügen‟ jetzt der Wechselrichter, mit Batterie aufgenommen werden. Einzustellen sind drei Parameter:
Home Assistant RCT Wechselrichter hinzufügen
Host name
, hier ist die IP-Adresse oder der Name des Wechselrichters im Netzwerk anzugebenPort
, der Port über den der Wechselrichter erreichbar ist. Vorbelegt mit 8899, kann in der Regel so beibehalten werden.Name
, eindeutiger Name, wenn mehrere RCT Wechselrichter vorhanden sind, kann darüber unterschieden werden, welcher angesprochen ist
Konfiguration der angezeigten Daten
Das Plugin bietet extrem viele Daten, der Abruf vom Wechselrichter ist aber nicht besonders stabil (kennt man auch von der RCT App, da kommen auch immer mal wieder keine Daten), es ist durchaus empfehlenswert, sich hier auf die benötigten Informationen zu beschränken. Unter „Einstellungen‟ → „Geräte und Dienste‟ → „RCT Power‟ → „x Entitäten‟ kann man sich alle Daten anzeigen und mit einem Klick auf die rechte Spalte Details anzeigen. Dort über das Zahnrad kann die Konfiguration geöffnet werden, die auch eine Aktivierung bzw. Deaktivierung gestattet.
Integration ins Home Assistant Energie Dashboard
Das Energie Dashboard ist die Schaltzentrale für den Energiefluss im Haus, bzw. in oder aus selbigem. Solange es nicht eingerichtet ist, kommt man mit dem Aufruf aus der Seitenleiste direkt in die Konfiguration, ansonsten kann diese rechts oben über die drei Punkte → „Energiekonfiguration‟ aufgerufen werden.
Home Assistant Energie Dashoard Einstellungen
Folgende Sensoren vom RCT-Wechselrichter sind hier einzutragen:
- Stromnetz
- Netzbezug: RCT Power Storage Grid Energy Consumption Total
- Netzeinspeisung: RCT Power Storage Grid Energy Production Absolute Total
- PV-Module
- RCT Power Storage All Generators Energy Production Total
- RCT Power Storage External Energy Production Total
- Heimspeicher
- Energie, die in die Batterie fließt: RCT Power Storage Battery Stored Energy
- Energie, die aus der Batterie kommt: RCT Power Storage Battery Used Energy
Empfehlenswert ist auch, Erzeugungsprognosedaten zu hinterlegen, genaueres dazu lesen Sie bitte in der offiziellen Doku nach, oder schauen Sie das Erklärvideo auf youtube an: Home Assistant Energy Dashboard erklärt: Von der Einrichtung bis zu coolen Karten (Hinweis: da wird einiges mehr besprochen, wer nur das Energie Dashboard einrichten will, kann die ersten gut sechs Minuten überspringen).
Home Assistant Energie Dashoard in Betrieb
Parameter des Wechselrichters ändern
Das oben erwähnte „RCT Power‟ Plugin ermöglicht es diverse Daten aus dem Wechselrichter auszulesen, nicht aber, Einstellungen zu ändern. Um die Lücke zu schliessen, kann das rctpower_writesupport Script verwendet werden.
Die Installation erwies sich bei mir als etwas tricky, ich hab es mit folgenden Schritten durchgeführt:
- pyscript über HACS installieren: „HACS‟ → nach "pyscript" suchen und dann Herunterladen (alle Importe erlauben in der Konfiguration angeben!)
- Über den regulären Store die Plugins („Einstellungen‟ → „Add-ons‟ → „ADD-ON-STORE‟ rechts unten!)
- File editor
- Advanced SSH & Web Terminal
- Nach Installation erst mal Home Assistant neu starten („Entwicklungswerkzeuge‟ → „NEU STARTEN‟ → „Home Assistant neu starten‟)
- Das Terminal sollte in der Seitenleiste jetzt vorhanden sein, gleich mal aufrufen und die Scripte mit folgenden Befehlen in die richtigen Ordner packen:
cd /config mkdir pyscript cd pyscript wget https://raw.githubusercontent.com/do-gooder/rctpower_writesupport/refs/heads/main/rct_ha_call.py chmod 755 rct_ha_call.py mkdir modules cd modules wget https://raw.githubusercontent.com/do-gooder/rctpower_writesupport/refs/heads/main/rct.py chmod 755 rct.py exit
- Ein weiterer Neustart und der Dienst sollte zur Verfügung stehen, was über „Entwicklungswerkzeuge‟ → „Dienste‟ getestet werden kann, wie im Readme beschrieben.
SMA Wechselrichter und Home Assistant
Installation über Home Assistant Community Store
Analog dem RCT Wechselrichter, erfolgt auch die SMA-Integration per Home Assistant Community Store (siehe dort: HACS). Es stehen zwei Plugins zur Verfügung, wichtig ist hier, das "SMA Devices Plus" zu verwenden, denn nur dieses unterstützt neuere EnnoxOS basierende Wechselrichter, wie meinen Tripower X.
Home Assistant Energie SMA Wechselrichter hinzufügen, Typ Auswahl
Home Assistant Energie SMA Wechselrichter hinzufügen, IP und Zugangsdaten
Konfiguration der angezeigten Daten
Das Plugin bietet deutlich mehr Daten an, als per Default zur Verfügung gestellt werden. Diese stellen wohl den kleinsten gemeinsamen Nenner der unterstützten Wechselrichter da. Mir fehlten vor allem die Daten des dritten MPPs, die zwar vordefiniert, aber deaktiviert sind. Unter „Einstellungen‟ → „Geräte und Dienste‟ → „SMA Device Plus‟ → „x Entitäten‟ kann man sich alle Daten anzeigen, und mit einem Klick auf die rechte Spalte die Details dazu. Ein Klick auf das Zahnrad öffnet die Konfiguration in welcher eine Aktivierung als auch Deaktivierung durchgeführt werden kann.
Es ist durchaus empfehlenswert, sich hier auf die benötigten Informationen zu beschränken, um den Speicherbedarf im Zaum zu halten.
Parameter des Wechselrichters ändern
Das „SMA Devices‟ Plus Plugin bietet direkt die Möglichkeit Parameter im Wechselrichter zu setzen, für das Power Limit wird dies unter Set Parameter beschrieben. Könnte noch interessant werden, wenn ich einen iMSys mit Steuereinheit bekomme (siehe auch meine Vorbereitung einer Konfiguration für eine Abregelung).
Vitocal 350-A Wärmepumpe und Home Assistant
Voraussetzungen
Leider wird es jetzt etwas komplizierter, die Wärmepumpe Vitocal 350-A mit ihrer Steuereinheit Vitotronic 200 bietet noch keine Netzwerkanbindung, zugreifen kann man lediglich über die Optolink-Schnittstelle. Im Internet finden sich diverse Bauanleitungen für die Anbindung. Mir war das ehrlich gesagt zu heikel, und ich habe mich für das offizielle Optolink Kabel von Viessmann entschieden, das man als Ersatzteil unter der Artikelummer 7856059, bzw. EAN/GTIN 4054465085245 bestellen kann. Das Kabel steckt man an die USB-Schnittstelle des auslesenden Rechners, also in meinem Fall den Raspberry Pi und die V-förmige Auslassung zwischen den beiden Dioden. Es musste noch eine Netzwerkbuchse in den Technikraum, aber das ist eine andere Geschichte.
Home Assistant Raspberry Pi mit „professioneller‟ Kabelbinderaufhängung
Installation des passenden Plugins
Nachdem die Hardwareanbindung erledigt war, ging es an softwareseitige Integration. Mit Home Assistant VControl existiert ein Plugin, das basierend auf vcontrold die Daten auslesen kann und per MQTT an Home Assistant weiterleitet.
Um die Daten verarbeiten zu können wird zunächst der Mosquitto Broker installiert, per „Einstellungen‟ → „Add-ons‟ → „ADD-ON STORE‟ aufrufen nach Mosquitto suchen und installieren.
Das Home Assistant VControl ist nicht im offiziellen Repository, das passende Repository kann per Home Assistant VControl Homepage mit einem Klick hinzugefügt werden und das Plugin installiert werden. An und fürsich wäre es das schon, allerdings hat das Plugin nur wenige Daten für noch weniger Wärmepumpen vorkonfiguriert.
Konfiguration des passenden Plugins
Als erstes gilt es festzustellen, welches Modell man installiert hat. Ein guter Einstiegspunkt war für mich die Sammlung ViessData21 auf Github das DP_Listen_2.zip Archiv enthält eine Vielzahl gesammelter Daten. Die Datei devices.csv aus dem Archiv listet dabei die IDs und Benennungen der verschiedenen Kombinationen, meine findet sich in Zeile 9, ID: 2049, leider eine Variante, die von der mitgelieferten Konfiguration nicht unterstützt wird.
Also geht es los, eine passende Konfiguration zu zimmern. Basis stellte eine fertige Konfiguration für eine Wärmepumpe mit ID 204D, die ich im Internet gefunden habe und die Adressen, die bei openv gesammelt wurden. Entstanden sind dabei folgende Konfigurationen:
- vcontrold.xml, die Datei definiert die Datentypen und Rahmenbedingungen, sie ist /vcontrold/ abzulegen
- vito.xml, die Datei definiert Getter- und Setter-Funktionen für die einzelnen Daten die gelesen und teilweise auch geschrieben werden können, sie ist ebenso unter /vcontrold/ abzulegen
- wp_configuration.yaml, dies ist ein Auszug meiner configuration.yml, in der aus den in der vito.xml definierten MQTT Funktionen Home Assistant Sensoren, Schalter, Nummer- und Auswahlfelder umgesetzt werden
Das Plugin ruft regelmässig die Daten von der Wärmepumpe ab, allerdings nicht alle, die in der vito.xml hinterlegt sind, sondern nur die, die man in der Pluginkonfiguration nochmal explizit angibt unter „Einstellungen‟ → „Add-ons‟ → „Vcontrol add-on‟ → „Konfiguration‟ → „Commands‟
Home Assistant Vcontroll Plugineinstellungen
PV-Live Dashboard
Das Energie Dashboard bietet viele interessante Daten und Auswertungen, basiert allerdings auf stündlich aktualisierte Verbrauchsdaten. Wer schnell die aktuelle Produktion oder den Akku-Stand nachsehen will, wird nicht fündig. Deshalb habe ich mir ein eigenes Dashboard gebaut, dass primär auf der Power Flow Card Plus Karte basiert. Diese Karte sieht ähnlich wie die Energieverteilung Karte des Energie Dashboards aus, kann aber Live-Daten anzeigen.
Helfer
Für die Power Flow Card Plus Karte müssen die Erträge der beiden Wechselrichter zusammengefasst werden, denn die Karte erlaubt es nicht mehrere Sensoren einzutragen.
Unter „Einstellungen‟ → „Geräte und Dienste‟ → „Helfer‟ → „Helfer erstellen‟ (rechts unten im Eck) wird ein Statistik Helfer erstellt, ich habe ihn „Solar Power Generators All Strings‟ und dort die Stringwerte eingetragen und daraus die Summe gebildet. Da die Daten auf Watt-Ebene vorliegen, reicht bei Genauigkeit eine Null (keine Nachkommastellen).
Addiert werden:
RCT Power Storage All Generators Power
: Summe beider Strings, auch wenn ich nur A nutzeSunny Tripower X 20 PV Power A
Sunny Tripower X 20 PV Power B
Sunny Tripower X 20 PV Power C
Home Assistant Helfer der die Summe aller Strings addiert
Der Hausverbrauch wird von Power Flow Card Plus errechnet, berücksichtigt aber keine Verluste von Wechselrichter und Batterie, die Angaben stimmen also nur dann, wenn reiner Netzbezug herrscht. Die Karte erlaubt aber auch einen Sensorwert einzutragen um diesen, statt der berechneten Werte zu verwenden. RCT liefert zwar Consumer Power als Wert, aber der geht immer wieder ins Negative, wenn der SMA-Konverter zum laden des Akkus beisteuert. Demzufolge habe ich mir auch diesen Wert mit einem Helfer selbst errechnet, ich hab ihn „Power Consumption of the house‟ genannt.
Addiert werden hier (nicht wundern, die Sensoren liefern teils negative Werte, in Summe kommt der eigene Verbrauch raus):
Sunny Tripower X 20 Grid Power
: AC-Leistung des Sunny TripowerRCT Power Storage Grid Power
: Bezug aus dem Netz, negativ bei EinspeisungRCT Power Storage Inverter AC Power
: AC-Leistung des RCT Power Wechselrichters, wenn der Sunny Tripower beim Akku laden hilft, negativ
Batterie Kapazität ermitteln
Ein Datum, das mir immer in der App gefehlt hat, war die Kapazität der Batterie. Einerseits um Probleme zu erkennen, andererseits auch um im Garantiefall (min. 80% Kapazität nach 10 Jahren) etwas in der Hand zu haben.
Aus dem Wechselrichter können die beiden Werte sensor.rct_power_storage_battery_used_energy
(entnommene Energie in Wattstunden) und sensor.rct_power_storage_battery_stored_energy
(gespeicherte Energie in Wattstunden) ausgelesen werden. Der Zeitpunkt, zu dem die Entladung eines Kalibrierungslaufs startet und endet kann wiederum vom RCT Power Storage Battery Status
abgeleitet werden. Er ändert sich beim Beginn der Entladung von „charging‟ auf „discharging‟ und wenn er damit fertig ist, auf „normal‟. Werden zu beiden Zeitpunkten die genannten Werte zwischengespeichert, kann aus deren Differenzen die Kapazität errechnet werden.
Als erstes habe ich dafür vier numerische Eingabefelder als Helfer definiert (habe nichts passenderes gefunden), in denen die Werte zwischengespeicher werden:
- RCT Battery Calibratione Unload Used Start
- RCT Battery Calibratione Unload Stored Start
- RCT Battery Calibratione Unload Used Ende
- RCT Battery Calibratione Unload Stored Ende
Home Assistant Helfer numerische Eingabefelder
Ein weiterer Helfer definiert als Template errechnet den Wert mit folgendem code:
{{ ((float(states('input_number.rct_battery_calibratione_unload_used_ende')) - float(states('input_number.rct_battery_calibratione_unload_used_start'))) - ((float(states('input_number.rct_battery_calibratione_unload_stored_ende')) - float(states('input_number.rct_battery_calibratione_unload_stored_start'))))) | round(2) }}
Home Assistant Helfer errechnen der Batteriekapazität
Jetzt müssen nur noch die Dummy-Eingabefelder mit den Werten zum entsprechenden Zeitpunkt bestückt werden. Unter „Einstellungen‟ → „Automation & Szenen‟ → „Automationen‟ habe ich zwei Automationen angelegt:
- RCT Batterie Kalibrierung Entladung, Startwert setzen
- RCT Batterie Kalibrierung Entladung, Endwert setzen
Beide beziehen sich auf die Statusänderung und führen dann je zwei Aktionen aus, in denen die Werte in die Eingabefelder geschrieben werden. Ich rechne die Werte dabei von Watt auf Kilowatt um und runde auf zwei Nachkommastellen, dazu muss die Aktion im YAML Modus bearbeitet werden, der Code sieht dann wie folgt aus:
- Entladungsstartwert setzen:
action: input_number.set_value target: entity_id: input_number.rct_battery_calibratione_unload_used_start data: value: >- {{ (float(states('sensor.rct_power_storage_battery_used_energy')) / 1000) | round(2) }}
- Ladestartwert setzen:
action: input_number.set_value target: entity_id: input_number.rct_battery_calibratione_unload_stored_start data: value: >- {{ (float(states('sensor.rct_power_storage_battery_stored_energy')) / 1000) | round(2) }}
- Entladungsendwert setzen:
action: input_number.set_value target: entity_id: input_number.rct_battery_calibratione_unload_used_ende data: value: >- {{ (float(states('sensor.rct_power_storage_battery_used_energy')) / 1000) | round(2) }}
- Ladeendwert setzen:
action: input_number.set_value target: entity_id: input_number.rct_battery_calibratione_unload_stored_ende data: value: >- {{ (float(states('sensor.rct_power_storage_battery_stored_energy')) / 1000) | round(2) }}
Home Assistant Automation, zwischenmerken der Werte
Power Flow Card Plus Karte
Die Karte stammt aus dem HACS und kann daraus nachinstalliert werden. Für die Darstellung der Live-Daten nutze ich folgende Sensoren:
- Grid
RCT Power Storage Grid Power
: als Combined Entity, also kombinierten Wert, der sowohl positiv als auch negativ sein kann
- Solar
Solar Power Generators All Strings
: also einer der Helfer, den wir gerade angelegt haben
- Battery
RCT Power Storage Battery Power
: als Combined EntityRCT Power Storage Battery State of Charge
: als State of Charge
- Fossil Fuel
Electricity Maps Anteil fossiler Energieträger
: bei Entity- Dementsprechend Type of State auf Percentage stellen
- Home
Power Consumption of the house
: der zweite Helfer kommt zum Zuge
Horizon Karte
Auch diese Karte habe ich aus HACS nachinstalliert, sie zeigt Sonnenauf- und -untergang an und lief ohne weitere Konfiguration.
Das ganze Dashboard
Ansonsten habe ich mit der Entitäten-Karte eine Liste für mich relevanter Daten aufgenommen, per Staistikdiagram den Verlauf der einzelnen Strings, des Netzbezugs bzw. der Netzeinspeisung als auch der Batterie dargestellt. Die Wettervorhersagekarte auf Stundenbasis rundet die Sache dann ab.
Das ganze Dashboard als yaml kann unter ha_pv-live_dashboard.yaml herunter geladen werden.
Home Assistant PV-Live Dashboard
Wärmepumpen Dashboard
Das Dashboard für die Wärmepumpe ist im Moment noch nicht besonders hübsch, ich habe die Felder in drei Bereiche geteilt, denen ich je eine Spalte gewidmet habe, Wärmepumpe, Heizen und Warmwasser, desweiteren habe ich sie in drei Unterseiten aufgeteilt, Informationen, Einstellungen und Diagnose, um den Überblick nicht zu verlieren.
Herunterladen können Sie des Dashboard im YAML-Format als ha_waermepumpen_dashboard.yaml.
Home Assistant Wärmepumpen Dashboard - Info-Bereich
Home Assistant Wärmepumpen Dashboard - Einstellungen-Bereich
Home Assistant Wärmepumpen Dashboard - Diagnose-Bereich
Automatisierungen
Mit den ganzen Informationen aus Wärmepumpe und den Wechselrichtern kann man natürlich nicht nur Dashboards befüllen und manuell Werte setzen, Interessant wird es erst, wenn man Home Assistant das regelbasiert selbst machen lässt.
Netzdienliches und schonendes Batterieladen
RCT bietet ein Prognose basiertes Laden an, aber mal ehrlich, bei wem funktioniert das wie es sein sollte? Im Sommer ist die Batterie oft voll, bis der Wechselrichter den Zielwert runter setzt und im Winter bei sonnigem Vormittag und dunklem Nachmittag steht man gelegentlich mit einem halb gefüllten Akku da.
Für die Batterie ist es nicht gesund, wenn sie den halben Tag voll rum steht und netzdienlich ist es, möglichst die Mittagsspitze zu kappen, deshalb öffne ich den Höchstwert erst ab 11 Uhr. Ausserdem muss der Akku nicht randvoll beladen werden, wenn der nächste Tag gute Erträge erwarten lässt.
Mit den Informationen, die zur Verfügung stehen, habe ich mir folgende Regeln zusammen gebastelt:
- wenn heute noch 40 kWh (in der Heizsaison) bzw. 20 kWh (außerhalb der Heizsaison) zu erwarten sind und es vor 11 Uhr ist, setze den Zielwert auf 27%
- wenn heute noch 30 kWh (in der Heizsaison) bzw. 15 kWh (außerhalb der Heizsaison) zu erwarten sind und es vor 11 Uhr ist, setze den Zielwert auf 37%
- wenn heute noch 20 kWh (in der Heizsaison) bzw. 10 kWh (außerhalb der Heizsaison) zu erwarten sind und es vor 11 Uhr ist, setze den Zielwert auf 47%
- wenn heute noch 15 kWh (in der Heizsaison) bzw. 7 kWh (außerhalb der Heizsaison) zu erwarten sind und es vor 11 Uhr ist, setze den Zielwert auf 57%
- wenn heute noch 10 kWh (in der Heizsaison) bzw. 5 kWh (außerhalb der Heizsaison) zu erwarten sind und es vor 11 Uhr ist, setze den Zielwert auf 67%
- ist keine Heizsaison und morgen sind 40 kWh zu erwarten, setze den Zielwert auf 77%
- ist keine Heizsaison und morgen sind 20 kWh zu erwarten, setze den Zielwert auf 87%
- ansonsten wird der Zielwert auf 97% gesetzt
Drei Helfer habe ich mir dazu angelegt:
Energy Production Today Remaining Sum
: darin summiere ich die Prognosedaten für den Rest des aktuellen Tages auf (ich hab drei, je eine für die belegten Flächen)Energy Production Tomorrow Sum
: das selbe für die Prognosedaten des kommenden TagesCalculated RCT Battery SOC Maximum
: der errechnete Prozentwert, auf den die Batterie geladen werden soll
In Home Assistant sieht die Abfrage des Sensor Templates dann als YAML Code so aus:
{% set epr_today = float(states('sensor.energy_production_today_remaining_sum')) %}
{% set ep_tomorrow = float(states('sensor.energy_production_tomorrow_sum')) %}
{% set heating_on = ((is_state("select.mosquitto_mqtt_broker_betriebsart_2", "Heizen+WW") | bool) or (is_state("select.mosquitto_mqtt_broker_betriebsart_2", "Party") | bool)) %}
{% if ((epr_today > 40 and heating_on) or (epr_today > 20 and heating_on == false)) and now().hour < 11 -%}
27
{%- elif ((epr_today > 30 and heating_on) or (epr_today > 15 and heating_on == false)) and now().hour < 11 -%}
37
{%- elif ((epr_today > 20 and heating_on) or (epr_today > 10 and heating_on == false)) and now().hour < 11 -%}
47
{%- elif ((epr_today > 15 and heating_on) or (epr_today > 7 and heating_on == false)) and now().hour < 11 -%}
57
{%- elif ((epr_today > 10 and heating_on) or (epr_today > 5 and heating_on == false)) and now().hour < 11 -%}
67
{%- elif ep_tomorrow > 40 and heating_on == false -%}
77
{%- elif ep_tomorrow > 20 and heating_on == false -%}
87
{%- else -%}
97
{%- endif %}
Home Assistant Helfer Batteriezielwert errechnen
Das ganze muss jetzt noch an den Wechselrichter übermittelt werden, dazu ist dient eine Automation, die immer getriggert wird, wenn sich der Wert ändert. Unbekannte und nicht vorhandene Stati nehme ich dabei sicherheitshalber aus (geht leider nicht im visuellen Modus).
Dabei kommt das Script rct_ha_call aus dem rctpower_writesupport Projekt zum tragen, beachten muss man dabei, dass der Prozentwert durch 100 geteilt werden muss. Die Action lautet:
action: pyscript.rct_ha_call
metadata: {}
data:
value: >-
{{ (float(states('sensor.calculated_rct_battery_soc_maximum')) / 100) |
round(2) }}
Home Assistant Automation SOC max setzen
Partymodus der Wärmepumpe nutzen
Die Wärmepumpe bietet mit dem sogenannten Partymodus die Möglichkeit eine alternative Raumtemperatur vorzugeben. Da ich Fußbodenheizung habe und der Estrich der größte Wärmespeicher im Haus ist, bietet es sich an, bei PV-Überschuss diesen zu aktivieren, damit Reserven für die Nacht geschaffen werden. Der Modus muss natürlich auch deaktiviert werden, sobald der restliche Ertrag einen Schwellwert unterschreitet.
Die Regeln für die Aktivierung lauten wie folgt:
- Netzeinspeisung von 4000 Watt mindestens fünf Minuten am Stück (um nicht bei jedem kurzen Peek anzuspringen)
- prognostizierte Erzeugung von über 30 kWh für den Rest des Tages
- die Betriebsart muss auf Heizen+WW stehen
Home Assistant Automation Wärmepumpe Partymodus aktivieren bei Stromüberschuss
Eine Deaktivierung wird durchgeführt, sobald:
- die prognostizierte Erzeugung für den Rest des Tages unter 20 kWh sinkt
- die Betriebsart muss auf Party stehen
Home Assistant Automation Wärmepumpe Partymodus deaktivieren bei Stromknappheit
Ein Problem ist noch die Einzelraumsteuerung von Uponor. Die weiß nichts vom Partymodus und schließt die Ventile, sobald die eingestellte Wunschtemperatur erreicht wurde. Bisher habe ich nur Projekte gefunden, die die Werte der Thermostate auslesen können, aber noch keine, die sie setzen. Mal schauen, was ich da noch erreichen kann.
Warmwasseraufbereitung bei Stromüberschuss
Eigentlich sorgt die Zeitsteuerung für eine Aufbereitung um 12 Uhr auf die erhöhte Warmwasserstufe sorgen, sobald allerdings der Partymodus aktiv ist, wird nur bis zur normalen Warmwasserstufe erwärmt. Ich habe deshalb noch zwei Automationen angelegt, eine zur Aktivierung der einmaligen Warmwasseraufbereitung und eine zur Deaktivierung, sobald die Wunschtemperatur erreicht ist (ansonsten hört die WP zwar mit der Aufbereitung auf, aber die einmalige Aufbereitung bleibt aktiviert in den Einstellungen).
Die Regeln für die Aktivierung lauten wie folgt:
- die Uhrzeit 12:15 Uhr wurde erreicht
- die Betriebsart muss auf Party stehen
- die Wassertemperatur oben ist unter 45 ℃
- das Warmwasserventil ist aus
Home Assistant Automation Wärmepumpe einmal Warmwasseraufbereitung im Party Modus aktivieren
Eine Deaktivierung wird durchgeführt, sobald:
- die Zieltemperatur erreicht ist
- die einmalige Warmwasseraufbereitung aktiv ist
Home Assistant Automation Einmal Warmwasseraufbereitung beenden, wenn Zieltemperatur erreicht
Einspeiselimit der Wechselrichter setzen (vorbereitend für iMSys und Steuerbox)
Eine Abregelung des Wechselrichters per iMSys und Steuerbox erwartet uns künftig wohl alle mit PV. Dabei soll nach Möglichkeit zumindest ein Netzbezug vermieden werden und bei Steuersignal 0% nur die Einspeisung auf 0 geregelt werden.
Mein RCT Power Wechselrichter hat die nötigen Informationen und nutzt die auch, man kann den Prozentwert setzen und er versorgt weiter Haus und Batterie. Der SMA Wechselrichter hingegen ist blind und würde abschalten. Wenn aber vom Garagendach (an dem der RCT hängt) nicht genug kommt, wäre wieder Netzbezug die Folge.
Wie könnte das jetzt funktionieren?
- RCT bekommt den Prozentwert übergeben, er regelt das selber
- für SMA wird der installierte Peakwert mit dem Einspeiselimit-Prozentwert multipliziert, der Eigenverbrauch addiert und das Ganze als Einspeiselimit in Watt an den Wechselrichter übergeben
Umsetzung, erst mal ein paar Helper anlegen:
PV Module Leistung Peak
: Helper Template Sensor angelegt mit dem Peak-Wert der Anlage als fixen Wert, bei mir 29645PV Wechselrichter SMA Limit
: Helper Template Sensor angelegt mit der Wechselrichterleistung, bei mir 20000PV Wechselrichter RCT Limit
: Helper Template Sensor angelegt mit der Wechselrichterleistung, bei mir 6000PV Wechselrichter Summe Limit
: Helper Template Kombinationssensor angelegt der die beiden Wechselrichterleistungen addiert (ja ginge auch direkt)PV Leistungsbegrenzung
: Zahleneingabefeld für den Prozentwert angelegt, Range 0 bis 100, keine NachkommastellenPV Einspeiselimit Soft
: Helper Template Sensor angelegt, der das Einspeiselimit berechnet und den Verbrauch hinzufügt{% set calc_limit = ((float(states('sensor.pv_module_leistung_peak')) * float(states('input_number.pv_leistungsbegrenzung')) / 100) + float(states('sensor.power_consumption_of_the_house'))) %} {% set wr_limit = float(states('sensor.pv_wechselrichter_summe_limit')) %} {{ max(0, min(wr_limit, calc_limit)) | round(0) }}
PV Einspeiselimit Soft SMA
: Helper Template Sensor angelegt, der das Einspeiselimit nimmt, falls es unter der Wechselrichterleistung liegt, sonst diese.{{ max(0, min(float(states('sensor.pv_einspeiselimit_soft')), float(states('sensor.pv_wechselrichter_sma_limit')))) | round(0) }}
Dazu zwei Automationsfunktionen, die die Werte bei Änderung der entsprechenden Werte zu den Wechselrichtern überträgt:
RCT Wechselrichter Limit setzen
: Überträgt den Prozentwert in das Feld buf_v_control.power_reduction des Wechselrichters
Home Assistant Automation RCT Wechselrichter Limit setzenSMA Wechselrichter Limit setzen
: Überträgt das Einspeiselimit in Watt in das Feld sensor.sunny_tripower_x_20_inverter_power_limit des Wechselrichters
Home Assistant Automation SMA Wechselrichter Limit setzen
Ein kleines Dashboard zum testen erstellt und nun gilt es noch zu warten auf das iMSys und die Steuerbox, mal schauen, wie ich das Limit in Home Asisstant bekomme. Ich hab hier einfach nur die Nötigen Werte in eine Entitätenkarte gepackt, die YAML Datei kann hier heruntergeladen werden.
Home Assistant Dashboard mit 100% Einspeisung
Home Assistant Dashboard mit 0% Einspeisung und richtig hohem Eigenverbrauch, der trotzdem gedeckt wird