tadasdanielius / daikin_altherma

Daikin Altherma custom component for home assistant
MIT License
71 stars 5 forks source link

add support for RoomTemperatureHeating operation #47

Closed tadasdanielius closed 1 year ago

tadasdanielius commented 1 year ago

Support Room Temperature Heating operation

tadasdanielius commented 1 year ago

Can you try to copy and paste this file. Basically replace the number.py file which should be in config/custom_components/daikin_altherma/number.py and restart Home Assistant.

okortepu commented 1 year ago

I'm not sure how the file was supposed to be installed but I took backup copy of the old number.py file and then copy pasted the content of the new number.py file over the old one in the Home Assistant File Editor.

After restart I was able to add the "Room Temperature" to the card. image

I tested changing the "Room Temperature" value from 21 C to 20 C and then checked from the Daikin user interface in the machine and it was 20 C. So this seems to be working. I did not test anything else so far.

tadasdanielius commented 1 year ago

Yes, you copied that file correctly. Let me know, when you try everything and if it works I will make a new release.

okortepu commented 1 year ago

I have now tested changing temperature from HA and it works. It also works the other way. If temperature is changed from the Daikin user interface, the new set point refreshes to HA.

If room temperature limits are changed from the default min 12 and max 30, the new values do not seem to refresh to HA. I was still able to select values between 12-30 even though I restricted the values between 17 and 24 from the Daikin user interface. I did not check if Daikin would actually allow values outside 17-24 from HA when the restriction in Daikin was set in place. After restarting HA, the limits refreshed to 17-24 and I could not select values outside 17-24 in HA. I don't know if HA restart is always required if Daikin parameters are changed or if they would have been refreshed at some point automatically.

I can't figure out what else to test. Changing room temperature set point from HA seems to be working without issues.

tadasdanielius commented 1 year ago

At the moment the profile (configuration like temperature limits, etc.) is picked during the initialization of the integration so any changes you make such as limiting temp. normally will not be picked. So, if you make some configuration changes you either need to restart HA or try to reload the integration. It should pick the changes if you go to installer mode and then go back to the normal user mode, however it is always recommended to reload integration after any "big" changes. Currently it is so as there is nothing coming from the device itself saying that changes has been made. The only way is to regularly check the configuration of the device, but this would put extra load on the device and more queries. Maybe in the future I might try to implement service which would trigger reload.

The only thing what you might want to test is if you can make temperature changes via automations. If that works I will make a new release.

okortepu commented 1 year ago

I have made simple automation using "SHF Rank now" found here: https://github.com/T3m3z/spotprices2ha and then using three different Numeric State Triggers that monitor and change "Room Temperature": to 22 C if "SHF Rank now" changes value to 1-8 to 21 C if "SHF Rank now" changes value to 9-16 to 20 C if "SHF Rank now" changes value to 17-24

What this should do is change room temperature target to: 22 C when Nord Pool spot price for FI area is among the lowest priced 8 hours. 21 C when Nord Pool spot price for FI area is among the mid priced 8 hours. 20 C when Nord Pool spot price for FI area is among the highest priced 8 hours.

I have not really tested how well this works for longer periods but at least the first "Numeric State Trigger" automation went through when "SHF Rank now" changed from 15 to 17: image Automation triggered: image And it resulted to "Room Temperature" set point change from 21,5 to 20: image

So the temperature changes via automation seem to work. It remains to be seen if Daikin unit will actually make any difference in operation when set points are changed so little. Sometimes it seems that Daikin unit is perfectly happy and does no changes even if room temperature target and measurement differs for over 1 C. But that is not Home Assistant related issue, its Daikin controller issue.

tadasdanielius commented 1 year ago

In order to protect from freezing I think daikin will always try to maintain higher temperature inside the pipes so it might be a reason why you are not seeing any changes in operation. But, yes, we cannot do anything about that. That's daikin's internals.

So, I will close this issue and make a new release. Thank you for your contribution.

okortepu commented 1 year ago

Even though Daikin controller seems little slow, this room temperature control sensor combined with Nord Pool Spot data and simple numeric state triggers works surprisingly well.

During December 9th the result was following: image

Room temperature setting was changed based on the price rank of the hour. Room temperature settings 20, 21 and 22 C were used. Lowest measured room temperature was 19,6 C and highest measured room temperature was 21,5 C. Radiator water fluctuated between 22 and 39

Daikin unit did not use any energy for heating during the hours marked red. All the eight highest priced hours were avoided (ranks 17-24). From the mid priced hour ranks 9, 10, 11, 12 and 13 were avoided but during hour ranks 14, 15 and 16 heating was used. All the eight lowest priced hours were used for heating (ranks 1-8)

I don't expect every day to be like Dec 9th but this was rather good start.

In case anyone is building something similar: Using this type of automation means that the compressor will do more starts and stops, my unit is inverter and if I would not use this automation, then the compressor would not stop at all. Heat stress for the distribution system increases because the heating water temperature is not steady but goes up and down several times a day. This is only possible because the unit is little oversized 9,5 kW unit and the house heating demand is around 8,6 kW when it is -26 C outside. During this test it was around -5 C outside so the constant heating demand is little over 3 kW. Instead of heating 3 hours for 3 kW and producing 9 kWh of heat, the unit can just run 1 hour for 9 kW and produce the same 9 kWh needed for the three hours. House temperature will of course change accordingly. My unit is ground source heat pump so I don't have to worry if outside temperature is higher during day than night and would cause better COP during day and lower COP during night. Usually night hours are cheapest hours for electricity.

Main goal for the automation is to avoid high priced hours in case billing is hour based and also avoid overloading grid during peak demand hours so overall grid price is lower for everyone. Avoiding energy usage during peak demand hours also lowers the change for power outage and rolling blackouts.

tadasdanielius commented 1 year ago

Interesting. I wonder how much you can save on electricity by automating this.

okortepu commented 1 year ago

Unfortunately I can not calculate this because I can not measure the electricity usage of Daikin. The built in kWh measurement is way too coarse because it gives out results only for 2 hours and the resolution is 1 kWh. I did not know this before the unit was installed so I did not ask for additional electricity measurements. If I had known how bad the electricity measurement is, I would have installed external meter for electricity. Altherma 3 unit even supports external pulse counters...

I also have relatively cheap (5,99 c/kWh) fixed price contract until next October so I'm not really saving anything yet and I can not see any change in the electric bill.

If we make some assumptions (which are not true), we can make some calculations based on the data. If we assume that without automation on, the unit would have heated the house with constant power trough the day. If we assume that with automation on, the unit would have heated the house with constant power during the hours it was on. For Dec 9th the average spot price was 407,7 €/MWh and for rank hours 1,2,3,4,5,6,7,8,14,15 and 16 the average price was 350,5 €/MWh. That would be roughly 14 % saving in heating cost.

In reality the heating power is not constant when automation is on. When the unit has been off for some hours and the heating water temperature has dropped to 22 C, the unit will use full power when it starts. It will take almost 1 hour to heat water, pipes, radiators etc up to 39 C. So always the first hour after startup is way more energy used than the following hours. But for accurate calculations I would need electricity measured accurately. Also this was only snapshot of 1 day, days are different. When there is wind, the night hours can be sometimes almost free.