Meine Ochsner Europa 333 Genius BWWP HomeAssitant PV-Überschuss DIY Zu- und Abluft-Klappensteuerung

Hallo,

nachdem mein PV Projekt (auch hier im Forum) läuft kam im November die Dekarbonisierung des Brauchwasser dazu. Nach langem hin und her habe ich mich für eine BWWP entschieden die, wie ich meine, einzigartige Funktionen bietet.
Da der Aufstellort (Heizungskeller und PV Wechselrichter/Akku) nicht unbedingt genug Raumvolumen bietet, habe ich mich dazu entschieden einen zweiten Raum (Waschküche mit Trockner) "anzubinden". Um die Raumwärme optimal nutzen zu können habe ich für die Verrohrung eine über HomeAssistant regelbare Klappe konstruiert und gebaut (3D Druck, ESP und OLED Display).

Dadurch bin ich in der Lage der BWWP, wenn Sie denn nicht gerade mit PV-Überschuss läuft, entweder die Abwärme des PV-Wechselrichters /Heizungsabwärme Und/Oder (quasi 0-100%) die Abwärme aus der Waschküche (Trockner und Waschmaschine) variablen zu nutzen. Obendrein wird die kühle Abluft genutzt um die Elektronik zu kühlen bzw. die Luft in der Waschküche trocken zu halten.

Die BWWP kann über ModBus an HomeAssistant angeschlossen werden. Es ist möglich diverse Werte wie Temperaturen (4 Sensoren), Lüfterdrehzahl, PV-Überschuss, Heizstab usw. auszulesen. Aber am besten auch einige Werte über HA der BWWP mitteilen. Hier ist die Solltemperatur, die Legionellen-Solltemperatur, die Lüfterdrehzahl für dem Lüftungsbetrieb (ja kann sie auch) und natürlich den aktuellen PV-Überschuss zu nennen.

Achtung jetzt wird's "genial" um nicht gleich "Genuis" zu sagen:
Die BWWP hat zwei Heizstäbe und die WP als Wärmeerzeuger eingebaut. SolarThermieanschlüsse sind auch vorhanden (habe ich nicht).

Warum zwei Heizstäbe ? einfach erklärt:

Ich kann der BWWP den PV-Überschuss exakt, alle 10 Sekunden über HA sagen, wieviel Watt sie, von 0-2100Watt in 1Wattschritten (ja Wattgenau) mitteilen !

Wie macht die BWWP das ? Sie hat einen Heizstab der 0-700Watt variable zu heizen kann. Zusätzlich ist ein fixer 700Watt Heizstab verbaut und natürlich der Wärmepumpen teil der ebenfalls 700Watt nutzen kann.

  • Wenn also sagen wir 465Watt an PV-Überschuss vorhanden ist, "brennt" der variable Heizstab exakt 465Watt ins Wasser.

  • Wenn 1567Watt anliegen, läuft die WP und der fixe Heizstab mit 1400Watt (2x 700W) + dem variablen Heizstab mit 167Watt.

  • Bei z. B. 3000Watt "brennen" beide Heizstäbe und die WP mit maximal 2100Watt (3 x 700Watt).

Die BWWP erwartet optimalerweise alle 10 Sekunden den aktuellen PV-Überschuss. Der WP Teil regelt nicht alle 10 Sekunden, das würde die Effizienz arg belasten.

Das Gerät hat keine Opferanode die man wechseln muss, sondern steuert der Korrosion elektrisch entgegen. Dazu ist es notwendig die BWWP elektrisch isoliert an die Leitungen anzuschließen. Dafür gibt es schöne flachdichtende isolierte Kupplungen. Um die Kupplungen ebenfalls nicht "offen" in den Raum wärmeabgebend hängen zu lassen, habe ich hierfür einen Überwurf konstruiert, indem zusätzlich Temperatursensoren Platz finden und Isoliermaterial eingebracht werden kann.

Also Verrohrung habe ich Isolierrohre verwendet. diese haben den Vorteil das sich kein Kondenswasser bilden soll und das Verlegen echt einfach vonstatten geht. Es gibt diverse Formteile, Verbinder und Halter. Man bekommt diese direkt vom Hersteller günstiger als direkt z. B. vom BWWP Hersteller.

In den nächsten Beiträgen gehe ich weiter auf die Klappen und deren Steuerung ein, werde die HomeAssistant Integration vorstellen und natürlich Bildmaterial liefern - sagt mehr als 1000 Worte.

Natürlich lade ich gerne die 3D-Druck teile auf den einschlägigen Plattformen hoch zum nachbauen. Die ESP Konfiguration gibt's dann auch, wobei ich hier noch nicht ganz fertig bin.
Die Scripte für HA und die Modbus Konfiguration folgt auch. Hier konnte ich von anderen DIY Projekten profitieren (Links folgen).

Als Teaser hier eine Detailaufnahme:

Und was ich aktuell in HA darstelle:

Hinweis: Ich bekommen kein Geld dafür, bin nur echt begeistert von der Kiste !

4 „Gefällt mir“

Klappen und Steuerung

Wie bereits beschrieben will ich mehrere Wärmequellen für die BWWP nutzen, sowie die trockene und kühle Abluft nutzen.
Um das Vorhaben umzusetzen brauche ich die Möglichkeit den Zu- und Abluftstrom zu steuern.

Da ich nichts kaufbares finden konnte, bzw. nur sau teure Module theoretisch kaufbar waren, muss der Konstrukteur und der 3D-Drucker wieder herhalten um die passende Lösung herzustellen.

Nach zwei Prototypen kristallisierte sich heraus wie die Klappen aussehen werden, welche Materialien benötigt werden und welche Features mehr oder weniger notwendig sein könnten.

Der Rahmen (dunkelgrau) hat an der Oberseite eine Möglichkeit zur Aufhängung mit den üblichen Gewindestangen welche für Rohrschellen verwendet werden. Von innen kann eine U-Scheibe + Mutter auf die von oben eingeschobene Gewindestange geschraubt werden.

An den Verstärkungen der Struktur können Kabelbinder eingeschoben werden um die Verkabelung der Elektronik ordentlich zu verlegen.

An der Front findet der Servo und die Kopfzahnräder Platz.

Eine Gewindestange als Achse verbindet das Kopfzahnrad mit der zweiteiligen Klappe (orange). Geführt wird die Achse in zwei Kugellagern welche im Rahmen von Aussen eingeschoben werden.

Für den Deckel habe ich Einschmelzgewindeeinsätze verwendet.

Im Rahmen sind rundherum Anschläge für die Klappe ausgebildet. An dieser Stelle werden gewöhnliche selbstklebende Fenster/Türdichtungen (z. B. W-Profil) angebracht. Damit schließt die Klappe relativ "dicht" ab. In den Bildern sind die weisen Dichtungen zu sehen.

Der Deckel (blau) nimmt den ESP (D1 Mini) auf. Zusätzlich ist ein kleines OLED Display verbaut, welches aktuell die theoretische Stellung der Klappe anzeigt. Hier sind natürlich weitere Anzeigen denkbar. Über ESPHome ist das recht einfach machbar.

Für die manuelle Steuerung habe ich noch zwei Taster vorgesehen, dann kann man direkt an der Klappe den Öffnungswinkel steuern.

Das Runde Loch im Deckel ermöglicht den Zugang auf die Kopfzahnräder um die tatsächliche Stellung zu kontrollieren. Das Zahnrad auf der Klappenachse hat einen Anzeiger und kann zusätzlich mit einem Inbusschlüssel verstellt/eingestellt werden.

An der Unterseite des Deckels sind zwei Kabelführungen vorgesehen, hier sollen Temperatursensoren an den ESP angeschlossen werden können. Mir Schweben da Sensoren für die Zu-/Abluft vor.





Verrohrung

Die Verrohrung ist über ein "Isoliertes Rohrsystem Ø 180 mm" Marke: ubbink AERFOAM realisiert. Im Rohrsystem gibt es 125mm, 160mm und 180mm Rohre, 90° Bögen, 45° Bögen, T-Stücke, Y-Stücke, Verbinder und Aufhänger. Super einfach zu verarbeiten und obendrein auch noch schalldämmend.

Ansteuerung

Die Ansteuerung des ESPs läuft über ESPHome aus HomeAssistant heraus.

Hier ein Screenshot einer der ESPs:

Weboberfläche:

  • open und close repräsentiert die Taster
  • opening den aktuellen "Winkel" in %. Auf der Weboberfläche in 10er Schritten einstellbar.

Die Servos werden kurz nach erreichen der Endposition "detached" also nicht mehr bestromt, das ginge auf die Lebensdauert der Servos.

Spannender wird es natürlich die Klappen über Automationen oder NodeRed zu steuern. Hier möchte ich mit Raumtemperatursensoren in beiden Räumen Abhängig der Gegebenheiten die Zu-/Abluft steuern. Die Sensoren sind noch nicht verbaut bzw. angeschlossen. Diese können am ESP einer der Klappen angeschlossen werden oder als eigenständiges Gerät platziert werden.

Hier der Code für die ESPs der Klappen. Nicht final, aber funktioniert. Es fehlen noch die Temperatursensoren und der ein oder andere Wert auf dem Display. Je nach Servo muss man etwas an den Werten spielen.

substitutions:
  name: esphome-web-1a5c26
  friendly_name: "BWWP Zuluft Technikraum"

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  min_version: 2024.6.0
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: dev

esp8266:
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password  
  domain: .fritz.box  
  # Set up a wifi access point
  ap: {}

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

dashboard_import:
  package_import_url: github://esphome/example-configs/esphome-web/esp8266.yaml@main
  import_full_config: true

# To have a "next url" for improv serial
web_server:

servo:
  - id: servo1
    output: output1
    auto_detach_time: 5s  # Optional - Default 0 (Always On)
    transition_length: 0s # Optional - Default 0 (Max Speed)
    min_level: 2.7%   # Optional - Default 3%
    idle_level: 7.7%  # Optional - Default 7.5%
    max_level: 12.8%  # Optional - Default 12.5%
    

output:
  - platform: esp8266_pwm # For ESP8266 use: esp8266_pwm
    id: output1
    pin: GPIO2
    frequency: 50 Hz # MUST BE 50Hz

number:
  - platform: template
    id: servoSlider1
    name: opening
    icon: mdi:sync
    optimistic: true
    min_value: -10
    max_value: 100
    initial_value: 0
    step: 10
    on_value:
      then:
        - lambda: !lambda |-
            // Servo Write range is: -1.0 to 1.0, so divide by 100
            id(servo1).write(x / 100.0);

i2c:
  sda: SDA
  scl: SCL
  frequency: 400kHz

font:
  - file: "Ultramagnetic_Light.ttf"
    id: myfont
    size: 18

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    #reset_pin: D0
    address: 0x3C
    lambda: |-
      it.printf(28, 0, id(myfont), "%.0f", id(sensor_1).state);      
      //it.printf(30, 0, id(myfont), "%s", id(sensor_1).state.c_str());      
      it.rectangle(7, 26, 50, 21); // Rohr
      it.rectangle(31, 35, 3, 3); // Drehpunkt
      //it.circle(32, 36, 10);
      if (id(sensor_1).state > -5 and id(sensor_1).state < 5) {         //
      it.line(32, 26, 32, 46); }                                        // |  0% geschlossen
      else if (id(sensor_1).state < -75) {
      it.line(22, 36, 42, 36); }                                        // -- 100% offen
      else if (id(sensor_1).state < -50 and id(sensor_1).state > -76) {        
      it.line(23, 32, 41, 40); }                                        //  -75% offen       
      else if (id(sensor_1).state < -26 and id(sensor_1).state > -51) {
      it.line(25, 29, 39, 43); }                                        //  -50% offen            
      else if (id(sensor_1).state < 0 and id(sensor_1).state > -26) {              
      it.line(28, 27, 36, 45); }                                        //  -25% offen            
      else if (id(sensor_1).state > 0 and id(sensor_1).state < 26) {        
      it.line(36, 27, 28, 45); }                                        //  25% offen      
      else if (id(sensor_1).state > 26 and id(sensor_1).state < 51) {
      it.line(39, 29, 25, 43); }                                        //  50% offen      
      else if (id(sensor_1).state > 50 and id(sensor_1).state < 76) {        
      it.line(41, 32, 23, 40); }                                        //  75% offen
      else if (id(sensor_1).state > 75) {
      it.line(22, 36, 42, 36); }                                        // -- 100% offen
      
 
      

sensor:
  - platform: homeassistant
    name: sensor_1
    id: sensor_1
    entity_id: number.esphome_web_1a5c26_opening



binary_sensor:
  - platform: gpio
    pin: 
      number: GPIO13
      inverted: true
      mode:
        input: true
        pullup: True
    name: "open"
    filters:
      - delayed_off: 10ms
  - platform: gpio  
    pin: 
      number: GPIO3
      inverted: true
      mode:
        input: true
        pullup: true    
    name: "close"
    filters:
      - delayed_off: 10ms      

Hier noch eine Zeichnung vor der Umsetzung. Die Rohrführung wird im Zuge der Fertigstellung der Verrohrung, Wasserleitungen und Isolierung festgelegt. Alles noch ein wenig Baustelle also die Unordnung bitte ignorieren :slight_smile:


Rechts Technikraum (Heizung, Elektro und PV), links die Waschküche und Vorratsraum und dazwischen der Flur.

Der rechte Einlass der BWWP ist die Ansaugung. Diese kann aus dem Raum in dem sie steht (Technikraum: Heizung, Elektrik und PV) und/oder (quasi Stufenlos) aus der Waschküche/Vorratsraum gezogen werden.

Der Linke Auslass kann ebenfalls auf beide Räume verteilt werden.

Soweit mal dazu, evtl. ergänze ich noch das ein oder andere wenn das Projekt voranschreitet.

1 „Gefällt mir“

Einbinden der BWWP via ModBus in HomeAssistant

Wie schon erwähnt hängt die BWWP an meinem HomeAssistant und wird sowohl ausgelesen, also auch gesteuert damit.

Die BWWP hängt mittels WaveShare RS485 <> RJ45 - Modbus Gateway mit PoE in Netzwerk. Den Modbus Device Server betreibe ich über POE.

Anfangs hatte ich versucht mit einem ESP32 und einer RS485 Platine (wie an meinem Wechselrichter und Akku) mit der BWWP zu kommunizieren, habe das aber mit mehreren unterschiedlichen Platinen nicht stabil ans laufen gebracht. Teilweise wurden die Wandler sehr schnell extrem heiß und/oder hingen sich auf. Sowohl 5V und 3V Speisung, oder gemeinsames GND hat hier nicht geholfen. Für knappe 40€ habe ich dann den WaveShare Adapter besorgt, einmal angeschlossen und läuft seit Monaten ohne ein Ausfall - hat sich also gelohnt.





Die Konfiguration

Um das ganze in HomeAssistant einzubinden muss man in der configuration.yaml ModBus aktivieren. Hier werden auch die Sensoren definiert welche auf die unterschiedlichen Register lesend zugreifen.





Hier ein Ausschnitt aus meiner configuration.yaml. Es werden alle lesbaren Register (auch die schreibaren können ausgelesen werden) als Sensor bereitgestellt.

Hinweis:
Die Konfiguration habe ich nicht alleine erstellt. Im HA Community Forum wurde die Anbindung der Ochsner erarbeitet, diskutiert und erfolgreich getestet. Im großen und ganzen habe ich die Konfiguration auf mein Setup angepasst und hier als ganzes niedergeschrieben !
Vielen Dank an Woody_HomeAss und geonic !


Hier ein Beispiel:
name: "BWWP Temperatur Anzeige" = Name des Sensors (friendly name)
unit_of_measurement: °C = Einheit des Wertes
slave: 1 = Adresse des Gerätes am Bus
address: 2000 = Adresse des Registers
input_type: input = Typ des Registers
scale: 0.1 = Skalierung
precision: 2 = Nachkommastellen
device_class: temperature = Art des Sensors in HA
unique_id: BWWP_Temperatur_Anzeige = eindeutiges Name in HA
modbus:
# Ochsner Wärmepumpe Modbus TCP
  - name: ochsner_modbus
    #type: tcp
    type: rtuovertcp
    host: 192.168.1.132
    port: 502

    sensors:
      - name: "BWWP Temperatur Anzeige"
        unit_of_measurement: °C
        slave: 1
        address: 2000
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Temperatur_Anzeige
        
      - name: "BWWP Istwert Sensor F1"
        unit_of_measurement: °C
        slave: 1
        address: 2001
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Istwert_Sensor_F1 
        
      - name: "BWWP Istwert Sensor F2"
        unit_of_measurement: °C
        slave: 1
        address: 2002
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Istwert_Sensor_F2         
        
      - name: "BWWP Istwert Sensor F3"
        unit_of_measurement: °C
        slave: 1
        address: 2003
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Istwert_Sensor_F3         
        
      - name: "BWWP Istwert Sensor F4"
        unit_of_measurement: °C
        slave: 1
        address: 2004
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Istwert_Sensor_F4         
        
      - name: "BWWP Ventilator Drehzahl"
        unit_of_measurement: U/min
        slave: 1
        address: 2005
        input_type: input
        scale: 0.1
        precision: 1
        device_class: speed
        unique_id: BWWP_Ventilator_Drehzahl          
        
      - name: "BWWP Temperatur Warmwasser"
        unit_of_measurement: °C
        slave: 1
        address: 2006
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature
        unique_id: BWWP_Temperatur_Warmwasser
        
      - name: "BWWP Temperatur Verdampfer"
        unit_of_measurement: °C
        slave: 1
        address: 2007
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Temperatur_Verdampfer        
        
      - name: "BWWP Temperatur Solarthermie"
        unit_of_measurement: °C
        slave: 1
        address: 2008
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Temperatur_Solarthermie   
        
      - name: "BWWP Alarmtemperatur"
        unit_of_measurement: °C
        slave: 1
        address: 2009
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature
        unique_id: BWWP_Alarmtemperatur         
        
      - name: "BWWP Aktuelle Überschussleistung"
        unit_of_measurement: W
        slave: 1
        address: 2010
        device_class: power
        unique_id: BWWP_Aktuelle_Ueberschussleistung
        
      - name: "BWWP Variable Heizleistung"
        unit_of_measurement: "%"
        slave: 1
        address: 2011
        precision: 1
        device_class: power_factor
        unique_id: BWWP_Variable_Heizleistung
        
      - name: "BWWP Totale Überschussleistung"
        unit_of_measurement: W
        slave: 1
        address: 2012
        precision: 1
        device_class: power
        unique_id: BWWP_Totale_Überschussleistung
        
      - name: "BWWP Aktueller Warmwassersollwert"
        unit_of_measurement: °C
        slave: 1
        address: 2013
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature
        unique_id: BWWP_Aktueller_Warmwassersollwert
        

   
        
      - name: "BWWP Solltemperatur (write)"
        unit_of_measurement: °C
        slave: 1
        address: 2200
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature
        unique_id: BWWP_Solltemperatur_write
                
      - name: "BWWP Überschussleistung (write)"
        unit_of_measurement: W
        slave: 1
        address: 2201
        input_type: input
        scale: 1
        precision: 1
        device_class: power
        unique_id: BWWP_Ueberschussleistung_write
        
      - name: "BWWP Sollwert für Antilegionellen-Betrieb (write)"
        unit_of_measurement: °C
        slave: 1
        address: 2203
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature
        unique_id: BWWP_Sollwert_Antilegionellen-Betrieb_write        
        
      - name: "BWWP Lüfterleistung Lüftungsbetrieb (write)"
        unit_of_measurement: "%"
        slave: 1
        address: 2204
        input_type: input
        scale: 0.1
        precision: 1
        device_class: power_factor
        unique_id: BWWP_Luefterleistung_Lueftungsbetrieb_write





Anzeige in HomeAssistant

Die Entitätskarte in HomeAssistant könnte so aussehen:

type: entities
entities:
  - type: section
    label: Soll-/Ist-Werte (Read)
  - entity: sensor.bwwp_temperatur_anzeige
    name: Temperatur (Anzeige)
  - entity: sensor.bwwp_aktueller_warmwassersollwert
    name: Aktueller Warmwassersollwert
  - entity: sensor.bwwp_alarmtemperatur
    name: Alarmtemperatur
    icon: mdi:alarm-light
  - type: section
    label: Energie-Werte (Read)
  - entity: sensor.bwwp_totale_uberschussleistung
    name: Totale Überschussleistung
  - entity: sensor.bwwp_power
    name: Verbrauch (aktuell)
  - entity: sensor.esphome_web_a0c1b4_sun12k_out_of_grid_total_power
    name: PV Überschuss
    icon: mdi:solar-power
  - entity: sensor.bwwp_energy
    name: Verbrauch (gesamt)
  - type: section
    label: Technische-Werte (Read)
  - entity: sensor.bwwp_variable_heizleistung
    name: Leistung variabler Heitzstab
    icon: mdi:heating-coil
  - entity: sensor.bwwp_ventilator_drehzahl
    name: Lüfter Drehzahl
  - type: section
    label: Temperaturen Sensoren (Read)
  - entity: sensor.bwwp_istwert_sensor_f2
    name: Temperatur Speicher Oben (F2)
  - entity: sensor.istwert_sensor_f1
    name: Temperatur Speicher Mitte (F1)
  - entity: sensor.bwwp_istwert_sensor_f4
    name: nicht angeschlossen (F4)
  - entity: sensor.bwwp_istwert_sensor_f3
    name: Temperatur Verdampfer (F3)
    icon: mdi:cloud
  - entity: sensor.bwwp_temperatur_solarthermie
    name: Temperatur Solarthermie
    icon: mdi:thermometer-water
  - entity: sensor.bwwp_temperatur_verdampfer
    name: Temperatur Verdampfer
  - entity: sensor.bwwp_temperatur_warmwasser
    name: Temperatur Warmwasser
  - type: section
    label: Soll-Werte (Write)
  - entity: sensor.bwwp_uberschussleistung_write
    name: Überschussleistung
  - entity: sensor.bwwp_solltemperatur_write
    name: Solltemperatur
  - entity: sensor.bwwp_lufterleistung_luftungsbetrieb_write
    name: Lüfterleistung Lüftungsbetrieb
    icon: mdi:fan
  - entity: sensor.bwwp_sollwert_fur_antilegionellen_betrieb_write
    name: Sollwert für Antilegionellen-Betrieb
    icon: mdi:bacteria
title: BrauchWasserWärmePumpe





Das Script

Ein Script schickt den aktuellen Überschuss an die BWWP (Auszug aus der scripts.yaml). Kann auch über Einstellungen > Automationen & Szenen > Skripte angelegt werden

Value erklärt:
set buffer = 0 | int
schreibt in die Variable buffer einen beliebigen Wert, hier 0. Der Puffer wird hergenommen das nicht direkt bei 1W Überschuss die BWWP einen Wert geschrieben bekommt.

set export =
schreibt den aktuellen PV-Überschuss in die Variable export. Der Wert kann mit states("sensor.name-der-HAEntität_Wert") geladen werden. Ich negiere den Wert *(-1) und ziehe den Puffer ab.

if export >= 0
Wenn der Überschuss >= 0 ist, schreibe den Wert in value

else (65535 + (export))
Wenn der Überschuss sich verändert, muss dieser ebenfalls in das Register geschrieben werden. Man kann der BWWP aber nicht einfach -100 (Watt) sagen um auf 0 zu kommen, sondern gibt die negativen Werte wie folgt mit:
0 = 0
-1 = 65535
-2 = 65534
-3 = 65533
...

waermepumpe_pv_ueberschuss:
  alias: Heizen mit PV Überschuss
  sequence:
  - data:
      hub: ochsner_modbus
      slave: 1
      address: 2201
      value: >
        {% set buffer = 0 | int %} 
        {% set export = (states("sensor.esphome_web_a0c1b4_sun12k_total_grid_power") | int * (-1) -buffer) %} 
        {% if export >= 0 %}
          {{ export }}
        {%- else -%}
          {{ (65535 + (export))}}
        {%- endif %}
      action: modbus.write_register
  mode: single
  icon: mdi:heat-pump-outline







Die Automation

Um das PV Überschuss Script zyklisch auszuführen nutze ich eine einfache Automation. Ich führe alle 5 Sekunden, zwischen Sonnenaufgang und Sonnenuntergang das Script aus.
Kann auch über Einstellungen > Automationen & Szenen > Automationen angelegt werden

- id: '1742939625325'
  alias: BWWP Überschuss Script
  description: ''
  triggers:
  - trigger: time_pattern
    seconds: /5
  conditions:
  - condition: sun
    before: sunset
    after: sunrise
  actions:
  - action: script.waermepumpe_pv_ueberschuss
    metadata: {}
    data: {}
  mode: single

Wer in HomeAssistant ein wenig Erfahrung hat, kann mit den Entitäten sein Unwesen treiben und die wildesten Automationen basteln :slight_smile:

Ich bin aktuell auf dem Stand, das die BWWP anspringt wenn Überschuss da ist und diese auf die Legionellenfunktions-Temperatur hochfährt (65°). Bzw. Nachts aus dem Akku die Temperatur auf min 55° gehalten wird.

Bei mir steht jetzt an, die Klappensteuerung in die Automationen einzubauen.

Wenn die BWWP läuft entsprechend die wärmste Luft angesaugt werden kann (Waschküche, Technikraum oder Aussenluft, bzw. wenn die Luftfeuchte in der Waschküche hoch ist dort die kalte Luft abgeblasen wird. Im Ruhezustand sollen die Klappen geschlossen sein.




Was fehlt noch ?


Ein Beitrag wird noch ergänzt um die besonderen Einbaubedingungen wie z. B. isoliertes, flachdichtendes anbinden an die vorhandenen Leitungen, Anschluss der ModBus Leitung, Isolierung der Anschlussflansche inkl. Temperatursensoren und Details zum Verrohrungssystem.

1 „Gefällt mir“

Cooles Projekt! Um welche BWWP handelt es sich denn?
Sehr schön gelöst mit der Luftzufuhr! Gehen sowohl von Zu-, als auch Abluft jeweils ein Rohr in die Waschküche oder lässt du es irgendwie über eine offene Tür o.ä. zurück zirkulieren?

Ich habe mir dein PV Projekt jetzt nicht angeschaut, aber wenn da ein Speicher dabei ist, verliert die wattgenaue Steuerung der BWWP (über die 2 Heizstäbe, die ja auch nachher nur cop 1 liefern) etwas an Bedeutung...aber dennoch natürlich ein cooles Setup, wenn du das so granular steuern kannst! Und natürlich ein super produktives Homeassistant Projekt :slight_smile:

Freue mich über Updates, was den Verbrauch betrifft, in den nächsten Wochen/Monaten! Ich bin einen ähnlichen Weg gegangen mit meiner diy Energiewende, nur in anderer Reihenfolge (Splitklima -> größeres Balkonkraftwerk -> Selbstbauakku -> BWWP -> seit 6 Wochen eine große PV (14,5kwp)). Links inkl unregelmäßige Updates zu Verbräuchen und Erfahrungen gibt's in meinem Profil, die PV Themen habe ich hier allerdings nicht so ausführlich dokumentiert :slight_smile:

1 „Gefällt mir“

Also ich finde das einbrennen mit 3 Verbrauchern nicht direkt als genial. Immerhin wird damit Strom verballert. Cleverer wäre es entweder die BWWP nur mit der Wärmepumpe laufen zu lassen, oder auch mit einem Akku nachzuladen. Sprich: Wenn PV-Strom da ist, werden 700W im Akku eingelagert, sind diese 700W drin läuft die BWWP nur mit der Wärmepumpe für eine Stunde und lädt, egal wieviel sie damit überschüssig erzeugen kann, auf.
Nun wird wieder der Akku geladen, in den nächsten 3 Stunden sind es 700W. Dann springt die Wärmepumpe wieder für 1 Stunde an und entnimmt diese 700W.

Erzeugt damit dann aus 1400W el. 4200W Wärme.
In deinem Fall würdest du aus 2100W el. + 700W el. = 2800W el. = 4200W
Wärme

erzeugen. Das widerspricht dem Wärmepumpen-Gedanken Strom zu sparen. Dass der Überschuss genutzt wird keine Frage, ich bin ja selber an sowas dran, weil ich nicht alles an Strom einspeisen und daher verwerten kann. Aber dann hätte man auch einfach nur die Heizstablösung nehmen können. Gerade dann auch im Sommer, da ist der Strom ja "über", also wurscht ob nun mit BWWP oder nicht. Also bräuchte man die BWWP vermehrt im Winter. Wer dann schon eine LWWP hat, der kann sich das bisschen aus dieser ziehen ohne weitere BWWP.

Dennoch ein schönes Projekt! Nachgedacht und eine Lösung gesucht und gefunden.

Das schöne ist ja, ich kann steuern was da Wärme erzeugt und das eben ziemlich exakt.

Da die PV maximal 12+KW einspeissen kann, aber ich damit 16+KW vom Dach hole, kanns auch verheizt werden bevor es nicht geerntet wird.

Bei uns im Doppelhaus musste eine andere Brauchwasserlösung her. Hier wurden 12 Personen, 4 bei mir und 8 in der anderen Hälfte mit einem 40 Jahre alten 30kw Gaskessel (kein Brennwert ) und 200L Speicher versorgt.

Die BWWP war die willkommene Lösung um hier eine Trennung herbeizuführen. Ich konnte mich damit mit Brauchwasser entspannt abkoppeln.

Es handelt sich um die Genius 333 von Ochsner.

Die Verrohrung ist mit jeweils Zu und Abluft realisiert. Es gibt im Moment 4 Klappen. Eine Option für Aussenluft (Zu und Ab) ist auch in Planung, mal schauen.

2 „Gefällt mir“

Das verstehe ich nicht ganz. Dein WR ist ein 12 kW WR und deine PV Modulleistung ergibt zusammen >16kw. Dann stehen trotzdem max 12 kW zur Verfügung (und potentiell 4kw eben nicht), da deine BWWP ja AC seitig ans Hausnetz angeschlossen sein wird, oder? Vielleicht habe ich dich aber auch einfach missverstanden und du kannst es kurz nochmal erklären :slight_smile:

Da hast Du recht, die 4KW gehen nur ins Akku - verheizen ist da nicht korrekt.

Klappen und Steuerung ergänzt (Zweiter Beitrag)

Ah is nochn Flur dazwischen. OK Wollte schon fragen warum nicht nur 2 Löcher ausreichen
Reichts auch zum Wäsche trocknen? Die WP zieht ja Feuchte raus?

Wir haben dort auch Wäscheleinen gespannt und nutzen diese auch. Alles kann man dem Trockner ja nich geben.

Ich frag mal die Regierung ob sie positives berichten kann :wink:

Ich hab schon darüber nachgedacht den Flur, der zu einer kleinen Zweizimmer Wohnung gehört auch anschließe um das Volumen zu erhöhen. Aber das ist eine andere Bsustelle.

Einbinden der BWWP via ModBus in HomeAssistant ergänzt (dritter Beitrag)

1 „Gefällt mir“

Hallo.

Finde den Klappenantrieb interessant.
Könntest du evtl. die verwendeten Servomotoren und das angesprochen Display verlinken?

Hallo ewu75,

google mal:
AZDelivery 3 x MG996R Micro Digital Servo Motor mit Metall Getriebe

AZDelivery 5 x 0,96 Zoll OLED Display I2C SSD1306 Chip 128 x 64 Pixel I2C Bildschirm

Wenn du die Kopfzahnräder brauchst, lade das Projekt die Tage noch auf printables.com hoch und verlinke dort hin.

Grüße

KalleKnall

3 „Gefällt mir“

Ein schönes Projekt ... aber: ich leite einfach die Kaltluft der BWWP in den Nachbarraum und dann gehts über unten gekürzte Türen zurück.
Insgesamt ist der Verbrauch der BWWP so gering, daß sich jeder Mehrverbrauch durch Steuerungselektronik nicht lohnt. Den einzigen Nutzen im Einsatz von Heizstäben sehe ich darin, den Kompressor zu schonen.

Hi RH-PAD,

passt bei uns nicht mit der Türe, ist eine Metalltüre und in dem Fall kein Wohnraum.

Die Steuerelektronik sind ESPs :wink: da geht nicht viel rein.

Die Heizstäbe machen schneller warmes Wasser und sind variabel, vor allem wenn nicht stetig Überschuss vorhanden ist praktisch. Dann taktet die WP nicht.

Und irgendwie auch Spieltrieb der befriedigt werden muss.

1 „Gefällt mir“