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
- Config and Authentication flow
- Basic sensors for temperatures, power and flow rate
- 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!