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

Bin gespannt, poste gerne deine Erfahrungen.

Hallo KalleKnall,
weist Du ob es noch andere, nicht dokumentierte Reglerwerte gibt? Mich würden da noch die Betriebsstunden interessieren

Jetzt habe ich eine weitere Frage. Wenn ich jetzt z.B. den Sollwert 1 ändern möchte, wie kann ich das machen? Ich habe schon einen Zahlenwert Helfer eingerichtet. Ich denke ich muss da noch irgendwie eine Automation anlegen. Nur wie?

Hallo,

du kannst über ein Script einen Wert von z. B. eines Sliders (hier input_number.bwwp_fan_speed) auslesen und dann in den Modbus schreiben. Um das Script zu starten kannst Du z. B. eine Automation hernehmen.

data:
  hub: ochsner_modbus
  slave: 1
  address: 2204
  value: >
    {% set export = (states("input_number.bwwp_fan_speed") | int )  %} {{ export
    }}
action: modbus.write_register

aktuell setze ich nur den Überschuss und die WP heizt auf den Legionellen Wert Punkt. Ich Dachte zuerst ich setze den Sollwert noch entsprechend, aber das habe ich bisher nicht weiter verfolgt.

Weitere Werte habe ich nicht gefunden. Man könnte die Adressen durchprobieren.

Wenn man mit dem Heizstab das Wasser warm macht, spart man Kompressorstunden und erhöht die Lebensdauer der BWWP.

Ich habe eine Brauchwasserwärmepumpe, bei PV Überschuss schmeisse ich den Heizstab an, insbesondere dann, wenn der Spotpreis negativ oder sehr niedrig ist. Ich "bewerte" also die Kompressorlaufzeit. Wenn der VK-Preis für den PV-Strom gering ist, läuft der Heizstab.

Ich weiss nicht wieso BWWP ausfallen bzw. wie da die Ausfallhäufigkeiten sind. Aber den Kompressor schonen, da halte ich auch bei anderen Wärmepumpen nichts von. Die sind alle dafür ausgelegt. Ich glaube eher die fallen aus wenn sich das Kälte- und Schmiermittel richtig absetzt und man sie dann einschaltet. Ist aber ok. Jeder so wie er will.

Danke für Dein script. Das werde ich mal ausprobieren.
Ich werde mal versuchen ob es undokumentierte Funktionen auszulesen sind.

Danke für Deinen Hinweis.

Für mich gibt es noch zwei weitere Gründe den Heizstab zu verwenden.

Wenn z.b. Nachmittags PV-Überschuss vorhanden ist und ich weiß, das hält sich jetzt nicht so lange, bis Regen kommt. Dann kann man mit dem Heizstab nochmal die Wassertemperatur hochboosten. Die Wärmepumpe würde dann nur einen kleinen Teil des PV-Überschusses annehmen und dann ggf in die Zeit reinlaufen, wo die Sonne weg ist.

Die Wärmepumpe kann bei mir bis max 55 Grad. Mit dem Heizstab kann man höher. D.h. ich kann bei Sonne mehr Energie mit dem Heizstab in den Tank einlagern.

Habe keine Batterie, mit Batterie ist das natürlich anders.

Im Winter, wenn kein PV-Überschuss vorhanden ist, läuft natürlich nur die Wärmepumpe der BWWP.

Hallo, ich habe jetzt das script soweit auf meinem Testsystem angepasst, aber bei einer Änderung des Sliders wird der neu eingestellte Wert nicht in das Register geschrieben.

sequence:
  - action: modbus.write_register
    metadata: {}
    data:
      hub: ochsner_modbus
      address: 2200
      slave: 1
      value: >
        {% set export = (states("input_number.bwwp_sollwert_1_einstellung") |
        int )  %} {{ export }}
alias: Script Sollwert 1 Anpassung
description: ""

Habe ich da noch einen Fehler?

Hi, cooler Beitrag, hat gut geklappt!

Was mich wundert, der Sensor F1 sollte ja eigentlich der Sensor in der Kesselmitte sein, ist aber immer am wärmsten. Normaleweise ist das heiße Wasser doch oben → Sensor F2 laut Beschreibung. Habt ihr den gleichen Effekt oder sind meine Sensoren am Gerät vertauscht.

Weiterhin habe ich noch die Register erweitert und bekomme dort auch noch irgendwelche Werte → gibt es eine erweiterte Liste zur Ochsner?

Viele Grüße

Hallo David,
hab deinen Beitrag voll übersehen, sorry.
Hast du die Zirkulation angeschossen ? die durchmischt das Wasser oben vielleicht wenns viel ist.

Zu den Registern, hast du was rausgefunden ? ich habe keine Liste gefunden. Bei anderen Ochsner Produkten gibts weitere Werte, müsste man mal nebeneinander legen.

Ich habe mittlerweile ein paar SchreibRegister umgesetzt in HomeAssistant, sprich man kann drei Werte setzen (bis jetzt). Über jeweils einen Helper und eine Automation geregelt. Das ist mit der direkten HA Modbusintegration nicht so trivial, aber dank KI und HI konnte ichs lösen. Wenn Interesse besteht, kann ichs posten.

Solltemperatur

Legionellen Temperatur

Lüfterdrehzahl im Lüfter (only) Betrieb

Hi Hi,

klar, gerne immer Posten. Ich habe bisher nichts herausgefunden und eine Antwort von Ochsner steht aus.

Ja, habe eine Zirkulationspumpe dran, aber selbst wenn diese von 9-17 Uhr aus ist, passiert das, trotz Rücklaufsperre - evtl. Zirkuliert ja die Schwerkraft, müsste dann das Ventil mal absperren und testen.

Aus Spaß habe ich im unteren Rohr des Heizregister den Sensor F2 angeschlossen, es ist schon interessant, was auch da so passiert.

Weiter habe ich das Gefühl, das mein 12l ausdehnungsgefäß nicht ganz ausreicht, 6bar soll das Überdruckventil haben, da tröpfelt es schon immer beim aufheizen, was hast du als Sicherheitsgruppe?

Ansonsten überlege ich den Heizstab einfach gegen einen DC Stab auszutauschen und direkt die PV reinzudrücken, ist irgendwie einfacher ….

Habe heute die Elektronik mal angeschaut, auf dem Bild sieht man schön die farbigen Tempsensorkabel, evtl. kannst du das bei Dir vergleichen.

Hallo KalleKnall,

ich hätte auch Interesse an Deiner Schreibregister Umsetzung in HA.
Ich hatte mal versucht verschiedene Register auszulesen, habe aber keine neuen Werte sehen können.

Ich habe auch zwischenzeitlich mal im Projekt EVCC reingeschaut. Da ist die Ochsner GENIUS sogar gelistet unter Geräte. Wärmepumpen, Heizstäbe | evcc - Sonne tanken ☀️🚘
Das ist aber für noch zu hoch für mich. Ist auch mittlerweile in HA integrierbar.

Hallo pie,

ich poste einfach mal meine aktuelle Konfiguration. In der configration.yaml folgende Zeilen eintragen um ochsner_bwwp.yaml file zu integrieren. (kann sein das “homeassistant:“ schon vorhanden ist, dann darunter eingerückt einfügen.


# ============================================================================
# PACKAGES - Alle Geräte ausgelagert
# ============================================================================
homeassistant:
  packages: !include_dir_named packages/

einen Ordner “packages” in “homeassistant“ erstellen und folgende Datei dort ablegen. Geht am einfachsten übers File Editor Addin.

/homeassistant/packages/ochsner_bwwp.yaml sie enthält alle Sensoren, Helfer (Entitäten) und notwendige Automationen.

# ============================================================================
# Ochsner Brauchwasser-Wärmepumpe - Komplettes Package
# Waveshare RS485 Adapter @ 192.168.1.132:502
# ============================================================================

modbus:
  - name: ochsner_modbus
    type: rtuovertcp
    host: 192.168.1.132
    port: 502

    sensors:
      - name: "BWWP Temperatur Anzeige"
        unique_id: BWWP_Temperatur_Anzeige
        unit_of_measurement: °C
        slave: 1
        address: 2000
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Istwert Sensor F1"
        unique_id: BWWP_Istwert_Sensor_F1
        unit_of_measurement: °C
        slave: 1
        address: 2001
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Istwert Sensor F2"
        unique_id: BWWP_Istwert_Sensor_F2
        unit_of_measurement: °C
        slave: 1
        address: 2002
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Istwert Sensor F3"
        unique_id: BWWP_Istwert_Sensor_F3
        unit_of_measurement: °C
        slave: 1
        address: 2003
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Istwert Sensor F4"
        unique_id: BWWP_Istwert_Sensor_F4
        unit_of_measurement: °C
        slave: 1
        address: 2004
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Ventilator Drehzahl"
        unique_id: BWWP_Ventilator_Drehzahl
        unit_of_measurement: U/min
        slave: 1
        address: 2005
        input_type: input
        scale: 0.1
        precision: 1

      - name: "BWWP Temperatur Warmwasser"
        unique_id: BWWP_Temperatur_Warmwasser
        unit_of_measurement: °C
        slave: 1
        address: 2006
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature

      - name: "BWWP Temperatur Verdampfer"
        unique_id: BWWP_Temperatur_Verdampfer
        unit_of_measurement: °C
        slave: 1
        address: 2007
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Temperatur Solarthermie"
        unique_id: BWWP_Temperatur_Solarthermie
        unit_of_measurement: °C
        slave: 1
        address: 2008
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Alarmtemperatur"
        unique_id: BWWP_Alarmtemperatur
        unit_of_measurement: °C
        slave: 1
        address: 2009
        input_type: input
        scale: 0.1
        precision: 2
        device_class: temperature

      - name: "BWWP Aktuelle Überschussleistung"
        unique_id: BWWP_Aktuelle_Ueberschussleistung
        unit_of_measurement: W
        slave: 1
        address: 2010
        device_class: power

      - name: "BWWP Variable Heizleistung"
        unique_id: BWWP_Variable_Heizleistung
        unit_of_measurement: "%"
        slave: 1
        address: 2011
        precision: 1
        device_class: power_factor

      - name: "BWWP Totale Überschussleistung"
        unique_id: BWWP_Totale_Überschussleistung
        unit_of_measurement: W
        slave: 1
        address: 2012
        precision: 1
        device_class: power

      - name: "BWWP Aktueller Warmwassersollwert"
        unique_id: BWWP_Aktueller_Warmwassersollwert
        unit_of_measurement: °C
        slave: 1
        address: 2013
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature

      - name: "BWWP Solltemperatur (write)"
        unique_id: BWWP_Solltemperatur_write
        unit_of_measurement: °C
        slave: 1
        address: 2200
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature

      - name: "BWWP Überschussleistung (write)"
        unique_id: BWWP_Ueberschussleistung_write
        unit_of_measurement: W
        slave: 1
        address: 2201
        input_type: input
        scale: 1
        precision: 1
        device_class: power

      - name: "BWWP Sollwert für Antilegionellen-Betrieb (write)"
        unique_id: BWWP_Sollwert_Antilegionellen-Betrieb_write
        unit_of_measurement: °C
        slave: 1
        address: 2203
        input_type: input
        scale: 0.1
        precision: 1
        device_class: temperature

      - name: "BWWP Lüfterleistung Lüftungsbetrieb (write)"
        unique_id: BWWP_Luefterleistung_Lueftungsbetrieb_write
        unit_of_measurement: "%"
        slave: 1
        address: 2204
        input_type: input
        scale: 1
        precision: 1
        device_class: power_factor

# ============================================================================
# AUTOMATIONEN - BWWP
# ============================================================================
automation:
  - id: '1742939625325'
    alias: BWWP PV Überschuss Steuerung
    description: Schreibt PV-Überschuss direkt zur Wärmepumpe
    triggers:
      - trigger: time_pattern
        seconds: /5
    conditions:
      - condition: sun
        before: sunset
        after: sunrise
    actions:
      - action: modbus.write_register
        data:
          hub: ochsner_modbus
          slave: 1
          address: 2201
          value: >
            {% set buffer = 0 | int %}
            {% set export = (states("sensor.sun12k_total_grid_power") | int * (-1) - buffer) %}
            {% if export >= 0 %}
              {{ export }}
            {%- else -%}
              {{ (65535 + (export)) }}
            {%- endif %}
    mode: single

  - id: '1759356992448'
    alias: BWWP Solltemperatur setzen
    description: Schreibt Solltemperatur vom Schieber zur Wärmepumpe
    triggers:
      - entity_id: input_number.bwwp_target_temp
        for:
          seconds: 2
        trigger: state
    conditions:
      - condition: template
        value_template: '{{ trigger.to_state.state not in [''unavailable'', ''unknown''] }}'
    actions:
      - action: modbus.write_register
        data:
          hub: ochsner_modbus
          slave: 1
          address: 2200
          value: '{{ (states(''input_number.bwwp_target_temp'') | float * 10) | int }}'
      - action: system_log.write
        data:
          message: 'BWWP: Solltemperatur auf {{ states(''input_number.bwwp_target_temp'') }}°C gesetzt (Modbus: {{ (states(''input_number.bwwp_target_temp'') | float * 10) | int }})'
          level: info
    mode: single

  - id: '1759357257160'
    alias: BWWP Antilegionellentemperatur
    description: Schreibt Antilegionellentemperatur vom Schieber zur Wärmepumpe
    triggers:
      - entity_id: input_number.bwwp_antilegio_temp
        for:
          seconds: 2
        trigger: state
    conditions:
      - condition: template
        value_template: '{{ trigger.to_state.state not in [''unavailable'', ''unknown''] }}'
    actions:
      - action: modbus.write_register
        data:
          hub: ochsner_modbus
          slave: 1
          address: 2203
          value: '{{ (states(''input_number.bwwp_antilegio_temp'') | float * 10) | int }}'
      - action: system_log.write
        data:
          message: 'BWWP: Antilegionellentemperatur auf {{ states(''input_number.bwwp_antilegio_temp'') }}°C gesetzt (Modbus: {{ (states(''input_number.bwwp_antilegio_temp'') | float * 10) | int }})'
          level: info
    mode: single

  - id: '1759357542111'
    alias: BWWP Lüfterleistung setzen
    description: Schreibt Lüfterleistung vom Schieber zur Wärmepumpe
    triggers:
      - entity_id: input_number.bwwp_fan_speed
        for:
          seconds: 2
        trigger: state
    conditions:
      - condition: template
        value_template: '{{ trigger.to_state.state not in [''unavailable'', ''unknown''] }}'
    actions:
      - action: modbus.write_register
        data:
          hub: ochsner_modbus
          slave: 1
          address: 2204
          value: '{{ (states(''input_number.bwwp_fan_speed'') | float * 10) | int }}'
      - action: system_log.write
        data:
          message: 'BWWP: Lüfterleistung auf {{ states(''input_number.bwwp_fan_speed'') }}% gesetzt (Modbus: {{ (states(''input_number.bwwp_fan_speed'') | float * 10) | int }})'
          level: info
    mode: single

IP und Port anpassen.

In der Automation “BWWP PV Überschuss Steuerung” musst du noch den Sensor für den PV Überschuss eintragen (falls vorhanden). bei mir ist das “sensor.sun12k_total_grid_power”

Und zuletzt noch das Dashboard (Karte):

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.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_f3
    name: Temperatur Verdampfer (F3)
    icon: mdi:cloud
  - entity: sensor.bwwp_temperatur_verdampfer
    name: Temperatur Verdampfer
  - entity: sensor.bwwp_temperatur_warmwasser
    name: Temperatur Warmwasser
  - type: section
  - entity: sensor.bwwp_istwert_sensor_f4
    name: nicht angeschlossen (F4)
  - entity: sensor.bwwp_temperatur_solarthermie
    name: Temperatur Solarthermie
    icon: mdi:thermometer-water
  - type: section
    label: Soll-Werte (Write)
  - entity: sensor.bwwp_uberschussleistung_write
    name: Überschussleistung
  - entity: input_number.bwwp_target_temp
    name: Temperatur Warmwasser
  - entity: sensor.bwwp_solltemperatur_write
    name: Temperatur Warmwasser (gesetzt)
    icon: mdi:temperature-celsius
  - entity: input_number.bwwp_fan_speed
    name: Lüfterleistung Lüftungsbetrieb
  - entity: sensor.bwwp_lufterleistung_luftungsbetrieb_write
    name: Lüfterleistung Lüftungsbetrieb (gesetzt)
    icon: mdi:fan
  - entity: input_number.bwwp_antilegio_temp
    name: Antilegionellen-Betrieb
  - entity: sensor.bwwp_sollwert_fur_antilegionellen_betrieb_write
    name: Antilegionellen-Betrieb (gesetzt)
    icon: mdi:bacteria
title: BrauchWasserWärmePumpe

2 „Gefällt mir“

Hallo KalleKnall,

vielen Dank für Deine Files. Da muss ich mich erst einmal mit vertraut machen.

Habe ich das richtig verstanden, auch die Automation ist mit in der ochsner_bwwp.yaml?
Oder wird die Automation unter Automationen gespeichert?

Die beiden Fragen habe ich geklärt. Ja wird automatisch erzeugt.
Es die Modbus Entitäten erzeugt worden und 4 Automationen.

Aber was ist mit den 3 Helfer?

input_number.bwwp_target_temp
input_number.bwwp_fan_speed
input_number.bwwp_antilegio_temp

Die habe ich nach Neustart nicht gesehen unter Helfer

Hallo pie,

ich habe das selbe Problem. Bin nicht ganz so fit in ha.

Hast du das Problem gelöst?

Hallo Balisto,
nein, ich habe das auch noch nicht lösen können. Bin auch nicht so der Spezialist
Grüße pie

Die 3 Helfer einfach unter Einstellungen → Geräte/Dienste → Helfer und dann 3 helfer hinzufügen.

Dann klappt es. Danach erscheinen auch direkt die Regler.