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