Beta-Test: Anbindung von Wärmepumpe #2861
Replies: 16 comments 35 replies
-
Sobald du zusätzlich zur Wärmepumpe noch eine externe Wallbox integrierst, kann ich gern mit testen. Meine openWB sendet bereits alles per MQTT ins Heimnetzwerk. Würde mich freuen :-)
… Am 27.02.2024 um 13:25 schrieb Georg Ledermann ***@***.***>:
Wie in #2239 <#2239> bereits angekündigt, arbeite ich zurzeit an der Möglichkeit, in SOLECTRUS den Stromverbrauch von Wärmepumpen zu visualisieren und aus dem Hausverberrauch heraus zu rechnen. In der Live-Demo <https://demo.solectrus.de/inverter_power/now> ist es bereits zu sehen. Ich selbst verwende dafür einen Shelly als separaten Stromzähler. Die meisten anderen dürften wohl an einer Anbindung per MQTT interessiert sein.
Das Ganze ist noch nicht offiziell released, da ich vorher gerne etwas Feedback einsammeln möchte. Wer also eine Wärmepumpe betreibt und Lust hat, das mal zu testen, kann das gerne mit folgender Anleitung tun. Ich fokussiere mich hier auf MQTT. Wer tatsächlich - wie ich - einen Shelly verwendet, der möge sich bitte melden, dann beschreibe ich auch das.
Voraussetzungen:
Funktionsfähige SOLECTRUS-Installation
Betrieb einer Wärmepumpe
Möglichkeit, den Stromverbrauch der Wärmepumpe per MQTT abzufragen (oder alternativ per Shelly-Collector <https://github.com/solectrus/shelly-collector>)
Grundverständnis von Docker, MQTT, InfluxDB
Hier nun die Anleitung:
0. MQTT-Broker vorbereiten
Stelle sicher, dass der Wärmepumpenstromverbrauch per MQTT verfügbar ist. Da das total individuell ist, kann ich hier keine konkrete Anleitung geben. Irgendwas mit ioBroker & Co.
1. MQTT-Collector updaten auf Entwickler-Version
In der docker-compose.yml diese Zeile ...
image: ghcr.io/solectrus/mqtt-collector:latest
... ändern auf:
image: ghcr.io/solectrus/mqtt-collector:develop
In der .env ergänzen:
MQTT_TOPIC_HEATPUMP_POWER=somewhere/HEATPUMP/POWER
Wesentlich ist, das korrekte Topic anzugeben, unter dem der Stromverbrauch der Wärmepumpe abgelegt wird. Die Angabe hier ist nur ein Beispiel. Was genau da einzutragen, ist bei jedem individuell verschieden.
In der docker-compose.yml unter services.mqtt-collector.environment folgende Zeile ergänzen:
- MQTT_TOPIC_HEATPUMP_POWER
Damit wird dem MQTT-Collector-Container die neue Variable bekannt gemacht.
Anschließend SOLECTRUS neu starten:
docker compose up -d
Nun die Logs des MQTT-Collector-Containers beobachten. Da sollte nun auch der Stromverbrauch der Wärmepumpe auftauchen. Wenn das nicht der Fall sein sollte, bitte nicht weiter machen, sondern erst die Ursache klären und beheben.
Der MQTT-Collector schreibt den Wert in das gleiche Measurement der InfluxDB, wie alle anderen Werte. Das wird zukünftig vermutlich konfigurierbar sein, aber derzeitig ist es so. Bitte merke dir, welches Measurement das ist - siehe Variable INFLUX_MEASUREMENT bzw. INFLUX_MEASUREMENT_PV. Ich gehe im Folgenden davon aus, dass es my-pv-measurement heißt.
Bevor es weitergeht, solltest du nach Möglichkeit prüfen, ob der neue Messwert wirklich in InfluxDB ankommt und im erwarteten Measurement/Field steht.
1. SOLECTRUS updaten auf Entwicklungs-Zweig PR-2836 <#2836>:
In der docker-compose.yml diese Zeile ...
image: ghcr.io/solectrus/solectrus:latest
... ändern auf:
image: ghcr.io/solectrus/solectrus:pr-2836
In der .env ergänzen:
INFLUX_SENSOR_HEATPUMP_POWER=my-pv-measurement:heatpump_power
Damit wird festgelegt, dass das Dashboard in der InfluxDB den Stromverbrauch der Wärmepumpe im Measurement "my-pv-measurement" und dort im Field "heatpump_power" findet (im gleichen Bucket wie die anderen Messwerte, die SOLECTRUS anzeigt). Falls dein Measurement anders heißen sollte, musst du es hier anpassen.
In der docker-compose.yml unter services.app.environment folgende Zeile ergänzen:
- INFLUX_SENSOR_HEATPUMP_POWER
Damit wird dem App-Container die neue Variable bekannt gemacht.
Anschließend SOLECTRUS neu starten:
docker compose up -d
Jetzt unbedingt die Logs des App-Containers beobachten. Da findet sich beim Start ein paar Warnungen über fehlende Sensoren, die aber ignoriert werden können. Ansonsten sollte SOLECTRUS wie gewohnt starten.
3. Fertig
Das war's schon ;-) Wenn alles richtig gemacht wurde und das ganze MQTT-Gerödel funktioniert, erscheint im SOLECTRUS-Dashboard der Stromverbrauch der Wärmepumpe und der Hausverbrauch reduziert sich entsprechend.
Bin gespannt auf die Rückmeldungen!
—
Reply to this email directly, view it on GitHub <#2861>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ASMN6JPMCTMVDKKUV5ZI5U3YVXGE5AVCNFSM6AAAAABD4AHP3WVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZWGI4DCMRZGA>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
So, auch bei mir funktioniert die Anzeige der Wärmepumpe. Dank der sehr guten Anleitung war die Einbindung kein Problem. |
Beta Was this translation helpful? Give feedback.
-
Nachdem das mit der Wärmepumpe gut funktioniert, habe ich heute nachgelegt. Interessenten für die Anbindung externer Wallboxen bitte hier entlang: |
Beta Was this translation helpful? Give feedback.
-
@StevieC121176 Habe die Anleitung für die Verwendung des Shelly-Collectors ergänzt. Viel Erfolg :) |
Beta Was this translation helpful? Give feedback.
-
Wer die Wärmepumpen-Anbindung noch ausprobieren möchte und dabei auf Probleme stößt, der möge dafür bitte ein separates Issue anlegen. Hier der Beitrag ist schon arg unübersichtlich geworden. Bei den bisherigen Testern funktioniert es aber bislang :) |
Beta Was this translation helpful? Give feedback.
-
Kurze Rückmeldung - nach Anleitung für ein PI/Docker Setting mit iOBroker und MQQT installiert - läuft auf anhieb stabil 😀 ist der PR-2836 dann immer auf dem Stand der Developer Version? |
Beta Was this translation helpful? Give feedback.
-
Ich habe heute die Beta mit der Wärmepumpenintegration installiert - habe dabei noch etwas über Docker (und Portainer) gelernt, am Ende lief es relativ reibungslos und nun Einwandfrei. Vielen Dank fuer die wieder Einwandfreie Arbeit. Bei mir liefert ein Shelly Pro 3 EM die Daten, die Einbindung klappte reibungslos. Ich habe eine kleine Anregung: Wenn die Wärmepumpe anspringt, dann liefert der Shelly die Daten deutlich schneller als Senec die aktualisierten Verbrauchswerte wie Netzbezug, Dadurch sinkt der Hausverbrauch kurzfristig auf 0. Beim Hausverbrauch wäre es ja noch relativ einfach, wenn der Hausverbrauch durch das Herausrechnen der Wärmepumpe negativ werden würde, dann zeige die WP Werte schonmal an, aber rechne den Verbrauch noch nicht heraus, sondern warte auf die Aktualisierung der Werte durch Senec. Bei anderen Werten wie Netzbezug ist es natürlich deutlich schwieriger, da sich die Werte ja gegenseitig bedingen und man nicht weiß woher der Strom für die Wärmepumpe nachher tatsaechlich genommen wird. Ein Lösungsansatz könnte sein, den Verbrauch der Wärmepumpe generell nur rausrechnen, wenn neue Werte von Senec kommen, auch wenn das die Anzeige der Wärmepumpe minimal verzögern würde, die Werte wären dann aber immer synchronisiert. |
Beta Was this translation helpful? Give feedback.
-
Hallo, |
Beta Was this translation helpful? Give feedback.
-
Wichtige Info an diejenigen, die die Beta-Version installiert haben und eine Wärmepumpe eingebunden haben. Es ist ein zusätzlicher Konfigurations-Eintrag erforderlich. Bislang wurde der Verbrauch der Wärmepumpe automatisch vom Hausverbrauch abgezogen. Um die Konfiguration verständlicher zu machen (= weniger magisch), habe ich diesen Default entfernt. Ich nutze diese Betatest-Phase, um jetzt noch (Konfigurations-)Dinge zu ändern, die später eine größere Auswirkung hätten, weil wesentlich mehr User betroffen wären. Es ist somit folgende Ergänzung vorzunehmen: In der
Außerdem in der
Wenn dieser Eintrag fehlt, wird der Verbrauch der Wärmepumpe nicht vom Hausverbrauch abgezogen. Ob es funktioniert, wird beim Start im Log angezeigt. Dort steht dann so etwas wie:
P.S.: Ich arbeite noch an diesem Feature, es gibt also laufende Updates. Wer WatchTower verwendet, bekommt die Updates automatisch. Ansonsten sind manuelle Updates notwendig ( P.P.S: Der neue web-basierte Konfigurator wird die mittlerweile sehr komplex gewordene Konfiguration von SOLECTRUS drastisch vereinfachen. Nähere dazu in #2990 |
Beta Was this translation helpful? Give feedback.
-
Auch bei mir, Konfiguration ergänzt, Update gemacht, läuft einwandfrei. Soweit ich gesehen habe wird die Wärmepumpe korrekt abgezogen vom Hausverbrauch. |
Beta Was this translation helpful? Give feedback.
-
Kann ich auch bestätigen. Habe die Konfiguration wie beschrieben angepasst. Die neue Version läuft ohne Probleme. |
Beta Was this translation helpful? Give feedback.
-
Nach der Korrektur der Konfigurationsdateien passt es jetzt auch bei mir wieder. |
Beta Was this translation helpful? Give feedback.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
Dank der vielen Rückmeldungen denke ich, dass die Sache ausreichend stabil läuft. Ich habe somit den PR #2836 gerade nach Der Tag Auch beim MQTT-Collector hat sich einiges getan. Dort habe ich ein flexibleres Mapping eingeführt, siehe solectrus/mqtt-collector#137. Wer da also das Tag
Auch der Shelly-Collector wurde noch leicht verbessert. Hier genügt ein simples Update:
Da es mittlerweile so viele Nutzungsszenarien gibt, kann ich nicht alles selber austesten. Falls es bei jemanden hakt, bitte ein neues Issue aufmachen, ich kümmere mich da zeitnah drum. Das nächste offizielle größere Update (Version 0.15) befindet sich jetzt auf der Zielgeraden ;-) |
Beta Was this translation helpful? Give feedback.
-
Wie in #2239 bereits angekündigt, arbeite ich zurzeit an der Möglichkeit, in SOLECTRUS den Stromverbrauch von Wärmepumpen zu visualisieren und aus dem Hausverbrauch heraus zu rechnen. In der Live-Demo ist es bereits zu sehen. Ich selbst verwende dafür einen Shelly als separaten Stromzähler. Die meisten anderen dürften wohl an einer Anbindung per MQTT interessiert sein.
Das Ganze ist noch nicht offiziell released, da ich vorher gerne etwas Feedback einsammeln möchte. Wer also eine Wärmepumpe betreibt und Lust hat, das mal zu testen, kann das gerne mit folgender Anleitung tun.
Voraussetzungen:
Hier nun die Anleitung:
0. MQTT-Broker vorbereiten (nur bei MQTT-Verwendung)
Stelle sicher, dass der Wärmepumpenstromverbrauch per MQTT verfügbar ist. Da das total individuell ist, kann ich hier keine konkrete Anleitung geben. Irgendwas mit ioBroker & Co.
1. MQTT-Collector updaten auf Entwickler-Version (nur bei MQTT-Verwendung)
In der
docker-compose.yml
diese Zeile ...... ändern auf:
In der
.env
ergänzen:Wesentlich ist, das korrekte Topic anzugeben, unter dem der Stromverbrauch der Wärmepumpe abgelegt wird. Die Angabe hier ist nur ein Beispiel. Was genau da einzutragen, ist bei jedem individuell verschieden.
In der
docker-compose.yml
unterservices.mqtt-collector.environment
folgende Zeile ergänzen:Damit wird dem MQTT-Collector-Container die neue Variable bekannt gemacht.
Anschließend SOLECTRUS neu starten:
Nun die Logs des MQTT-Collector-Containers beobachten. Da sollte nun auch der Stromverbrauch der Wärmepumpe auftauchen. Wenn das nicht der Fall sein sollte, bitte nicht weiter machen, sondern erst die Ursache klären und beheben.
Der MQTT-Collector schreibt den Wert in das gleiche Measurement der InfluxDB, wie alle anderen Werte. Das wird zukünftig vermutlich konfigurierbar sein, aber derzeitig ist es so. Bitte merke dir, welches Measurement das ist - siehe Variable
INFLUX_MEASUREMENT
bzw.INFLUX_MEASUREMENT_PV
. Ich gehe im Folgenden davon aus, dass esmy-pv-measurement
heißt.Bevor es weitergeht, solltest du nach Möglichkeit prüfen, ob der neue Messwert wirklich in InfluxDB ankommt und im erwarteten Measurement/Field steht.
2. Shelly-Collector installieren (nur bei Shelly-Verwendung)
In der
docker-compose.yml
muss ein Service für den Shelly-Collector ergänzt werden. Füge folgende Zeilen hinzu, achte dabei auf korrekte Einrückung:Die Angaben
depends_on
undlinks
gehen davon aus, dass InfluxDB im gleichen Docker-Compose-Netzwerk läuft. Das ist bei einer Standard-Installation der Fall. Falls deine InfluxDB woanders laufen sollte, dann lasse beide Angaben weg.Das Label dient dazu, dass der Watchtower-Service den Shelly-Collector auch aktualisiert, wenn es eine neue Version gibt. Wenn du Watchtower nicht verwendest, lasse das Label weg.
In der
.env
muss außerdem ergänzt werden:Die IP-Adresse muss natürlich der des Shellys entsprechen. Das Intervall ist die Zeit in Sekunden, in der der Shelly-Collector den Stromverbrauch abfragt. Sinnvoll ist es, dass die Verbrauchwerte der Wärmepumpe im gleichen Rhythmus abgefragt werden (zumindest nicht langsamer), wie der Hausverbrauch. Da eine exakte Synchronisierung nicht machbar ist, sollte das Intervall klein sein, also im Bereich weniger Sekunden. Ich selber nutze 5 Sekunden, das funktioniert gut.
Anschließend Docker-Image holen und SOLECTRUS neu starten:
Nun die Logs des Shelly-Collector-Containers beobachten. Da sollte jetzt der Stromverbrauch der Wärmepumpe auftauchen. Wenn das nicht der Fall sein sollte, bitte nicht weiter machen, sondern erst die Ursache klären und beheben.
Der Shelly-Collector schreibt den Wert in das gleiche Measurement der InfluxDB, wie alle anderen Werte. Das ist konfigurierbar, du kannst also auch ein anderes angeben. Du musst dem Dashboard aber mitteilen, in welchem Measurement der Wert zu finden ist. Ich gehe im Folgenden davon aus, dass es
my-pv-measurement
heißt.Bevor es weitergeht, solltest du nach Möglichkeit prüfen, ob der neue Messwert wirklich in InfluxDB ankommt und im erwarteten Measurement/Field steht.
3. SOLECTRUS updaten auf Pull-Request pr-2836:
In der
docker-compose.yml
diese Zeile ...... ändern auf:
In der
.env
ergänzen:Damit wird festgelegt, dass das Dashboard in der InfluxDB den Stromverbrauch der Wärmepumpe im Measurement "my-pv-measurement" und dort im Field "heatpump_power" findet (im gleichen Bucket wie die anderen Messwerte, die SOLECTRUS anzeigt). Falls dein Measurement anders heißen sollte, musst du es hier anpassen.
In der
docker-compose.yml
unterservices.app.environment
folgende Zeilen ergänzen:Damit werden dem App-Container die neuen Variablen bekannt gemacht.
Anschließend SOLECTRUS neu starten:
Jetzt unbedingt die Logs des App-Containers beobachten. Da findet sich beim Start ein paar Warnungen über fehlende Sensoren, die aber vorerst ignoriert werden können. Ansonsten sollte SOLECTRUS wie gewohnt starten.
Langfristig empfehlenswert ist es, die Warnungen zu beheben und vollständig auf die neue Sensor-Konfiguration umzustellen (siehe #2836). Welche ENV-Einträge konkret anzulegen sind, wird im Log aufgeführt.
4. Fertig
Das war's schon ;-) Wenn alles richtig gemacht wurde, erscheint im SOLECTRUS-Dashboard der Stromverbrauch der Wärmepumpe und der Hausverbrauch reduziert sich entsprechend.
Bin gespannt auf die Rückmeldungen!
Beta Was this translation helpful? Give feedback.
All reactions