Skip to content

Instantly share code, notes, and snippets.

@glynhudson
Created December 17, 2025 11:38
Show Gist options
  • Select an option

  • Save glynhudson/1c0736dcd6cac240e9726b2560742bc3 to your computer and use it in GitHub Desktop.

Select an option

Save glynhudson/1c0736dcd6cac240e9726b2560742bc3 to your computer and use it in GitHub Desktop.
Grant HP290 Rest YAML Home Assistant
# For Econet Grant Heatpump
- authentication: basic
username: "admin"
password: "admin"
scan_interval: 30
resource: http://192.168.86.31/econet/editParams
sensor:
- name: "Grant Heat pump SCOP"
unique_id: 'f541d4d5-b12a-4c2b-9566-d284d75d5c7e'
value_template: "{{ value_json['informationParams']['222'][1][0]
[0] }}"
state_class: measurement
- name: "Grant Circuit 1 thermostat day setting"
unique_id: '38edd4cd-32d9-45c3-bc97-af814b29fbc5'
value_template: "{{ value_json['data']['238']['value'] }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "Grant Circuit 1 thermostat night setting"
unique_id: 'da60f424-fc3c-49d4-9320-3eb5076c2b81'
value_template: "{{ value_json['data']['239']['value'] }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "Grant Circuit 1 hysteresis"
unique_id: 'circuit1 hysteresis'
value_template: "{{ value_json['data']['240']['value'] }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "Grant Circuit 1 weather comp curve"
unique_id: 'c1 weather curve'
value_template: "{{ value_json['data']['273']['value'] }}"
state_class: measurement
- name: "Grant Circuit 1 curve shift"
unique_id: 'circuit1 curve shift'
value_template: "{{ value_json['data']['275']['value'] }}"
state_class: measurement
- name: "Grant DHW thermostat setting"
unique_id: '458520e1-7dd6-42a6-83d0-40aa736ffc60'
value_template: "{{ value_json['data']['103']['value'] }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "Grant DHW thermostat hysteresis"
unique_id: 'dhw hysteresis'
value_template: "{{ value_json['data']['104']['value'] }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
#- authentication: basic
# username: "admin"
# password: "admin"
# scan_interval: 30
# resource: http:/192.168.86.31/econet/editParams
# sensor:
- name: "Grant Heat pump fan speed"
unique_id: '1828f0ea-5f4e-4d3e-8d24-50a7670bda97'
value_template: "{{ value_json['informationParams']['22'][1][0]
[0] }}"
unit_of_measurement: "rpm"
state_class: measurement
- name: "Grant Heat pump electrical power"
unique_id: '3f91960f-84bd-4c24-979e-baa3cb323e8a'
value_template: "{{ value_json['informationParams']['211'][1][0]
[0] }}"
unit_of_measurement: "kW"
device_class: power
state_class: measurement
- name: "Grant Heat pump thermal power"
unique_id: '1e66d359-d68f-4288-b461-5edaa227e682'
value_template: "{{ value_json['informationParams']['212'][1][0]
[0] }}"
unit_of_measurement: "kW"
device_class: power
state_class: measurement
- name: "Grant Heat pump COP"
unique_id: '98e05155-0dd7-476c-bd62-37370a429f37'
value_template: "{{ value_json['informationParams']['221'][1][0]
[0] }}"
state_class: measurement
# - name: "Heat pump flow rate"
# unique_id: '43071e0d-09db-4e90-ae85-acf83c125b5a'
# value_template: "{{ value_json['informationParams']['231'][1][0]
# [0] }}"
# unit_of_measurement: "l/s"
# device_class: volume_flow_rate
# state_class: measurement
# Water flow rate in cuM/hr * 10
- name: "Grant Heatpump Flow Rate"
unique_id: 'flowrate'
value_template: "{{ value_json['data']['1211']['value'] }}"
state_class: measurement
- name: "Grant Register65"
unique_id: 'register65'
value_template: "{{ value_json['data']['1212']['value'] }}"
state_class: measurement
# - name: "Register68"
# unique_id: 'register68'
# value_template: "{{ value_json['data']['1215']['value'] }}"
# state_class: measurement
# - name: "Fan Speed2"
# unique_id: 'Fanspeed2'
# value_template: "{{ value_json['data']['1219']['value'] }}"
# unit_of_measurement: "rpm"
# state_class: measurement
- name: "Grant Target Flow Temp"
unique_id: 'targetflowtemp'
value_template: "{{ value_json['informationParams']['12'][1][0][0]}}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
# Circuit 1 calculated flow temp
- name: "Grant C1 Desired Heating LWT"
unique_id: 'c1flow'
value_template: "{{ value_json['informationParams']['93'][1][0][0]}}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
# Water pump is info 11
- name: "Grant Water Pump running"
unique_id: 'pump_running'
value_template: "{% set s = value_json['informationParams']['11'][1][0][0] %} {% if s == '2' %} {{'No'}} {% elif s=='0' %} {{'Yes'}} {% else %} {{s}} {% endif %}"
# Heating demanded?
- name: "Grant Heat Demanded"
unique_id: 'heatdemanded'
value_template: "{%set s= value_json['informationParams']['26'][1][0][0] %} {% if s == '1' %} {{'No'}} {% elif s == '0' %} {{'Yes'}} {% else %} {{s}} {% endif %}"
- name: "Grant Information26"
unique_id: 'information26'
value_template: "{%set s= value_json['informationParams']['26'][1][0][0] %} {% if s == '1' %} {{'No'}} {% elif s == '0' %} {{'Yes'}} {% else %} {{s}} {% endif %}"
# value_template: "{{ value_json['informationParams']['26'][1][0][0]}}"
# duplicate of 094 - CH valve state?
- name: "Grant CH or DHW"
unique_id: 'chordhw'
value_template: "{%set s= value_json['informationParams']['13'][1][0][0] %} {% if s == '1' %} {{'CH'}} {% elif s== '0' %} {{'HW'}} {% else %} {{s}} {% endif %}"
- name: "Grant Information13"
unique_id: 'information13'
value_template: "{%set s= value_json['informationParams']['13'][1][0][0] %} {% if s == '1' %} {{'CH'}} {% elif s== '0' %} {{'HW'}} {% else %} {{s}} {% endif %}"
# the following is also apparently under parameter 24,72 and 81 !!
- name: "Grant Actual Flow Temp"
unique_id: 'actualflowtemp'
value_template: "{{ value_json['informationParams']['14'][1][0][0]}}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
# the following is also apparently under parameter 25, and 91 !!
- name: "Grant Actual Return Temp"
unique_id: 'actualreturntemp'
value_template: "{{ value_json['informationParams']['15'][1][0][0]}}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
# water pump runtime hrs, since last power cycle
# - name: "Information201202"
# unique_id: 'information201202'
# value_template: "{{ value_json['informationParams']['201'][1][0][0]}}"
# - name: "Information2032042"
# unique_id: 'information203204'
# value_template: "{{ value_json['informationParams']['203'][1][0][0]}}"
# - name: "Heating Energy"
# unique_id: 'information203'
# value_template: "{{ value_json['informationParams']['203'][1][0][0] | float / 1000}}"
# unit_of_measurement: "kWh"
# device_class: energy
# state_class: measurement
# - name: "DHW Heating Energy"
# unique_id: 'information204'
# value_template: "{{ value_json['informationParams']['204'][1][0][0] | float / 1000}}"
# unit_of_measurement: "kWh"
# device_class: energy
# state_class: measurement
# compressor Hz?
- name: "Grant Compressor Freq"
unique_id: 'compressor freq'
value_template: "{{ value_json['informationParams']['21'][1][0][0]}}"
unit_of_measurement: "Hz"
device_class: frequency
state_class: measurement
- name: "Grant Information21"
unique_id: 'information21'
value_template: "{{ value_json['informationParams']['21'][1][0][0]}}"
unit_of_measurement: "Hz"
device_class: frequency
state_class: measurement
- name: "Grant Actual DHW Temp"
unique_id: 'actualdhwtemp'
value_template: "{{ value_json['informationParams']['61'][1][0][0]}}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
# CH Valve State?
- name: "Grant Information94"
unique_id: 'information94'
value_template: "{{ value_json['informationParams']['94'][1][0][0]}}"
- name: "Grant Information95"
unique_id: 'information95'
value_template: "{{ value_json['informationParams']['95'][1][0][0]}}"
- name: "Grant HP reported Ambient"
unique_id: 'hpambienttemp'
value_template: "{{ value_json['informationParams']['23'][1][0][0]}}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "Grant DHW Load time"
unique_id: 'dhw load time'
value_template: "{{ value_json['data']['113']['value'] }}"
state_class: measurement
- name: "Grant DHW start 1 loading"
unique_id: 'dhw start load'
value_template: "{{ value_json['data']['115']['value'] }}"
- name: "Grant DHW work mode"
unique_id: 'dhw work mode'
value_template: "{% set s= value_json['data']['119']['value'] %} {% if s==2 %} {{'Scheduled'}} {% elif s==1 %} {{'On'}} {% elif s==0 %} {{'Off'}} {% else %} {{s}} {% endif %}"
- name: "Grant Circuit1 work mode"
unique_id: 'c1 work mode'
value_template: "{% set s= value_json['data']['236']['value'] %} {% if s==3 %} {{'Scheduled'}} {% elif s==1 %} {{'Day'}} {% elif s==2 %} {{'Night'}} {% elif s==0 %} {{'Off'}} {% else %} {{s}} {% endif %}"
- authentication: basic
username: "admin"
password: "admin"
scan_interval: 30
resource: http://192.168.86.31/econet/regParams
sensor:
# - name: "Hot water cylinder"
# unique_id: 'b9c0657f-e4cb-460d-b10f-f39092f5be62'
# value_template: "{{ value_json.curr.TempCWU }}"
# unit_of_measurement: "°C"
# device_class: temperature
# state_class: measurement
- name: "Grant Exterior weather sensor"
unique_id: '230ae67e-169a-4a26-98b1-851d9f39492c'
value_template: "{{ value_json.curr.TempWthr }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
# 1 if (water circulation) pump is on
# - name: "AxenUpperPump"
# unique_id: 'axenupperpump'
# value_template: "{{ value_json.curr.AxenUpperPump }}"
# unit_of_measurement: "rpm"
# state_class: measurement
# - name: "Target flow temperature"
# unique_id: 'a41f64ea-f29c-46b3-a29c-eb575f5b623f'
# value_template: "{{ value_json.curr.HeatSourceCalcPresetTemp }}"
# unit_of_measurement: "°C"
# device_class: temperature
# state_class: measurement
# - name: "Heat pump inlet temperature"
# unique_id: '5755ad9c-5707-4754-9920-74e6fc499616'
# value_template: "{{ value_json.curr.AxenReturnTemp }}"
# unit_of_measurement: "°C"
# device_class: temperature
# state_class: measurement
# - name: "Heat pump outlet temperature"
# unique_id: '2d68ee3a-6345-4d1e-949d-7952ad61f866'
# value_template: "{{ value_json.curr.AxenOutgoingTemp }}"
# unit_of_measurement: "°C"
# device_class: temperature
# state_class: measurement
# - name: "Heat pump compressor frequency"
# unique_id: '7786493f-70bd-4b87-9ad8-848a340aed23'
# value_template: "{{ value_json.curr.AxenCompressorFreq }}"
# unit_of_measurement: "Hz"
# device_class: frequency
# state_class: measurement
- name: "Grant Panel thermostat Temperature"
unique_id: '4d98cf06-6b87-4193-9d0e-7ccf9c355386'
value_template: "{{ value_json.curr.Circuit1thermostat }}"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
- name: "Grant Heat pump valve state"
unique_id: 'c1659951-b9b7-4bad-bdf8-ea5bc9dc30f4'
value_template: "{{ value_json.curr.flapValveStates}}"
device_class: enum
- name: "Grant Heat pump work state"
unique_id: '3d61585c-47f7-42c8-9ca1-81dab1103680'
value_template: "{% set s= value_json.curr.AxenWorkState %} {% if s==2 %} {{'Scheduled'}} {% elif s==1 %} {{'On'}} {% elif s==0 %} {{'Off'}} {% else %} {{s}} {% endif %}"
- name: "Grant Heat pump system pressure"
unique_id: '550e8400-e29b-41d4-a716-446655440000'
# Translates jq '.tilesParams[76][0][0][0]' to Jinja2
value_template: "{{ value_json.tilesParams[76][0][0][0] }}"
unit_of_measurement: "BAR"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment