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

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“