-
-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Community post] Show your ESPAltherma! #17
Comments
Model and option
PCB / ESP32Monitoring & Control
Any other info
|
Model and option
PCB / ESP32
Monitoring and control
With support from the ioBroker community I have built a script that derives data objects from the JSON string. With these objects I can do calculations such as thermal power, electrical power and COP. |
All fine except you should use the „Leaving water temp. before BUH(R1T)“. So you can monitor the COP while heating DHW too.
And: The Voltage 250V is a bit high! Best is you take the „Voltage (N-phase) (V)“ for calculation (about 230V).
… Am 23.01.2021 um 17:45 schrieb Raomin ***@***.***>:
Good idea! We have indeed everything we need for the COP.
I've just added it to mine.
Do you confirm the formula?
((state_attr('sensor.altherma','Flow sensor (l/min)')| float * 0.06 * 1.16 * (state_attr('sensor.altherma','Leaving water temp. after BUH (R2T)') | float - state_attr('sensor.altherma','Inlet water temp.(R4T)')|float) )
/
(state_attr('sensor.altherma','INV primary current (A)') | float * 250 / 1000))
I'll add it to the readme.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Guys, this is awesome. I hope I will get so far one day... Mine want to be OpenHAB with Meteostick. Waiting for the parts now. |
Fine! |
Hi, My „Voltage (N-phase) (V)“ is always 0.00000 I dont know why? I rewrite the COP sensor fix 228 value but sensor is still unavailable, log said: TemplateError('ZeroDivisionError: float division by zero') while processing template 'Template("{{ ((state_attr('sensor.althermasensors','Flow sensor (l/min)')| float * 0.06 * 1.16 * (state_attr('sensor.althermasensors','Leaving water temp. before BUH (R1T)') | float - state_attr('sensor.althermasensors','Inlet water temp.(R4T)')|float) ) / (state_attr('sensor.altherma','INV primary current (A)') | float * 228 / 1000)) |round(2) }}")' for attribute '_state' in entity 'sensor.espaltherma_cop' |
First, my sensor is called You changed most of them but the 'INV primary current (A)' one is still sensor.altherma in your formula. If it's not this, there are 2 possible definitions for „Voltage (N-phase) (V)“ 0x21,2,101,2 and 0x21,4,101,2. You can try with the one you are not using now. Second, 'INV primary current (A)' is 0 when the heat pump is not heating. To avoid ZeroDivisionError when the heat pump is off you can extend the formula like this: {% if is_state_attr('sensor.althermasensors','Operation Mode', 'Heating') and is_state_attr('sensor.althermasensors','Freeze Protection', 'OFF') %}
{{
((state_attr('sensor.althermasensors','Flow sensor (l/min)')| float * 0.06 * 1.16 * (state_attr('sensor.althermasensors','Leaving water temp. before BUH (R1T)') | float - state_attr('sensor.althermasensors','Inlet water temp.(R4T)')|float) )
/
(state_attr('sensor.althermasensors','INV primary current (A)') | float * state_attr('sensor.althermasensors','Voltage (N-phase) (V)')|float / 1000))
|round(2)
}}
{% else %} 0 {%endif%} Like this, the formula will be calculated only when
I'm not sure what you are after but Google translated it as electric and thermal performance. -- |
Hi @pengemetal
COP is just: thermal / electrical |
Hi Guys, Thank you for all of your help. I changed Voltage to 0x21,2,101,2 and it is working! But it is interesting values are between 110-117 V. I have not rewritten the if parameter yet, I used the original code. |
It depends on the country you live!? |
You'll have this negative value when your heat pump is defrosting. It warms up the exchanger, hence giving a very negative heating performance...! |
I live in Hungary, 220V thats why it is interesting :) (I wrote 2 * in the code) |
If this value is changing overtime it's probably not the right register, you are looking at the In your case (like in every other except one), Voltage (N-phase) (V) should be in 0x21,4,101,2. Now if you have 0 maybe you have no or broken sensor (what is your model?). Anyway, if your electricity is of decent quality, it should be fairly stable and you can replace it in the formula as you did. -- |
ERLQ011CV3 outdoor EHBX11CB3V indoor |
Model and option board type: M5StickC ESP32 PICO Monitoring / control Describe the solution components (Home Assistant, ioBroker, Graphana etc.) Any other info location, contact information (optional) Request: the option for a fixed IP address |
Nice work @TingBrouwer. Impressive nodered graph...! |
Hi, first of all, thanx for your great effort! So far it's working great. Request: The option to force a reboot using MQTT. Today ESPAltherma lost the serial connection, the log showed timeouts. I disconnected / reconnected the ESP and it came back online :) |
Hi @rtenklooster, Welcome in the community! For HA, do not declare manually, it's better to get mqtt discovery to work :) discovery: And check HA logs, it should tell about the The disconnection is a weird behaviour. I doubt that restarting the ESP would have been enough... -- |
First of all GREAT work raomin. Thank you very much. I'm using Home Assistant Core and love to be in full control of my software by not using hassio ;-) For those of you also not wanting any autodiscovery messing up your structured HA config here is how you configure the Sensor showing LWT state as state_topic:
Sensor showing whatever attribute you want as state_topic with value_template.
Oh, very important, if you want to extract single attributes for graphs etc. most of them are like this:
Live Example:
I don't use the relay function as I combined ESPAltherma with a Zennio Klic_DA to control the unit via KNX, but
|
I also forgot to mention that I'm using the below listed board and had to lower Baudrate to I think 115200 or even lower (don't remember correctly) to get a connection established and having the board accepting the firmware upload.
|
Again, great work @raomin !! Connected all 5 pins with dupont wire Used several wires to extend and to place ESP outside the case Temporary connection, need to fix it somewhere. No fancy lovelace dashboards yet :) |
I haven't installed ESPAltherma on a board. However I have an EHBH08CB3V heat pump, and I'm working on a project to create a Python library and monitoring tools for this and other Daikin heat pumps. I started to painstakingly reverse-engineer the locations and types of variables in the serial port messages, but then discovered that you have already decoded them all, amazing! So I wrote some Python code to parse the ESPAltherma C definition files and output Python code. I also plan to distribute some of those definition files, unmodified (attribution intact), as part of that project, as permitted by the MIT License. So, many many thanks for your massive reverse-engineering effort @raomin, which will save me many hours of work! |
Hi @qris, nice to see my work on this project can help others :) |
@raomin thank you! The one thing that would be nice to have, but definitely not essential, is the variable number given to each variable in D-Checker. You can see them in the column headings of the D-Checker CSV export. For example, O/U MPU ID (xx) is number 19. I have been using these numbers as array indexes, and because the ESPAltherma definitions don't have them, I've had to create a synthetic ID from the definition files instead (page.offset.convid). I don't mean to ask you to do any significant work, but if you had these variable numbers available and simply didn't put them into the header file because espaltherma doesn't need them, then I would find them useful, thank you :) |
No way. It works :). I have EHVH08S26C9W. Connected one of my spare ESP32 to the serial port and I am getting readings. First thing I done is to buy you a beer. Well deserved! I ordered M5StickC ESP32 and will replace it with that one and put inside the unit. Currently I put dupont connector to serial pins and extended it with UTP cable outside the unit where I put my ESP32. Got some additional questions on how to proceed if you cen help me:
Thank you for support and this great project. Never knew I have all parts already at home that will allow me to read from my Daikin. |
@my-SmarthomeGmx Are you sure that the link to taja-elektronik.de is correct? It seems to me that this adapter has female pins, but the M5Stick requires male pins. I'm currently looking for the right cable to connect a Daikin Altherma 3 H MT ECH2O to a M5StickC Plus 2. |
Yes, the adapter in the link has unfortunately only female dupont connectors on the m5Stick side. (I was not able to find one with a 5pin JST EH on one side and with male dupont pins on the other side. (If you do find, please paste a link). But it can anyway properly connected to the M5Stick using single male/male "Stift" connectors (similar to picture below). This is what I used . You just need to make sure that the stift connector pins are long on both sides to fit well in the dupont female connectors. |
As you say they are thermistors. |
thank you for sharing. I like the plugged-in ESP - mine is wired and outside btw. How realistic are the COP-Values you calculated? On your picture is 13, what could be some kind of peak. I have tried nearly every code for calculating COP on my ETSX12P50EF I found. Unfortunatly none was nearly realistic, because I have to use INV-Current Value and cannot measure consumption directly. I would expect a COP something between 2 an 5 depending on the heating mode. ( I use this code, PHASE A Voltage is from my PV-Meter: |
Congratulations, the plug-in version is a great idea and looks really professional. |
Hi @my-SmarthomeGmx , Im trying to replicate your setup, and wanted to ask what the name of the cable connecting from the relay to the smart grid is, and what what pins have you got set in your SG Pins in the setup.h Thanks in advance |
Its a simple 4 wire cable (Klingelleitung YR 4x0.8mm2). According my Daikin installation manual it should be at least 0.5mm2. I just used the Pin32+33 as prepared in the original espaltherma code
|
Amazing thank you soo much for the quick reply! |
@DieterB61 that is similar setup I would like to implement (at least I think so). I have Altherma 3 with X10A and X85A connectors available (no S21 to integrate Faikin module) and solar system which I would like to integrate into smart grid. Can you share what was the most helpful resource to gather info from? Thank you! |
I know you can't swap modes like that using this software |
Thank you for super fast response...would it be possible at least to modify LWT itself? |
You get a lot of information from ESP Altherma, but you cannot control completely the heat pump (in my case only the max. energy can be set). I use IoBroker to collect data from everywhere and control with it everything that is controllable ;-)
Switching the HP on and of is done by normal room thermostats (not the Daikin one). Parallel to the thermostats I have a shelly switch that I can control by IoBroker. The flow temperature of the heating can be set by +/- steps like in the Daikin App by the Daikin-Cloud instance in IoBroker. I also have the data from the electric energy coming in or leaving my house (data form the inverter). Thus I can switch on the heating system on, if there is enough energy produced by my solar power system. In that way I can store energy in form of heat (I have an old building with thick walls). If there is a lot of solar electric energy, I also heat up my water tank to the comfort temperature (this can also be switched on and of by the Daikin-Cloud instance in IoBroker). In the transition period before winter, I "pump" during the daily sunshine periode enough heat into my house for the whole day. ESP Altherma gives me a lot of data about temperatures and flow control that I use to calculate COP value (using an extra energy meter that is only for the heat pump). ESP Altherma can not control the heat pump. Only the max. energy can be set using the extra relais on X85A. I use this to limit the power, if there is only a small amount of electric energy available from my solar system. Of course you need some programming knowledge to implement such things. |
Great Dieter, thank you very much! That is exactly I wanted to hear although I am not too happy about limited options for controlling the HT via ESP32. However the shelly and IoBroker como seems like good fit. Adjusting flow temperature based on certain scenario seems enough for me! By flow temp you mean leaving water temp? |
Yes, in my case (leaving water temperature is controlled by outside temperature) this can be set in +/- 1°C steps in relation to the setpoint by the Daikin-Cloud Adapter in iobroker. Unfortunately, Daikin established a limit of the number of access per day below 200. Therfore I read out as much as possible from ESP Altherma and use the Daikin Cloud Adapter mainly for setting things up. |
Hi, Would someone be so kind as to share their HA code with me and show me how to upload it? |
Hi, I have an "old" espaltherma installation, modified by myself but still working well; I had to put some effort to "see" in HA but now is running flawlessly; I'll try to copy the most interesting parts:
then some sensors, extrapolated from mqtt attribute
For the COP calculation (COPIED and PASTED from somewhere on the web):
|
Every of this formula, have to paste in configuration.yaml? |
Technically yes but I suggest you to invest some time reading HA docs. PS: this is not the right place to write about tech… it’s only for show results |
@mauromorello Thanks for your help :) I have a new problem, namely the COP sensor turns on and off.
In mqtt log i saw that, any idea?
|
Please excuse me for asking such stupid questions. If I want to use the SG Ready functions, I basically have to connect the contacts on 5 and 6 for SG1 (switched accordingly, of course) and the contacts on 11 and 12 for SG2. Whereby the respective pins/ports may differ. I just want to make sure that I have understood correctly that, for example, I have to connect the respective GND on port 5 and the other contact on port 6 from the SG Ready port - controlled by a relay. And another question. The documentation mentions that the evaluation of the SG ports must be activated in the configuration of the heat pump. However, I cannot find this configuration option in my heat pump, neither in the user area nor in the area for the installer. Is there any other trick? Does the menu item appear once the ports have been connected or switched? |
Hello roamin, I tried to get the ESPAltherma work on my M5StackCore2. First i used Arduino - but the file ESPAltherma.ino is missing. Can you helb me getting startet with ESPAltherma on my Daikin Altherma 3 H HT? Thanks |
Hi Roamin. Thanks again for the nice and helpful project. I already pasted some photos of my hardware installation setup somewhere above. (Altherma3H HT)
|
Nice configuration! How do you calculate the heatpump cycles, defrost periods and TAT/WAZ/MAZ/JAZ? |
The "Defrost Cycle Count" and the "Heatpump Cyle Count" is calculated based on the template sensors which are extracted from the attributes from the ESP Atherma Sensors Attributes.
Some YAML code Snippet
|
ESPAltherma Community post!
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
The text was updated successfully, but these errors were encountered: