Daikin AC automation with Nest Thermostat in EU

Hi there,

I’m new since a few days using Home Assistant.
Installation went okay, and I could easily discover and configure a few of my connected stuff, like Daikin AC. Nest Thermostat was not that simple as I own it since just after they closed the Nest developper account option, and before Google one.

So I satisfied myself by using Badnest which was again not that easy, because the removal of the orignal GitHub project page which forced me to go ahead and give some try with some remaining forks https://github.com/moreli/badnestha
Well road is never a straight line but at the end it’s working and I can have both in my Home Assistant dashboard which is already a good start.
It shows the values from the temp sensors, and changes them when I want to do so.

Now the crazy stuff I’m not able to handle is I’d like to “sync” Daikin AC with the temp value set from Nest Thermostat.
I had a look at the various script / services / automation capabilities, and as a real newbie here I’m far away from just understanding where to start and what to use.
I tried, especially using the “Development tools” menu, and whether I could use the “services” tabs to set static values to my AC, and the “Models” tab to read dynamic values from my Thermostat, I’ve been unsuccessful to achieve what I’m looking for…
Any idea ?

Let me reply to myself as I found some ways to do this, and it may help others…

I had no luck because Automations, which I was looking at first was partially failing, and actually only working using scripts.
The tricky part was to be able to set the Dakin A/C temperature in while reading its value from the Nest thermostat. To achieve this, you have to call service climate.set_temperature on your Daikin A/C entity climate.daikin1, and then you need to specify the right service data referring to your Nest thermostat temperature value:
temperature: '{{ state_attr(''climate.Nest_thermostat'', ''temperature'')|float }}'
For any reason I don’t know, you can’t directly use this last way of specifying the temperature directly into an Automation, but it works when in a script.

So I used the following script

update_daikin1:
  alias: Update Daikin 1
  sequence:
  - service: climate.set_temperature
    data:
      temperature: '{{ state_attr(''climate.Nest_thermostat'', ''temperature'')|float
        }}'
    entity_id: climate.daikin1
  mode: single

and the following Automation

- id: '1603294244871'
  alias: Start and Sync Daikin via Nest
  description: ''
  trigger:
  - platform: state
    entity_id: climate.Nest_thermostat
    attribute: temperature
  condition: []
  action:
  - service: script.turn_on
    data: {}
    entity_id: script.update_Daikin
  mode: single

And then, it works… ! :smiley:
I wrote a couple of other automations to stop and also to sync from Daikin to Nest as well.
I will post them later on

Just updated my previous message to add |float argument as it was required to make this whole thing working without error

Hi there, I started this thread a long time ago, and for me at least, this solution is working very well still.
I improved it a bit, by implementing Nest Eco mode, as low temperature heat mode and built a Blueprint for easiness:

blueprint:
  name: Sync Nest vs Daikin
  description: Automate to allow Daikin A/C unit control by Nest Thermostats
  domain: automation
  input:
    thermostat_to_sync:
      name: Thermostat
      description: This thermostat will by syncronized with AC
      selector:
        entity:
          filter:
            - domain: climate
    climate_to_sync:
      name: Climate Unit
      description: The Climate Unit to keep in sync.
      selector:
        entity:
          filter:
            - domain: climate


trigger:
  - platform: state
    entity_id:
      - !input climate_to_sync
    from: "off"
    id: AC On
  - platform: state
    entity_id:
      - !input thermostat_to_sync
    from: "off"
    id: Nest On
  - platform: state
    entity_id:
      - !input climate_to_sync
    to: "off"
    id: AC Off
  - platform: state
    entity_id:
      - !input thermostat_to_sync
    to: "off"
    id: Nest Off
  - platform: state
    entity_id:
      - !input climate_to_sync
    attribute: temperature
    id: AC Temperature
  - platform: state
    entity_id:
      - !input thermostat_to_sync
    attribute: temperature
    id: Nest Temperature
  - platform: state
    entity_id:
      - !input thermostat_to_sync
    attribute: preset_mode
    id: Nest Eco mode
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - AC On
              - AC Temperature
        sequence:
          - action: climate.set_preset_mode
            metadata: {}
            data:
              preset_mode: none
            target:
              entity_id: !input thermostat_to_sync
          - variables:
              climate_to_sync_from: !input climate_to_sync
          - action: climate.set_temperature
            metadata: {}
            data:
              hvac_mode: heat
              temperature: "{{ state_attr( climate_to_sync_from , 'temperature')|float }}"
            target:
              entity_id: !input thermostat_to_sync
      - conditions:
          - condition: trigger
            id:
              - Nest On
              - Nest Temperature
        sequence:
          - action: climate.set_preset_mode
            metadata: {}
            data:
              preset_mode: none
            target:
              entity_id: !input climate_to_sync
          - action: climate.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: !input climate_to_sync
          - variables:
              climate_to_sync_from: !input thermostat_to_sync
          - action: climate.set_temperature
            metadata: {}
            data:
              temperature: "{{ state_attr( climate_to_sync_from , 'temperature')|float }}"
            target:
              entity_id: !input climate_to_sync
      - conditions:
          - condition: trigger
            id:
              - AC Off
        sequence:
          - action: climate.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: !input thermostat_to_sync
      - conditions:
          - condition: trigger
            id:
              - Nest Off
        sequence:
          - action: climate.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: !input climate_to_sync
      - conditions:
          - condition: trigger
            id:
              - Nest Eco mode
        sequence:
          - action: climate.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: !input climate_to_sync
          - action: climate.set_hvac_mode
            metadata: {}
            data:
              hvac_mode: heat
            target:
              entity_id: !input climate_to_sync
          - variables:
              climate_to_sync_from: !input thermostat_to_sync
          - action: climate.set_temperature
            metadata: {}
            data:
              temperature: "{{ state_attr( climate_to_sync_from , 'temperature')|float }}"
            target:
              entity_id: !input climate_to_sync
mode: single

I suspect it may work with other thermostats and A/C units, but I just ran the tests myself on my home installation but feel free to reuse my work if you need it.

1 Like

Thanks for the work and the share @mmz06.
I recently moved to a new home in Portugal and my setup is daikin and nests. Looking forward to test.
Cheers!

Testing your code and it works great! Thanks again for sharing @mmz06.
I have an issue with my configuration that I’m having an hard time to solve, though.
Integration based in your code works great: I change the temp in my thermostat or in HA and everything syncs.
The issue is that my daikin thermostat temp is not reliable because it is being read by the internal sensor of the unit and not the remote. So, I need the AC functioning to be triggered by the nest temperature and not the AC temperatue. Is this possible?

Hi @ntavares, thanks for your feedback !
It seems that I have the same behavior from my Dakin units (I have 4 of them). They all tend to be wrong in regards the reported temperature measurement, like 2 to 3 more Celsius degrees.
But the actual temperature from the room seems to be the expected one, and it’s correctly displayed and reported on the Nest Thermostats.
So I actually never use the temperature readings from the Dakin units at the end, I just ignore them and I’m happy with that…
What are you trying to achieve from reading the temperature from Dakin, is it to use in another automation ?
Let me know.