Tuya Integration: Missing Thermostat Features (Sensor Mode, Window Detection etc)

Using Tuya integration with Tervix Pro Line ZigBee color thermostat. Several available features are not exposed in HA:

  • Sensor selection (in/out/all modes)
  • Window detection state and control
  • Frost protection
  • Temperature correction
  • Humidity sensor
  • Child lock
  • Missing proper HVAC modes (shows heat_cool twice)

Product details:

  • ID: 6kijc7nd
  • Name: Thermostat Tervix Pro Line ZigBee color

These features are accessible via Tuya API as shown in diagnostic data.

  "function": {
      "switch": {
        "type": "Boolean",
        "value": {}
      },
      "mode": {
        "type": "Enum",
        "value": {
          "range": [
            "manual",
            "program"
          ]
        }
      },
      "window_check": {
        "type": "Boolean",
        "value": {}
      },
      "frost": {
        "type": "Boolean",
        "value": {}
      },
      "temp_set": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": 50,
          "max": 950,
          "scale": 1,
          "step": 5
        }
      },
      "upper_temp": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": 350,
          "max": 950,
          "scale": 1,
          "step": 5
        }
      },
      "temp_correction": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": -9,
          "max": 9,
          "scale": 0,
          "step": 1
        }
      },
      "factory_reset": {
        "type": "Boolean",
        "value": {}
      },
      "child_lock": {
        "type": "Boolean",
        "value": {}
      },
      "sensor_choose": {
        "type": "Enum",
        "value": {
          "range": [
            "in",
            "out"
          ]
        }
      }
    },
    "status_range": {
      "switch": {
        "type": "Boolean",
        "value": {}
      },
      "mode": {
        "type": "Enum",
        "value": {
          "range": [
            "manual",
            "program"
          ]
        }
      },
      "window_check": {
        "type": "Boolean",
        "value": {}
      },
      "frost": {
        "type": "Boolean",
        "value": {}
      },
      "temp_set": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": 50,
          "max": 950,
          "scale": 1,
          "step": 5
        }
      },
      "upper_temp": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": 350,
          "max": 950,
          "scale": 1,
          "step": 5
        }
      },
      "temp_current": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": 0,
          "max": 995,
          "scale": 1,
          "step": 5
        }
      },
      "window_state": {
        "type": "Enum",
        "value": {
          "range": [
            "close",
            "open"
          ]
        }
      },
      "temp_correction": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": -9,
          "max": 9,
          "scale": 0,
          "step": 1
        }
      },
      "humidity": {
        "type": "Integer",
        "value": {
          "unit": "%",
          "min": 0,
          "max": 100,
          "scale": 0,
          "step": 1
        }
      },
      "factory_reset": {
        "type": "Boolean",
        "value": {}
      },
      "child_lock": {
        "type": "Boolean",
        "value": {}
      },
      "sensor_choose": {
        "type": "Enum",
        "value": {
          "range": [
            "in",
            "out"
          ]
        }
      }
    },
    "status": {
      "switch": true,
      "mode": "manual",
      "window_check": false,
      "frost": false,
      "temp_set": 215,
      "upper_temp": 450,
      "temp_current": 195,
      "window_state": "close",
      "temp_correction": -2,
      "humidity": 23,
      "factory_reset": false,
      "child_lock": false,
      "sensor_choose": "all"
    }

Is there is any way to at least implement those via YAML configuration or pull from Tuya?