Best thing you can do is remove the spill function and have a bypass damper installed.
I don’t use spills in any of my installations as they dump air when not wanted.
Only living areas should ever be set too a spill and never bedrooms.
Best thing you can do is remove the spill function and have a bypass damper installed.
I don’t use spills in any of my installations as they dump air when not wanted.
Only living areas should ever be set too a spill and never bedrooms.
I looked at the bypass damper, but I reckon by the time you get someone out to fit it, parts, etc, it’s probably $1000 or more. If it was offered when I did the initial setup and I understood what it meant I’d have done it, but my installer probably wouldn’t have any idea what it was either.
Thanks @smitcoracing. I am looking into that as an option but that does mean more cost to retrofit.
I also spoke to Polyaire about the Spill as it seemed to be misbehaving and discovered a not clearly documented feature. When you set which zones you want to be the spill zones, not only are you setting the zones, you’re also setting the minimum percentage you want the system to spill at. So, if you have a 5 zone system lets pretend that means you have a total of 500% damper. If you set 3 zones to be spills, behind the scenes, the AT4 will set the minimum damper to be 300%. So you could have a situation where you have two spill zones closed and the other 3 zones fully open and you’d be fine. But if you turned one of those zones down to 95% damper, you’d be below the 300% total required so the other two spill zones would now open. And it wouldn’t be 5% or whatever to make up to 300%, it would be fully open, so 495 - 500%. Or in my case where I was trying to make it spill across the 5 zones so no one zone was blasting, the moment I turned any zone down, the whole system spilt to all zones resulting in no damper control at all.
I pointed out that it doesn’t seem like a particular clever way to operate and perhaps an extra setting to set the minimum spill percentage and only opening enough to reach that spill minimum would be useful. They seemed to think it was a reasonable enough idea to pass on to the engineers, so we’ll see if they come up with anything smarter in a future update.
Also, I’m finding the indoor fan is running continuously in heating mode too. Is that not expected?
Edited to correct described behaviour
In my experience, spill zones only open as much as required to make up the required, but I’ve only tried it with one spill zone. So if we have three zones open totaling 80% the spill zone is open 20%.
There’s a lot of things I’d like Polyaire to improve in their software. They seem to reply to support requests between 1/3 and 1/2 of the time - fairly poor really.
Hmmm, interesting. That’s not the behaviour I was told happened, but I just tested and you’re right, it does only appear to opening the required percentage. That’s good and what I would have expected, just wish I could spread it over all the zones.
You can spread spill over all the zones can’t you? Just define any zones you want as spill. I keep it as the lounge / living area only as I really don’t want bedrooms to overheat.
I find the reason I get a lot of spill is because the Airtouch reduces the damper down quickly and it sits on 5 - 10% for 20 minutes. That means if I have an outdoor unit with a minimum output of 5kw about 500w goes into the cool room, 4.5kw goes into the spill zone. I have actions that I’m still playing with that detect this and open the damper up wider. Once all the zones are up to temperature the Airtouch turns off regardless of damper position, particularly if you go deep into the settings and choose “economy”.
Here’s the action I use. I’m still tweaking it over time. For example I may change the trigger with one of the conditions because once a temperature trigger is hit it doesn’t hit it again until the temperature goes out of the range defined. I might make spill zone activation the trigger and temperature a condition.
alias: Airtouch Low Damper Master Fix
description: 'Increase the master bedroom damper to prevent excessive spill'
trigger:
- platform: numeric_state
entity_id: fan.damper_master
for:
hours: 0
minutes: 0
seconds: 10
attribute: percentage
below: '21'
above: '1'
condition:
- condition: device
device_id: INSERT-DAIKIN-MASTER-SERVICE-NAME***
domain: climate
entity_id: climate.ac_daikin
type: is_hvac_mode
hvac_mode: heat
- condition: state
entity_id: fan.damper_master
state: 'on'
- condition: state
entity_id: climate.itc_master
attribute: preset_mode
state: ITC
- condition: time
before: '22:00:00'
after: '14:00:00'
- condition: template
value_template: >-
{{ state_attr("climate.itc_master", "current_temperature") -
state_attr("climate.itc_master", "temperature") < 0.2}}
- condition: state
entity_id: binary_sensor.zone_spill_living
state: 'on'
action:
- service: fan.turn_on
data:
preset_mode: Damper
target:
entity_id: fan.damper_master
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
- service: fan.turn_on
data:
percentage: 40
target:
entity_id: fan.damper_master
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
- service: fan.turn_on
data:
preset_mode: ITC
target:
entity_id: fan.damper_master
mode: single
No you can’t spread it over all zones as the AT4 will interpret that as you wanting a minimum spill threshold of 100% of total system. Try it out by opening all dampers to 100% then setting all zones as spill. As soon as you reduce any zone, the system starts to spill; effectively all dampers are forced to stay at 100%.
Thanks for the example. I’m also thinking I’m going to look into moving away from using the AT4 as the brains of the system and try automating it all with HA … but seems disappointing that we even need to.
I have set multiple zones as spill, but I’ve never tried doing all zones as spill. I tend to just keep one zone as spill and have actions prevent excessive spill by changing to damper mode and increasing damper percentage when a zone is sitting at 5-10% for a while.
I thought about writing standalone software to override the AT4 logic, as it’s not great, but I think with a few HA actions I can get it close enough it’s not worth the time. Plus I suspect if you put all zones into damper mode it won’t actually turn on, one might have to stay in ITC mode to get it to cycle on.
I’m seeing something odd with the new integration from @mihailescu2m vs @LonePurpleWolf’s: I have HVAC with 5 zones.
Under the previous integration I could toggle the fan/damper on/off for each zone via a toggle button (living, bunkroom, etc.), however the same buttons now will only turn off but won’t turn back on (ie. won’t turn to Auto).
This is what I have for one of the cards:
type: custom:mushroom-entity-card
entity: climate.itc_living
icon: mdi:air-filter
name: Living
layout: vertical
tap_action:
action: toggle
secondary_info: none
Does this resonate or do I have something set wrong?
@nightwood That’s a great dashboard. I’ve been building my own but that’s way better. If you share the code I can have a bit of a play around to see what I can find about your problem - might take me a day, might take me a week. I generally find that I can turn zones on and off with no problem.
Here’s what I’m doing at the moment, but it’s unfinished and I’m mostly learning how HA works. It’s quite good at showing current state including dampers, which I like to keep an eye on, and if you tap the tile for an area it toggles control from ITC to damper.
@nightwood I can confirm that the Mushroom Entity Card toggle turns the damper off, but not on. The Simple Thermostat card works to turn it back on.
type: custom:simple-thermostat
entity: climate.itc_master
layout:
step: row
mode:
names: true
icons: true
headings: true
sensors:
- entity: fan.damper_master
attribute: percentage
name: Damper
unit: '%'
header:
name: Master
icon: mdi:sofa
toggle:
entity: fan.damper_master
control: false
fallback: '?'
unit: ' °C'
decimals: 1
step_size: 1
Interesting. Seems to be a problem with the mushroom card then. Any further info I can give them as to why it’s not functioning correctly?
I could revert to calling a function, but toggle is much easier if I can get it to work
Happy to share. Not many dependencies (hacard, mushroom, I think is all)
type: vertical-stack
cards:
- type: custom:simple-thermostat
entity: climate.ac_daikin
layout:
mode:
headings: false
icons: true
names: true
hide:
temperature: true
state: true
setpoints:
target_temp_low:
hide: true
target_temp_high:
hide: true
control:
hvac: true
fan:
low:
name: Low
medium:
name: Medium
high:
name: High
- type: horizontal-stack
cards:
- type: custom:mushroom-entity-card
entity: climate.itc_living
icon: mdi:air-filter
name: Living
layout: vertical
tap_action:
action: toggle
secondary_info: none
- type: custom:mushroom-entity-card
entity: climate.itc_master
icon: mdi:air-filter
name: Master Bed
layout: vertical
tap_action:
action: toggle
secondary_info: none
- type: custom:mushroom-entity-card
entity: climate.itc_bedroom2
icon: mdi:air-filter
name: Bed 2
layout: vertical
tap_action:
action: toggle
secondary_info: none
- type: custom:mushroom-entity-card
entity: climate.itc_guestbed
icon: mdi:air-filter
name: Guest bed
layout: vertical
tap_action:
action: toggle
secondary_info: none
- type: custom:mushroom-entity-card
entity: climate.itc_bunkroom
icon: mdi:air-filter
name: Bunkroom
layout: vertical
tap_action:
action: toggle
secondary_info: none
- type: horizontal-stack
cards:
- type: custom:simple-thermostat
entity: climate.itc_living
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
step_size: '1'
decimals: '0'
- type: custom:simple-thermostat
entity: climate.itc_master
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
decimals: '0'
step_size: '1'
- type: custom:simple-thermostat
entity: climate.itc_bedroom2
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
decimals: '0'
step_size: '1'
- type: custom:simple-thermostat
entity: climate.itc_guestbed
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
decimals: '0'
step_size: '1'
- type: custom:simple-thermostat
entity: climate.itc_bunkroom
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
decimals: '0'
step_size: '1'
If you’re interested, I also have a full-page control:
Many more dependencies and much more customisation. Let me know if you want the yaml
@nightwood I’m still a relative beginner to HA, so I don’t know why the toggle doesn’t work. I do use automations with some controls, but they don’t all quite work reliably yet. I chip away at learning HA as I have time.
Thanks for sharing that dashboard I’ll probably use it, learn how it works, and extend it a bit to show damper percentages as well if I can find a clean way to do it.
Yes I’d like the other dashboard as well thanks. That might work quite well on the PC / Airtouch4 tablet, the layout I’ve done looks terrible on the PC.
Credit https://community.home-assistant.io/t/share-your-tablet-desktop-dashboards/256006/66?u=nightwood for the genesis for my full-page control. Lots of dependencies, so check the original for what you need to install.
- theme: Backend-selected
title: HVAC
path: hvac
icon: mdi:radiator
type: custom:vertical-layout
layout:
width: 180
max_cols: 7
badges: []
cards:
- type: custom:button-card
view_layout:
column: 1
icon: mdi:home-outline
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.0);
box-shadow: none;
border-radius: 20px;
}
tap_action:
action: navigate
navigation_path: /new-brush/home
height: 1100
styles:
card:
- height: 150px
icon:
- filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4))
size: 50px
- type: custom:gap-card
view_layout:
column: 2
height: 150
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:mushroom-entity-card
entity: climate.itc_living
icon: mdi:air-filter
name: Living
layout: vertical
tap_action:
action: toggle
secondary_info: none
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ '0px 0px 10px 5px rgba(10,100,140,1), inset 1px 1px 1px 0px rgba(255,255,255,0.2)' if is_state('climate.living', 'auto') else 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
view_layout:
column: 2
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:simple-thermostat
entity: climate.itc_living
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
step_size: '1'
decimals: '0'
view_layout:
column: 2
- type: entities
entities:
- type: attribute
entity: climate.itc_living
attribute: current_temperature
suffix: °C
name: Living
icon: mdi:thermometer
card_mod:
style: |
hui-generic-entity-row {
height: 21px;
}
- type: divider
- type: attribute
entity: climate.itc_master
attribute: current_temperature
suffix: °C
name: Master
icon: mdi:thermometer
card_mod:
style: |
hui-generic-entity-row {
height: 21px;
}
- type: divider
- type: attribute
entity: climate.itc_bedroom2
attribute: current_temperature
suffix: °C
name: Middle Bedroom
icon: mdi:thermometer
card_mod:
style: |
hui-generic-entity-row {
height: 21px;
}
view_layout:
column: 3
card_mod:
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.1);
box-shadow: none;
border-radius: 20px;
width: 400px;
height: 150px !important;
text-shadow: 3px 3px 2px rgb(0 0 0 / 0.4);
margin-left: -100px;
}
- type: horizontal-stack
cards:
- type: custom:gap-card
height: 150
- type: custom:simple-thermostat
entity: climate.ac_daikin
layout:
mode:
headings: false
icons: true
names: true
hide:
temperature: true
state: true
setpoints:
target_temp_low:
hide: true
target_temp_high:
hide: true
control:
hvac: true
fan:
low:
name: Low
medium:
name: Medium
high:
name: High
header: false
style: |
ha-card {
background-color: rgba(0,0,0,0);
border-radius: 20px;
width: 90%;
}
ha-card.no-header {
--st-spacing: 0;
--st-default-spacing: 0;
}
div.modes {
grid-auto-flow: row;
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
width: 180px;
box-shadow: 2px 2px 6px 0px rgba(0,0,0,0.3), inset 1px 1px 1px 0px rgba(255,255,255,0.2);
}
div.mode-item {
width: 160px;
background-color: rgba(0,0,0,0.1) !important;
border-radius: 20px;
height: 50px;
margin: 5px 10px 5px 10px;
box-shadow: inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px
rgba(0,0,0,0.3);
}
div.mode-item.active {
box-shadow: {{ 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' if is_state('climate.ac_daikin', 'off') else '0px 0px 10px 5px rgba(10,100,140,1), inset 1px 1px 1px 0px rgba(255,255,255,0.2)' }};
}
- type: custom:gap-card
height: 150
view_layout:
column: 1
- type: entities
entities:
- type: attribute
entity: climate.itc_guestbed
attribute: current_temperature
suffix: °C
name: Guest Bedroom
icon: mdi:thermometer
card_mod:
style: |
hui-generic-entity-row {
height: 21px;
}
- type: divider
- type: attribute
entity: climate.itc_bunkroom
attribute: current_temperature
suffix: °C
name: Bunkroom
icon: mdi:thermometer
card_mod:
style: |
hui-generic-entity-row {
height: 21px;
}
view_layout:
column: 5
card_mod:
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.1);
box-shadow: none;
border-radius: 20px;
width: 400px;
height: 150px !important;
text-shadow: 3px 3px 2px rgb(0 0 0 / 0.4);
margin-left: -100px;
}
- type: custom:gap-card
view_layout:
column: 6
height: 150
- type: custom:gap-card
view_layout:
column: 7
height: 150
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:mushroom-entity-card
entity: climate.itc_master
icon: mdi:air-filter
name: Master
layout: vertical
tap_action:
action: toggle
secondary_info: none
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ '0px 0px 10px 5px rgba(10,100,140,1), inset 1px 1px 1px 0px rgba(255,255,255,0.2)' if is_state('climate.master', 'auto') else 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
view_layout:
column: 3
- type: custom:gap-card
view_layout:
column: 4
height: 150
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:mushroom-entity-card
entity: climate.itc_bedroom2
icon: mdi:air-filter
name: Middle Bedroom
layout: vertical
tap_action:
action: toggle
secondary_info: none
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ '0px 0px 10px 5px rgba(10,100,140,1), inset 1px 1px 1px 0px rgba(255,255,255,0.2)' if is_state('climate.bedroom2', 'auto') else 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
view_layout:
column: 4
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:mushroom-entity-card
entity: climate.itc_guestbed
icon: mdi:air-filter
name: Guest Bedroom
layout: vertical
tap_action:
action: toggle
secondary_info: none
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ '0px 0px 10px 5px rgba(10,100,140,1), inset 1px 1px 1px 0px rgba(255,255,255,0.2)' if is_state('climate.guestbed', 'auto') else 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
view_layout:
column: 5
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:mushroom-entity-card
entity: climate.itc_bunkroom
icon: mdi:air-filter
name: Bunkroom
layout: vertical
tap_action:
action: toggle
secondary_info: none
style:
.: |
ha-card {
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ '0px 0px 10px 5px rgba(10,100,140,1), inset 1px 1px 1px 0px rgba(255,255,255,0.2)' if is_state('climate.bunkroom', 'auto') else 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
view_layout:
column: 6
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:simple-thermostat
entity: climate.itc_bedroom2
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
step_size: '1'
decimals: '0'
view_layout:
column: 4
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:simple-thermostat
entity: climate.itc_guestbed
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
step_size: '1'
decimals: '0'
view_layout:
column: 5
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:simple-thermostat
entity: climate.itc_master
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
step_size: '1'
decimals: '0'
view_layout:
column: 3
- type: horizontal-stack
cards:
- type: custom:gap-card
- type: conditional
conditions:
- entity: climate.ac_daikin
state_not: 'off'
card:
type: custom:mod-card
card:
type: custom:simple-thermostat
entity: climate.itc_bunkroom
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
background-color: rgba(0,0,0,0.1);
border-radius: 20px;
box-shadow: {{ 'inset 1px 1px 1px 0px rgba(255,255,255,0.2), 4px 4px 5px 1px rgba(0,0,0,0.3)' }};
}
step_size: '1'
decimals: '0'
view_layout:
column: 6
Thanks @nightwood, I’ve gotten the smaller one working perfectly. The larger one is working, but looks a bit odd with a light background - dark it looks pretty good. I’ll spend some time tweaking and such and see where I end up. Thanks for sharing! I’ll share anything interesting back.
I see what you mean toggling off but not back on again. I’ll have a play with that and see if I can figure out why.
I’m well aware of how the spill functions work in these systems and the spill is a very old way of doing things.
While it works it has its issues.
The spill opens when the sum of all the on zones is less than 90%, the spill will start to open the remaining amount.
A spill should only be placed on one zone only and usually a living zone if you have it.
Setting the minimum damper value from 5 - 10% will help stop the spill opening so much but I would recommend going more then 5 - 10% as rooms can over cool/heat.
I have installed hundreds of these controls now and 99% of the ones I do have the bypass option.
It generally adds $300 to the initial install cost.
The problem with this whole control system is the people who have initially installed them.
I never ever ever leave my customers with the installers password and change it from the default.
Not once since this product came out have a had to go back to places for issues.
The only time I have had to fix these is due to the installer setting them up wrong or others who have been given a password and played around with settings without actually understanding how the system is meant to work.
Using these controllers without room sensors and mucking around with percentages is the biggest wasted feature of the Airtouch.
The sensors control the opening percentage automatically but the main bonus to this is that the system also follows and jumps to different sensors to determine when the outdoor unit should stop and start.
The current logic of the system is perfectly fine if the system is installed properly, a bypass damper is fitted and the ac system itself has had its field settings adjusted through the factory controller at the time of installation.
When the system is installed set up properly then you don’t need access to the installer password. When it’s not set up well you definitely do. For example, in summer I change spill regularly, though this summer I’ll probably use Home Assistant to manage it a bit differently. Also, I had to change a setting way deep in the installer area from “standard” to “economy” to reduce spill zone overheating.
@nightwood I got the damper toggle to work by calling the “fan toggle” service. I’ve also got the damper percentage there, if you tap a slider appears to let you directly set the damper value. It uses Slider Entity Row which must be installed.
The key change is this
tap_action:
action: call-service
service: fan.toggle
service_data:
entity_id: fan.damper_living
views:
- title: Home
cards:
- type: vertical-stack
cards:
- type: custom:simple-thermostat
entity: climate.ac_daikin
layout:
mode:
headings: false
icons: true
names: true
hide:
temperature: true
state: true
setpoints:
target_temp_low:
hide: true
target_temp_high:
hide: true
control:
hvac: true
fan:
low:
name: Low
medium:
name: Medium
high:
name: High
- type: horizontal-stack
cards:
- type: custom:mushroom-entity-card
entity: climate.itc_living
icon: mdi:air-filter
name: Living
layout: vertical
tap_action:
action: call-service
service: fan.toggle
service_data:
entity_id: fan.damper_living
secondary_info: none
- type: custom:mushroom-entity-card
entity: climate.itc_master
icon: mdi:air-filter
name: Master
layout: vertical
tap_action:
action: call-service
service: fan.toggle
service_data:
entity_id: fan.damper_master
secondary_info: none
- type: custom:mushroom-entity-card
entity: climate.itc_child
icon: mdi:air-filter
name: Harry
layout: vertical
tap_action:
action: call-service
service: fan.toggle
service_data:
entity_id: fan.damper_child
secondary_info: none
- type: custom:mushroom-entity-card
entity: climate.itc_guest
icon: mdi:air-filter
name: Guest
layout: vertical
tap_action:
action: call-service
service: fan.toggle
service_data:
entity_id: fan.damper_guest
secondary_info: none
- type: horizontal-stack
cards:
- type: custom:simple-thermostat
entity: climate.itc_living
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
fallback: '%'
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
step_size: '1'
decimals: '0'
- type: custom:simple-thermostat
entity: climate.itc_master
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
fallback: '%'
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
decimals: '0'
step_size: '1'
- type: custom:simple-thermostat
entity: climate.itc_child
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
fallback: '%'
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
decimals: '0'
step_size: '1'
- type: custom:simple-thermostat
entity: climate.itc_guest
layout:
step: column
hide:
state: true
control: false
header: false
sensors: false
fallback: '%'
style: |
ha-card {
--st-font-size-xl: 20px;
--st-spacing: 1px;
}
decimals: '0'
step_size: '1'
- type: horizontal-stack
cards:
- type: custom:mushroom-template-card
primary: >-
{{ state_attr("climate.itc_living", "current_temperature")
}}°C
secondary: >-
{% if state_attr("fan.damper_living", "preset_mode") == "ITC"
%}
{% set hvacState = state_attr("climate.itc_living", "hvac_action") | capitalize %}
{% set state = state_attr("fan.damper_living", "percentage") | lower + "%" if hvacState != "Off" else "Off" %}
{% else %}
{% set state = states("fan.damper_living") | capitalize %}
{% endif %} {{ state }}
layout: vertical
entity: Lounge
tap_action:
action: call-service
service: input_select.select_next
data: {}
target:
entity_id: input_select.dampermodeselect_living
card_mod:
style: |
ha-card {
--card-primary-font-size: 16px;
--card-secondary-font-size: 15px;
--icon-size: 42px;
}
- type: custom:mushroom-template-card
primary: >-
{{ state_attr("climate.itc_master", "current_temperature")
}}°C
secondary: >-
{% if state_attr("fan.damper_master", "preset_mode") == "ITC"
%}
{% set hvacState = state_attr("climate.itc_master", "hvac_action") | capitalize %}
{% set state = state_attr("fan.damper_master", "percentage") | lower + "%" if hvacState != "Off" else "Off" %}
{% else %}
{% set state = states("fan.damper_master") | capitalize %}
{% endif %} {{ state }}
layout: vertical
entity: Master
tap_action:
action: call-service
service: input_select.select_next
data: {}
target:
entity_id: input_select.dampermodeselect_master
card_mod:
style: |
ha-card {
--card-primary-font-size: 16px;
--card-secondary-font-size: 15px;
--icon-size: 42px;
}
- type: custom:mushroom-template-card
primary: '{{ state_attr("climate.itc_child", "current_temperature") }}°C'
secondary: >-
{% if state_attr("fan.damper_child", "preset_mode") == "ITC"
%}
{% set hvacState = state_attr("climate.itc_child", "hvac_action") | capitalize %}
{% set state = state_attr("fan.damper_child", "percentage") | lower + "%" if hvacState != "Off" else "Off" %}
{% else %}
{% set state = states("fan.damper_child") | capitalize %}
{% endif %} {{ state }}
layout: vertical
entity: Harry
tap_action:
action: call-service
service: input_select.select_next
data: {}
target:
entity_id: input_select.dampermodeselect_child
card_mod:
style: |
ha-card {
--card-primary-font-size: 16px;
--card-secondary-font-size: 15px;
--icon-size: 42px;
}
- type: custom:mushroom-template-card
primary: '{{ state_attr("climate.itc_guest", "current_temperature") }}°C'
secondary: >-
{% if state_attr("fan.damper_guest", "preset_mode") == "ITC"
%}
{% set hvacState = state_attr("climate.itc_guest", "hvac_action") | capitalize %}
{% set state = state_attr("fan.damper_guest", "percentage") | lower + "%" if hvacState != "Off" else "Off" %}
{% else %}
{% set state = states("fan.damper_guest") | capitalize %}
{% endif %} {{ state }}
layout: vertical
entity: Guest
tap_action:
action: call-service
service: input_select.select_next
data: {}
target:
entity_id: input_select.dampermodeselect_guest
card_mod:
style: |
ha-card {
--card-primary-font-size: 16px;
--card-secondary-font-size: 15px;
--icon-size: 42px;
}
- type: horizontal-stack
cards:
- type: conditional
conditions:
- entity: fan.damper_living
state: 'on'
- entity: sensor.preset_mode_living
state: Damper
card:
type: custom:slider-entity-row
name: Lounge Damper
entity: fan.damper_living
attribute: percentage
min: 5
max: 100
step: 5
grow: true
toggle: false
full_row: false
- type: horizontal-stack
cards:
- type: conditional
conditions:
- entity: fan.damper_master
state: 'on'
- entity: sensor.preset_mode_master
state: Damper
card:
type: custom:slider-entity-row
name: Master Damper
entity: fan.damper_master
attribute: percentage
min: 5
max: 100
step: 5
grow: true
toggle: false
full_row: false
- type: horizontal-stack
cards:
- type: conditional
conditions:
- entity: fan.damper_child
state: 'on'
- entity: sensor.preset_mode_child
state: Damper
card:
type: custom:slider-entity-row
name: Harry Damper
entity: fan.damper_child
attribute: percentage
min: 5
max: 100
step: 5
grow: true
toggle: false
full_row: false
- type: horizontal-stack
cards:
- type: conditional
conditions:
- entity: fan.damper_guest
state: 'on'
- entity: sensor.preset_mode_guest
state: Damper
card:
type: custom:slider-entity-row
name: Guest Damper
entity: fan.damper_guest
attribute: percentage
min: 5
max: 100
step: 5
grow: true
toggle: false
full_row: false