@stefkoch09 - great that the code is also working for you ! I bought myself a Hue Switch and now I can trigger my circulation with a real physical switch in the bath room. Now it is really accepted by the “end users” at home
Well great! I thought about that as well.
But then I created a routine with Alexa to have that trigged, whenever I tell her “I need warm water!”
The family just started to adopt that
Thanks again and regards!
Really great job by @tobiasm ! The only challenge I have is that the climate control is not working for me - this triggers many modbus errors - reviewed the code and the registers used and come to the conclusion it should work …
Anybody have a hint where the problem sits ? Anybody has the Warmwasser setting as a dial on the dashboard working ? Tx !
climates:
- name: "WP_Warmwasser"
address: 42103
input_type: holding
count: 1
data_type: int16
max_temp: 50
min_temp: 15
offset: 0
precision: 1
scale: 0.1
target_temp_register: 42103
temp_step: 1
temperature_unit: C
Same problem with my setup. This is the only part of @tobiasm line-out that I never got to work. I have tried several times. Maybe it depends on the installed software version in the heat pump …
I have it working, see below my config:
climates:
- name: "WP_Warmwasser_normal"
address: 32102
slave: 1
input_type: input
max_temp: 65
min_temp: 15
offset: 0
precision: 1
scale: 0.1
target_temp_register: 42103
temp_step: 1
temperature_unit: C
unique_id: 2d82d1e5-0c3d-4dfc-9b21-2233ce2a2739
@thrymr fantastic ! finally got this working with your yaml code ! THANKS for fixing seems that the used registers and input_type was wrong in the original code !
Did someone know if you can set the “Room Temp” by Modbus ?
My Software Version is 5.1
Or can someone share the register overview for 5.1
Very nice! Thanks for this working solution!
@thebiblock Yes you can set the room temperature for each “Heizkreis” pls look into the earlier published Modbus register list.
@kakash Studio Code Server shows me a lot of faults with your template.yaml
my template.yaml (Home Assistant 2023.10.5):
- name: "WP Betrieb Text" #30006
state: >-
{% set value = states('sensor.wp_betrieb')|int() %}
{% if value == 0 %}{% set modus = 'undefiniert' %}
{% elif value == 1 %}{% set modus = 'Relaistest' %}
{% elif value == 2 %}{% set modus = 'Notaus' %}
{% elif value == 3 %}{% set modus = 'Diagnose' %}
{% elif value == 4 %}{% set modus = 'Handbetrieb' %}
{% elif value == 5 %}{% set modus = 'Handbetrieb_Heizen' %}
{% elif value == 6 %}{% set modus = 'Handbetrieb_Kühlen' %}
{% elif value == 7 %}{% set modus = 'Manueller_Abtaubetrieb' %}
{% elif value == 8 %}{% set modus = 'Abtauen' %}
{% elif value == 9 %}{% set modus = 'WEZ2' %}
{% elif value == 10 %}{% set modus = 'EVU_Sperre' %}
{% elif value == 11 %}{% set modus = 'SG_tarif' %}
{% elif value == 12 %}{% set modus = 'SG_maximal' %}
{% elif value == 13 %}{% set modus = 'Tarifladung' %}
{% elif value == 14 %}{% set modus = 'Erhöhterbetrieb' %}
{% elif value == 15 %}{% set modus = 'Standzeit' %}
{% elif value == 16 %}{% set modus = 'Standbybetrieb' %}
{% elif value == 17 %}{% set modus = 'Spülbetrieb' %}
{% elif value == 18 %}{% set modus = 'Frostschutz' %}
{% elif value == 19 %}{% set modus = 'Heizbetrieb' %}
{% elif value == 20 %}{% set modus = 'Warmwasserbetrieb' %}
{% elif value == 21 %}{% set modus = 'Legionellenschutz' %}
{% elif value == 22 %}{% set modus = 'Umschaltung_HZ_KU' %}
{% elif value == 23 %}{% set modus = 'Kühlbetrieb' %}
{% elif value == 24 %}{% set modus = 'Passive_Kühlung' %}
{% elif value == 25 %}{% set modus = 'Sommerbetrieb' %}
{% elif value == 26 %}{% set modus = 'Schwimmbad' %}
{% elif value == 27 %}{% set modus = 'Urlaub' %}
{% elif value == 28 %}{% set modus = 'Estrich' %}
{% elif value == 29 %}{% set modus = 'Gesperrt' %}
{% elif value == 31 %}{% set modus = 'Sperre_AT' %}
{% elif value == 31 %}{% set modus = 'Sperre_Sommer' %}
{% elif value == 32 %}{% set modus = 'Sperre_Winter' %}
{% elif value == 33 %}{% set modus = 'Einsatzgrenze' %}
{% elif value == 34 %}{% set modus = 'HK_Sperre' %}
{% elif value == 35 %}{% set modus = 'Absenk' %}
{% else %}{% set modus = 'undefiniert' %}
{% endif %}
{{ modus }}
- name: "WP Heizkreis Betriebsart Text" #41103
state: >-
{% set value = states('sensor.WP_Heizkreis_Betriebsart')|int() %}
{% if value == 0 %}{% set modus = 'Automatik' %}
{% elif value == 1 %}{% set modus = 'Komfort' %}
{% elif value == 2 %}{% set modus = 'Normal' %}
{% elif value == 3 %}{% set modus = 'Abesenkbetrieb' %}
{% elif value == 4 %}{% set modus = 'Standby' %}
{% else %}{% set modus = 'undefiniert' %}
{% endif %}
{{ modus }}
- name: "WP Systembetriebsart Text" #40001
state: >-
{% set value = states('sensor.wp_systembetriebsart')|int() %}
{% if value == 0 %}{% set modus = 'Automatik' %}
{% elif value == 1 %}{% set modus = 'Heizen' %}
{% elif value == 2 %}{% set modus = 'Kühlen' %}
{% elif value == 3 %}{% set modus = 'Sommer' %}
{% elif value == 4 %}{% set modus = 'Standby' %}
{% elif value == 5 %}{% set modus = '2. WEZ' %}
{% else %}{% set modus = 'undefiniert' %}
{% endif %}
{{ modus }}
- name: "WP Störung"
state: >
{% if is_state('sensor.wp_stoerungsfrei', '1') %}
keine Störung
{% elif is_state('sensor.wp_betrieb', '0') %}
Störung
{% else %}
ERROR
{% endif %}
- name: "WP JAZ Tag"
state: >
{{ (float(states('sensor.WPST_Gesamt_Tag')) / float(states('sensor.WPST_Elektrisch_Tag')))|round(2) }}
- name: "WP JAZ Monat"
state: >
{{ (float(states('sensor.WPST_Gesamt_Monat')) / float(states('sensor.WPST_Elektrisch_Monat')))|round(2) }}
Currently my JAZ_Tag value is 24.67. But the Elektrisch_Tag machtes with my smartmeter.
What´s your JAZ_Tag value?
Edit:
{% elif value == 5 %}{% set modus = '2. WEZ' %}
the value was 4 instead of 5
Thank you AndiE1234 for the feedback.
I’m new in HomeAssistant and in YAML… I’ll have a look at Visual Studio Code… I’ve never installed it yet.
As for the JAZ 24 is not possible…
You should have a look at the 2 values “electric consumption per day” and “thermic consumption per day” and divided it by hand…
BUT, my experience is that the value in the beginning of the day is completely wrong. My JAZ sometime get’s up to 12 and decrease other the day and landing around 6
→ The problem comes from the fact, that the WPST_Gesamt_Tag and WPST_Elektrisch_Tag are send without decimals values and i have the feeling that the send delay is also quite long.
→ I was thinking about 2 solutions for that
- create a day value based on only the last JAZ_Day. Therefore i would have a good overview
- alternative: use a web scrapper to get the information detailed consumption on the WEM Portal (or the WEM Local Portal)
Thanks all to this really nice thread. Helped me a lot to setup my new LS 13-B and it works.
Software-Version: 0202038212
Any one an idea why the following registers don’t work?
Mainly I am interested in the JAZ and so I think I require the hidden registers 3670x.
I only noticed that the following registers don’t work for me:
- WP_E1_Status (34104)
- WP_E2_Status (34105)
- WP_E1_Stunden (34106)
- WP_E2_Stunden (34107)
and the hidden registers:
- WPST_Elektrisch_Tag (36701)
- WPST_Elektrisch_Monat (36703)
- WPST_Elektrisch_Jahr (36704)
I tried with a raw python client to retrieve the 3670x register, but there are also wrong messages returned:
Python-Code:
WWP = ModbusClient(host='192.168.1.93', port=502, debug=True, timeout=5.0)
result = WWP.read_input_registers(36701, slave=1)
print(result.registers)
Output:
DEBUG:pymodbus.logging:Connection to Modbus server established. Socket ('192.168.1.88', 61813)
DEBUG:pymodbus.logging:Current transaction state - IDLE
DEBUG:pymodbus.logging:Running transaction 1
DEBUG:pymodbus.logging:SEND: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x4 0x8f 0x5d 0x0 0x1
DEBUG:pymodbus.logging:New Transaction state "SENDING"
DEBUG:pymodbus.logging:Changing transaction state from "SENDING" to "WAITING FOR REPLY"
DEBUG:pymodbus.logging:Changing transaction state from "WAITING FOR REPLY" to "PROCESSING REPLY"
DEBUG:pymodbus.logging:RECV: 0x0 0x1 0x0 0x0 0x0 0x5 0x1 0x84 0x2
DEBUG:pymodbus.logging:Processing: 0x0 0x1 0x0 0x0 0x0 0x5 0x1 0x84 0x2
DEBUG:pymodbus.logging:Frame check failed, ignoring!!
DEBUG:pymodbus.logging:Resetting frame - Current Frame in buffer - 0x0 0x1 0x0 0x0 0x0 0x5 0x1 0x84 0x2
DEBUG:pymodbus.logging:Getting transaction 1
DEBUG:pymodbus.logging:Changing transaction state from "PROCESSING REPLY" to "TRANSACTION_COMPLETE"
Traceback (most recent call last):
File "D:\testmodbus.py", line 39, in <module>
readInputAndPrint(36701)
File "D:\testmodbus.py", line 19, in readInputAndPrint
print(result.registers)
^^^^^^^^^^^^^^^^
AttributeError: 'ModbusIOException' object has no attribute 'registers'
Hi,
a heat pump is connected by modbus and I can read and set values. But I got a weird problem
with the heating circuits
The heat pump has two heating circuits:
- HC 1 (Heizkreis 1)
- HC 2 (Heizkreis 2)
- (HC 3) not used
Both have different values. For example “Heating curve end point (HCEP)” with different addresses
- HCEP 1: 5038
- HCEP 2: 5084
This is my modbus configuration for the two values:
- name: "WP EHK Heizkurvenendpunkt"
slave: 2
address: 5038
input_type: holding
unit_of_measurement: °C
state_class: measurement
offset: 0
precision: 1
min_value: 20
max_value: 70
data_type: int16
device_class: temperature
...
- name: "WP ZHK Heizkurvenendpunkt"
slave: 2
address: 5084
input_type: holding
unit_of_measurement: °C
state_class: measurement
offset: 0
precision: 1
min_value: 20
max_value: 70
data_type: int16
device_class: temperature
Both values have 42°C.
- I open the webui of the heat pump and select HC1
- I change the HCEP 1 to e.g. 44°C
- My HA shows for BOTH (HCEP 1 and HCEP 2) the value 44°C !
- I select HC 2 in the webui of the heat pump
- In the webui of the heat pump HCEP 2 is still 42°C and now the value in HA for HCEP 2 changes to 42°C. HCEP 1 still remains on 44°C in HA
- I select HC 1 in the heat pump web ui and the value in HA changes back to 44°C for both HCEP
I am kinda confused.
The documentation of the heat pump mentions that you have to write a register if you want to control the values betwen HC 2 and HC 3. But there is no HC 3 in the system!. And the documentation does not
mention this for reading values of HC 1 or HC 2
Nevertheless I would try to send a “select command” by modbus before reading the values
of HC 2. Any idea how to do that?
Best regards
Goran
Does anybody know if the following two parameters, that er availble via the information menu on the WP itself are availble for modbus:
- Switch differential value
- Waterpump current flow or percentage
Hopefully someone can help
@AndiE1234 you can not do a JAZ Tag calculation as the electricity from Modbus is only available in steps of 1 ! meaning your power consumption was 1.99 kW - and you still think you used 1kW for the thermal energy produced.
I only look at month and year JAZ for the day value I implemented myself a SW based WPST_Strom_Tag which gets the job done. You can not rely on the register of the WBB.
@kakash your graphs shows the issue with JAZ Tag … it is basically not usable as power consumption is rounded to the full kWh.
I did build myself a SW approximation for power during the day leveraging the Leistungsanforderung value. This works much better and avoid having high jumps like in your graph from 15 back towards 4.
- platform: template
sensors:
heat_pump_electric_power:
friendly_name: “Heat Pump Power”
unit_of_measurement: “kW”
device_class: power
unique_id: “0412660815061367648539”
value_template: >
{% set base_power = 0.017 + states(‘sensor.value_jitter_integration_fix’) | float(default=0) + states(‘sensor.wp_leistungsanforderung’) | float(default=0) * 0.0189 %}
{% set additional_power = 0 %}
{% if states(‘sensor.wp_e1_status’) == ‘1’ %}
{% set additional_power = additional_power + 3.5 %}
{% endif %}
{% if states(‘sensor.wp_e2_status’) == ‘1’ %}
{% set additional_power = additional_power + 3.5 %}
{% endif %}
{{ base_power + additional_power }}
attribute_templates:
last_update: 1
The result in attached graph - from here you can integrate into Heat Pump Energy and use for a daily JAZ.
Thank you @rafdev18 for your input.
Unfortunately i think you’re calculation is wrong.
As far as i can see:
-
The wp_Leistungsanforderung has a direct correlation with the power output of the heat pump.
-
in my case my WBB12 can deliver up to 11kW of energy. This maximal energy output is also relative to the air temperature. So right now with 10°C air temperature, i can get around 10,5kW heat output.
- When i read 40% Power, it means then 0,4*10,5=4,2kW → fits more or less the reading in WEM-Portal
Back to your calculations:
- you seems to multiply the “%” directly with your current reading consumption (100%=18,9kW). This may be correct, but only for a short period of time. As soon, as the temperature varies, it will be wrong.
Solution for JAZ Daily
- the best would be webscraper on the WEM Portal OR the local WEM local Portal. I’ve tried briefly without sucess
- the second best option, is for me, my actual calulation, but only take the last value of the day.
- i could use this values to monitor a trend versus the monthly value
Solution for Actual Power Consumption in kW
3) i would also like to have a visualisation of the “actual power consumption in kW” so that i can map it on my energy graph with the photovoltaik.
- On the “WEM Portal integration” the power output in kW is available. I could use this value and divide it with the monthly JAZ, to have a rough idea about the actual consumption. But this is also just a rough calculation
PS: You mentioned, that you can see the yearly JAZ ? how can you get it? the register 36104 and 36704 sends me only “0” as value
I think the Stat registers behave totally different depending on the kind of heatpump and software-version.
I will try to get a real spec from Weishaupt for my LS 13-B with SW-Version 0202038212.
In my case, the 3670x don’t work at all.
I get the real “Jahr” values (36x04) correctly like they are shown on the display
But somehow the heute/gestern/Monat values are not working correctly, they show totally different values than the display, and are not updated. The “Jahr” is updated correctly. Don’t know why.
I created a sensor with the errortext and the troubleshooting. maybe not the best yaml code, but it works.
offtopic: at the last 2 weeks my WBB12 got a lot of the error 101. One week ago a servicetechnician has optimized some parameters, but the faults happens again. Weishaupt told me that this is not a real error, the problem is the warm temperatures (Übergangszeit). They are waiting for a software update so solve the issue.
Template.yaml
- name: "WP Fehler Text" # source: https://www.weishaupt.de/uploads/tx_weishaupt_documents/documents/83315301.pdf
attributes:
errornumber: "{{ states('sensor.wp_fehler') | int }}"
errortext: >
{% set value = states('sensor.wp_fehler')|int() %}
{% if value == 65535 %}{% set errortext = 'kein Fehler' %}
{% elif value == 1 %}{% set errortext = 'Kältemittelfühler Expansionsventil Eintritt (T1)' %}
{% elif value == 2 %}{% set errortext = 'Luftansaugfühler (T2)' %}
{% elif value == 3 %}{% set errortext = 'Wärmetauscherfühler AG Austritt (T3)' %}
{% elif value == 4 %}{% set errortext = 'Verdichtersauggasfühler (T4)' %}
{% elif value == 5 %}{% set errortext = 'EVI-Sauggasfühler (T5)' %}
{% elif value == 6 %}{% set errortext = 'Kältemittelfühler IG Austritt (T6)' %}
{% elif value == 7 %}{% set errortext = 'Ölsumpffühler (T7)' %}
{% elif value == 8 %}{% set errortext = 'Expansionsventil EVI' %}
{% elif value == 9 %}{% set errortext = 'Niederdrucksensor (P1)' %}
{% elif value == 10 %}{% set errortext = 'Hochdrucksensor (P2)' %}
{% elif value == 11 %}{% set errortext = 'Mitteldrucksensor (P3)' %}
{% elif value == 12 %}{% set errortext = 'Expansionsventil Kühlen defekt' %}
{% elif value == 13 %}{% set errortext = 'keine Kommunikation zum Inverter' %}
{% elif value == 14 %}{% set errortext = 'keine Kommunikation zum Außengerät' %}
{% elif value == 15 %}{% set errortext = 'Hochdruckschalter hat ausgelöst' %}
{% elif value == 16 %}{% set errortext = 'Inverter gesperrt, da in den letzten 10 Stunden 10 Fehler aufgetreten sind' %}
{% elif value == 17 %}{% set errortext = 'EEPROM Speicher-Fehler' %}
{% elif value == 18 %}{% set errortext = 'keine Modbus-Kommunikation zwischen Regler EC und Steuerplatine Kältesatz' %}
{% elif value == 19 %}{% set errortext = 'durch Inverter-Alarm Wärmepumpe abgeschaltet' %}
{% elif value == 20 %}{% set errortext = 'Verdichter passt nicht zur Konfiguration' %}
{% elif value == 21 %}{% set errortext = 'Niederdruck-Störung' %}
{% elif value == 22 %}{% set errortext = 'zu geringe Überhitzung' %}
{% elif value == 23 %}{% set errortext = 'zu hohe Überhitzung' %}
{% elif value == 24 %}{% set errortext = 'EVI zu hohe Überhitzung' %}
{% elif value == 25 %}{% set errortext = 'Kältemittelmenge zu niedrig' %}
{% elif value == 26 %}{% set errortext = 'Hochdruck-Störung' %}
{% elif value == 27 %}{% set errortext = 'Kondensationstemperatur zu niedrig' %}
{% elif value == 28 %}{% set errortext = 'Kondensationstemperatur zu hoch' %}
{% elif value == 29 %}{% set errortext = 'Verdampfungstemperatur zu niedrig' %}
{% elif value == 30 %}{% set errortext = 'Verdampfungstemperatur zu hoch' %}
{% elif value == 32 %}{% set errortext = 'Wärmepumpe nicht kompatibel' %}
{% elif value == 33 %}{% set errortext = 'Regler EC hat keine Verbindung zum Erweiterungsmodul EM-HK' %}
{% elif value == 40 %}{% set errortext = 'Volumenstrom zu gering' %}
{% elif value == 41 %}{% set errortext = 'Spreizung LWT/Rücklauf negativ / Vierwegeventil schaltet nach dem Abtauen nicht zurück; nach 3 Warnungen verriegelt die Anlage)' %}
{% elif value == 43 %}{% set errortext = 'Ventilator blockiert' %}
{% elif value == 44 %}{% set errortext = 'Drehzahl Ventilator zu niedrig' %}
{% elif value == 47 %}{% set errortext = 'Kommunikation Regler EC zu Steuerplatine Kältesatz fehlerhaft' %}
{% elif value == 50 %}{% set errortext = 'Außenfühler (B1) unterbrochen' %}
{% elif value == 51 %}{% set errortext = 'Außenfühler (B1) kurzgeschlossen' %}
{% elif value == 52 %}{% set errortext = 'Weichenfühler (B2) unterbrochen' %}
{% elif value == 53 %}{% set errortext = 'Weichenfühler (B2) kurzgeschlossen' %}
{% elif value == 54 %}{% set errortext = 'Warmwasserfühler (B3) unterbrochen' %}
{% elif value == 55 %}{% set errortext = 'Warmwasserfühler (B3) kurzgeschlossen' %}
{% elif value == 56 %}{% set errortext = 'Vorlauffühler Verflüssiger (B4) unterbrochen' %}
{% elif value == 57 %}{% set errortext = 'Vorlauffühler Verflüssiger (B4) kurzgeschlossen' %}
{% elif value == 58 %}{% set errortext = 'Vorlauffühler (B7) unterbrochen' %}
{% elif value == 59 %}{% set errortext = 'Vorlauffühler (B7) kurzgeschlossen' %}
{% elif value == 60 %}{% set errortext = 'Rücklauffühler (B9) unterbrochen' %}
{% elif value == 61 %}{% set errortext = 'Rücklauffühler (B9) kurzgeschlossen' %}
{% elif value == 64 %}{% set errortext = 'Pufferfühler (B11) unterbrochen' %}
{% elif value == 65 %}{% set errortext = 'Pufferfühler (B11) kurzgeschlossen' %}
{% elif value == 66 %}{% set errortext = 'Mischerfühler regenerativ (B2.1) unterbrochen' %}
{% elif value == 67 %}{% set errortext = 'Mischerfühler regenerativ (B2.1) kurzgeschlossen' %}
{% elif value == 70 %}{% set errortext = 'Vorlauffühler Zweiter Heizkreis (B6.2) unterbrochen' %}
{% elif value == 71 %}{% set errortext = 'Vorlauffühler Zweiter Heizkreis (B6.2) kurzgeschlossen' %}
{% elif value == 72 %}{% set errortext = 'Fühler (T1.2) unterbrochen' %}
{% elif value == 73 %}{% set errortext = 'Fühler (T1.2) kurzgeschlossen' %}
{% elif value == 74 %}{% set errortext = 'Fühler (T2.2) unterbrochen' %}
{% elif value == 75 %}{% set errortext = 'Fühler (T2.2) kurzgeschlossen' %}
{% elif value == 90 %}{% set errortext = 'Analogeingang AE1 unterbrochen' %}
{% elif value == 91 %}{% set errortext = 'Analogeingang AE1 kurzgeschlossen' %}
{% elif value == 92 %}{% set errortext = 'Analogeingang AE2 unterbrochen' %}
{% elif value == 93 %}{% set errortext = 'Analogeingang AE2 kurzgeschlossen' %}
{% elif value == 94 %}{% set errortext = 'Analogeingang AE3 unterbrochen' %}
{% elif value == 95 %}{% set errortext = 'Analogeingang AE3 kurzgeschlossen' %}
{% elif value == 101 %}{% set errortext = 'Wärmepumpe wird außerhalb der Einsatzgrenzen betrieben' %}
{% elif value == 102 %}{% set errortext = 'maximale Abtauzeit überschritten' %}
{% elif value == 103 %}{% set errortext = 'Kommunikation Kältekreis fehlerhaft' %}
{% elif value == 104 %}{% set errortext = 'Druckgastemperatur zu hoch' %}
{% elif value == 105 %}{% set errortext = 'Stromaufnahme vom Inverter zu hoch' %}
{% elif value == 106 %}{% set errortext = 'Stromaufnahme zu hoch' %}
{% elif value == 107 %}{% set errortext = 'Gleichspannung am Inverter zu hoch' %}
{% elif value == 108 %}{% set errortext = 'Gleichspannung am Inverter zu niedrig' %}
{% elif value == 109 %}{% set errortext = 'Wärmepumpe wird außerhalb vom zulässigen Spannungsbereich betrieben' %}
{% elif value == 110 %}{% set errortext = 'Wärmepumpe wird außerhalb vom zulässigen Spannungsbereich betrieben' %}
{% elif value == 111 %}{% set errortext = 'Hochdruckschalter hat ausgelöst' %}
{% elif value == 112 %}{% set errortext = 'Inverter ist überhitzt' %}
{% elif value == 113 %}{% set errortext = 'Inverter ist überhitzt' %}
{% elif value == 114 %}{% set errortext = 'Stellung vom Verdichtermotor kann nicht bestimmt werden' %}
{% elif value == 117 %}{% set errortext = 'Gleichspannung am Inverter zu niedrig' %}
{% elif value == 118 %}{% set errortext = 'Strom zwischen Inverter und Verdichter ist zu hoch' %}
{% elif value == 119 %}{% set errortext = 'Stromaufnahme vom Verdichter zu hoch Zeitüberschreitung' %}
{% elif value == 120 %}{% set errortext = 'Invertertemperatur zu hoch' %}
{% elif value == 121 %}{% set errortext = 'Spannung am Inverter zu gering' %}
{% elif value == 122 %}{% set errortext = 'Modbus-Konfigurationsfehler' %}
{% elif value == 123 %}{% set errortext = 'keine Modbus-Verbindung' %}
{% elif value == 124 %}{% set errortext = 'Druckgastemperatur zu hoch' %}
{% elif value == 127 %}{% set errortext = 'Invertertemperatur zu hoch' %}
{% elif value == 128 %}{% set errortext = 'Inverter ist überhitzt' %}
{% elif value == 129 %}{% set errortext = 'Modbus-Kommunikation fehlerhaft' %}
{% elif value == 130 %}{% set errortext = 'Modbus-Kommunikation fehlerhaft' %}
{% elif value == 133 %}{% set errortext = 'Elektronikfehler' %}
{% elif value == 135 %}{% set errortext = 'Hochdruckschalter defekt' %}
{% elif value == 136 %}{% set errortext = 'Verdichter passt nicht zur Konfiguration' %}
{% elif value == 137 %}{% set errortext = 'Hochdruckschalter passt nicht zur Konfiguration' %}
{% elif value == 140 %}{% set errortext = 'Druckgastemperatur zu niedrig' %}
{% elif value == 143 %}{% set errortext = 'Invertertemperatur zu niedrig' %}
{% elif value == 144 %}{% set errortext = 'Drosselspulentemperatur zu niedrig' %}
{% else %}{% set errortext = 'undefiniert' %}
{% endif %}
{{ errortext }}
troubleshooting: >
{% set value = states('sensor.wp_fehler')|int() %}
{% if value == 65535 %}{% set troubleshooting = '' %}
{% elif value == 1 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 2 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 3 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 4 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 5 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 6 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 7 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 8 %}{% set troubleshooting = 'Leitung prüfen, ggf. austauschen. Ggf. defektes Expansionsventil austauschen.' %}
{% elif value == 9 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 10 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 11 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 12 %}{% set troubleshooting = 'Leitung prüfen, ggf. austauschen. Expansionsventil austauschen.' %}
{% elif value == 13 %}{% set troubleshooting = 'Lastspannung am Verdichter und Inverter prüfen. & Verbindungsleitung Steuerplatine Kältesatz zu Inverter prüfen. & Ggf. defekte Steuerplatine Kältesatz austauschen.' %}
{% elif value == 14 %}{% set troubleshooting = 'Verbindungsleitung zum Außengerät prüfen.' %}
{% elif value == 15 %}{% set troubleshooting = 'Drücke im Kältekreis kontrollieren. Volumenstrom prüfen. & Verdrahtung prüfen. & Sicherstellen, dass die Einsatzgrenzen der Wärmepumpe eingehalten werden. & Kältekreis prüfen.' %}
{% elif value == 16 %}{% set troubleshooting = 'Spannungsversorgung mindestens 10 Minuten unterbrechen. Bei wiederholtem Auftreten Weishaupt-Kundendienst benachrichtigen.' %}"
{% elif value == 17 %}{% set troubleshooting = 'Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 18 %}{% set troubleshooting = 'Modbus-Verbindung prüfen.' %}
{% elif value == 19 %}{% set troubleshooting = 'Bei wiederholtem Auftreten Weishaupt-Kundendienst benachrichtigen.' %}
{% elif value == 20 %}{% set troubleshooting = 'Verdichtertyp prüfen. & Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 21 %}{% set troubleshooting = 'Verdampfer auf Eisfreiheit prüfen. Funktion Ventilator prüfen. & Niederdrucksensor (P1) prüfen. Kältekreis prüfen.' %}
{% elif value == 22 %}{% set troubleshooting = 'Wenn der Fehler wiederholt auftritt: Überhitzung prüfen. & Verdichtersauggasfühler (T4) prüfen. Niederdrucksensor (P1) prüfen. & Antrieb Expansionsventil prüfen. Kältekreis prüfen.' %}
{% elif value == 23 %}{% set troubleshooting = 'Wenn der Fehler wiederholt auftritt: Überhitzung prüfen. & Verdichtersauggasfühler (T4) prüfen. Niederdrucksensor (P1) prüfen. & Antrieb Expansionsventil prüfen. Kältekreis prüfen.' %}
{% elif value == 24 %}{% set troubleshooting = 'Wenn der Fehler wiederholt auftritt: Kältekreis prüfen. & Lecksuche durchführen.' %}
{% elif value == 25 %}{% set troubleshooting = 'Wenn der Fehler wiederholt auftritt: Kältekreis prüfen. & Lecksuche durchführen.' %}
{% elif value == 26 %}{% set troubleshooting = 'Wärmeabnahme prüfen. & Hohe Warmwasser-Solltemperaturen vermeiden. & Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Einstellung Überströmventil prüfen.' %}
{% elif value == 27 %}{% set troubleshooting = 'Der erwartete Betriebszustand wird bei hoher Außentemperatur und geringer Vorlauftemperatur nicht erreichen. & Anlage mit 2. Wärmeerzeuger hochheizen.' %}
{% elif value == 28 %}{% set troubleshooting = 'Wärmeabnahme prüfen. Einstellung Überströmventil prüfen. Heizwasser-Volumenstrom prüfen.' %}
{% elif value == 29 %}{% set troubleshooting = 'Verdampfer auf Eisfreiheit prüfen. Funktion Ventilator prüfen. & Kältekreis prüfen.' %}
{% elif value == 30 %}{% set troubleshooting = 'Die Einsatzgrenze der Wärmepumpe wurde überschritten. & Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird.' %}
{% elif value == 32 %}{% set troubleshooting = 'Spannungsversorgung Verdichter prüfen. Spannungsversorgung von den Klemmen zum Kältesatz prüfen. & Weishaupt-Kundendienst benachrichtigen.' %}
{% elif value == 33 %}{% set troubleshooting = 'Verbindungsleitung zwischen Regler und Erweiterungsmodul prüfen.' %}
{% elif value == 40 %}{% set troubleshooting = 'Mindestvolumenstrom beachten [Kap. 3.4.6]. Volumenstrom prüfen, ggf. erhöhen. & Leitung Volumenstromsensor (B10) prüfen. Volumenstromsensor (B10) prüfen, ggf. austauschen.' %}
{% elif value == 41 %}{% set troubleshooting = 'Volumenstrom anpassen. Pumpenleistung reduzieren. Vierwegeventil prüfen. & Ggf. Funktion deaktivieren.' %}
{% elif value == 43 %}{% set troubleshooting = 'Verdampfer auf Eisfreiheit prüfen. Funktion Ventilator prüfen.' %}
{% elif value == 44 %}{% set troubleshooting = 'Verdampfer auf Eisfreiheit prüfen. Funktion Ventilator prüfen.' %}
{% elif value == 47 %}{% set troubleshooting = 'Leitung prüfen, ggf. austauschen.' %}
{% elif value == 50 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 51 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 52 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 53 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 54 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 55 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 56 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 57 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 58 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 59 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 60 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 61 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 64 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 65 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 66 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 67 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 70 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 71 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 72 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 73 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 74 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 75 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 90 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 91 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 92 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 93 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 94 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 95 %}{% set troubleshooting = 'Fühler und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 101 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird, siehe W 26 bis W 30.' %}
{% elif value == 102 %}{% set troubleshooting = 'Bei exponiertem Aufstellungsort kann starker Wind zu dieser Warnung führen. Nach der Abtauung Verdampfer auf Eisfreiheit prüfen.' %}
{% elif value == 103 %}{% set troubleshooting = 'Spannungsversorgung mindestens 10 Minuten unterbrechen. Bei wiederholtem Auftreten Weishaupt-Kundendienst benachrichtigen.' %}
{% elif value == 104 %}{% set troubleshooting = 'Wärmeabnahme prüfen. Kältekreis prüfen.' %}
{% elif value == 105 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Verdichteranschluss am Inverter prüfen.' %}
{% elif value == 106 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Spannungsversorgung prüfen (Netzspannung zu gering). & Drosselspulen in der 400 V Zuleitung zum Inverter prüfen.' %}
{% elif value == 107 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Spannungsversorgung prüfen.' %}
{% elif value == 108 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Spannungsversorgung prüfen.' %}
{% elif value == 109 %}{% set troubleshooting = 'Spannungsversorgung prüfen.' %}
{% elif value == 110 %}{% set troubleshooting = 'Spannungsversorgung prüfen.' %}
{% elif value == 111 %}{% set troubleshooting = 'Wärmeabnahme prüfen. & Einstellung vom Überströmventil prüfen. Stellung der Kugelhähne am Innenund Außengerät prüfen. & Drücke im Kältekreis kontrollieren. Volumenstrom kontrollieren. & Verdrahtung prüfen. & Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Kältekreis prüfen.' %}
{% elif value == 112 %}{% set troubleshooting = 'Sicherstellen, dass: die Montagebedingungen für das Innengerät eingehalten werden & die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird & Weishaupt-Kundendienst benachrichtigen (Version der Steuerplatine Kältesatz RCC Modbus prüfen).' %}
{% elif value == 113 %}{% set troubleshooting = 'Sicherstellen, dass: die Montagebedingungen für das Innengerät eingehalten werden & die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird & Weishaupt-Kundendienst benachrichtigen (Version der Steuerplatine Kältesatz RCC Modbus prüfen).' %}
{% elif value == 114 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Verdichteranschluss am Inverter prüfen.' %}
{% elif value == 117 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Spannungsversorgung prüfen.' %}
{% elif value == 118 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Verdichteranschluss am Inverter prüfen. Verdichter-Wicklungswiderstände messen.' %}
{% elif value == 119 %}{% set troubleshooting = 'Sicherstellen, dass die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird. & Verdichteranschluss am Inverter prüfen. Verdichter-Wicklungswiderstände messen.' %}
{% elif value == 120 %}{% set troubleshooting = 'Sicherstellen, dass: die Montagebedingungen für das Innengerät eingehalten werden & die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird' %}
{% elif value == 121 %}{% set troubleshooting = 'Spannung nach den Drosselspulen messen.' %}
{% elif value == 122 %}{% set troubleshooting = 'Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 123 %}{% set troubleshooting = 'Modbus-Verbindung (Leitung und Stecker) zwischen Inverter und Steuerplatine Kältesatz prüfen. & Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 124 %}{% set troubleshooting = 'Wärmeabnahme prüfen. Kältekreis prüfen.' %}
{% elif value == 127 %}{% set troubleshooting = 'Sicherstellen, dass: die Montagebedingungen für das Innengerät eingehalten werden & die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird' %}
{% elif value == 128 %}{% set troubleshooting = 'Sicherstellen, dass: die Montagebedingungen für das Innengerät eingehalten werden & die Wärmepumpe innerhalb der Einsatzgrenzen betrieben wird & Weishaupt-Kundendienst benachrichtigen (Version der Steuerplatine Kältesatz RCC Modbus prüfen).' %}
{% elif value == 129 %}{% set troubleshooting = 'Modbus-Verbindung zwischen Inverter und Steuerplatine Kältesatz prüfen (Leitung und Stecker). & Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 130 %}{% set troubleshooting = 'Modbus-Verbindung zwischen Inverter und Steuerplatine Kältesatz prüfen (Leitung und Stecker). & Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 133 %}{% set troubleshooting = 'Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 135 %}{% set troubleshooting = 'Hochdruckschalter-Anschluss prüfen.' %}
{% elif value == 136 %}{% set troubleshooting = 'Verdichtertyp prüfen. & Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 137 %}{% set troubleshooting = 'Hochdruckschalter prüfen. Spannungsversorgung mindestens 10 Minuten unterbrechen.' %}
{% elif value == 140 %}{% set troubleshooting = 'Druckgasfühler (DT) und Leitung prüfen, ggf. austauschen.' %}
{% elif value == 143 %}{% set troubleshooting = 'Kühlung am Inverter prüfen. Gerät neu starten.' %}
{% elif value == 144 %}{% set troubleshooting = 'Sicherstellen, dass die Montagebedingungen für das Innengerät eingehalten werden.' %}
{% else %}{% set troubleshooting = 'undefiniert' %}
{% endif %}
{{ troubleshooting }}
state: >
{% set value = states('sensor.wp_fehler')|int() %}
{% if value == 65535 %}
{{ "Kein Fehler"}}
{% else %}
{{ states('sensor.wp_fehler')|int() }}: {{ state_attr('sensor.wp_fehler_text', 'errortext') }}
{% endif %}