Quatt heat pump integration

Quatt is a Dutch company installing hybrid monoblock heat pumps since 2022.
More information and discussions can be found here:
https://gathering.tweakers.net/forum/list_messages/2112548

I am getting a Quatt heat pump installed within a couple of weeks and therefor am starting to setup an integration such that other users can also easily add the Quatt to Home Assistant.

This topic will be solely about the Home Assistant integration for the Quatt heat pump. For non Home Assistant related questions I will recommend the above tweakers topic.

GitHub repo will be public in a few weeks after the Quatt is installed and the integration and authentication can be finished and tested.

For now I will be focussing on basic features and collecting available information.

Information:
https://gathering.tweakers.net/forum/list_message/73780720#73780720
https://gathering.tweakers.net/forum/list_message/74058332#74058332
https://gathering.tweakers.net/forum/list_message/74176446#74176446

Summary

QR code/Serial number for authentication?

quatt_refresh_token:

{"grantType":"refresh_token","refreshToken":"<refresh_token_hier>"}

rest sensors:

rest:
  # Quatt
  - resource: https://securetoken.googleapis.com/v1/token?key=AIzaSyDlk06uNNeEz2k509xb8-50cS6Z2_9pcw8
    payload: !secret quatt_refresh_token
    method: POST
    headers:
      Content-Type: application/json
      X-Android-Package: io.quatt.mobile.android
      X-Android-Cert: 1110A8F9B0DE16D417086A4BDBCF956070F0FD97
    scan_interval: 3500
    sensor:
      - name: Quatt login
        json_attributes:
          - access_token
        value_template: ok
  - resource: https://mobile-api.quatt.io/api/v1/me
    method: GET
    headers:
      Authorization: 'Bearer {{ states.sensor.quatt_login.attributes["access_token"] }}'
      Accept: application/json
    scan_interval: 15
    sensor:
      - name: Quatt Temperature Outside
        value_template: "{{ value_json.result.cics[0].heatPumps[0].temperatureOutside | float(default=0) }}"
        unit_of_measurement: "°C"
        device_class: temperature

      - name: Quatt Water In
        value_template: "{{ value_json.result.cics[0].heatPumps[0].temperatureWaterIn | float(default=0) }}"
        unit_of_measurement: "°C"
        device_class: temperature

      - name: Quatt Water Out
        value_template: "{{ value_json.result.cics[0].heatPumps[0].temperatureWaterOut | float(default=0) }}"
        unit_of_measurement: "°C"
        device_class: temperature

      - name: Quatt Water Pump Level
        value_template: "{{ value_json.result.cics[0].heatPumps[0].waterPumpLevel | float(default=0) | round(2) }}"
        device_class: speed
        unit_of_measurement: "%"

      - name: Quatt Compressor Frequency
        value_template: "{{ value_json.result.cics[0].heatPumps[0].compressorFrequency | int(default=0) }}"
        unit_of_measurement: "Hz"
        device_class: frequency

      - name: Quatt Compressor Frequency Demand
        value_template: "{{ value_json.result.cics[0].heatPumps[0].compressorFrequencyDemand | int(default=0) }}"
        unit_of_measurement: "Hz"
        device_class: frequency

      - name: Quatt Minimum Power
        value_template: "{{ ((value_json.result.cics[0].heatPumps[0].minimumPower | float(default=0)) / 1000) | round(2) }}"
        unit_of_measurement: "kW"
        device_class: power

      - name: Quatt Power
        value_template: "{{ ((value_json.result.cics[0].heatPumps[0].power | float(default=0)) / 1000) | round(2) }}"
        unit_of_measurement: "kW"
        device_class: power

      - name: Quatt Rated Power
        value_template: "{{ ((value_json.result.cics[0].heatPumps[0].ratedPower | float(default=0)) / 1000) | round(2) }}"
        unit_of_measurement: "kW"
        device_class: power

      - name: Quatt Expected Power
        value_template: "{{ ((value_json.result.cics[0].heatPumps[0].expectedPower | float(default=0)) / 1000) | round(2) }}"
        unit_of_measurement: "kW"
        device_class: power

      - name: Quatt Boiler Power
        value_template: "{{ ((value_json.result.cics[0].boilerPower | float(default=0)) / 1000) | round(2) }}"
        unit_of_measurement: "kW"
        device_class: power

      - name: Quatt Flow Rate
        value_template: "{{ value_json.result.cics[0].flowRate | float(default=0) | round(2) }}"
        device_class: water
        unit_of_measurement: "L/h"

      - name: Quatt Boiler Water Temperature In
        value_template: "{{ value_json.result.cics[0].boilerWaterTemperatureIn | float(default=0) }}"
        unit_of_measurement: "°C"
        device_class: temperature

      - name: Quatt Boiler Water Temperature Out
        value_template: "{{ value_json.result.cics[0].boilerWaterTemperatureOut | float(default=0) | round(2) }}"
        unit_of_measurement: "°C"
        device_class: temperatureThis text will be hidden

rest sensor json_attributes

      - name: Quatt CiC
        value_template: ok
        json_attributes_path: $.result.cics[0]
        json_attributes:
          - id
          - electricityPrice
          - dayElectricityPrice
          - nightElectricityPrice
          - gasPrice
          - silentMode

rest quatt_update_settings:

rest_command:
  quatt_update_settings:
    url: "https://mobile-api.quatt.io/api/v1/me/cic/{{ state_attr('sensor.quatt_cic', 'id') }}"
    method: put
    headers:
      Content-Type: application/json
      Authorization: "Bearer {{ state_attr('sensor.quatt_login', 'access_token') }}"
    payload: "{{ payload | tojson }}"

Features/Roadmap

  1. Config and Authentication flow
  2. Basic sensors for temperatures, power and flow rate
  3. Sensors/Services for:
    a. silent mode
    b. electricity/gas prices

If you have experience or want to help out or test early versions, please let me know!

4 Likes

I like to test it when I get my Quatt heatpump.

Do you got it working well now?

My installation date has been rescheduled to the last week of April. So basically winter is over by then (hopefully).

I will eventually need a few people to help test and debug, so I am happy to hear you like to test it! But currently I don’t have anything to test yet since I don’t have access to the app and API’s yet.

I hope to have a testable alpha version in June/July and aim for beta version in August.

If there are people that want to help with the development, please let me know!

1 Like

Hi,

I have now the Quatt pomp and Add your HA config but how can grap the refresh token?

thanks

I’ve only come across a method where you need a rooted phone or emulator:
https://gathering.tweakers.net/forum/view_message/74717120

I hope to be able to find an easier way to get the refresh token when my Quatt is installed.

Hoi, Nou dagje bezig geweest met bluestack android emulator maar helaas ik krijg het niet voor elkaar magisk wil niet installeren. Hopelijk komt er een makkelijkere manier om achter dit token te komen.

Would be very happy if this integration will happen. Cannot find a way to root my Samsung S4, so I am stuck until better ways are there.

I love my Quatt, but want to see everything detail, so I need this integration :slight_smile:

I hope you will succeed! I hope I can donate something afterwords on through Github

Unfortunately I have not been able to bypass the firebase App Check / SafetyNet check. And therefore have not been able to get a token on an emulator. I will try to root my phone or get my hands on a phone that’s easy to root as well. But I think this will be dead end in terms of providing an easy way to authenticate.

1 Like

I hope you succeed. With the speed of growing Quatt heatpumps I feel that there is more interestd for this integration than is being shown currently within this thread.

I also tried to root my android device, but got stuck already quite fast.

I’m very interested in this. Our Quatt was installed last week. If I can help with testing let me know. Unfortunately I do not have a rooted android phone.

also interested in HA integration!

Yes, i would be very interested

Yes, so would I!

Yes, iam interested to!

Interesse. Succes!

Interesting! :slight_smile:

I’m very interested in HA intergration!

I am very interested in the HA integration.

I’m interested as well, got the Quatt for 1 week now.