Cooling automation with IRCv2

Introduction

Some time ago I set myself an ambitious goal of creating cooling automation for my Daikin AC unit using the Intelligent Room Controller v2 block. Using its intelligence and simplicity of management to efficiently control an AC unit is not an easy task though. It is necessary to flatten the aggressive IRC control output and minimize short turns-off of the unit. Each subsequent solution required several days of real-life testing, so it took a while. But today I may introduce a solution that works pretty well for me.

Please note

This automation controls Daikin AC unit over WiFi, but most probably may be used with over AC units controlled in any way (WiFi, Modbus, KNX). Integration of AC unit into Loxone is beyond scope of this document. If you have Daikin Air Condition Unit, please see my integration How-To here: Integration of Daikin Air Conditioning over WiFi

Diagrams

My cooling automation consists of two diagrams - this is the first of them. It includes the logic part (execution part is on the other page). Details of this diagram will be shown on image below, but in general IRC block is the central element here and it is linked to Climate Controler block. CC controls power state of the unit, and the IRC controls fan rate and target temperature. However all those three controls are not sent directly to Daikn, but modified by my logic instead.



The other page is an execution part. Blocks listed here in general are responsible for passing signals to the MQTT broker, which is used by ioBroker that directly communicates with the Daikin WiFi controller. These blocks have visualization enabled what provides manual override for automation. This integration is described in detailed here.



The C2 control output is 0-10. Assigning these values in proportion to Daikin's fan rates 1-5 is not optimal as the IRC often outputs 10 and then the AC unit runs on 5th gear making a lot of noise. It seems completely unnecessary if there is i.e. only 0.4 degrees left to the comfort temperature. After a few trials and errors, I developed an algorithm for scaling C2 output by a factor depending on the difference between the actual and target temperature (Tc). So the closer to Tc, the less noise can Daikin make. However, I left it some minimal range (gears 1-3) because the controller that uses fuzzy logic would probably go crazy if suddenly the control became very ineffective. I've planed this logic in Excel first:



And here comes an implementation of that scaling - see Trick #1. The other two tricks are mainly aimed at minimizing short-term turn-offs of AC unit, by slowing down the cooling (Trick #2) or doing an overrun (Trick #3). A number of blocks in this diagram is not exactly required - they served me tuning and testing various solutions, but I hope the diagram is still readable.

Please note

Image above is large in size. You might need to zoom it in or download to see details in clear focus.

Results

This is raw control signal from the C2 output. You may see the IRC cooling the room down before 10:00, which is the start of the cooling period. Then there would be a couple of AC unit turnoffs  that I just wanted to avoid. I have a living room with windows to the west, so it heats up during sunset. You can see how the IRC is struggling with the temperature around 17-18 hours. This would normally be 5th gear, which is a lot of noise.



And this is how fan rate control looks after passing through my tricks and logic. Since the living room was not really warm, Daikin was running full day in 3rd gear maximum, which is still ok. It did not turn off all day, although it worked a few times in Auto mode (on overrun after being turned off by the Climate Controller)



And this was the actual temperatures that day. Unfortunately the graph is quite approximate (hourly average graphed), but it gives a fairly good idea of how effective IRC is in sticking to the expected comfort temperature. And we're talking about the real room temperature (the average of the four sensors), not temp provided by Daikin unit (integer only and inaccurate).

Interface

User interface for managing AC unit via IRC is the same as for managing the heating. To power on / off AC manually you simply override schedule with a timer and you can easily adjust expected temperature.



But in need to have manual control I also have all those direct functions. Plus few extra things that I only needed for tuning.



Extras

Additional logic that activates Daikin Powerfull Mode automatically after returning home if the temperature in the living room is 2 degrees higher than the comfort temperature, in order to cool the room as quickly as possible: