raomin / ESPAltherma

Monitor your Daikin Altherma / ROTEX heat pump with ESP32
MIT License
357 stars 121 forks source link

[Community post] Show your ESPAltherma! #17

Open raomin opened 3 years ago

raomin commented 3 years ago

ESPAltherma Community post!

ESPAltherma is used all over the world! well... mostly in Europe... mainly in Germany ;) Let's show each other what we did with ESPAltherma! This will be nice to see, and will helpnew users can see what can be done with it!

Please post in this issue a small description of your installation with ESPAltherma.

PLEASE DO NOT USE THIS PAGE TO REPORT ISSUE If you have a real problem with your ESPAltherma, please open a new issue.

Each post should contain the following information:

Model and option

View of your PCB / ESP32

just copy a picture and paste it

Monitoring / control

just copy a picture and paste it

Any other info

remycrochon commented 3 years ago

Capture d’écran_2021-04-10_11-28-02

remycrochon commented 3 years ago

Capture d’écran_2021-04-10_11-28-43

remycrochon commented 3 years ago

J'ai également modifié le fichier mqtt.h afin d'inverser la sortie de pilotage du thermostat.

I also modified the mqtt.h file in order to invert the control output of the thermostat.

remycrochon commented 3 years ago

Capture d’écran_2021-04-10_11-11-46 prog altherma

remycrochon commented 3 years ago

Autre question @raomin, je publie sur un blog des réalisation HA, est-ce que tu m'autorises à communiquer sur le sujet en faisant référence à ta réalisation? https://domo.rem81.com

Another question @raomin, I publish HA achievements on a blog, do you allow me to communicate on the subject by referring to your achievement?

https://domo.rem81.com

remycrochon commented 3 years ago

Ci après le code pour calculer la température de départ en fonction de la loi d'eau et des paramètres saisies dans la PAC, c'est uniquement pour me permettre de comprendre comment la PAC calcule la température de départ:

Here is the code to calculate the starting temperature according to the water law and the parameters entered in the heat pump, it is only to allow me to understand how the heat pump calculates the leaving temperature:

remycrochon commented 3 years ago

Capture d’écran_2021-04-10_15-18-18

remycrochon commented 3 years ago

Ci après le calcul du COP: Je n'arrive pas à récupérer la tension au niveau de la PAC du coup j'utilise une autre source, en l’occurrence un PZEM-004T qui surveille mon réseau.

Here is the calculation of the COP: I am unable to recover the voltage at the heat pump so I am using another source, in this case a PZEM-004T which is monitoring my network.

remycrochon commented 3 years ago

Capture d’écran_2021-04-10_12-01-22

raomin commented 3 years ago

Hey @remycrochon good job! Very complete project and nice result! Beau travail ! You're not the only one having issues with the voltage not being reported. It seems some models do not have a voltage sensor. You can definitely advertise ESPAltherma on your blog! 😊

netgh72 commented 3 years ago

Model : Hoval Belaria SRM(16)

Board type: AZDelivery ESP32 NodeMCU Module WLAN WiFi Dev Kit C Development Board mit CP2102

Hello from Austria! Great Work! Great Project!

I have just connected my Hoval Belaria and it works really fine! 20210423_001411

raomin commented 3 years ago

Hey @netgh72, welcome! Nice setup. I didn't know the Hoval Belaria heat pumps, nor that they used a Daikin board! I'll add it to the project page so that Belaria's users can do as you did! Thanks!

netgh72 commented 3 years ago

Hey @raomin 👍 Another "Thanx" for your work! I have no basics in programming, the only thing i can do is look, read, copy and try! With your project i'll take the first step to control my heat-pump in a cheap way. At the moment i try to get the first results and to show them in a statistic, i use pimatic an a raspberry an loxone home-server. Pictures will follow!

netgh72 commented 3 years ago

image

netgh72 commented 3 years ago

image

netgh72 commented 3 years ago

image

budulinek commented 3 years ago

Model and option

Daikin Altherma <==(P1P2 protocol)==> Arduino + P1P2 Adapter <==(HEX data via UDP)==> Loxone ==( InfluxDB line protocol via UDP)==> InfluxDB+Grafana

View of your PCB

Arduino

just copy a picture and paste it

Monitoring

Grafana from March 2021:

Grafana

Left graph:

Red: target LWT temp for the main zone. Calculated by Loxone (based on outside temp and demand for heating) and send through P1P2 to Altherma. Orange: leaving water temp main zone Blue: returning water temp main zone Yellow: DHW temp Green: water flow

Right graph: Power input and heating produced. Red line is COP, calculated by Grafana.

Control

Weater Dependent LWT (Equitermic curve) in Altherma is OFF, Altherma in "Absolute LWT" mode. Loxone calculates optimal LWT (based not only on outside temp but also takes into account demand for heating) and sends the LWT setpoint command to Altherma via P1P2 Adapter. In addition, I still use Loxone's relays as "external thermostat", because P1P2 protocol can not emulate external thermostat. So the external relay sends a command to "start heating (or cooling)", P1P2 provides info about LWT setpoint.

Loxone

DHW can also be set by Loxone (via P1P2 protocol):

https://user-images.githubusercontent.com/6001151/128265629-de4b7b9a-8ec7-4991-b91e-006f2391d9af.mp4

Any other info

sahni2021 commented 3 years ago
  espaltherma_wl:

Hi @m-reuter

Thanks your input about electrical and thermal performance calculations. However, it seems I am getting different values using your formulas vs the one provided in the readme section. For a given sample they differ approximately by factor 4 and this confuses me as to where I might be getting wrong numbers.

Any more advice?

Many thanks!

m-reuter commented 3 years ago

Hi @sahni2021 , strange, not sure what is going on. However currently I have these in my config:

      espaltherma_durchfluss:
        friendly_name: "Durchfluss"
        value_template: "{{ state_attr('sensor.althermasensors','Durchflussmenge (l/min)') | int * 60 }}"
        unit_of_measurement: 'l/h'
      espaltherma_wl:
        friendly_name: "Wärmeleistung"
        value_template: "{{ (( states('sensor.espaltherma_vl1') | float - states('sensor.espaltherma_rl') | float ) * 0.001163 * states('sensor.espaltherma_durchfluss')  | float ) | round(3) }}"
        unit_of_measurement: 'kW'
      espaltherma_cop:
        friendly_name: "COP"
        value_template: "{% if ( state_attr('sensor.althermasensors','INV Primärstrom (A)') | float  > 0 ) and is_state_attr('sensor.althermasensors','Abtauung', 'OFF')  %} 
{{ (  states('sensor.espaltherma_wl') | float  /  states('sensor.espaltherma_invstrom') | float   ) | round(2) }}
{% else %} 0 {%endif%}"
        unit_of_measurement: 'COP'

Probably the same as README?

sahni2021 commented 3 years ago

Hi @m-reuter , could you please advice which attributes/registers you use to define espaltherma_vl1 and espaltherma_rl sensors in your example above? I have an Altherma 3 R ECH2O (EHSX08P30DA) and still trying to sort out the COP calculation. Cheers!

KalaNagHTD commented 3 years ago

May I help? 0x61, 2, 105, 2, 1, „Leaving water temp. before BUH (R1T)“ 0x61, 8, 105, 2, 1, „Inlet water temp. (R4T)“ These registers work on Rotex HPSU / Daikin Altherma 3 R ECH2O (2018 and up)

sahni2021 commented 3 years ago

Thanks @KalaNagHTD and @m-reuter for your feedback. I managed to adjust my calculations and now have meaningful values for COP :-)

thehijacker commented 3 years ago

image

Hello @stosoorok . Can you share your HA lovelace code for this sensor values view with the empty background image? It looks perfect. Tried to make my own but looks horrible. I suck at Microsoft Paint knowledge :). Thank you.

netgh72 commented 3 years ago

@budulinek

Since long time i'm searching for a solution to control my Hoval Belaria in a (easy an cheap) way like you seemingly do! Can you tell me where you buy the P1P2 Adapter an how much it cost?

Thanx for your frindly answer! netgh72

budulinek commented 3 years ago

@netgh72

P1P2 adapters are hand-made by @Arnold-n . Please get in touch with him regarding availability and pricing.

But..... Hoval Belaria??? Are you sure that you have P1P2 bus available on your heat pump? The hardware (P1P2 adapter) is only compatible with heat pumps with P1P2 bus (or HBS bus). See specs here: https://github.com/Arnold-n/P1P2Serial

Moreover, we were able to reverse-engineer the protocol only for Daikin Altherma heat pumps (see https://github.com/Arnold-n/P1P2Serial/tree/master/doc). So even if you have P1P2 (HBS) bus on your heat pump, you would (most probably) need to reverse-engineer the protocol yourself (Hoval is different company from Daikin).

qris commented 3 years ago

@budulinek

But..... Hoval Belaria??? Are you sure that you have P1P2 bus available on your heat pump? ... Moreover, we were able to reverse-engineer the protocol only for Daikin Altherma heat pumps

It seems to be Daikin inside, others have made it work with ESPAltherma.

budulinek commented 3 years ago

Thanks for clarification. Sorry, I have overlooked the post above...

Ok, then @netgh72 please speak to Arnold regarding the P1P2 adapter. And let us know how things work with Hoval. I am ready to help if I can.

THK56 commented 3 years ago

Hi raomin Hoval Belaria is a Daikin heat pump, that is simply „Hoval“ branded. I myself have a Hoval Belaria that works fine with your espaltherma interface. And furthermore it also has the P1P2 interface to connect a room remote control. So, most of the interface declaration will work as long as the Hoval corresponding Daikin Altherma type can be figured out to get the correct mapping. If needed I can give some support based on my own installation. Regards Thomas

Am 11.10.2021 um 12:41 schrieb Chris Wilson @.***>:

 But..... Hoval Belaria??? Are you sure that you have P1P2 bus available on your heat pump? ... Moreover, we were able to reverse-engineer the protocol only for Daikin Altherma heat pumps

It seems to be Daikin inside, others have made it work with ESPAltherma.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

netgh72 commented 3 years ago

Thanks for your response! I'll try to reach Arnold, but i think i'll stumble at the (for others) easy things: he is writing: Yes, please contact me if you are interested, my e-mail is in the source code header. -> everywhere i look, i can't find the e-mail! But i never give up and will reach my goal! Thnax! Gerd

qris commented 3 years ago

@netgh72 https://github.com/Arnold-n/P1P2Serial/blob/master/P1P2Serial.h#L3

filozof83 commented 3 years ago

Hi,

thanks a lot to raomin and all the others they helped me with their comments to get this thing work!

I've a Daikin EHSX and with the Hybrid config I can read most of the values, except the pressures. All the pressure signals (there are 3 of them) give me a zero back. Does anyone have an idea what I'm doint wrong because I can see that a lot of you have the pressure?

The second Q is does anyone know exact what's the difference between INV primary and secondary current? calc with the primary I get cop over 5 at 10°C outside temp, it's to good to be true :)

thank you for being like-minded like me :) jd

KalaNagHTD commented 3 years ago

The second Q is does anyone know exact what's the difference between INV primary and secondary current? calc with the primary I get cop over 5 at 10°C outside temp, it's to good to be true :)

Primary current is what you are interested in! COP well over 5 at 10°C and above is completely normal!

Karl

filozof83 commented 3 years ago

Hi,

thanks a lot to raomin and all the others they helped me with their comments to get this thing work!

I've a Daikin EHSX and with the Hybrid config I can read most of the values, except the pressures. All the pressure signals (there are 3 of them) give me a zero back. Does anyone have an idea what I'm doint wrong because I can see that a lot of you have the pressure?

The second Q is does anyone know exact what's the difference between INV primary and secondary current? calc with the primary I get cop over 5 at 10°C outside temp, it's to good to be true :)

thank you for being like-minded like me :) jd

Can someone help me out with the pressure issue? JD

raomin commented 3 years ago

Try using this definition file: https://github.com/raomin/ESPAltherma/blob/main/include/def/ALTHERMA(HPSU6_ULTRA).h In this one, there is an additional pressure sensor definition.

But also see here, some HP are not reporting (water) pressure... #16

filozof83 commented 3 years ago

Hi @raomin ,

that's what I tried today myself. now i have the gas pressure but still not the water pres. I think the EHSX is not sending it. so I've to live with that or without the water pressure :)

but now I've another issue.. the outside temp is since the update with the HPSU6_ULTRA all the time zero, further it was correct. I've checked the two files and the adress and conversion is the same... I'll try to upload the fildes again on the esp32

sahni2021 commented 3 years ago

Model and option

Altherma 3 R ECH2O (EHSX08P30DA) include\def\ALTHERMA(HPSU6_ULTRA).h m5stickcplus

View of my PCB / ESP32

IMG_20211001_125234

IMG_20211001_130101

Monitoring

Home Assistant Lovelace for general overview & Grafana for detailed analysis

Screenshot 2021-10-21 171227 Screenshot 2021-10-21 171353
colseven commented 3 years ago

genial @sahni2021 mein M5Stickc hängt seit gestern an meiner EHVX und sendet auch schon fleißig Daten. Da ich Unmengen an Geräten schon auf meinem Pi mit Homebridge habe hole ich mir heute einen neuen Pi und werde erstmal mit Hass spielen (habe ich noch nie gehabt). Deine Visualisierung gefällt mir als Kältetechniker sehr gut würde nur noch Verdampfung und Verflüssigung hinzufügen. Könntest du mir deine "Bildchen" zur Verfügung oder ist das alles Drag and Drop?

KalaNagHTD commented 3 years ago

that's what I tried today myself. now i have the gas pressure but still not the water pres. I think the EHSX is not sending it. so I've to live with that or without the water pressure :)

The water pressure can not be read with the X10A. I read the CAN with pyHPSU to get the water pressure and the position of the 3-way-valves.

C6B5EAFC-1087-42A8-930E-F62809D915B5

sahni2021 commented 3 years ago

genial @sahni2021 mein M5Stickc hängt seit gestern an meiner EHVX und sendet auch schon fleißig Daten. Da ich Unmengen an Geräten schon auf meinem Pi mit Homebridge habe hole ich mir heute einen neuen Pi und werde erstmal mit Hass spielen (habe ich noch nie gehabt). Deine Visualisierung gefällt mir als Kältetechniker sehr gut würde nur noch Verdampfung und Verflüssigung hinzufügen. Könntest du mir deine "Bildchen" zur Verfügung oder ist das alles Drag and Drop?

@colseven My system is running on a RP4 with 4 GB RAM and SSD. SD cards are not recommended due to the multitude of write/read transactions when using Home Assistant. I never had Homebridge, but definitely recommend HA and am sure that you will like it.

For the visualisation I simply extracted the picture from the Daikin manual and wiped out the sample data. Inside HA I use the Picture Elements Card to populate state-label and state-icon elements with the appropriate data. Generally speaking all numeric values are coming from sensors and all on/off states coming from binary sensors.

Grüße!

m-reuter commented 3 years ago

Also, if anyone wants to use HomeAssistant with the pyHPSU (CAN bus connection) to also change settings (e.g. to make warm water efficiently), I created an add-on here: https://github.com/m-reuter/ha-addons

GO74 commented 3 years ago

The second Q is does anyone know exact what's the difference between INV primary and secondary current? calc with the primary I get cop over 5 at 10°C outside temp, it's to good to be true :)

I also wonder why the secondary current is ignored in the COP calculations. I believe that in order to calculate the true COP one would need to use the total power consumption of the whole device including pumps and fans.

GO74 commented 3 years ago

Model and options Daikin Altherma 3RW / EHBX08DA9W7 ESP32S - Node MCU ALTHERMA(LT_DA_04-08KW).h

PXL_20211025_064033200 MP

grafik

I'm using Openhab with MQTT-addon to collect the data (yep, one value one topic instead of a json would have been nice). My system is bivalent as I'm also using a woodstove with water pocket to load the 500l storage tank. An Arduino ATMEGA with ethernet shield is used to measure the temperatures of the whole system using 16 Dallas DS18b20. It is also switching the circulation pumps of the woodstove as well as the storage tank pump. The Heatpump is activated with that contraption as well. It has two modes (online/offline) to ensure that it's keeping the house warm even if - for some reason - the RPI hosting the Openhab installation or any component in between decides to fail.

I'm still struggeling to understand some of the meanings of the tons of values that I'm now able to gather thanks to the good work of raomin.

KalaNagHTD commented 3 years ago

The second Q is does anyone know exact what's the difference between INV primary and secondary current? calc with the primary I get cop over 5 at 10°C outside temp, it's to good to be true :)

I also wonder why the secondary current is ignored in the COP calculations. I believe that in order to calculate the true COP one would need to use the total power consumption of the whole device including pumps and fans.

Your COP is pretty normal! Primary current is what goes into the inverter (230V/50Hz). Output current is the pulsed three phase current to the motor (variable voltage and frequency).

GO74 commented 3 years ago

The second Q is does anyone know exact what's the difference between INV primary and secondary current? calc with the primary I get cop over 5 at 10°C outside temp, it's to good to be true :)

I also wonder why the secondary current is ignored in the COP calculations. I believe that in order to calculate the true COP one would need to use the total power consumption of the whole device including pumps and fans.

Your COP is pretty normal! Primary current is what goes into the inverter (230V/50Hz). Output current is the pulsed three phase current to the motor (variable voltage and frequency).

Ah, okay, so the values (A) of the secondary are higher because it's a lower voltage? Okay. You don't happen to know what "Fan2" might be by any chance?

KalaNagHTD commented 3 years ago

Ah, okay, so the values (A) of the secondary are higher because it's a lower voltage? Okay. You don't happen to know what "Fan2" might be by any chance?

Right! There may be big outside units with two heat exchangers and two fans…

niekveldhuizen commented 3 years ago

I am monitoring my Daikin heatpump and it works like a charm. But it is getting colder now, and the pump goes in defrost mode sometimes. When it goed in defrost de Primary inverter (a) goes to 0, and then to around 3 or 4 amps. Then back to 0.. And then defrost is complete, and the pump wil continue the normal heating proces.

Strange thing is, when it is in defrost I can see a spike in mij energy usage excactly on that time of 9,6,kw. I assume this is the internel heating element of the unit? Why don't I see this in Primary inverter A? And how do i measure how much energy the defrosts cost?

filozof83 commented 3 years ago

I am monitoring my Daikin heatpump and it works like a charm. But it is getting colder now, and the pump goes in defrost mode sometimes. When it goed in defrost de Primary inverter (a) goes to 0, and then to around 3 or 4 amps. Then back to 0.. And then defrost is complete, and the pump wil continue the normal heating proces.

Strange thing is, when it is in defrost I can see a spike in mij energy usage excactly on that time of 9,6,kw. I assume this is the internel heating element of the unit? Why don't I see this in Primary inverter A? And how do i measure how much energy the defrosts cost?

that's because the energy to defrost the OU is taken from the hot water tank (you can se that in the hwt temp). Depending on the output temp the unit desides if the BUH1 or BUH2 will be activated. so a energy above 10kW is possible because it's not generated by the OU.

you can calculate the energy you need to heat the hwt to the same temp as bevore the defrost process, depending on the cop that's not so easy... it depends when you will heat the hwt...

niekveldhuizen commented 3 years ago

that's because the energy to defrost the OU is taken from the hot water tank (you can se that in the hwt temp). Depending on the output temp the unit desides if the BUH1 or BUH2 will be activated. so a energy above 10kW is possible because it's not generated by the OU.

you can calculate the energy you need to heat the hwt to the same temp as bevore the defrost process, depending on the cop that's not so easy... it depends when you will heat the hwt...

Oke, so I have checked the temp of the DHW at the time of the defrost action, there is barely any change, it does not drop down. Isnt there a value that states the power taken from the BUH in watts or amps? Can you do something with values like:

18 0x60,12,303,1 BUH Step2 1 0x60,12,303,1 BUH2 18 0x60,12,304,1 BUH Step1   1 0x60,12,304,1 BUH1 19 0x60,12,305,1 BSH or 1 0x63,13,152,1 BUH output capacity   2 0x63,13,311,1 BUH output capacity

KalaNagHTD commented 3 years ago

Depending on the Leaving Water Temp. (>30°C or 35°C) the heat is drawn from the floor heating circuit and not from the DHW tank. During the defrost operation the heat pump is in cooling mode and the compressor is working.

niekveldhuizen commented 3 years ago

@thehijacker How do you get the Picture-Element card without the enity labels? I made a nice overview but the names of the enitty's are cluttiring the image. I use the state-badge