Tuya integration Inverter Pool Heat Pump (dstfhlgr3rca4ifa) show all DPs

Hi,
I’m trying to get further features added into Tuya integration for this device:
Inverter Pool Heat Pump (dstfhlgr3rca4ifa) by Tuya.

In the Tuya app it shows up with various data, current temperature, target, etc.
Currently in the Tuya app it just shows the state of it and doesn’t allow control or temperature information.

So I know I need to somehow add the integrations DP settings from tuyas developer information.

I can’t find documentation on how to add/amend/submit a PR to the Tuya integration to add more support for devices, anyone care to point me in the right direction?

I’ve grabbed details on the device:

{
  "result": [
    {
      "active_time": 1732371063,
      "bind_space_id": "153504535",
      "category": "rs",
      "create_time": 1713969919,
      "custom_name": "",
      "icon": "smart/icon/ay15298960750056wZrN/c3d30aba4ce5cd123d33a58eebfbe254.png",
      "id": "23242377483fda62eaa2",
      "ip": "62.30.8.206",
      "is_online": true,
      "lat": "54.68",
      "local_key": "lk{2BLAH",
      "lon": "-1.2",
      "model": "",
      "name": "Inverter Pool Heat Pump",
      "product_id": "dstfhlgr3rca4ifa",
      "product_name": "OEM单温超频-Inverter Pool Heat Pump",
      "sub": false,
      "time_zone": "+00:00",
      "update_time": 1732371161,
      "uuid": "23242377483fda62eaa2"
    }
  ],
  "success": true,
  "t": 1732376099780,
  "tid": "7feb9d32a9b011ef9fed422f202c76b8"
}

And querying device properties I have full output:

{
  "result": {
    "properties": [
      {
        "code": "Power",
        "custom_name": "",
        "dp_id": 1,
        "time": 1732371066485,
        "type": "bool",
        "value": true
      },
      {
        "code": "mode",
        "custom_name": "",
        "dp_id": 2,
        "time": 1732371067623,
        "type": "enum",
        "value": "smart"
      },
      {
        "code": "WInTemp",
        "custom_name": "",
        "dp_id": 102,
        "time": 1732375048908,
        "type": "value",
        "value": 32
      },
      {
        "code": "change_tem",
        "custom_name": "",
        "dp_id": 103,
        "time": 1732371066542,
        "type": "bool",
        "value": true
      },
      {
        "code": "SpeedPercentage",
        "custom_name": "",
        "dp_id": 104,
        "time": 1732373511353,
        "type": "value",
        "value": 80
      },
      {
        "code": "SetMode",
        "custom_name": "",
        "dp_id": 105,
        "time": 1732371066948,
        "type": "enum",
        "value": "warm"
      },
      {
        "code": "SetTemp",
        "custom_name": "",
        "dp_id": 106,
        "time": 1732371067011,
        "type": "value",
        "value": 34
      },
      {
        "code": "SetDnLimit",
        "custom_name": "",
        "dp_id": 107,
        "time": 1732371067072,
        "type": "value",
        "value": 18
      },
      {
        "code": "SetUpLimit",
        "custom_name": "",
        "dp_id": 108,
        "time": 1732371067152,
        "type": "value",
        "value": 40
      },
      {
        "code": "fault1",
        "custom_name": "",
        "dp_id": 115,
        "time": 1732371067366,
        "type": "bitmap",
        "value": 0
      },
      {
        "code": "fault2",
        "custom_name": "",
        "dp_id": 116,
        "time": 1732371067487,
        "type": "bitmap",
        "value": 0
      },
      {
        "code": "SilentMdoe",
        "custom_name": "",
        "dp_id": 117,
        "time": 1713969919026,
        "type": "bool",
        "value": false
      },
      {
        "code": "WarmOrCool",
        "custom_name": "",
        "dp_id": 118,
        "time": 1713969919026,
        "type": "bool",
        "value": false
      },
      {
        "code": "OutPipeTemp",
        "custom_name": "",
        "dp_id": 120,
        "time": 1713969919026,
        "type": "value",
        "value": -22
      },
      {
        "code": "ExhaustTemp",
        "custom_name": "",
        "dp_id": 122,
        "time": 1713969919026,
        "type": "value",
        "value": -22
      },
      {
        "code": "AmbTemp",
        "custom_name": "",
        "dp_id": 124,
        "time": 1713969919026,
        "type": "value",
        "value": -22
      },
      {
        "code": "CompFreAct",
        "custom_name": "",
        "dp_id": 125,
        "time": 1713969919026,
        "type": "value",
        "value": 0
      },
      {
        "code": "CompressorCurrent",
        "custom_name": "",
        "dp_id": 126,
        "time": 1713969919026,
        "type": "value",
        "value": 0
      },
      {
        "code": "RadTemp",
        "custom_name": "",
        "dp_id": 127,
        "time": 1713969919026,
        "type": "value",
        "value": -22
      },
      {
        "code": "EXVPosition",
        "custom_name": "",
        "dp_id": 128,
        "time": 1713969919026,
        "type": "value",
        "value": 0
      },
      {
        "code": "DCFanSpeed",
        "custom_name": "",
        "dp_id": 129,
        "time": 1713969919026,
        "type": "value",
        "value": 0
      },
      {
        "code": "Defrost",
        "custom_name": "",
        "dp_id": 130,
        "time": 1713969919026,
        "type": "bool",
        "value": false
      },
      {
        "code": "CompRly",
        "custom_name": "",
        "dp_id": 134,
        "time": 1713969919026,
        "type": "bool",
        "value": false
      },
      {
        "code": "CyclePump",
        "custom_name": "",
        "dp_id": 135,
        "time": 1713969919026,
        "type": "bool",
        "value": false
      },
      {
        "code": "ReserveValve",
        "custom_name": "",
        "dp_id": 136,
        "time": 1713969919026,
        "type": "bool",
        "value": false
      },
      {
        "code": "ChargeRly",
        "custom_name": "",
        "dp_id": 139,
        "time": 1713969919026,
        "type": "bool",
        "value": false
      },
      {
        "code": "ACFanSpeed",
        "custom_name": "",
        "dp_id": 140,
        "time": 1713969919026,
        "type": "enum",
        "value": "LowSpeed"
      }
    ]
  },
  "success": true,
  "t": 1732376255883,
  "tid": "dcf92e1fa9b011ef9e6566852e0618f4"
}

Just to add some more. Using tinytuya with relevant local key I can get the right DP data and match it up:

{
  "id": "23242377483fda62eaa2",
  "gwId": "23242377483fda62eaa2",
  "ip": "192.168.0.159",
  "version": 3.3,
  "name": "Inverter Pool Heat Pump",
  "key": "lk{2SZPSKOR65eFw",
  "mac": "48:3f:da:62:ea:a2",
  "dps": {
    "1": true,
    "2": "smart",
    "102": 32,
    "103": true,
    "104": 0,
    "105": "warm",
    "106": 34,
    "107": 18,
    "108": 40,
    "115": 4,
    "116": 0
  }
}

So DP translation:
2 - “smart” - mode of operation/preset (turbo/smart/silence)
102 - “32” - current temperature of water
103 - “true” - current operation state
104 - “0” - unsure shows a percentage in the app
105 - “warm” - unsure
106 - “34” - target temperature
107 - “18” - unsure
108 - “40” - unsure
115 - “4” - unsure
116 - “0” - unsure