Просмотр исходного кода

feat (devices): use temperature_delta class

In HA 2025.11.0, a new device class for temperature_delta was
introduced, solving the issue that temperature conversions
between C and F mess up delta measurements/settings.

Update the minimum HA version, and use this new class for
calibration and hysteresis settings.
Jason Rumney 14 часов назад
Родитель
Сommit
184bc3f398
96 измененных файлов с 469 добавлено и 189 удалено
  1. 9 1
      custom_components/tuya_local/devices/arlec_thermostat_smartplug.yaml
  2. 2 1
      custom_components/tuya_local/devices/atorch_at4ptw_thermostat.yaml
  3. 9 1
      custom_components/tuya_local/devices/atorch_s1tw_thermostat.yaml
  4. 2 1
      custom_components/tuya_local/devices/avatto_trv06_radiatorvalve.yaml
  5. 4 2
      custom_components/tuya_local/devices/avatto_wt100_thermostat.yaml
  6. 2 2
      custom_components/tuya_local/devices/avatto_zwt198_thermostat.yaml
  7. 3 1
      custom_components/tuya_local/devices/awow_th213_thermostat.yaml
  8. 2 1
      custom_components/tuya_local/devices/awow_th213v2_thermostat.yaml
  9. 4 2
      custom_components/tuya_local/devices/beca_bac2005alw_thermostat.yaml
  10. 6 1
      custom_components/tuya_local/devices/beca_bht006_thermostat_c.yaml
  11. 6 1
      custom_components/tuya_local/devices/beca_zht002_thermostat_c.yaml
  12. 6 3
      custom_components/tuya_local/devices/beok_tcb38_thermostat.yaml
  13. 4 2
      custom_components/tuya_local/devices/beok_tgm50_thermostat.yaml
  14. 4 2
      custom_components/tuya_local/devices/beok_tgm50wp_thermostat.yaml
  15. 4 2
      custom_components/tuya_local/devices/beok_tgr81_thermostat_c.yaml
  16. 4 2
      custom_components/tuya_local/devices/beok_tol47v2_thermostat.yaml
  17. 9 1
      custom_components/tuya_local/devices/beok_tr8b_thermostat.yaml
  18. 2 1
      custom_components/tuya_local/devices/besttherm_nessaconnect_heater.yaml
  19. 2 1
      custom_components/tuya_local/devices/bht002_galw_thermostat.yaml
  20. 2 1
      custom_components/tuya_local/devices/bht002_gblw_thermostat.yaml
  21. 1 2
      custom_components/tuya_local/devices/bresser_weather_station.yaml
  22. 2 1
      custom_components/tuya_local/devices/bvf_cp1_heater.yaml
  23. 2 1
      custom_components/tuya_local/devices/calex_convector_heater.yaml
  24. 18 2
      custom_components/tuya_local/devices/dr_heater_dr008_thermostat.yaml
  25. 6 4
      custom_components/tuya_local/devices/drexma_et7aw_thermostat.yaml
  26. 14 8
      custom_components/tuya_local/devices/dunwore_f60_floorheating.yaml
  27. 2 1
      custom_components/tuya_local/devices/earu_k6h3aw_thermostat.yaml
  28. 2 1
      custom_components/tuya_local/devices/ecostrad_iq_heating_element.yaml
  29. 2 1
      custom_components/tuya_local/devices/ecostrad_iqceramic_radiator.yaml
  30. 8 4
      custom_components/tuya_local/devices/elko_cfmtb_thermostat.yaml
  31. 4 2
      custom_components/tuya_local/devices/emmeti_zona_thermostat.yaml
  32. 2 1
      custom_components/tuya_local/devices/engo_e901wifi_thermostat.yaml
  33. 2 1
      custom_components/tuya_local/devices/essentials_smart_electric_heater.yaml
  34. 2 1
      custom_components/tuya_local/devices/etop_ht_thermostat.yaml
  35. 2 1
      custom_components/tuya_local/devices/etop_htch_pro_thermostat.yaml
  36. 4 2
      custom_components/tuya_local/devices/ettroit_ln4102_thermostat.yaml
  37. 2 1
      custom_components/tuya_local/devices/ezaiot_r9lite_thermostat.yaml
  38. 3 1
      custom_components/tuya_local/devices/ezaiot_thermostat_smartplug.yaml
  39. 9 2
      custom_components/tuya_local/devices/fourin1_motion_sensor.yaml
  40. 4 2
      custom_components/tuya_local/devices/garza_aspen_thermostat.yaml
  41. 2 1
      custom_components/tuya_local/devices/goldair_gpph900_heater.yaml
  42. 7 4
      custom_components/tuya_local/devices/heatstorm_dh100twi_heater.yaml
  43. 2 1
      custom_components/tuya_local/devices/herschel_selectxls_mirror.yaml
  44. 9 1
      custom_components/tuya_local/devices/herschel_t_mt_thermostat.yaml
  45. 2 1
      custom_components/tuya_local/devices/hombli_thermostatic_radiator_valve.yaml
  46. 2 1
      custom_components/tuya_local/devices/hrt_as90_climatealarm.yaml
  47. 4 2
      custom_components/tuya_local/devices/hysen_hy02tp_thermostat.yaml
  48. 2 1
      custom_components/tuya_local/devices/hysen_hy08acf_thermostat.yaml
  49. 8 1
      custom_components/tuya_local/devices/hysen_hy08we2_thermostat.yaml
  50. 26 6
      custom_components/tuya_local/devices/hysen_hy101rf_thermostat.yaml
  51. 8 4
      custom_components/tuya_local/devices/inkbird_ibbq4bw_thermometer.yaml
  52. 18 4
      custom_components/tuya_local/devices/inkbird_ipt2ch_thermostat.yaml
  53. 3 4
      custom_components/tuya_local/devices/inkbird_itc306a_thermostat.yaml
  54. 3 4
      custom_components/tuya_local/devices/inkbird_itc308_thermostat.yaml
  55. 2 1
      custom_components/tuya_local/devices/inkbird_ivc001w_fan.yaml
  56. 2 1
      custom_components/tuya_local/devices/inkbird_sousvide_cooker.yaml
  57. 2 1
      custom_components/tuya_local/devices/kesser_infrared_wall_heater.yaml
  58. 4 2
      custom_components/tuya_local/devices/kkmoon_thermostat.yaml
  59. 8 1
      custom_components/tuya_local/devices/konlen_snt957w_tempsensor.yaml
  60. 6 3
      custom_components/tuya_local/devices/konlen_wf72tt_dualtempcontroller.yaml
  61. 3 1
      custom_components/tuya_local/devices/ledlux_thermostat.yaml
  62. 16 2
      custom_components/tuya_local/devices/magnum_mrc_floorheating.yaml
  63. 15 9
      custom_components/tuya_local/devices/me80_thermostat.yaml
  64. 4 2
      custom_components/tuya_local/devices/moes_trv601_thermostat.yaml
  65. 2 1
      custom_components/tuya_local/devices/moes_trv_thermostat.yaml
  66. 4 2
      custom_components/tuya_local/devices/moes_wht009_thermostat.yaml
  67. 14 8
      custom_components/tuya_local/devices/moes_whts01_thermostat.yaml
  68. 15 8
      custom_components/tuya_local/devices/mrc_magnum_floorheater.yaml
  69. 2 1
      custom_components/tuya_local/devices/multi_leaf_dy_107_thermostat.yaml
  70. 2 1
      custom_components/tuya_local/devices/myuet_me82_thermostat.yaml
  71. 9 3
      custom_components/tuya_local/devices/nashone_mts700wb_thermostat.yaml
  72. 4 2
      custom_components/tuya_local/devices/plikc_neve_thermostat.yaml
  73. 2 1
      custom_components/tuya_local/devices/pni_ct45_thermostat.yaml
  74. 12 6
      custom_components/tuya_local/devices/poolex_icespa70_heatpump.yaml
  75. 4 2
      custom_components/tuya_local/devices/psmart_t436_thermostat.yaml
  76. 3 3
      custom_components/tuya_local/devices/pv28-cw_airquality_monitor.yaml
  77. 4 2
      custom_components/tuya_local/devices/quad_temphumidity_switch.yaml
  78. 2 1
      custom_components/tuya_local/devices/rectec_rt700_grill.yaml
  79. 2 1
      custom_components/tuya_local/devices/recteq_rt1250f_grill.yaml
  80. 2 1
      custom_components/tuya_local/devices/recteq_rtb380x_grill.yaml
  81. 2 1
      custom_components/tuya_local/devices/rtitek_t5z_thermostat.yaml
  82. 2 1
      custom_components/tuya_local/devices/rumba_bathroom_heater.yaml
  83. 2 1
      custom_components/tuya_local/devices/snt957w_de_cbu_temp_humidity.yaml
  84. 2 1
      custom_components/tuya_local/devices/snt957w_tde_temp.yaml
  85. 2 1
      custom_components/tuya_local/devices/solaire_vitra_smart_heater_s2.yaml
  86. 2 1
      custom_components/tuya_local/devices/sonninkonig_eco_elegance_heater.yaml
  87. 8 1
      custom_components/tuya_local/devices/steinbach_silent_mini_heatpump.yaml
  88. 2 1
      custom_components/tuya_local/devices/swimfun_inverboost_poolheatpump.yaml
  89. 9 3
      custom_components/tuya_local/devices/t5e_wf_thermostat.yaml
  90. 2 1
      custom_components/tuya_local/devices/tellur_thermostat.yaml
  91. 2 1
      custom_components/tuya_local/devices/th05_temp_humidity_sensor.yaml
  92. 2 1
      custom_components/tuya_local/devices/th05z_temphumidity.yaml
  93. 2 1
      custom_components/tuya_local/devices/thb2_temperature_and_humidity_sensor.yaml
  94. 9 3
      custom_components/tuya_local/devices/tyte_d1_thermostat.yaml
  95. 2 1
      custom_components/tuya_local/devices/warmehaus_afd02tj_thermostat_c.yaml
  96. 1 1
      hacs.json

+ 9 - 1
custom_components/tuya_local/devices/arlec_thermostat_smartplug.yaml

@@ -203,15 +203,23 @@ entities:
             value: F
   - entity: number
     translation_key: temperature_calibration
+    class: termperature_delta
     category: config
     dps:
       - id: 30
         type: integer
         name: value
-        unit: °
         range:
           min: -9
           max: 9
+      - id: 20
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
   - entity: number
     name: Humidity hysteresis
     category: config

+ 2 - 1
custom_components/tuya_local/devices/atorch_at4ptw_thermostat.yaml

@@ -204,12 +204,13 @@ entities:
         name: lock
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 117
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -50
           max: 50

+ 9 - 1
custom_components/tuya_local/devices/atorch_s1tw_thermostat.yaml

@@ -303,17 +303,25 @@ entities:
         name: lock
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 117
         type: integer
         name: value
-        unit: °
         range:
           min: -50
           max: 50
         mapping:
           - scale: 10
+      - id: 118
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
   - entity: select
     translation_key: temperature_unit
     category: config

+ 2 - 1
custom_components/tuya_local/devices/avatto_trv06_radiatorvalve.yaml

@@ -92,13 +92,14 @@ entities:
             hidden: true
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 47
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 4 - 2
custom_components/tuya_local/devices/avatto_wt100_thermostat.yaml

@@ -92,6 +92,7 @@ entities:
         type: bitfield
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 20
@@ -102,7 +103,7 @@ entities:
           max: 90
         mapping:
           - scale: 10
-        unit: °
+        unit: C
   - entity: number
     translation_key: maximum_temperature
     category: config
@@ -190,6 +191,7 @@ entities:
         name: switch
   - entity: number
     name: Temperature hysteresis
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-plus"
     dps:
@@ -201,7 +203,7 @@ entities:
           max: 95
         mapping:
           - scale: 10
-        unit: °
+        unit: C
   - entity: number
     name: External temperature limit
     category: config

+ 2 - 2
custom_components/tuya_local/devices/avatto_zwt198_thermostat.yaml

@@ -158,12 +158,12 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
-    icon: "mdi:thermometer-plus"
+    class: temperature_delta
     dps:
       - id: 107
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 5
           max: 100

+ 3 - 1
custom_components/tuya_local/devices/awow_th213_thermostat.yaml

@@ -82,17 +82,19 @@ entities:
             value: Both
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
   - entity: number
     name: Calibration swing
+    class: temperature_delta
     category: config
     icon: "mdi:arrow-expand-vertical"
     dps:

+ 2 - 1
custom_components/tuya_local/devices/awow_th213v2_thermostat.yaml

@@ -76,12 +76,13 @@ entities:
             value: Both
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 4 - 2
custom_components/tuya_local/devices/beca_bac2005alw_thermostat.yaml

@@ -136,12 +136,13 @@ entities:
             step: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -14
           max: 14
@@ -275,12 +276,13 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:arrow-expand-vertical"
     dps:
       - id: 111
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 1
           max: 5

+ 6 - 1
custom_components/tuya_local/devices/beca_bht006_thermostat_c.yaml

@@ -100,23 +100,26 @@ entities:
         name: lock
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         name: value
         type: integer
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
   - entity: number
     name: Temperature hysteresis
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     category: config
     dps:
       - id: 103
         type: integer
         name: value
+        unit: C
         range:
           min: 1
           max: 5
@@ -129,6 +132,7 @@ entities:
       - id: 104
         type: integer
         name: value
+        unit: C
         range:
           min: 100
           max: 300
@@ -144,6 +148,7 @@ entities:
       - id: 105
         type: integer
         name: value
+        unit: C
         range:
           min: 100
           max: 300

+ 6 - 1
custom_components/tuya_local/devices/beca_zht002_thermostat_c.yaml

@@ -58,34 +58,39 @@ entities:
             value: both
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         name: value
         type: integer
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
   - entity: number
     name: DeadZone temp
     icon: "mdi:thermometer-alert"
+    class: temperature_delta
     category: config
     dps:
       - id: 26
         name: value
         type: integer
+        unit: C
         range:
           min: 1
           max: 5
   - entity: number
     name: High limit temperature ceiling
+    class: temperature
     icon: "mdi:thermometer-alert"
     category: config
     dps:
       - id: 19
         name: value
         type: integer
+        unit: C
         range:
           min: 45
           max: 70

+ 6 - 3
custom_components/tuya_local/devices/beok_tcb38_thermostat.yaml

@@ -73,12 +73,13 @@ entities:
         name: fault_code
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 20
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -95
           max: 95
@@ -184,13 +185,14 @@ entities:
           - scale: 10
   - entity: number
     name: Room temperature hysteresis
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-lines"
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 5
           max: 30
@@ -200,12 +202,13 @@ entities:
   - entity: number
     name: Floor temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-lines"
     dps:
       - id: 104
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 1
           max: 9

+ 4 - 2
custom_components/tuya_local/devices/beok_tgm50_thermostat.yaml

@@ -91,12 +91,13 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 101
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 5
           max: 100
@@ -116,12 +117,13 @@ entities:
           max: 95
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 19
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -99
           max: 99

+ 4 - 2
custom_components/tuya_local/devices/beok_tgm50wp_thermostat.yaml

@@ -91,12 +91,13 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 101
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 5
           max: 95
@@ -116,12 +117,13 @@ entities:
           max: 95
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 19
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -90
           max: 90

+ 4 - 2
custom_components/tuya_local/devices/beok_tgr81_thermostat_c.yaml

@@ -65,13 +65,14 @@ entities:
             value: heating
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
@@ -199,6 +200,7 @@ entities:
             invalid: true
   - entity: number
     name: Hysteresis
+    class: temperature_delta
     category: config
     icon: "mdi:arrow-expand-vertical"
     dps:
@@ -206,7 +208,7 @@ entities:
         type: integer
         name: value
         optional: true
-        unit: °
+        unit: C
         range:
           min: 1
           max: 5

+ 4 - 2
custom_components/tuya_local/devices/beok_tol47v2_thermostat.yaml

@@ -128,12 +128,13 @@ entities:
           max: 95
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 19
         type: integer
         name: value
-        unit: "°"
+        unit: C
         range:
           min: -99
           max: 99
@@ -152,12 +153,13 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 101
         type: integer
         name: value
-        unit: "°"
+        unit: C
         range:
           min: 5
           max: 100

+ 9 - 1
custom_components/tuya_local/devices/beok_tr8b_thermostat.yaml

@@ -230,17 +230,25 @@ entities:
         class: measurement
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 109
         type: integer
         name: value
-        unit: °
         range:
           min: -99
           max: 99
         mapping:
           - scale: 10
+      - id: 23
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
       - id: 108
         type: integer
         name: step

+ 2 - 1
custom_components/tuya_local/devices/besttherm_nessaconnect_heater.yaml

@@ -125,12 +125,13 @@ entities:
         name: switch
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 107
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 2 - 1
custom_components/tuya_local/devices/bht002_galw_thermostat.yaml

@@ -122,12 +122,13 @@ entities:
             value: true
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 2 - 1
custom_components/tuya_local/devices/bht002_gblw_thermostat.yaml

@@ -129,12 +129,13 @@ entities:
             value: true
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 1 - 2
custom_components/tuya_local/devices/bresser_weather_station.yaml

@@ -333,8 +333,7 @@ entities:
         optional: true
         <<: *temperature
   - entity: sensor
-    name: Wind bearing
-    icon: mdi:compass-outline
+    class: wind_direction
     dps:
       - id: 101
         type: integer

+ 2 - 1
custom_components/tuya_local/devices/bvf_cp1_heater.yaml

@@ -70,12 +70,13 @@ entities:
         name: switch
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 2 - 1
custom_components/tuya_local/devices/calex_convector_heater.yaml

@@ -136,12 +136,13 @@ entities:
         type: boolean
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 106
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 40

+ 18 - 2
custom_components/tuya_local/devices/dr_heater_dr008_thermostat.yaml

@@ -215,24 +215,40 @@ entities:
             value: "5+1+1 (Adaptive)"
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 112
         type: integer
         name: value
-        unit: °
         range:
           min: -9
           max: 9
+      - id: 107
+        name: unit
+        type: boolean
+        mapping:
+          - dps_val: false
+            value: C
+          - dps_val: true
+            value: F
   - entity: number
     name: Floor temperature calibration
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-check"
     dps:
       - id: 113
         type: integer
         name: value
-        unit: °
         range:
           min: -9
           max: 9
+      - id: 23
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F

+ 6 - 4
custom_components/tuya_local/devices/drexma_et7aw_thermostat.yaml

@@ -215,6 +215,7 @@ entities:
   - entity: number
     category: config
     name: Room temperature calibration
+    class: temperature_delta
     icon: "mdi:tune-vertical-variant"
     dps:
       - id: 112
@@ -238,12 +239,13 @@ entities:
         type: boolean
         mapping:
           - dps_val: false
-            value: °
+            value: C
           - dps_val: true
-            value: °
+            value: F
   - entity: number
     category: config
     name: Floor temperature calibration
+    class: temperature_delta
     icon: "mdi:tune-variant"
     dps:
       - id: 113
@@ -267,9 +269,9 @@ entities:
         type: boolean
         mapping:
           - dps_val: false
-            value: °
+            value: C
           - dps_val: true
-            value: °
+            value: F
   - entity: number
     name: Heater wattage
     class: power

+ 14 - 8
custom_components/tuya_local/devices/dunwore_f60_floorheating.yaml

@@ -280,17 +280,17 @@ entities:
   - entity: number
     name: Room calibration
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-check"
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
         range:
           min: -50
           max: 50
         mapping:
-          - constraint: temp_unit
+          - constraint: unit
             conditions:
               - dps_val: f
                 value_redirect: cali_room_f
@@ -302,8 +302,11 @@ entities:
                 step: 5
       - id: 23
         type: string
-        name: temp_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
       - id: 104
         type: integer
         optional: true
@@ -315,17 +318,17 @@ entities:
   - entity: number
     name: Floor calibration
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-check"
     dps:
       - id: 105
         type: integer
         name: value
-        unit: °
         range:
           min: -50
           max: 50
         mapping:
-          - constraint: temp_unit
+          - constraint: unit
             conditions:
               - dps_val: f
                 value_redirect: cali_floor_f
@@ -337,8 +340,11 @@ entities:
                 step: 5
       - id: 23
         type: string
-        name: temp_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
       - id: 106
         type: integer
         name: cali_floor_f

+ 2 - 1
custom_components/tuya_local/devices/earu_k6h3aw_thermostat.yaml

@@ -65,12 +65,13 @@ entities:
             value: heating
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 2 - 1
custom_components/tuya_local/devices/ecostrad_iq_heating_element.yaml

@@ -95,12 +95,13 @@ entities:
           max: 7
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 2 - 1
custom_components/tuya_local/devices/ecostrad_iqceramic_radiator.yaml

@@ -104,12 +104,13 @@ entities:
             icon: "mdi:sync-off"
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 8 - 4
custom_components/tuya_local/devices/elko_cfmtb_thermostat.yaml

@@ -299,13 +299,14 @@ entities:
             step: 10
   - entity: number
     name: Away heating reduction
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-minus"
     dps:
       - id: 111
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 1000
@@ -315,12 +316,13 @@ entities:
   - entity: number
     name: Away cooling reduction
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 112
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 1000
@@ -397,13 +399,14 @@ entities:
           - value: false
   - entity: number
     name: Room temperature calibration
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-check"
     dps:
       - id: 128
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -900
           max: 900
@@ -413,12 +416,13 @@ entities:
   - entity: number
     name: External temperature calibration
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-check"
     dps:
       - id: 130
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -900
           max: 900

+ 4 - 2
custom_components/tuya_local/devices/emmeti_zona_thermostat.yaml

@@ -103,11 +103,12 @@ entities:
   - entity: number
     translation_key: temperature_calibration
     category: config
+    class: temperature_delta
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
@@ -115,11 +116,12 @@ entities:
     name: Temperature hysteresis
     category: config
     icon: "mdi:thermometer-plus"
+    class: temperature_delta
     dps:
       - id: 104
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 1
           max: 9

+ 2 - 1
custom_components/tuya_local/devices/engo_e901wifi_thermostat.yaml

@@ -49,12 +49,13 @@ entities:
           - scale: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         name: value
         type: integer
-        unit: "°"
+        unit: C
         range:
           min: -35
           max: 35

+ 2 - 1
custom_components/tuya_local/devices/essentials_smart_electric_heater.yaml

@@ -45,12 +45,13 @@ entities:
             step: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 2 - 1
custom_components/tuya_local/devices/etop_ht_thermostat.yaml

@@ -157,12 +157,13 @@ entities:
             step: 5
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         name: value
         type: integer
-        unit: °
+        unit: C
         range:
           min: -100
           max: 100

+ 2 - 1
custom_components/tuya_local/devices/etop_htch_pro_thermostat.yaml

@@ -171,12 +171,13 @@ entities:
             step: 5
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         name: value
         type: integer
-        unit: °
+        unit: C
         range:
           min: -100
           max: 100

+ 4 - 2
custom_components/tuya_local/devices/ettroit_ln4102_thermostat.yaml

@@ -85,12 +85,13 @@ entities:
           max: 150
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
@@ -132,13 +133,14 @@ entities:
             value: external
   - entity: number
     name: Temperature hysteresis
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-plus"
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 5

+ 2 - 1
custom_components/tuya_local/devices/ezaiot_r9lite_thermostat.yaml

@@ -182,12 +182,13 @@ entities:
             step: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 109
         name: value
         type: integer
-        unit: °
+        unit: C
         range:
           min: -99
           max: 99

+ 3 - 1
custom_components/tuya_local/devices/ezaiot_thermostat_smartplug.yaml

@@ -209,6 +209,7 @@ entities:
   # Difference Hysteresis
   - entity: number
     name: Temperature hysteresis
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer"
     mode: "box"
@@ -227,6 +228,7 @@ entities:
   # Temperature correction
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 18
@@ -235,7 +237,7 @@ entities:
         optional: true
         mapping:
           - scale: 10
-        unit: °
+        unit: C
         range:
           min: -150
           max: 150

+ 9 - 2
custom_components/tuya_local/devices/fourin1_motion_sensor.yaml

@@ -44,7 +44,6 @@ entities:
       - id: 111
         type: integer
         name: sensor
-        unit: °
         mapping:
           - scale: 10
         class: measurement
@@ -58,18 +57,26 @@ entities:
             value: F
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 105
         type: integer
         name: value
-        unit: °
         range:
           min: -30
           max: 30
         mapping:
           - scale: 10
             step: 5
+      - id: 109
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
   - entity: select
     translation_key: temperature_unit
     category: config

+ 4 - 2
custom_components/tuya_local/devices/garza_aspen_thermostat.yaml

@@ -74,13 +74,14 @@ entities:
         name: switch
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -60
           max: 60
@@ -265,6 +266,7 @@ entities:
         name: switch
   - entity: number
     name: Temperature hysteresis
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-plus"
     dps:
@@ -272,7 +274,7 @@ entities:
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: 5
           max: 30

+ 2 - 1
custom_components/tuya_local/devices/goldair_gpph900_heater.yaml

@@ -58,12 +58,13 @@ entities:
   - entity: number
     name: Eco offset
     icon: "mdi:leaf"
+    class: temperature_delta
     category: config
     dps:
       - id: 102
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 3
           max: 7

+ 7 - 4
custom_components/tuya_local/devices/heatstorm_dh100twi_heater.yaml

@@ -165,18 +165,18 @@ entities:
         name: switch
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 104
         type: integer
         optional: true
         name: value
-        unit: °
         range:
           min: -5
           max: 5
         mapping:
-          - constraint: temp_unit
+          - constraint: unit
             conditions:
               - dps_val: f
                 value_redirect: calib_f
@@ -190,8 +190,11 @@ entities:
         hidden: true
       - id: 13
         type: string
-        name: temp_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
   - entity: select
     name: Thermometer
     icon: "mdi:thermometer"

+ 2 - 1
custom_components/tuya_local/devices/herschel_selectxls_mirror.yaml

@@ -143,12 +143,13 @@ entities:
           - step: 100
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 106
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 9 - 1
custom_components/tuya_local/devices/herschel_t_mt_thermostat.yaml

@@ -113,17 +113,25 @@ entities:
 
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 106
         name: value
         type: integer
-        unit: °
         range:
           min: -90
           max: 90
         mapping:
           - scale: 10
+      - id: 104
+        type: string
+        optional: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
 
   - entity: switch
     name: Adaptive start

+ 2 - 1
custom_components/tuya_local/devices/hombli_thermostatic_radiator_valve.yaml

@@ -68,12 +68,13 @@ entities:
             value: fahrenheit
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         mapping:
           - scale: 10
             step: 5

+ 2 - 1
custom_components/tuya_local/devices/hrt_as90_climatealarm.yaml

@@ -182,12 +182,13 @@ entities:
         name: switch
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 23
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -80
           max: 80

+ 4 - 2
custom_components/tuya_local/devices/hysen_hy02tp_thermostat.yaml

@@ -143,25 +143,27 @@ entities:
             value: External
   - entity: number
     name: Room temperature compensation
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-check"
     dps:
       - id: 109
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
   - entity: number
     name: Temperature hysterisis
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-plus"
     dps:
       - id: 110
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 5
           max: 25

+ 2 - 1
custom_components/tuya_local/devices/hysen_hy08acf_thermostat.yaml

@@ -143,12 +143,13 @@ entities:
           - scale: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 102
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -90
           max: 90

+ 8 - 1
custom_components/tuya_local/devices/hysen_hy08we2_thermostat.yaml

@@ -143,17 +143,24 @@ entities:
         name: minimum
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 109
         type: integer
         name: value
-        unit: °
         range:
           min: -90
           max: 90
         mapping:
           - scale: 10
+      - id: 101
+        type: boolean
+        name: unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
   - entity: number
     name: Calibration swing internal
     category: config

+ 26 - 6
custom_components/tuya_local/devices/hysen_hy101rf_thermostat.yaml

@@ -68,10 +68,9 @@ entities:
         type: boolean
         name: temperature_unit
         mapping:
-          - dps_val: false
-            value: C
           - dps_val: true
             value: F
+          - value: C
       - id: 102
         type: boolean
         name: hvac_action
@@ -166,6 +165,7 @@ entities:
         name: switch
   - entity: number
     name: Room temperature compensation
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-check"
     dps:
@@ -178,22 +178,37 @@ entities:
           max: 180
         mapping:
           - scale: 10
+      - id: 101
+        type: boolean
+        name: unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
   - entity: number
     name: Room temperature zone
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-plus"
     dps:
       - id: 110
         type: integer
         name: value
-        unit: °
         range:
           min: 1
           max: 180
         mapping:
           - scale: 10
+      - id: 101
+        type: boolean
+        name: unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
   - entity: number
     name: External temperature zone
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-plus"
     hidden: unavailable
@@ -202,10 +217,16 @@ entities:
         type: integer
         optional: true
         name: value
-        unit: °
         range:
           min: 1
           max: 18
+      - id: 101
+        type: boolean
+        name: unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
       - id: 111
         type: integer
         optional: true
@@ -232,10 +253,9 @@ entities:
         type: boolean
         name: unit
         mapping:
-          - dps_val: false
-            value: C
           - dps_val: true
             value: F
+          - value: C
       - id: 112
         type: integer
         optional: true

+ 8 - 4
custom_components/tuya_local/devices/inkbird_ibbq4bw_thermometer.yaml

@@ -126,6 +126,7 @@ entities:
         class: measurement
   - entity: number
     name: Calibration probe 1
+    class: temperature_delta
     category: config
     icon: "mdi:format-vertical-align-center"
     dps:
@@ -139,10 +140,11 @@ entities:
           - scale: 10
       - id: 19
         type: string
-        name: temp_unit
+        name: unit
   - entity: number
     name: Calibration probe 2
     category: config
+    class: temperature_delta
     icon: "mdi:format-vertical-align-center"
     dps:
       - id: 117
@@ -155,9 +157,10 @@ entities:
           - scale: 10
       - id: 19
         type: string
-        name: temp_unit
+        name: unit
   - entity: number
     name: Calibration probe 3
+    class: temperature_delta
     category: config
     icon: "mdi:format-vertical-align-center"
     dps:
@@ -171,9 +174,10 @@ entities:
           - scale: 10
       - id: 19
         type: string
-        name: temp_unit
+        name: unit
   - entity: number
     name: Calibration probe 4
+    class: temperature_delta
     category: config
     icon: "mdi:format-vertical-align-center"
     dps:
@@ -187,4 +191,4 @@ entities:
           - scale: 10
       - id: 19
         type: string
-        name: temp_unit
+        name: unit

+ 18 - 4
custom_components/tuya_local/devices/inkbird_ipt2ch_thermostat.yaml

@@ -206,7 +206,7 @@ entities:
           max: 1220
         mapping:
           - scale: 10
-            constraint: temperature_unit
+            constraint: unit
             conditions:
               - dps_val: C
                 range:
@@ -238,7 +238,7 @@ entities:
           max: 1220
         mapping:
           - scale: 10
-            constraint: temperature_unit
+            constraint: unit
             conditions:
               - dps_val: C
                 range:
@@ -257,6 +257,7 @@ entities:
             value: C
   - entity: number
     name: Temperature calibration 1
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-check"
     dps:
@@ -264,12 +265,18 @@ entities:
         type: integer
         optional: true
         name: value
-        unit: "°"
         range:
           min: -99
           max: 99
         mapping:
           - scale: 10
+      - id: 101
+        type: string
+        optional: true
+        name: unit
+        mapping:
+          - dps_val: null
+            value: C
   - entity: number
     name: High temperature alarm 2
     category: config
@@ -316,6 +323,7 @@ entities:
             value: C
   - entity: number
     name: Temperature calibration 2
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer-check"
     dps:
@@ -323,12 +331,18 @@ entities:
         type: integer
         optional: true
         name: value
-        unit: "°"
         range:
           min: -99
           max: 99
         mapping:
           - scale: 10
+      - id: 101
+        type: string
+        optional: true
+        name: unit
+        mapping:
+          - dps_val: null
+            value: C
   - entity: sensor
     name: Probe 1 status
     class: enum

+ 3 - 4
custom_components/tuya_local/devices/inkbird_itc306a_thermostat.yaml

@@ -116,17 +116,17 @@ entities:
   - entity: number
     category: config
     translation_key: temperature_calibration
+    class: temperature_delta
     dps:
       - id: 102
         name: value
         type: integer
-        unit: °
         range:
           min: -99
           max: 99
         mapping:
           - scale: 10
-            constraint: temp_unit
+            constraint: unit
             conditions:
               - dps_val: F
                 range:
@@ -134,8 +134,7 @@ entities:
                   max: 150
       - id: 101
         type: string
-        name: temp_unit
-        hidden: true
+        name: unit
   - entity: number
     name: Continuous heat hours
     icon: "mdi:clock"

+ 3 - 4
custom_components/tuya_local/devices/inkbird_itc308_thermostat.yaml

@@ -85,17 +85,17 @@ entities:
   - entity: number
     category: config
     translation_key: temperature_calibration
+    class: temperature_delta
     dps:
       - id: 102
         name: value
         type: integer
-        unit: °
         range:
           min: -99
           max: 99
         mapping:
           - scale: 10
-            constraint: temp_unit
+            constraint: unit
             conditions:
               - dps_val: F
                 range:
@@ -103,8 +103,7 @@ entities:
                   max: 150
       - id: 101
         type: string
-        name: temp_unit
-        hidden: true
+        name: unit
   - entity: number
     name: Compressor delay
     icon: "mdi:clock"

+ 2 - 1
custom_components/tuya_local/devices/inkbird_ivc001w_fan.yaml

@@ -93,12 +93,13 @@ entities:
           max: 100
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 113
         name: value
         type: integer
-        unit: "°"
+        unit: C
         range:
           min: -100
           max: 100

+ 2 - 1
custom_components/tuya_local/devices/inkbird_sousvide_cooker.yaml

@@ -120,12 +120,13 @@ entities:
           max: 1000
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 110
         type: integer
         name: value
-        unit: °
+        unit: C
         optional: true
         range:
           min: -99

+ 2 - 1
custom_components/tuya_local/devices/kesser_infrared_wall_heater.yaml

@@ -42,12 +42,13 @@ entities:
         name: lock
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 102
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 4 - 2
custom_components/tuya_local/devices/kkmoon_thermostat.yaml

@@ -52,12 +52,13 @@ entities:
         name: schedule
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
@@ -114,12 +115,13 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 5

+ 8 - 1
custom_components/tuya_local/devices/konlen_snt957w_tempsensor.yaml

@@ -56,17 +56,24 @@ entities:
           - value: false
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 19
         type: integer
         name: value
-        unit: °
         range:
           min: -100
           max: 100
         mapping:
           - scale: 10
+      - id: 9
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
   - entity: select
     translation_key: temperature_unit
     category: config

+ 6 - 3
custom_components/tuya_local/devices/konlen_wf72tt_dualtempcontroller.yaml

@@ -179,11 +179,12 @@ entities:
 
   - entity: sensor
     name: Temperature difference
+    class: temperature_delta
     dps:
       - id: 115
         type: integer
         name: sensor
-        unit: °
+        unit: C
         class: measurement
         mapping:
           - scale: 10
@@ -191,12 +192,13 @@ entities:
   # ------------- Calibration offsets -------------
   - entity: number
     name: Channel 1 calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 113
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -150
           max: 150
@@ -205,12 +207,13 @@ entities:
 
   - entity: number
     name: Channel 2 calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 114
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -150
           max: 150

+ 3 - 1
custom_components/tuya_local/devices/ledlux_thermostat.yaml

@@ -98,6 +98,7 @@ entities:
         name: minimum
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 109
@@ -106,9 +107,10 @@ entities:
         range:
           min: -9
           max: 9
-        unit: °
+        unit: C
   - entity: number
     name: Calibration swing internal
+    class: temperature_delta
     category: config
     dps:
       - id: 110

+ 16 - 2
custom_components/tuya_local/devices/magnum_mrc_floorheating.yaml

@@ -192,32 +192,46 @@ entities:
   - entity: number
     translation_key: temperature_calibration
     name: Room calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 112
         type: integer
         name: value
-        unit: °
         range:
           min: -90
           max: 90
         mapping:
           - scale: 10
+      - id: 107
+        type: boolean
+        name: unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
   - entity: number
     name: Floor calibration
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 113
         type: integer
         optional: true
         name: value
-        unit: °
         range:
           min: -90
           max: 90
         mapping:
           - scale: 10
+      - id: 107
+        type: boolean
+        name: unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
   - entity: select
     name: Temperature hysteresis
     category: config

+ 15 - 9
custom_components/tuya_local/devices/me80_thermostat.yaml

@@ -156,10 +156,9 @@ entities:
         type: string
         name: unit
         mapping:
-          - dps_val: c
-            value: C
           - dps_val: f
             value: F
+          - value: C
       - id: 26
         type: integer
         name: value
@@ -188,17 +187,17 @@ entities:
             value: fahrenheit
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
         range:
           min: -9
           max: 9
         mapping:
-          - constraint: temperature_unit
+          - constraint: unit
             conditions:
               - dps_val: f
                 value_redirect: temp_calib_f
@@ -207,8 +206,11 @@ entities:
                   max: 16
       - id: 23
         type: string
-        name: temperature_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
       - id: 105
         type: integer
         name: temp_calib_f
@@ -288,6 +290,7 @@ entities:
         name: switch
   - entity: number
     name: Temperature difference start
+    class: temperature_delta
     category: config
     icon: "mdi:arrow-collapse-vertical"
     dps:
@@ -298,7 +301,7 @@ entities:
           min: 1
           max: 5
         mapping:
-          - constraint: temperature_unit
+          - constraint: unit
             conditions:
               - dps_val: f
                 value_redirect: temp_diff_start_f
@@ -315,8 +318,11 @@ entities:
           max: 9
       - id: 23
         type: string
-        name: temperature_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
   - entity: button
     translation_key: factory_reset
     category: config

+ 4 - 2
custom_components/tuya_local/devices/moes_trv601_thermostat.yaml

@@ -216,12 +216,13 @@ entities:
         name: value
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 101
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -100
           max: 100
@@ -290,12 +291,13 @@ entities:
   - entity: number
     name: Eco hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-minus"
     dps:
       - id: 115
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 5
           max: 50

+ 2 - 1
custom_components/tuya_local/devices/moes_trv_thermostat.yaml

@@ -183,13 +183,14 @@ entities:
         readonly: true
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 105
         type: integer
         name: value
         optional: true
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 4 - 2
custom_components/tuya_local/devices/moes_wht009_thermostat.yaml

@@ -97,13 +97,14 @@ entities:
             step: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9
@@ -145,13 +146,14 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 103
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: 1
           max: 5

+ 14 - 8
custom_components/tuya_local/devices/moes_whts01_thermostat.yaml

@@ -127,17 +127,17 @@ entities:
             value: fahrenheit
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
         range:
           min: -18
           max: 18
         mapping:
-          - constraint: temp_unit
+          - constraint: unit
             conditions:
               - dps_val: f
                 value_redirect: temp_correct_f
@@ -147,8 +147,11 @@ entities:
                   max: 9
       - id: 23
         type: string
-        name: temp_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
       - id: 110
         type: integer
         optional: true
@@ -271,18 +274,18 @@ entities:
             value: Daily
   - entity: number
     name: Temperature hysteresis
+    class: temperature_delta
     category: config
     icon: "mdi:thermometer"
     dps:
       - id: 106
         type: integer
         name: value
-        unit: °
         range:
           min: 1
           max: 30
         mapping:
-          - constraint: temp_unit
+          - constraint: unit
             conditions:
               - dps_val: f
                 value_redirect: temp_diff_f
@@ -305,8 +308,11 @@ entities:
           max: 6
       - id: 23
         type: string
-        name: temp_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
   - entity: number
     name: Eco temperature
     category: config

+ 15 - 8
custom_components/tuya_local/devices/mrc_magnum_floorheater.yaml

@@ -251,13 +251,12 @@ entities:
       - id: 112
         type: integer
         name: value
-        unit: °
         range:
           min: -90
           max: 90
         mapping:
           - scale: 10
-            constraint: temp_unit
+            constraint: unit
             conditions:
               - dps_val: false
                 range:
@@ -265,24 +264,28 @@ entities:
                   max: 50
       - id: 107
         type: boolean
-        name: temp_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: false
+            value: C
+          - dps_val: true
+            value: F
   - entity: number
     name: Floor temperature calibration
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-lines"
     dps:
       - id: 113
         type: integer
         name: value
         optional: true
-        unit: °
         range:
           min: -90
           max: 90
         mapping:
           - scale: 10
-            constraint: temp_unit
+            constraint: unit
             conditions:
               - dps_val: false
                 range:
@@ -290,8 +293,12 @@ entities:
                   max: 50
       - id: 107
         type: boolean
-        name: temp_unit
-        hidden: true
+        name: unit
+        mapping:
+          - dps_val: false
+            value: C
+          - dps_val: true
+            value: F
   - entity: select
     name: Temperature hysteresis
     icon: "mdi:arrow-collapse-horizontal"

+ 2 - 1
custom_components/tuya_local/devices/multi_leaf_dy_107_thermostat.yaml

@@ -56,12 +56,13 @@ entities:
             value: heating
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 2 - 1
custom_components/tuya_local/devices/myuet_me82_thermostat.yaml

@@ -104,13 +104,14 @@ entities:
           max: 200
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -9
           max: 9

+ 9 - 3
custom_components/tuya_local/devices/nashone_mts700wb_thermostat.yaml

@@ -48,10 +48,9 @@ entities:
         type: string
         name: temperature_unit
         mapping:
-          - dps_val: c
-            value: C
           - dps_val: f
             value: F
+          - value: C
       - id: 24
         type: integer
         name: current_temperature
@@ -66,15 +65,22 @@ entities:
         hidden: true
   - entity: number
     category: config
+    class: temperature_delta
     translation_key: temperature_calibration
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
         range:
           min: -5
           max: 5
+      - id: 23
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
   - entity: button
     translation_key: factory_reset
     category: config

+ 4 - 2
custom_components/tuya_local/devices/plikc_neve_thermostat.yaml

@@ -97,12 +97,13 @@ entities:
         hidden: true
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -30
           max: 30
@@ -213,13 +214,14 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:arrow-collapse-vertical"
     dps:
       - id: 104
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: 2
           max: 20

+ 2 - 1
custom_components/tuya_local/devices/pni_ct45_thermostat.yaml

@@ -269,13 +269,14 @@ entities:
           max: 35
   - entity: number
     name: Anti-freeze temperature
+    class: temperature
     category: config
     dps:
       - id: 27
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 400

+ 12 - 6
custom_components/tuya_local/devices/poolex_icespa70_heatpump.yaml

@@ -218,12 +218,13 @@ entities:
         name: switch
   - entity: number
     name: Inlet temperature compensation
+    class: temperature_delta
     category: config
     dps:
       - id: 102
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -400
           max: 0
@@ -281,12 +282,13 @@ entities:
   - entity: number
     name: Auxiliary heating hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:heating-coil"
     dps:
       - id: 106
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 100
           max: 500
@@ -362,12 +364,13 @@ entities:
   - entity: number
     name: Heating restart hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer"
     dps:
       - id: 111
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 1000
@@ -377,12 +380,13 @@ entities:
   - entity: number
     name: Heating stop hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer"
     dps:
       - id: 112
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 1000
@@ -392,12 +396,13 @@ entities:
   - entity: number
     name: Cooling restart hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer"
     dps:
       - id: 113
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 1000
@@ -407,12 +412,13 @@ entities:
   - entity: number
     name: Cooling stop hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer"
     dps:
       - id: 114
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 0
           max: 1000

+ 4 - 2
custom_components/tuya_local/devices/psmart_t436_thermostat.yaml

@@ -107,13 +107,14 @@ entities:
             step: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -4
           max: 4
@@ -155,13 +156,14 @@ entities:
   - entity: number
     name: Temperature hysteresis
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 103
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: 1
           max: 3

+ 3 - 3
custom_components/tuya_local/devices/pv28-cw_airquality_monitor.yaml

@@ -186,7 +186,7 @@ entities:
         mapping:
           - step: 1
   - entity: select
-    name: Unit displayed
+    translation_key: temperature_unit
     category: config
     dps:
       - id: 31
@@ -194,9 +194,9 @@ entities:
         name: option
         mapping:
           - dps_val: c
-            value: "°C"
+            value: celsius
           - dps_val: f
-            value: "°F"
+            value: fahrenheit
   - entity: sensor
     class: pm10
     dps:

+ 4 - 2
custom_components/tuya_local/devices/quad_temphumidity_switch.yaml

@@ -82,12 +82,13 @@ entities:
           max: 43200
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 18
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -90
           max: 90
@@ -318,12 +319,13 @@ entities:
   - entity: number
     name: Temperature sensitivity
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 120
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 1
           max: 10

+ 2 - 1
custom_components/tuya_local/devices/rectec_rt700_grill.yaml

@@ -55,12 +55,13 @@ entities:
           - step: 5
   - entity: number
     name: Temperature compensation
+    class: temperature_delta
     category: config
     dps:
       - id: 107
         type: integer
         name: value
-        unit: °
+        unit: F
         range:
           min: -127
           max: 128

+ 2 - 1
custom_components/tuya_local/devices/recteq_rt1250f_grill.yaml

@@ -56,11 +56,12 @@ entities:
         unit: F
   - entity: number
     name: Temperature compensation
+    class: temperature_delta
     dps:
       - id: 106
         type: integer
         name: value
-        unit: °
+        unit: F
         range:
           min: -127
           max: 128

+ 2 - 1
custom_components/tuya_local/devices/recteq_rtb380x_grill.yaml

@@ -49,12 +49,13 @@ entities:
         unit: F
   - entity: number
     name: Temperature compensation
+    class: temperature_delta
     category: config
     dps:
       - id: 105
         type: integer
         name: value
-        unit: °
+        unit: F
         range:
           min: -127
           max: 128

+ 2 - 1
custom_components/tuya_local/devices/rtitek_t5z_thermostat.yaml

@@ -70,13 +70,14 @@ entities:
         class: measurement
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 109
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -99
           max: 99

+ 2 - 1
custom_components/tuya_local/devices/rumba_bathroom_heater.yaml

@@ -44,12 +44,13 @@ entities:
         optional: true
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 2 - 1
custom_components/tuya_local/devices/snt957w_de_cbu_temp_humidity.yaml

@@ -124,12 +124,13 @@ entities:
             value: Not set
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 23
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -100
           max: 100

+ 2 - 1
custom_components/tuya_local/devices/snt957w_tde_temp.yaml

@@ -72,12 +72,13 @@ entities:
             value: Not set
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 23
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -100
           max: 100

+ 2 - 1
custom_components/tuya_local/devices/solaire_vitra_smart_heater_s2.yaml

@@ -48,12 +48,13 @@ entities:
             value: away
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 103
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -15
           max: 15

+ 2 - 1
custom_components/tuya_local/devices/sonninkonig_eco_elegance_heater.yaml

@@ -109,12 +109,13 @@ entities:
         name: switch
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 102
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 8 - 1
custom_components/tuya_local/devices/steinbach_silent_mini_heatpump.yaml

@@ -173,6 +173,7 @@ entities:
           - value: C
   - entity: sensor
     name: Target setpoint
+    class: temperature_delta
     category: diagnostic
     hidden: true
     dps:
@@ -180,6 +181,12 @@ entities:
         type: integer
         optional: true
         name: sensor
-        unit: "°"
         mapping:
           - scale: 10
+      - id: 13
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C

+ 2 - 1
custom_components/tuya_local/devices/swimfun_inverboost_poolheatpump.yaml

@@ -198,12 +198,13 @@ entities:
         class: measurement
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 102
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -99
           max: 99

+ 9 - 3
custom_components/tuya_local/devices/t5e_wf_thermostat.yaml

@@ -246,10 +246,9 @@ entities:
         type: string
         name: unit
         mapping:
-          - dps_val: c
-            value: C
           - dps_val: f
             value: F
+          - value: C
   - entity: select
     translation_key: temperature_unit
     category: config
@@ -310,15 +309,22 @@ entities:
             value: true
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
         range:
           min: -10
           max: 10
+      - id: 43
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
   - entity: select
     name: Schedule
     category: config

+ 2 - 1
custom_components/tuya_local/devices/tellur_thermostat.yaml

@@ -49,12 +49,13 @@ entities:
           - scale: 10
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         mapping:
           - scale: 10
             step: 5

+ 2 - 1
custom_components/tuya_local/devices/th05_temp_humidity_sensor.yaml

@@ -48,13 +48,14 @@ entities:
   - entity: number
     translation_key: temperature_calibration
     category: config
+    class: temperature_delta
     hidden: true
     dps:
       - id: 23
         type: integer
         optional: true
         name: value
-        unit: °
+        unit: C
         range:
           min: -20
           max: 20

+ 2 - 1
custom_components/tuya_local/devices/th05z_temphumidity.yaml

@@ -153,12 +153,13 @@ entities:
   - entity: number
     name: Temperature sensitivity
     category: config
+    class: temperature_delta
     icon: "mdi:thermometer-plus"
     dps:
       - id: 19
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: 3
           max: 10

+ 2 - 1
custom_components/tuya_local/devices/thb2_temperature_and_humidity_sensor.yaml

@@ -123,12 +123,13 @@ entities:
             value: normal
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 23
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -20
           max: 20

+ 9 - 3
custom_components/tuya_local/devices/tyte_d1_thermostat.yaml

@@ -51,10 +51,9 @@ entities:
         type: string
         name: temperature_unit
         mapping:
-          - dps_val: c
-            value: C
           - dps_val: f
             value: F
+          - value: C
       - id: 21
         type: integer
         name: temp_set_f
@@ -205,15 +204,22 @@ entities:
             step: 5
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 30
         type: integer
         name: value
-        unit: °
         range:
           min: -9
           max: 9
+      - id: 20
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
   - entity: binary_sensor
     class: problem
     category: diagnostic

+ 2 - 1
custom_components/tuya_local/devices/warmehaus_afd02tj_thermostat_c.yaml

@@ -90,12 +90,13 @@ entities:
         type: boolean
   - entity: number
     translation_key: temperature_calibration
+    class: temperature_delta
     category: config
     dps:
       - id: 27
         type: integer
         name: value
-        unit: °
+        unit: C
         range:
           min: -5
           max: 5

+ 1 - 1
hacs.json

@@ -1,5 +1,5 @@
 {
     "name": "Tuya Local",
-    "homeassistant": "2025.1.0",
+    "homeassistant": "2025.11.0",
     "hacs": "2.0.0"
 }