Airtouch 4 integration (AUS)

Not regular, just intermittent. I’ll have some time in a couple of weeks to try different wi-fi settings, thanks for the suggestion.

@tomwaldnz, how does your AirTouch 5 tablet behave if you reboot your router? Mine fails to reconnect to the wi-fi network for some reason, so my workaround is a scheduled nightly reboot of the tablet.

I had internet problems a few weeks ago and reset the router, it reconnected ok. I’ll try to remember to test this tonight when no-one is using the internet, but if I forget please feel free to drop me a message - I’ll reply after I’ve had a chance to test - which may take an hour or a week over the holiday period.

Having more success now. Have locked the AT5 tablet onto a 2.4GHz network and it seems to be stable. I previously had the same network name on both 2.4GHz and 5GHz networks - lots of devices seem fine to swap between them when necessary - but the AT5 tablet did not.

And I set it to a static IP address.

An odd thing is that the tablet won’t connect to wifi if I change the MAC from randomised (default) to built-in.

Time will tell I suppose.

PS This tablet is different from the AT4 in that it frequently does DNS lookups for Google-related names. In particular google.cn which is a bit odd.

I restarted my router today after a firmware update, everything seemed to reconnect with no issues. I rarely use the tablet any more, it’s just a WiFi interface, I use my own Home Assistant dashboard and this plugin.

Hi all, can anyone help with an issue I’m having with the integration, in both Home Assistant and also the Apple Home app. Regardless of the mode the AC is actually in, it’s showing as “cooling to” the set temperature rather than heating it the main AC is set to do so. As I live in NZ, you can imagine this will confuse my flatmates endlessly for most months of the year.
Screenshot 2023-01-09 at 8.50.27 PM

I can’t much help with Apple, but I can probably help with HA. Can you post a screenshot from HA? I think that one is from Apple. “Heating and Cooling” looks to be an auto mode, if you set it to heat what does it say?

If you want a semi decent dashboard for Airtouch 4 you can use the one below. I found it somewhere and tweaked it very slightly. It’s handy as by tapping the bottom control you can switch between ITC and Damper mode.

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: child
                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: child
                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: child 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

Hey Tom, thanks for the reply. Here is a screenshot of the main AC running in heat mode but the ducts coloured in cool mode.

@jakebrocard Do you have temperature sensors in each room? Just curious because it says heat for the main AC but the other rooms are in “fan only” mode. That could explain why it’s not working quite right, I think the integration assumes ITC mode. If you have ITC in each room then not sure.

Suggest you look in developer tools to see the state of the AC and each room, and post anything interesting. Developer tools is the key to figuring out a lot of things in HA.

You have a couple of pretty classic kiwi names there :slight_smile: Plus probably the only air conditioned house for flatting in the country :wink: I’m in Wellington.

Hi Tom, yep each room has a switch (heat/cool) and temp sensor. I think we’re starting to get somewhere when I did check out the developer tools. I can see the extra modes in the code and the state is different, set to ‘heat’.

I tried adding extra modes to the hallway and changing the state and it actually works…until I try to change a setting and then it reverts back!

In developer tools you typically want to be using the filter to search for current state rather than the state box to set current state. It’s not the best UI - look for the red text I put on my screenshot below.

Also, you can paste diagrams directly into this forum as well, easier for everyone to see that way.

image

1 Like

I’ve had a weird experience where one of my zones was pumping out COLD air in spite of being switched off through the wall controller. Wanting to track this to recreate, and I was hoping to view the damper position in history, however that doesn’t seem to be available as an entity to view in history - anybody know if there’s a way to track the open % in history to try and track stuff like that down?

Have you looked in the history? The state of my dampers is tracked. If it’s not there, have you disabled tracking the damper state / history somehow?

That’s got the on/off state, but I was hoping to get the open percentage and not just on / off if possible

There’s an entity fan.damper_roomname which has the attribute percentage which tells you how open the damper is. Your entity may be named differently as I tend to rename mine.

image

1 Like

I also would like to see this – how do you get that graph?

I use Apex Charts (github link, discussion link) to graph the information in the history.

views:
  - theme: Backend-selected
    title: Home
    icon: mdi:home-variant-outline
    badges: []
    cards:
      - type: custom:apexcharts-card
        graph_span: 30m
        header:
          title: Dampers 30m
          show_states: false
          show: true
        update_interval: 15m
        yaxis:
          - id: a
            min: 0
            max: ~30
        all_series_config:
          stroke_width: 2
          curve: smooth
        series:
          - entity: fan.damper_living
            attribute: percentage
            name: Living
            color: '#0091ea'
          - entity: fan.damper_master
            attribute: percentage
            name: Master
            color: orange
          - entity: fan.damper_kids
            attribute: percentage
            name: kids
            color: green
          - entity: fan.damper_guest
            attribute: percentage
            name: Guest
            color: gray
      - type: custom:apexcharts-card
        graph_span: 2h
        header:
          title: Dampers 2h
          show_states: false
          show: true
        update_interval: 15m
        yaxis:
          - id: a
            min: 0
            max: ~30
        all_series_config:
          stroke_width: 2
          curve: smooth
        series:
          - entity: fan.damper_living
            attribute: percentage
            name: Living
            color: '#0091ea'
          - entity: fan.damper_master
            attribute: percentage
            name: Master
            color: orange
          - entity: fan.damper_kids
            attribute: percentage
            name: kids
            color: green
          - entity: fan.damper_guest
            attribute: percentage
            name: Guest
            color: gray
      - type: custom:apexcharts-card
        graph_span: 24h
        header:
          title: Dampers 24h
          show_states: false
          show: true
        update_interval: 15m
        yaxis:
          - id: a
            min: 0
            max: ~30
        all_series_config:
          stroke_width: 2
          curve: smooth
        series:
          - entity: fan.damper_living
            attribute: percentage
            name: Living
            color: '#0091ea'
          - entity: fan.damper_master
            attribute: percentage
            name: Master
            color: orange
          - entity: fan.damper_kids
            attribute: percentage
            name: kids
            color: green
          - entity: fan.damper_guest
            attribute: percentage
            name: Guest
            color: gray

Thanks - that’s perfect!

Re the frequent errors about disconnections, I found today that if I make the AT tablet not go to sleep - just let the screensaver kick in and the screen dim - it doesn’t seem to disconnect from a Home Assistant perspective. Even when it went to sleep before the tablet continued responding to pings but I guess not all services were active from HA’s perspective.