Browse Source

CI: add yamllint to check yaml files for potential errors

Clean up existing yaml files. A lot of whitespace inconsistencies
which mostly have no effect, a few indentation problems that might
have prevented mappings from working, many truthy values other than
true and false, some needing quoting as they were intended to be
strings. Also some blank entries for attributes that were filled in or
removed completely.

Too many changes to list the ones that might have had an impact.
Jason Rumney 2 years ago
parent
commit
e907c5207e
100 changed files with 281 additions and 432 deletions
  1. 5 3
      .github/workflows/linting.yml
  2. 6 0
      .yamllint
  3. 2 2
      custom_components/tuya_local/devices/AlecoAir_D25_Traditio.yaml
  4. 0 1
      custom_components/tuya_local/devices/advancedfires_1500_fireplace.yaml
  5. 6 6
      custom_components/tuya_local/devices/akai_dryer.yaml
  6. 6 6
      custom_components/tuya_local/devices/alecoair_d14_dehumidifier.yaml
  7. 0 1
      custom_components/tuya_local/devices/arlec_12speed_tower_fan.yaml
  8. 1 7
      custom_components/tuya_local/devices/asc_wifi_circuit_breaker.yaml
  9. 4 8
      custom_components/tuya_local/devices/asip_0622_planter.yaml
  10. 2 4
      custom_components/tuya_local/devices/atomi_ceiling_fan.yaml
  11. 0 2
      custom_components/tuya_local/devices/atomi_ceramic_heater.yaml
  12. 21 21
      custom_components/tuya_local/devices/atomi_string_lights.yaml
  13. 1 1
      custom_components/tuya_local/devices/atorch_at2pl_breaker.yaml
  14. 0 1
      custom_components/tuya_local/devices/avatto_curtain_light.yaml
  15. 5 5
      custom_components/tuya_local/devices/avatto_wt100_thermostat.yaml
  16. 2 4
      custom_components/tuya_local/devices/bcom_intercom_camera.yaml
  17. 1 1
      custom_components/tuya_local/devices/beca_bac002_thermostat_c.yaml
  18. 1 1
      custom_components/tuya_local/devices/beca_bht002_thermostat_c.yaml
  19. 1 1
      custom_components/tuya_local/devices/beca_bht6000_thermostat_c.yaml
  20. 1 1
      custom_components/tuya_local/devices/becool_heatpump.yaml
  21. 8 8
      custom_components/tuya_local/devices/benexmart_blind_motor.yaml
  22. 5 5
      custom_components/tuya_local/devices/beok_tgm50_thermostat.yaml
  23. 2 3
      custom_components/tuya_local/devices/beok_tgr81_thermostat_c.yaml
  24. 5 5
      custom_components/tuya_local/devices/beok_tol47_thermostat.yaml
  25. 3 3
      custom_components/tuya_local/devices/beok_tr8b_thermostat.yaml
  26. 4 4
      custom_components/tuya_local/devices/beok_tr9b_thermostat.yaml
  27. 0 6
      custom_components/tuya_local/devices/bht002_galw_thermostat.yaml
  28. 0 1
      custom_components/tuya_local/devices/ble_hct611_watertimer.yaml
  29. 1 2
      custom_components/tuya_local/devices/ble_hu06_lock.yaml
  30. 0 5
      custom_components/tuya_local/devices/ble_pt216_temp_humidity.yaml
  31. 0 1
      custom_components/tuya_local/devices/ble_solar_light.yaml
  32. 2 1
      custom_components/tuya_local/devices/blitzwolf_bw_lt31.yaml
  33. 0 9
      custom_components/tuya_local/devices/blitzwolf_bwis6_alarm.yaml
  34. 3 3
      custom_components/tuya_local/devices/blitzwolf_bwsh2_humidifier.yaml
  35. 9 11
      custom_components/tuya_local/devices/blitzwolf_bwsh5_humidifier.yaml
  36. 0 6
      custom_components/tuya_local/devices/blitzwolf_bwshp6_smartplug.yaml
  37. 4 6
      custom_components/tuya_local/devices/brade_mc6_thermostat.yaml
  38. 2 2
      custom_components/tuya_local/devices/breville_easyair_purifier.yaml
  39. 1 1
      custom_components/tuya_local/devices/breville_smart_air_viral_protect_plus.yaml
  40. 0 4
      custom_components/tuya_local/devices/brilliant_double_switch.yaml
  41. 1 5
      custom_components/tuya_local/devices/brilliant_quad_switch.yaml
  42. 0 4
      custom_components/tuya_local/devices/brilliant_single_switch.yaml
  43. 0 4
      custom_components/tuya_local/devices/brilliant_triple_switch.yaml
  44. 0 1
      custom_components/tuya_local/devices/bstuokey_access_keypad.yaml
  45. 5 4
      custom_components/tuya_local/devices/cadence_aroma_diffuser.yaml
  46. 8 8
      custom_components/tuya_local/devices/caldo_up_t_wifi.yaml
  47. 6 6
      custom_components/tuya_local/devices/carro_pn04f02d_fan_light.yaml
  48. 3 2
      custom_components/tuya_local/devices/carson_cb.yaml
  49. 2 2
      custom_components/tuya_local/devices/casafan_ceiling_fan_light.yaml
  50. 8 6
      custom_components/tuya_local/devices/catit_pixi_6meal_feeder.yaml
  51. 2 2
      custom_components/tuya_local/devices/catit_pixi_smart_feeder.yaml
  52. 1 1
      custom_components/tuya_local/devices/catit_pixi_smart_fountain.yaml
  53. 1 2
      custom_components/tuya_local/devices/ccb11_blind_controller.yaml
  54. 0 1
      custom_components/tuya_local/devices/cct_lightbulb.yaml
  55. 42 32
      custom_components/tuya_local/devices/cecotec_fan_light.yaml
  56. 0 9
      custom_components/tuya_local/devices/ceres_plus_petfeeder.yaml
  57. 0 3
      custom_components/tuya_local/devices/chanfok_fan_light.yaml
  58. 0 2
      custom_components/tuya_local/devices/cnc_ycb9zf_breaker.yaml
  59. 0 1
      custom_components/tuya_local/devices/compteur_energy_meter.yaml
  60. 5 6
      custom_components/tuya_local/devices/cooper_hunter_air_conditioner.yaml
  61. 0 1
      custom_components/tuya_local/devices/daizuki_heatpump.yaml
  62. 1 1
      custom_components/tuya_local/devices/dcenta_dual_meter.yaml
  63. 2 4
      custom_components/tuya_local/devices/ditua_dt1522yn_aromadiffuser.yaml
  64. 1 1
      custom_components/tuya_local/devices/djive_arc_fan.yaml
  65. 4 3
      custom_components/tuya_local/devices/dongguan_garage_door_opener.yaml
  66. 0 1
      custom_components/tuya_local/devices/dooya_curtain.yaml
  67. 3 4
      custom_components/tuya_local/devices/dts238_7_energy_meter.yaml
  68. 1 2
      custom_components/tuya_local/devices/duux_whisper_fan.yaml
  69. 2 23
      custom_components/tuya_local/devices/earu_smart_wifi_circuit_breaker_with_energy_monitor.yaml
  70. 6 29
      custom_components/tuya_local/devices/ebac_dj4000_dehumidifier.yaml
  71. 3 3
      custom_components/tuya_local/devices/eberg_qubo_q40hd_heatpump.yaml
  72. 0 2
      custom_components/tuya_local/devices/ecostrad_iqceramic_radiator.yaml
  73. 1 1
      custom_components/tuya_local/devices/eeese_carl_dehumidifier.yaml
  74. 6 6
      custom_components/tuya_local/devices/eesee_adam_dehumidifier.yaml
  75. 5 5
      custom_components/tuya_local/devices/electriq_airflex15w_heatpump.yaml
  76. 1 1
      custom_components/tuya_local/devices/electriq_cd25pro_dehumidifier.yaml
  77. 1 4
      custom_components/tuya_local/devices/electriq_pd45e_dehumidifier.yaml
  78. 3 3
      custom_components/tuya_local/devices/em3378_weather_station.yaml
  79. 7 7
      custom_components/tuya_local/devices/es01_powerstrip.yaml
  80. 0 3
      custom_components/tuya_local/devices/etersky_aroma_diffuser.yaml
  81. 1 1
      custom_components/tuya_local/devices/etop_ch7100_thermostat.yaml
  82. 3 3
      custom_components/tuya_local/devices/etop_fcu_thermostat.yaml
  83. 0 2
      custom_components/tuya_local/devices/eurom_601_heater.yaml
  84. 1 1
      custom_components/tuya_local/devices/evotherm_eti_heatpump.yaml
  85. 2 3
      custom_components/tuya_local/devices/evsun_evcharger.yaml
  86. 2 3
      custom_components/tuya_local/devices/feit_dimmer.yaml
  87. 1 1
      custom_components/tuya_local/devices/ferroli_titano_twin.yaml
  88. 1 2
      custom_components/tuya_local/devices/feyree_ev_charger.yaml
  89. 15 14
      custom_components/tuya_local/devices/fisher_summer_air_conditioner.yaml
  90. 1 2
      custom_components/tuya_local/devices/fs_03w_curtain.yaml
  91. 3 1
      custom_components/tuya_local/devices/ge_jasco_ultra_pro_toggle_dimmer_v2.yaml
  92. 1 1
      custom_components/tuya_local/devices/goldair_dehumidifier.yaml
  93. 0 4
      custom_components/tuya_local/devices/goldair_gpdh340_dehumidifier.yaml
  94. 4 5
      custom_components/tuya_local/devices/gosund_usb_triple_powerstrip.yaml
  95. 0 16
      custom_components/tuya_local/devices/gratkit_filament_dryer.yaml
  96. 0 1
      custom_components/tuya_local/devices/greenwind_dehumidifier.yaml
  97. 1 1
      custom_components/tuya_local/devices/haier_nayun_gasalarm.yaml
  98. 0 2
      custom_components/tuya_local/devices/hdmi_sync_light.yaml
  99. 0 1
      custom_components/tuya_local/devices/heatstorm_hs6000gc_heater.yaml
  100. 0 1
      custom_components/tuya_local/devices/himox_h05_purifier.yaml

+ 5 - 3
.github/workflows/linting.yml

@@ -17,9 +17,11 @@ jobs:
         run: |
           python -m pip install --upgrade pip
           pip install -r requirements-dev.txt
-      - name: Lint check
+      - name: Python lint
         run: ruff check custom_components/tuya_local
-      - name: Check include order
+      - name: Python include order
         run: ruff check --select I --diff .
-      - name: Check coding style
+      - name: Python coding style
         run: ruff format --check --diff .
+      - name: YAML lint
+        run: yamllint -f parsable custom_components/tuya-local/devices

+ 6 - 0
.yamllint

@@ -0,0 +1,6 @@
+---
+
+extends: default
+rules:
+  document-start: disable
+  new-lines: disable

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

@@ -1,7 +1,7 @@
 name: Dehumidifier
 products:
-    - id: bf1872f920fbb07813iiwn
-      name: AlecoAir D25
+  - id: bf1872f920fbb07813iiwn
+    name: AlecoAir D25
 primary_entity:
   entity: humidifier
   class: dehumidifier

+ 0 - 1
custom_components/tuya_local/devices/advancedfires_1500_fireplace.yaml

@@ -244,4 +244,3 @@ secondary_entities:
       - id: 113
         name: color_disabled
         type: boolean
-

+ 6 - 6
custom_components/tuya_local/devices/akai_dryer.yaml

@@ -8,7 +8,7 @@ primary_entity:
   icon: "mdi:tumble-dryer"
   dps:
     - id: 107
-      name: sensor # state
+      name: sensor
       type: string
       mapping:
         - dps_val: "off"
@@ -34,14 +34,14 @@ secondary_entities:
     icon: "mdi:play"
     dps:
       - id: 105
-        name: button # start
+        name: button
         type: boolean
   - entity: button
     name: Pause
     icon: "mdi:pause"
     dps:
       - id: 105
-        name: button # start
+        name: button
         type: boolean
         mapping:
           - dps_val: false
@@ -51,7 +51,7 @@ secondary_entities:
     icon: "mdi:tumble-dryer"
     dps:
       - id: 5
-        name: option # drying_mode
+        name: option
         type: string
         mapping:
           - dps_val: "OFF"
@@ -91,7 +91,7 @@ secondary_entities:
     icon: "mdi:signal"
     dps:
       - id: 101
-        name: option # drying_level
+        name: option
         type: integer
         mapping:
           - dps_val: 0
@@ -128,6 +128,6 @@ secondary_entities:
     class: duration
     dps:
       - id: 4
-        name: sensor # drying_time_left
+        name: sensor
         type: integer
         unit: min

+ 6 - 6
custom_components/tuya_local/devices/alecoair_d14_dehumidifier.yaml

@@ -7,12 +7,12 @@ primary_entity:
       name: switch
       type: boolean
       mapping:
-      - dps_val: false
-        icon: "mdi:air-humidifier-off"
-        icon_priority: 1
-      - dps_val: true
-        icon: "mdi:air-humidifier"
-        icon_priority: 4
+        - dps_val: false
+          icon: "mdi:air-humidifier-off"
+          icon_priority: 1
+        - dps_val: true
+          icon: "mdi:air-humidifier"
+          icon_priority: 4
     - id: 2
       name: humidity
       type: integer

+ 0 - 1
custom_components/tuya_local/devices/arlec_12speed_tower_fan.yaml

@@ -149,4 +149,3 @@ secondary_entities:
       - id: 9
         type: boolean
         name: switch
-

+ 1 - 7
custom_components/tuya_local/devices/asc_wifi_circuit_breaker.yaml

@@ -6,7 +6,7 @@ primary_entity:
   dps:
     - id: 1
       name: switch
-      type: boolean     
+      type: boolean
 secondary_entities:
   - entity: number
     name: Countdown
@@ -56,9 +56,3 @@ secondary_entities:
         optional: true
         mapping:
           - scale: 10
-
-        
-
-
-            
-

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

@@ -1,7 +1,7 @@
 name: Planter
 products:
-  - id: 
-    name: ASIP-0622 indoor planter
+#  - id:
+#    name: ASIP-0622 indoor planter
 primary_entity:
   entity: switch
   icon: "mdi:sprout"
@@ -39,7 +39,6 @@ secondary_entities:
         name: limits
         # format: min,max
   - entity: sensor
-    name: 
     class: humidity
     dps:
       - id: 7
@@ -111,7 +110,7 @@ secondary_entities:
         type: integer
         name: option
         mapping:
-          - dps_val: -1 
+          - dps_val: -1
             value: Not planted
           - dps_val: 0
             value: Holy maiden fruit
@@ -336,7 +335,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: "0" 
+          - dps_val: "0"
             value: Auto
           - dps_val: "1"
             value: Manual
@@ -346,6 +345,3 @@ secondary_entities:
       - id: 123
         type: boolean
         name: switch
-
-
-            

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

@@ -37,7 +37,8 @@ secondary_entities:
         name: switch
       - id: 21
         # docs give the standard white, colour, scene, music values, but this
-        # device does not have color or scene dps, so just leave it for monitoring
+        # device does not have color or scene dps, so just leave it for
+        # monitoring
         name: work_mode
         type: string
       - id: 22
@@ -80,6 +81,3 @@ secondary_entities:
       - id: 34
         type: boolean
         name: switch
-
-
-

+ 0 - 2
custom_components/tuya_local/devices/atomi_ceramic_heater.yaml

@@ -112,5 +112,3 @@ secondary_entities:
       - id: 103
         type: boolean
         name: sensor
-
-

+ 21 - 21
custom_components/tuya_local/devices/atomi_string_lights.yaml

@@ -51,27 +51,27 @@ primary_entity:
       name: rgbhsv
       type: hex
       format:
-          - name: r
-            bytes: 1
-          - name: g
-            bytes: 1
-          - name: b
-            bytes: 1
-          - name: h
-            bytes: 2
-            range:
-              min: 0
-              max: 360
-          - name: s
-            bytes: 1
-            range:
-              min: 0
-              max: 255
-          - name: v
-            bytes: 1
-            range:
-              min: 0
-              max: 255
+        - name: r
+          bytes: 1
+        - name: g
+          bytes: 1
+        - name: b
+          bytes: 1
+        - name: h
+          bytes: 2
+          range:
+            min: 0
+            max: 360
+        - name: s
+          bytes: 1
+          range:
+            min: 0
+            max: 255
+        - name: v
+          bytes: 1
+          range:
+            min: 0
+            max: 255
     - id: 101
       name: scene_data
       type: hex

+ 1 - 1
custom_components/tuya_local/devices/atorch_at2pl_breaker.yaml

@@ -68,7 +68,7 @@ secondary_entities:
     dps:
       - id: 101
         type: integer
-        name: value 
+        name: value
         range:
           min: 0
           max: 99999

+ 0 - 1
custom_components/tuya_local/devices/avatto_curtain_light.yaml

@@ -77,4 +77,3 @@ secondary_entities:
         range:
           min: 10
           max: 120
-

+ 5 - 5
custom_components/tuya_local/devices/avatto_wt100_thermostat.yaml

@@ -86,7 +86,7 @@ secondary_entities:
             icon: "mdi:hand-back-right-off"
           - dps_val: false
             icon: "mdi:hand-back-right"
-  - entity: switch 
+  - entity: switch
     name: Sound
     category: config
     icon: "mdi:music-note"
@@ -104,8 +104,8 @@ secondary_entities:
         name: sensor
         mapping:
           - dps_val: 0
-            value: False
-          - value: True
+            value: false
+          - value: true
   - entity: number
     name: Temperature calibration
     category: config
@@ -195,14 +195,14 @@ secondary_entities:
         mapping:
           - dps_val: "1"
             value: "Weekday+Weekend"
-          - dps_val: "2" 
+          - dps_val: "2"
             value: "Mon-Sat+Sun"
           - dps_val: "3"
             value: "Daily"
   - entity: switch
     name: Output reverse
     category: config
-    icon: "mdi:swap-horizontal"   
+    icon: "mdi:swap-horizontal"
     dps:
       - id: 101
         type: boolean

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

@@ -121,7 +121,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: "1" 
+          - dps_val: "1"
             value: Event
           - dps_val: "2"
             value: Continuous
@@ -139,6 +139,4 @@ secondary_entities:
     dps:
       - id: 231
         type: string
-        name: sensor          
-
-
+        name: sensor

+ 1 - 1
custom_components/tuya_local/devices/beca_bac002_thermostat_c.yaml

@@ -36,7 +36,7 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: true
-          value: eco 
+          value: eco
         - dps_val: false
           value: comfort
     - id: 102

+ 1 - 1
custom_components/tuya_local/devices/beca_bht002_thermostat_c.yaml

@@ -37,7 +37,7 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: true
-          value: eco 
+          value: eco
         - dps_val: false
           value: comfort
     - id: 102

+ 1 - 1
custom_components/tuya_local/devices/beca_bht6000_thermostat_c.yaml

@@ -40,7 +40,7 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: true
-          value: eco 
+          value: eco
         - dps_val: false
           value: comfort
     - id: 102

+ 1 - 1
custom_components/tuya_local/devices/becool_heatpump.yaml

@@ -28,7 +28,7 @@ primary_entity:
     - id: 5
       type: string
       name: mode
-# unhide for debugging      hidden: true
+      hidden: true
     - id: 6
       type: integer
       name: temperature

+ 8 - 8
custom_components/tuya_local/devices/benexmart_blind_motor.yaml

@@ -30,11 +30,11 @@ primary_entity:
       mapping:
         - invert: true
 secondary_entities:
-    - entity: switch
-      category: config
-      name: Reversed
-      icon: "mdi:arrow-u-down-left"
-      dps:
-        - id: 5
-          type: boolean
-          name: switch
+  - entity: switch
+    category: config
+    name: Reversed
+    icon: "mdi:arrow-u-down-left"
+    dps:
+      - id: 5
+        type: boolean
+        name: switch

+ 5 - 5
custom_components/tuya_local/devices/beok_tgm50_thermostat.yaml

@@ -71,7 +71,7 @@ primary_entity:
       type: bitfield
     - id: 15
       name: max_temperature
-      type: integer      
+      type: integer
 secondary_entities:
   - entity: lock
     name: Child lock
@@ -197,14 +197,14 @@ secondary_entities:
         mapping:
           - dps_val: "1"
             value: "Weekday+Weekend"
-          - dps_val: "2" 
+          - dps_val: "2"
             value: "Mon-Sat+Sun"
           - dps_val: "3"
-            value: "Daily"          
+            value: "Daily"
   - entity: switch
     name: Invert output
     category: config
-    icon: "mdi:swap-horizontal"   
+    icon: "mdi:swap-horizontal"
     dps:
       - id: 108
         type: boolean
@@ -224,7 +224,7 @@ secondary_entities:
             value: External
           - dps_val: "3"
             value: Both
-  - entity: switch 
+  - entity: switch
     name: Sound
     category: config
     icon: "mdi:music-note"

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

@@ -67,7 +67,6 @@ primary_entity:
     - id: 45
       name: fault_code
       type: bitfield
-      
 secondary_entities:
   - entity: number
     name: Calibration offset
@@ -131,8 +130,8 @@ secondary_entities:
         optional: true
         mapping:
           - dps_val: 0
-            value: False
-          - value: True
+            value: false
+          - value: true
   - entity: number
     name: High temperature limit
     category: config

+ 5 - 5
custom_components/tuya_local/devices/beok_tol47_thermostat.yaml

@@ -75,7 +75,7 @@ secondary_entities:
             icon: "mdi:hand-back-right-off"
           - dps_val: false
             icon: "mdi:hand-back-right"
-  - entity: switch 
+  - entity: switch
     name: Sound
     category: config
     icon: "mdi:music-note"
@@ -93,8 +93,8 @@ secondary_entities:
         name: sensor
         mapping:
           - dps_val: 0
-            value: False
-          - value: True
+            value: false
+          - value: true
   - entity: number
     name: Calibration offset
     category: config
@@ -176,14 +176,14 @@ secondary_entities:
         mapping:
           - dps_val: "1"
             value: "Weekday+Weekend"
-          - dps_val: "2" 
+          - dps_val: "2"
             value: "Mon-Sat+Sun"
           - dps_val: "3"
             value: "Daily"
   - entity: switch
     name: Output main reverse
     category: config
-    icon: "mdi:swap-horizontal"   
+    icon: "mdi:swap-horizontal"
     dps:
       - id: 101
         type: boolean

+ 3 - 3
custom_components/tuya_local/devices/beok_tr8b_thermostat.yaml

@@ -91,9 +91,9 @@ primary_entity:
         - dps_val: open
           constraint: preset_mode
           conditions:
-            - dps_val: [ cool, floor ]
+            - dps_val: [cool, floor]
               value: cooling
-            - dps_val: [ heat, floor_heat ]
+            - dps_val: [heat, floor_heat]
               value: heating
             - value: idle
         - dps_val: close
@@ -141,7 +141,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: c 
+          - dps_val: c
             value: Celsius
           - dps_val: f
             value: Fahrenheit

+ 4 - 4
custom_components/tuya_local/devices/beok_tr9b_thermostat.yaml

@@ -111,9 +111,9 @@ secondary_entities:
         name: sensor
         mapping:
           - dps_val: open
-            value: True
+            value: true
           - dps_val: close
-            value: False
+            value: false
   - entity: lock
     name: "Child lock"
     category: config
@@ -136,8 +136,8 @@ secondary_entities:
         name: sensor
         mapping:
           - dps_val: 0
-            value: False
-          - value: True
+            value: false
+          - value: true
   - entity: number
     name: High temperature limit
     category: config

+ 0 - 6
custom_components/tuya_local/devices/bht002_galw_thermostat.yaml

@@ -136,9 +136,3 @@ secondary_entities:
         range:
           min: -9
           max: 9
-
-
-
-
-
-

+ 0 - 1
custom_components/tuya_local/devices/ble_hct611_watertimer.yaml

@@ -130,4 +130,3 @@ secondary_entities:
       - id: 14
         type: boolean
         name: switch
-        

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

@@ -129,7 +129,7 @@ secondary_entities:
     class: safety
     category: diagnostic
     dps:
-      - id: 22 
+      - id: 22
         type: boolean
         name: sensor
         optional: true
@@ -243,4 +243,3 @@ secondary_entities:
       - id: 107
         type: boolean
         name: sensor
-

+ 0 - 5
custom_components/tuya_local/devices/ble_pt216_temp_humidity.yaml

@@ -69,8 +69,3 @@ secondary_entities:
         range:
           min: 3
           max: 10
-
-
-
-
-

+ 0 - 1
custom_components/tuya_local/devices/ble_solar_light.yaml

@@ -241,4 +241,3 @@ secondary_entities:
             value: 50
           - dps_val: high
             value: 80
-            

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

@@ -115,7 +115,8 @@ secondary_entities:
           - dps_val: "023264000003e803e8"
             value: "Flash"
             # color+ R, speed 50, bright 100
-          - dps_val: "033264000003e803e8007803e803e800f003e803e8003b03e803e8013603e803e8010e03e803e8"
+          - dps_val: "033264000003e803e8007803e803e800f003e80\
+              3e8003b03e803e8013603e803e8010e03e803e8"
             value: "Jump"
             # color+ R+G+B+Y+C+P, speed 50, bright 100
           - dps_val: "043264000003e803e8007803e803e800f003e803e8"

+ 0 - 9
custom_components/tuya_local/devices/blitzwolf_bwis6_alarm.yaml

@@ -190,12 +190,3 @@ secondary_entities:
       - id: 34
         type: boolean
         name: button
-
-
-
-
-
-
-
-
-

+ 3 - 3
custom_components/tuya_local/devices/blitzwolf_bwsh2_humidifier.yaml

@@ -1,6 +1,6 @@
-# sample DPS {'1': False, '3': 'grade1', '6': 'close', 19: 'cancel'} 
+# sample DPS {'1': False, '3': 'grade1', '6': 'close', 19: 'cancel'}
 name: BlitzWolf BWSH2 humidifier
-products: 
+products:
   - id: 20268362d8bfc0080ec9
 primary_entity:
   entity: fan
@@ -64,7 +64,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: cancel 
+          - dps_val: cancel
             value: "Off"
           - dps_val: "2h"
             value: "2 hours"

+ 9 - 11
custom_components/tuya_local/devices/blitzwolf_bwsh5_humidifier.yaml

@@ -1,5 +1,5 @@
 name: Humidifier
-products: 
+products:
   - id: lqzme7o0kzhumdxr
     name: BlitzWolf BWSH5
 primary_entity:
@@ -7,7 +7,7 @@ primary_entity:
   class: humidifier
   dps:
     - id: 1
-      name: switch   
+      name: switch
       type: boolean
     - id: 4
       name: mode
@@ -27,7 +27,7 @@ primary_entity:
           value: boost
         - dps_val: manual
           value: normal
-    - id: 13             
+    - id: 13
       name: humidity
       type: integer
       optional: true
@@ -52,7 +52,6 @@ secondary_entities:
       - id: 21
         name: switch
         type: boolean
-        #optional: true
   - entity: switch
     name: Warm mist
     icon: "mdi:fire"
@@ -91,8 +90,8 @@ secondary_entities:
       - id: 1
         name: switch
         type: boolean
-      - id: 23  
-        name: speed 
+      - id: 23
+        name: speed
         type: string
         optional: true
         mapping:
@@ -104,11 +103,11 @@ secondary_entities:
             value: 45
           - dps_val: "level_4"
             value: 55
-          - dps_val: "level_5"    
+          - dps_val: "level_5"
             value: 70
           - dps_val: "level_6"
             value: 85
-          - dps_val: "level_7" 
+          - dps_val: "level_7"
             value: 100
   - entity: sensor
     class: temperature
@@ -129,7 +128,7 @@ secondary_entities:
     category: config
     dps:
       - id: 19
-        name: option  
+        name: option
         type: string
         optional: true
         mapping:
@@ -164,7 +163,6 @@ secondary_entities:
         type: integer
         optional: true
   - entity: select
-    # note: this is used only for device display. To adjust temperature sensor unit change it in entity settings
     name: Display temperature unit
     category: config
     dps:
@@ -177,7 +175,7 @@ secondary_entities:
             value: Celsius
             icon: "mdi:temperature-celsius"
           - dps_val: f
-            value: Fahrenheit  
+            value: Fahrenheit
             icon: "mdi:temperature-fahrenheit"
   - entity: binary_sensor
     name: Low water

+ 0 - 6
custom_components/tuya_local/devices/blitzwolf_bwshp6_smartplug.yaml

@@ -131,9 +131,3 @@ secondary_entities:
       - id: 40
         type: boolean
         name: lock
-
-        
-
-
-            
-

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

@@ -138,7 +138,7 @@ secondary_entities:
     category: config
     icon: "mdi:thermometer-chevron-up"
     dps:
-      - id: 19 
+      - id: 19
         type: integer
         name: value
         range:
@@ -175,7 +175,7 @@ secondary_entities:
     category: config
     icon: "mdi:thermometer-chevron-down"
     dps:
-      - id: 26 
+      - id: 26
         type: integer
         name: value
         range:
@@ -216,7 +216,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: c 
+          - dps_val: c
             value: Celsius
           - dps_val: f
             value: Fahrenheit
@@ -262,7 +262,7 @@ secondary_entities:
     icon: "mdi:arrow-collapse-vertical"
     category: config
     dps:
-      - id: 103 
+      - id: 103
         type: string
         name: option
         mapping:
@@ -274,5 +274,3 @@ secondary_entities:
             value: "2"
           - dps_val: "3"
             value: "3"
-            
-

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

@@ -60,9 +60,9 @@ secondary_entities:
           - dps_val: "2"
             value: "2 hour"
           - dps_val: "4"
-            value: "4 hours" 
+            value: "4 hours"
           - dps_val: "8"
-            value: "8 hours" 
+            value: "8 hours"
   - entity: sensor
     name: Time left
     category: diagnostic

+ 1 - 1
custom_components/tuya_local/devices/breville_smart_air_viral_protect_plus.yaml

@@ -29,7 +29,7 @@ primary_entity:
           value: 50
         - dps_val: "high"
           value: 75
-        - dps_val: "tubo" # there's a typo in the firmware
+        - dps_val: "tubo"  # there's a typo in the firmware
           value: 100
 secondary_entities:
   - entity: sensor

+ 0 - 4
custom_components/tuya_local/devices/brilliant_double_switch.yaml

@@ -89,7 +89,3 @@ secondary_entities:
         class: measurement
         mapping:
           - scale: 10
-
-
-
-

+ 1 - 5
custom_components/tuya_local/devices/brilliant_quad_switch.yaml

@@ -1,7 +1,7 @@
 name: Quad wall switch
 products:
   - id: kopqi7ax9pwi7nr2
-    name: Briliiant Smart glass wall switch 4-gang
+    name: Brilliant Smart glass wall switch 4-gang
 primary_entity:
   entity: switch
   class: switch
@@ -133,7 +133,3 @@ secondary_entities:
         class: measurement
         mapping:
           - scale: 10
-
-
-
-

+ 0 - 4
custom_components/tuya_local/devices/brilliant_single_switch.yaml

@@ -66,7 +66,3 @@ secondary_entities:
         class: measurement
         mapping:
           - scale: 10
-
-
-
-

+ 0 - 4
custom_components/tuya_local/devices/brilliant_triple_switch.yaml

@@ -111,7 +111,3 @@ secondary_entities:
         class: measurement
         mapping:
           - scale: 10
-
-
-
-

+ 0 - 1
custom_components/tuya_local/devices/bstuokey_access_keypad.yaml

@@ -153,4 +153,3 @@ secondary_entities:
         type: boolean
         optional: true
         name: sensor
-

+ 5 - 4
custom_components/tuya_local/devices/cadence_aroma_diffuser.yaml

@@ -43,7 +43,8 @@ secondary_entities:
           max: 1000
         mapping:
           - scale: 3.92
-      # 10: rgbhsv, but not present in log and no color_mode to select it, so probably a doc error
+      # 10: rgbhsv, but not present in log and no color_mode to select it,
+      #     so probably a doc error
       - id: 105
         name: effect
         type: boolean
@@ -61,11 +62,11 @@ secondary_entities:
     icon: "mdi:music"
     category: config
     dps:
-      - id: 101 
+      - id: 101
         type: string
         name: option
         mapping:
-          - dps_val: "0" 
+          - dps_val: "0"
             value: Track 1
           - dps_val: "1"
             value: Track 2
@@ -112,7 +113,7 @@ secondary_entities:
     dps:
       - id: 107
         type: boolean
-        name: button 
+        name: button
         optional: true
   - entity: button
     name: Play music

+ 8 - 8
custom_components/tuya_local/devices/caldo_up_t_wifi.yaml

@@ -47,11 +47,11 @@ primary_entity:
         - dps_val: true
           value: "on"
 secondary_entities:
-   - entity: switch
-     name: Window detection
-     icon: "mdi:window-open-variant"
-     category: config
-     dps:
-       - id: 101
-         type: boolean
-         name: switch
+  - entity: switch
+    name: Window detection
+    icon: "mdi:window-open-variant"
+    category: config
+    dps:
+      - id: 101
+        type: boolean
+        name: switch

+ 6 - 6
custom_components/tuya_local/devices/carro_pn04f02d_fan_light.yaml

@@ -10,8 +10,8 @@ primary_entity:
       name: switch
     - id: 21
       type: string
-      # Shows in the instruction set with standard white/colour/scene/music properties
-      # but this is a dimming switch and doesn't have color/scene dps
+      # Shows in the instruction set with standard white/colour/scene/music
+      # properties but this is a dimming switch and doesn't have color/scene dps
       name: work_mode
       optional: true
     - id: 22
@@ -33,12 +33,12 @@ secondary_entities:
         type: boolean
         name: switch
       - id: 62
-        type: integer 
+        type: integer
         name: speed
         mapping:
           - dps_val: 1
-            value: 33 
+            value: 33
           - dps_val: 2
-            value: 66 
+            value: 66
           - dps_val: 3
-            value: 100 
+            value: 100

+ 3 - 2
custom_components/tuya_local/devices/carson_cb.yaml

@@ -3,7 +3,8 @@ products:
   # original product id unknown: Carson CB PA280
   - id: 2tgd3qnobb1mcgd9
     name: Shinco Yoau YWD1
-    # also sold as Axelair Tempero CMM3000, Domair Callisto (product id may be same or different?)
+    # also sold as Axelair Tempero CMM3000, Domair Callisto
+    # (product id may be same or different?)
 primary_entity:
   entity: climate
   dps:
@@ -28,7 +29,7 @@ primary_entity:
               value: dry
             - dps_val: HEAT
               icon: "mdi:fire"
-              value: heat   
+              value: heat
     - id: 2
       name: temperature
       type: integer

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

@@ -45,7 +45,8 @@ secondary_entities:
         mapping:
           - scale: 0.392
       - id: 17
-        # 17 is listed as color_temp, and reported by the device, but light is fixed 3000K light
+        # 17 is listed as color_temp, and reported by the device, but light
+        # is fixed 3000K light
         name: reserved_color_temp
         type: integer
         range:
@@ -74,4 +75,3 @@ secondary_entities:
             value: "5 hours"
           - dps_val: "6h"
             value: "6 hours"
-            

+ 8 - 6
custom_components/tuya_local/devices/catit_pixi_6meal_feeder.yaml

@@ -12,12 +12,14 @@ primary_entity:
       optional: true
     - id: 1
       type: string
-        # Meal plan is the following binary blob (1 byte per line), encoded in base64:
-        # - Date (1 bit per day Monday -> Sunday, padded with 0 on the MSB). Ex: Monday, Wednesday, Sunday -> 0b01010001
-        # - Hour
-        # - Minute
-        # - Feed #
-        # - Enable/Disabled
+      # Meal plan is the following binary blob (1 byte per line), encoded
+      # in base64:
+      # - Date (1 bit per day Monday -> Sunday, padded with 0 on the MSB).
+      #    Ex: Monday, Wednesday, Sunday -> 0b01010001
+      # - Hour
+      # - Minute
+      # - Feed number
+      # - Enable/Disabled
       name: meal_plan
       optional: true
 secondary_entities:

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

@@ -51,7 +51,7 @@ secondary_entities:
     class: problem
     category: diagnostic
     dps:
-      - id: 14 
+      - id: 14
         type: bitfield
         name: sensor
         optional: true
@@ -64,7 +64,7 @@ secondary_entities:
     class: problem
     category: diagnostic
     dps:
-      - id: 14 
+      - id: 14
         type: bitfield
         name: sensor
         optional: true

+ 1 - 1
custom_components/tuya_local/devices/catit_pixi_smart_fountain.yaml

@@ -38,7 +38,7 @@ secondary_entities:
           min: 0
           max: 43200
         mapping:
-          - scale: 1440 # minutes => days
+          - scale: 1440  # minutes => days
             invert: true
         unit: d
   - entity: sensor

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

@@ -71,8 +71,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: forward 
+          - dps_val: forward
             value: Forward
           - dps_val: back
             value: Reverse
-

+ 0 - 1
custom_components/tuya_local/devices/cct_lightbulb.yaml

@@ -58,4 +58,3 @@ secondary_entities:
           - scale: 60
             step: 60
         optional: true
-

+ 42 - 32
custom_components/tuya_local/devices/cecotec_fan_light.yaml

@@ -51,38 +51,48 @@ secondary_entities:
       - id: 15
         type: boolean
         name: switch
-# I comment this features because that are reported by device but does nothing with it.
-#
-# {"abilityId":16,"accessMode":"rw","code":"bright_value","description":"","name":"灯光亮度","typeSpec":{"max":100,"min":1,"scale":0,"step":1,"type":"value","typeDefaultValue":1,"unit":""}},
-# {"abilityId":17,"accessMode":"rw","code":"temp_value","description":"","name":"灯光色温","typeSpec":{"max":100,"min":0,"scale":0,"step":1,"type":"value","typeDefaultValue":0,"unit":""}},
-# {"abilityId":19,"accessMode":"rw","code":"work_mode","description":"","name":"灯光模式","typeSpec":{"range":["white","warm","cold","night"],"type":"enum","typeDefaultValue":"white"}},
-#
-#
-#      - id: 16
-#        type: integer
-#        name: brightness
-#        range:
-#          min: 25
-#          max: 255
-#      - id: 17
-#        type: integer
-#        name: color_temp
-#        range:
-#          min: 0
-#          max: 255
-#      - id: 19
-#        type: string
-#        name: color_mode
-#        optional: true
-#        mapping:
-#          - dps_val: white
-#            value: white
-#          - dps_val: warm
-#            value: warm
-#          - dps_val: cold
-#            value: cold
-#          - dps_val: night
-#            value: night
+        # I comment this features because that are reported by device but
+        # does nothing with it.
+        #
+        # {"abilityId":16,"accessMode":"rw","code":"bright_value",
+        #  "description":"","name":"灯光亮度",
+        #  "typeSpec":{"max":100,"min":1,"scale":0,"step":1,"type":"value",
+        #  "typeDefaultValue":1,"unit":""}},
+        # {"abilityId":17,"accessMode":"rw","code":"temp_value",
+        #  "description":"","name":"灯光色温",
+        #  "typeSpec":{"max":100,"min":0,"scale":0,"step":1,"type":"value",
+        #  "typeDefaultValue":0,"unit":""}},
+        # {"abilityId":19,"accessMode":"rw","code":"work_mode",
+        #  "description":"","name":"灯光模式",
+        #  "typeSpec":{"range":["white","warm","cold","night"],"type":"enum",
+        #  "typeDefaultValue":"white"}},
+        #
+        #
+        # - id: 16
+        #   type: integer
+        #   name: brightness
+        #   range:
+        #     min: 25
+        #     max: 255
+        # - id: 17
+        #   type: integer
+        #   name: color_temp
+        #   range:
+        #     min: 0
+        #     max: 255
+        # - id: 19
+        #   type: string
+        #   name: color_mode
+        #   optional: true
+        #   mapping:
+        #     - dps_val: white
+        #       value: white
+        #     - dps_val: warm
+        #       value: warm
+        #     - dps_val: cold
+        #       value: cold
+        #     - dps_val: night
+        #       value: night
   - entity: select
     name: timer
     icon: "mdi:timer"

+ 0 - 9
custom_components/tuya_local/devices/ceres_plus_petfeeder.yaml

@@ -178,15 +178,6 @@ secondary_entities:
         range:
           min: 0
           max: 3
-        mapping:
-          - dps_val: 0
-            value: 0
-          - dps_val: 1
-            value: 1
-          - dps_val: 2
-            value: 2
-          - dps_val: 
-            value: 3
       - id: 243
         type: string
         name: report

+ 0 - 3
custom_components/tuya_local/devices/chanfok_fan_light.yaml

@@ -67,6 +67,3 @@ secondary_entities:
       - id: 66
         type: boolean
         name: switch
-
-
-

+ 0 - 2
custom_components/tuya_local/devices/cnc_ycb9zf_breaker.yaml

@@ -136,5 +136,3 @@ secondary_entities:
       - id: 109
         type: boolean
         name: switch
-
-

+ 0 - 1
custom_components/tuya_local/devices/compteur_energy_meter.yaml

@@ -67,4 +67,3 @@ secondary_entities:
         force: true
         mapping:
           - scale: 10000
-

+ 5 - 6
custom_components/tuya_local/devices/cooper_hunter_air_conditioner.yaml

@@ -51,7 +51,6 @@ primary_entity:
       type: integer
       mapping:
         - scale: 10
-          #step: 5
     - id: 4
       name: mode
       type: string
@@ -82,15 +81,15 @@ primary_entity:
           value: "off"
         - dps_val: "on"
           value: "on"
-        - dps_val: "angle1" #Topmost
+        - dps_val: "angle1"
           value: "topmost"
-        - dps_val: "angle2" #Top
+        - dps_val: "angle2"
           value: "top"
-        - dps_val: "angle3" #Middle
+        - dps_val: "angle3"
           value: "middle"
-        - dps_val: "angle4" #Down
+        - dps_val: "angle4"
           value: "down"
-        - dps_val: "angle5" #Downmost
+        - dps_val: "angle5"
           value: "downmost"
     - id: 19
       name: temperature_unit

+ 0 - 1
custom_components/tuya_local/devices/daizuki_heatpump.yaml

@@ -253,7 +253,6 @@ secondary_entities:
             value: false
           - value: true
   - entity: sensor
-    name: 
     class: pm25
     category: diagnostic
     dps:

+ 1 - 1
custom_components/tuya_local/devices/dcenta_dual_meter.yaml

@@ -1,4 +1,4 @@
-name: Dual meter 
+name: Dual meter
 products:
   - id: bfa88129148596f2f0oeht
     name: Dcenta dual clamp meter

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

@@ -90,8 +90,8 @@ secondary_entities:
         name: option
         optional: true
         mapping:
-          - dps_val: "1" 
-            value: "Cycle" 
+          - dps_val: "1"
+            value: "Cycle"
           - dps_val: "2"
             value: "Fixed"
           - dps_val: "3"
@@ -139,5 +139,3 @@ secondary_entities:
         name: sensor
         unit: min
         optional: true
-
-

+ 1 - 1
custom_components/tuya_local/devices/djive_arc_fan.yaml

@@ -98,4 +98,4 @@ secondary_entities:
         type: integer
         name: sensor
         class: measurement
-        unit: "μg/m³"
+        unit: "μg/m³"

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

@@ -1,5 +1,6 @@
 # Dongguan Pinjia Technology Co., Door Controller, PJ-WGDOOR01
-# Tuya Smart Life WiFi Motorized Swing Gate Sliding Gate Opener Dry Contact 110V 240V Voice Control with Alexa Google Home
+# Tuya Smart Life WiFi Motorized Swing Gate Sliding Gate Opener Dry Contact
+# 110V 240V Voice Control with Alexa Google Home
 # https://www.aliexpress.com/item/1005003913566298.html
 name: WiFi garage opener
 products:
@@ -13,7 +14,7 @@ primary_entity:
     - id: 1
       type: boolean
       name: control
-      optional: true #BUGBUG Sometimes after power off this DP doesn't report state but will be available later
+      optional: true  # Sometimes this DP doesn't report state
       mapping:
         - dps_val: true
           value: open
@@ -67,4 +68,4 @@ secondary_entities:
       - id: 12
         type: string
         name: sensor
-        optional: true #BUGBUG Sometimes after power off this DP doesn't report state but will be available later
+        optional: true  # Sometimes doesn't report state

+ 0 - 1
custom_components/tuya_local/devices/dooya_curtain.yaml

@@ -35,4 +35,3 @@ secondary_entities:
             value: Forward
           - dps_val: true
             value: Reverse
-            

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

@@ -30,7 +30,9 @@ primary_entity:
       type: bitfield
       name: fault_code
       optional: true
-      # ov_cr, unbalance_alarm, ov_vol, undervoltage_alarm, miss_phase_alarm, outage_alarm, magnetism_alarm, terminal_alarm, cover_alarm, credit_alarm, no_balance_alarm, battery_alarm, meter_hardware_alarm
+      # ov_cr, unbalance_alarm, ov_vol, undervoltage_alarm, miss_phase_alarm,
+      # outage_alarm, magnetism_alarm, terminal_alarm, cover_alarm,
+      # credit_alarm, no_balance_alarm, battery_alarm, meter_hardware_alarm
     - id: 17
       name: alarm_set
       type: string
@@ -116,6 +118,3 @@ secondary_entities:
       - id: 16
         type: boolean
         name: switch
-
-
-

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

@@ -105,7 +105,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: "0" 
+          - dps_val: "0"
             value: "Off"
           - dps_val: "1"
             value: "1 hour"
@@ -141,4 +141,3 @@ secondary_entities:
         name: sensor
         unit: h
         optional: true
-

+ 2 - 23
custom_components/tuya_local/devices/earu_smart_wifi_circuit_breaker_with_energy_monitor.yaml

@@ -2,8 +2,6 @@ name: Circuit breaker
 products:
   - id: ine4hhapkgxonij1
     name: EARU SW RCB
-    # https://www.aliexpress.com/item/1005004894566311.html
-  
 primary_entity:
   entity: switch
   icon: "mdi:fuse"
@@ -11,7 +9,7 @@ primary_entity:
   dps:
     - id: 16
       name: switch
-      type: boolean     
+      type: boolean
     - id: 19
       type: string
       name: breaker_id
@@ -70,23 +68,4 @@ secondary_entities:
         name: sensor
         mapping:
           - mask: "0000000000FFFFFF"
-            scale: 1000	 
-
-#     name: 'Alarm set 1'
-#     category: diagnostic
-#     dps:
-#       - id: 17
-#         type: base64
-#         name: sensor
-#         optional: true
-#         force: true
-#   - entity: sensor
-#     name: 'Alarm set 2'
-#     category: diagnostic
-#     dps:
-#       - id: 18
-#         type: base64
-#         name: sensor        
-#         optional: true
-#         force: true
-            
+            scale: 1000

+ 6 - 29
custom_components/tuya_local/devices/ebac_dj4000_dehumidifier.yaml

@@ -10,12 +10,12 @@ primary_entity:
       name: switch
       type: boolean
       mapping:
-      - dps_val: false
-        icon: "mdi:ait-humidifier-off"
-        icon_priority: 1
-      - dps_val: true
-        icon: "mdi:air-humidifier"
-        icon_priority: 3
+        - dps_val: false
+          icon: "mdi:ait-humidifier-off"
+          icon_priority: 1
+        - dps_val: true
+          icon: "mdi:air-humidifier"
+          icon_priority: 3
     - id: 2
       name: humidity
       type: integer
@@ -134,29 +134,6 @@ secondary_entities:
           - dps_val: Bucket_Full
             value: true
             icon: "mdi:pail-remove"
-# Runtime Total does not update
-# uncomment the next two sensor blocks if you want to use them
-#   - entity: sensor
-#     name: Runtime total
-#     category: diagnostic
-#     icon: "mdi:timelapse"
-#     class: duration
-#     dps:
-#       - id: 27
-#         type: integer
-#         range:
-#         min: 0
-#         max: 1000
-#         name: sensor
-#         unit: min
-#   - entity: button
-#     name: Runtime total reset
-#     category: config
-#     icon: "mdi:timelapse"
-#     dps:
-#       - id: 28
-#         type: boolean
-#         name: button
   - entity: switch
     name: Night mode
     category: config

+ 3 - 3
custom_components/tuya_local/devices/eberg_qubo_q40hd_heatpump.yaml

@@ -20,7 +20,7 @@ primary_entity:
               value: heat
             - dps_val: dehumidify
               icon: "mdi:water-percent"
-              value: dry              
+              value: dry
     - id: 2
       name: temperature
       type: integer
@@ -110,9 +110,9 @@ primary_entity:
         - dps_val: "off"
           constraint: hvac_mode
           conditions:
-            - dps_val: False
+            - dps_val: false
               value: "off"
-            - dps_val: True
+            - dps_val: true
               value: idle
 secondary_entities:
   - entity: number

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

@@ -118,5 +118,3 @@ secondary_entities:
         range:
           min: -5
           max: 5
-
-    

+ 1 - 1
custom_components/tuya_local/devices/eeese_carl_dehumidifier.yaml

@@ -68,7 +68,7 @@ secondary_entities:
         mapping:
           - dps_val: 0
             value: false
-          - value: true 
+          - value: true
   - entity: lock
     name: Child lock
     icon: "mdi:hand-back-right-off"

+ 6 - 6
custom_components/tuya_local/devices/eesee_adam_dehumidifier.yaml

@@ -7,12 +7,12 @@ primary_entity:
       name: switch
       type: boolean
       mapping:
-      - dps_val: false
-        icon: "mdi:air-humidifier-off"
-        icon_priority: 1
-      - dps_val: true
-        icon: "mdi:air-humidifier"
-        icon_priority: 4
+        - dps_val: false
+          icon: "mdi:air-humidifier-off"
+          icon_priority: 1
+        - dps_val: true
+          icon: "mdi:air-humidifier"
+          icon_priority: 4
     - id: 2
       name: humidity
       type: integer

+ 5 - 5
custom_components/tuya_local/devices/electriq_airflex15w_heatpump.yaml

@@ -14,19 +14,19 @@ primary_entity:
         - dps_val: true
           constraint: preset_mode
           conditions:
-            - dps_val: "0" # auto
+            - dps_val: "0"  # auto
               value: heat_cool
               icon: "mdi:hvac"
-            - dps_val: "1" # cold
+            - dps_val: "1"  # cold
               value: cool
               icon: "mdi:snowflake"
-            - dps_val: "2" # hot
+            - dps_val: "2"  # hot
               value: heat
               icon: "mdi:fire"
-            - dps_val: "3" # wet
+            - dps_val: "3"  # wet
               value: dry
               icon: "mdi:water"
-            - dps_val: "5" # fan
+            - dps_val: "5"  # fan
               value: fan_only
               icon: "mdi:fan"
     - id: 2

+ 1 - 1
custom_components/tuya_local/devices/electriq_cd25pro_dehumidifier.yaml

@@ -69,7 +69,7 @@ secondary_entities:
           - value: false
   - entity: light
     name: "UV sterilization"
-    icon: "mdi:solar-power"    
+    icon: "mdi:solar-power"
     dps:
       - id: 10
         name: switch

+ 1 - 4
custom_components/tuya_local/devices/electriq_pd45e_dehumidifier.yaml

@@ -39,7 +39,7 @@ primary_entity:
     - id: 107
       type: boolean
       name: unknown_107
-      # Probably one of these booleans is defrost indicator, the other may be tank?
+      # Probably one boolean is defrost indicator, the other may be tank?
     - id: 108
       type: boolean
       name: unknown_108
@@ -87,6 +87,3 @@ secondary_entities:
         name: sensor
         unit: "%"
         class: measurement
-
-
-

+ 3 - 3
custom_components/tuya_local/devices/em3378_weather_station.yaml

@@ -25,7 +25,7 @@ primary_entity:
       name: fault
       type: bitfield
       optional: true
-      # we need to know the full range of values to expose this as a light control
+      # we need the full range of values to expose this as a light control
     - id: 118
       name: backlight_brightness
       type: string
@@ -141,7 +141,7 @@ secondary_entities:
     class: atmospheric_pressure
     category: diagnostic
     dps:
-      - id: 110 
+      - id: 110
         type: integer
         name: sensor
         class: measurement
@@ -201,7 +201,7 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: true 
+          - dps_val: true
             value: 24h
           - dps_val: false
             value: 12h

+ 7 - 7
custom_components/tuya_local/devices/es01_powerstrip.yaml

@@ -2,13 +2,13 @@ name: Smart plug with USB ES-01
 products:
   - id: hsoiigeykxh9m4hx
 primary_entity:
-    entity: switch
-    class: outlet
-    name: Switch 1
-    dps:
-      - id: 1
-        type: boolean
-        name: switch
+  entity: switch
+  class: outlet
+  name: Switch 1
+  dps:
+    - id: 1
+      type: boolean
+      name: switch
 secondary_entities:
   - entity: switch
     name: Switch 2

+ 0 - 3
custom_components/tuya_local/devices/etersky_aroma_diffuser.yaml

@@ -10,10 +10,8 @@ primary_entity:
       mapping:
         - dps_val: true
           icon: mdi:scent
-          value: ON
         - dps_val: false
           icon: mdi:scent-off
-          value: OFF
     - id: 3
       name: speed
       type: string
@@ -120,4 +118,3 @@ secondary_entities:
           - dps_val: 0
             value: false
           - value: true
-

+ 1 - 1
custom_components/tuya_local/devices/etop_ch7100_thermostat.yaml

@@ -160,7 +160,7 @@ secondary_entities:
         name: option
         mapping:
           - dps_val: c
-            value: Celsius 
+            value: Celsius
             icon: "mdi:temperature-celsius"
           - dps_val: f
             value: Fahrenheit

+ 3 - 3
custom_components/tuya_local/devices/etop_fcu_thermostat.yaml

@@ -92,8 +92,8 @@ primary_entity:
     - id: 14
       name: work_state
       type: string
-      # has values no_working and working defined in docs, and appears to be useful for hvac_action,
-      # but in practice does not seem to change.
+      # has values no_working and working defined in docs, and appears to be
+      # useful for hvac_action, but in practice does not seem to change.
 secondary_entities:
   ############################################################
   # Temperature display unit
@@ -130,7 +130,7 @@ secondary_entities:
           - dps_val: Enable
             value: Automatic
   ############################################################
-  # The following DPs are available but don't seem to 
+  # The following DPs are available but don't seem to
   # actually do anything
   ############################################################
   - entity: switch

+ 0 - 2
custom_components/tuya_local/devices/eurom_601_heater.yaml

@@ -45,5 +45,3 @@ secondary_entities:
           - dps_val: 0
             value: false
           - value: true
-
-

+ 1 - 1
custom_components/tuya_local/devices/evotherm_eti_heatpump.yaml

@@ -188,7 +188,7 @@ secondary_entities:
           - scale: 10
   - entity: sensor
     name: Water discharge temperature
-    class: 
+    class: temperature
     category: diagnostic
     dps:
       - id: 25

+ 2 - 3
custom_components/tuya_local/devices/evsun_evcharger.yaml

@@ -91,7 +91,7 @@ secondary_entities:
         name: sensor
         unit: V
         class: measurement
-        mapping: 
+        mapping:
           - mask: "FFFF000000000000"
             scale: 10
   - entity: sensor
@@ -130,7 +130,7 @@ secondary_entities:
       - id: 9
         type: integer
         name: sensor
-        unit: kW 
+        unit: kW
         class: measurement
         mapping:
           - scale: 1000
@@ -276,4 +276,3 @@ secondary_entities:
         range:
           min: 0
           max: 12
-

+ 2 - 3
custom_components/tuya_local/devices/feit_dimmer.yaml

@@ -1,6 +1,5 @@
 name: Dimmable light
 products:
-  # https://www.feit.com/collections/smart-controls/products/smart-wi-fi-dimmer-dim-wifi
   - id: tebc75erlgslgpn5
     name: Feit Dimmer
 primary_entity:
@@ -20,10 +19,10 @@ primary_entity:
         min: 10
         max: 1000
       mapping:
-        - scale: 3.92 # this is important for that device, else lights are too dim
+        - scale: 3.92
+    - id: 3
       # advisory only, the integration does not actually use this, setting it
       # does not seem to work, so probably determined by bulb type
-    - id: 3
       type: integer
       name: minimum_brightness
       optional: true

+ 1 - 1
custom_components/tuya_local/devices/ferroli_titano_twin.yaml

@@ -44,7 +44,7 @@ primary_entity:
         - dps_val: 2
           value: E3 NTC temperature sensor
         - dps_val: 4
-          value: E4 Water overheating 
+          value: E4 Water overheating
         - dps_val: 16
           value: E6 clock RTC failure
 secondary_entities:

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

@@ -130,11 +130,10 @@ secondary_entities:
       - id: 104
         type: integer
         name: value
-        unit: 
+        unit: h
         range:
           min: 0
           max: 15
-          unit: h
   - entity: sensor
     class: energy
     dps:

+ 15 - 14
custom_components/tuya_local/devices/fisher_summer_air_conditioner.yaml

@@ -39,8 +39,8 @@ primary_entity:
         min: 160
         max: 310
       mapping:
-        - scale: 10  
-          step: 5 
+        - scale: 10
+          step: 5
       unit: C
     - id: 3
       name: current_temperature
@@ -78,7 +78,7 @@ primary_entity:
     - id: 110
       name: functions_available
       type: bitfield
-      # Used to indicate whether this function is available. 
+      # Used to indicate whether this function is available.
       #   0. Whether the temperature is adjustable in dehumidification mode
       #   1. Whether the temperature is adjustable in air supply mode
       #   2. Whether the temperature is adjustable in automatic mode
@@ -92,10 +92,11 @@ primary_entity:
       #   10. Save money and see it
       #   11. Power statistics
       #   12. Generator mode
-      #   13. High temperature wind/cool wind 
+      #   13. High temperature wind/cool wind
       #   14. Air quality detection function
       #   15. Set to empty (original: humidity function)
-      #   16. Set to empty (original: equipment operation saves money and visible temperature curve display)
+      #   16. Set to empty (original: equipment operation saves money and
+      #       visible temperature curve display)
       #   17. 8℃ heating
       #   18. Filter dirty and clogged function
       #   ??? - 19 is missing in Tuya json
@@ -134,8 +135,8 @@ secondary_entities:
         name: option
         type: string
         mapping:
-          - dps_val: off
-            value: Off
+          - dps_val: "off"
+            value: "Off"
             default: true
           - dps_val: normal
             value: Normal
@@ -170,7 +171,7 @@ secondary_entities:
         type: string
         mapping:
           - dps_val: 0
-            value: None
+            value: "Off"
             default: true
           - dps_val: 1
             value: Left and Right
@@ -212,7 +213,7 @@ secondary_entities:
         name: option
         type: string
         mapping:
-          - dps_val: off
+          - dps_val: "off"
             value: None
             default: true
           - dps_val: L1
@@ -230,7 +231,7 @@ secondary_entities:
         type: string
         optional: true
   - entity: select
-    name: Set Vertical Direction # Tuya JSON phrasing: Freeze Vertical
+    name: Set Vertical Direction
     category: config
     dps:
       - id: 126
@@ -249,9 +250,9 @@ secondary_entities:
           - dps_val: 4
             value: Slightly Down
           - dps_val: 5
-            value: Down  
+            value: Down
   - entity: select
-    name: Set Horizontal Direction # Tuya JSON phrasing: Freeze Horizontal
+    name: Set Horizontal Direction  # Tuya JSON phrasing: Freeze Horizontal
     category: config
     dps:
       - id: 127
@@ -270,7 +271,7 @@ secondary_entities:
           - dps_val: 4
             value: Slightly Right
           - dps_val: 5
-            value: Right  
+            value: Right
           - dps_val: 6
             value: Wide Angle Left
           - dps_val: 7
@@ -364,4 +365,4 @@ secondary_entities:
         name: sensor
         type: integer
         unit: s
-        optional: true 
+        optional: true

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

@@ -66,10 +66,9 @@ secondary_entities:
         type: string
         name: option
         mapping:
-          - dps_val: relay 
+          - dps_val: relay
             value: State
           - dps_val: pos
             value: Position
           - dps_val: none
             value: "Off"
-            

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

@@ -1,5 +1,7 @@
 # Example DPS Status
-# {'dps': {'1': False, '2': 1000, '3': 10, '4': 'led', '5': 1000, '6': 0, '14': 'memory', '21': 'relay', '103': 'scene', '106': 'dimmer', '107': '3way_switch'}}
+# {'dps': {'1': False, '2': 1000, '3': 10, '4': 'led', '5': 1000, '6': 0,
+#  '14': 'memory', '21': 'relay', '103': 'scene', '106': 'dimmer',
+#  '107': '3way_switch'}}
 name: GE Jasco Ultra Pro Toggle Dimmer v2
 products:
   - id: genhs8iixkqve7sx

+ 1 - 1
custom_components/tuya_local/devices/goldair_dehumidifier.yaml

@@ -91,7 +91,7 @@ secondary_entities:
               - dps_val: "2"
                 invalid: true
               - dps_val: "3"
-                invalid: true              
+                invalid: true
           - dps_val: "3"
             value: 100
             constraint: dehumidifier_mode

+ 0 - 4
custom_components/tuya_local/devices/goldair_gpdh340_dehumidifier.yaml

@@ -156,7 +156,3 @@ secondary_entities:
       - id: 108
         type: boolean
         name: sensor
-
-
-
-

+ 4 - 5
custom_components/tuya_local/devices/gosund_usb_triple_powerstrip.yaml

@@ -40,7 +40,7 @@ secondary_entities:
       - id: 9
         type: integer
         name: value
-        unit: min 
+        unit: min
         range:
           min: 0
           max: 86400
@@ -55,7 +55,7 @@ secondary_entities:
       - id: 10
         type: integer
         name: value
-        unit: min 
+        unit: min
         range:
           min: 0
           max: 86400
@@ -70,7 +70,7 @@ secondary_entities:
       - id: 11
         type: integer
         name: value
-        unit: min 
+        unit: min
         range:
           min: 0
           max: 86400
@@ -85,7 +85,7 @@ secondary_entities:
       - id: 15
         type: integer
         name: value
-        unit: min 
+        unit: min
         range:
           min: 0
           max: 86400
@@ -142,4 +142,3 @@ secondary_entities:
       - id: 102
         type: boolean
         name: sensor
-

+ 0 - 16
custom_components/tuya_local/devices/gratkit_filament_dryer.yaml

@@ -94,22 +94,6 @@ secondary_entities:
             value: Rainbow blink
           - dps_val: 12
             value: Rainbow smooth
-          # - dps_val: 13
-          #   value: "13"
-          # - dps_val: 14
-          #   value: "14"
-          # - dps_val: 15
-          #   value: "15"
-          # - dps_val: 16
-          #   value: "16"
-          # - dps_val: 17
-          #   value: "17"
-          # - dps_val: 18
-          #   value: "18"
-          # - dps_val: 19
-          #   value: "19"
-          # - dps_val: 20
-          #   value: "20"
   - entity: sensor
     class: temperature
     name: Heating plate temperature

+ 0 - 1
custom_components/tuya_local/devices/greenwind_dehumidifier.yaml

@@ -42,4 +42,3 @@ secondary_entities:
         name: sensor
         unit: "%"
         class: measurement
-

+ 1 - 1
custom_components/tuya_local/devices/haier_nayun_gasalarm.yaml

@@ -21,7 +21,7 @@ secondary_entities:
       - id: 2
         type: integer
         name: sensor
-        unit: "% LEL" 
+        unit: "% LEL"
         class: measurement
         mapping:
           - scale: 10

+ 0 - 2
custom_components/tuya_local/devices/hdmi_sync_light.yaml

@@ -145,5 +145,3 @@ secondary_entities:
             value: Light post
             icon: "mdi:post-lamp"
             icon_priority: 1
-
-            

+ 0 - 1
custom_components/tuya_local/devices/heatstorm_hs6000gc_heater.yaml

@@ -129,4 +129,3 @@ secondary_entities:
             value: Celsius
           - dps_val: f
             value: Fahrenheit
-

+ 0 - 1
custom_components/tuya_local/devices/himox_h05_purifier.yaml

@@ -82,4 +82,3 @@ secondary_entities:
       - id: 21
         type: string
         name: sensor
- 

Some files were not shown because too many files changed in this diff