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
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.


