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

Translations: standardise fan preset_modes.

1. avoid "low", "medium", "high", which have a deprecated mapping to
speed, so may interfere where a fan has both.

2. Choose from off, sleep, nature, fresh, strong, smart, normal
  off: in multi-functional devices where fan can be off and is turned
       off by the preset dp.
  sleep: if the fan had sleep, then that (may have auto cutoff), but
       some converted from low
  nature: if the fan had nature or another mode that varies the wind
       strength, then mapped to that, but it can also be low where
       there was already a sleep and we needed fresh for mid.
  fresh: if the fan had fresh, then that, otherwise generally mid.
  strong: if the fan had strong, then that, otherwise generally high.
  smart: if the fan has smart, then that, otherwise generally auto
  normal: if the fan has normal, then that, otherwise generally manual.

  * deprecated fan excluded, as there is no point to force users to
  change automations without forcing them to change entity away from
  the deprecated one.

3. Translations provided in English for the default case ("_").
   Hopefully this works, otherwise a translation_key will need to be
   added to all the affected configs.

Issue #682
Jason Rumney 2 лет назад
Родитель
Сommit
35eb7ea485
33 измененных файлов с 191 добавлено и 156 удалено
  1. 3 3
      custom_components/tuya_local/devices/arlec_12speed_tower_fan.yaml
  2. 3 3
      custom_components/tuya_local/devices/arlec_19speed_fan.yaml
  3. 8 8
      custom_components/tuya_local/devices/arlec_6speed_fan.yaml
  4. 1 1
      custom_components/tuya_local/devices/arlec_fan.yaml
  5. 2 2
      custom_components/tuya_local/devices/aspen_asp200_fan.yaml
  6. 2 2
      custom_components/tuya_local/devices/atomi_ceiling_fan.yaml
  7. 6 6
      custom_components/tuya_local/devices/breville_smart_air_viral_protect_plus.yaml
  8. 4 4
      custom_components/tuya_local/devices/breville_smartairconnect_purifier.yaml
  9. 2 2
      custom_components/tuya_local/devices/chanfok_fan_light.yaml
  10. 12 3
      custom_components/tuya_local/devices/electriq_cd20pro_dehumidifier.yaml
  11. 12 3
      custom_components/tuya_local/devices/electriq_cd25pro_dehumidifier.yaml
  12. 4 4
      custom_components/tuya_local/devices/himox_h05_purifier.yaml
  13. 6 6
      custom_components/tuya_local/devices/hosome_purifier.yaml
  14. 3 3
      custom_components/tuya_local/devices/immax_neo_light_vento.yaml
  15. 4 4
      custom_components/tuya_local/devices/lexy_f501_fan.yaml
  16. 3 3
      custom_components/tuya_local/devices/lifubide_x600_purifier.yaml
  17. 3 3
      custom_components/tuya_local/devices/poiema_one_purifier.yaml
  18. 8 8
      custom_components/tuya_local/devices/proscenic_a8_airpurifier.yaml
  19. 8 8
      custom_components/tuya_local/devices/renpho_rp_ap001s.yaml
  20. 3 3
      custom_components/tuya_local/devices/skyfan_dc_fan.yaml
  21. 3 3
      custom_components/tuya_local/devices/skyfan_fan_light.yaml
  22. 8 8
      custom_components/tuya_local/devices/tesla_air_purifier_mini.yaml
  23. 6 6
      custom_components/tuya_local/devices/tesla_air_purifier_pro.yaml
  24. 10 10
      custom_components/tuya_local/devices/vork_vk6067aw_purifier.yaml
  25. 17 0
      custom_components/tuya_local/translations/en.json
  26. 3 3
      tests/devices/test_arlec_fan.py
  27. 5 5
      tests/devices/test_aspen_adv200_fan.py
  28. 3 3
      tests/devices/test_himox_h05_purifier.py
  29. 5 5
      tests/devices/test_immax_neo_light_vento.py
  30. 9 9
      tests/devices/test_lexy_f501_fan.py
  31. 7 7
      tests/devices/test_poiema_one_purifier.py
  32. 9 9
      tests/devices/test_renpho_rp_ap001s.py
  33. 9 9
      tests/devices/test_vork_vk6067aw_purifier.py

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

@@ -12,11 +12,11 @@ primary_entity:
       type: string
       mapping:
         - dps_val: normal
-          value: Normal
+          value: normal
         - dps_val: nature
-          value: Natural
+          value: nature
         - dps_val: sleep
-          value: Sleep
+          value: sleep
     - id: 3
       name: speed
       type: string

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

@@ -13,11 +13,11 @@ primary_entity:
       type: string
       mapping:
         - dps_val: normal
-          value: Normal
+          value: normal
         - dps_val: sleep
-          value: Sleep
+          value: sleep
         - dps_val: natural
-          value: Natural
+          value: nature
     - id: 3
       name: speed
       type: integer

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

@@ -14,21 +14,21 @@ primary_entity:
       optional: true
       mapping:
         - dps_val: nature
-          value: Natural
+          value: nature
         - dps_val: sleep
-          value: Sleep
+          value: sleep
         - dps_val: fresh
-          value: Fresh
+          value: fresh
         - dps_val: smart
-          value: Smart
+          value: smart
         - dps_val: strong
-          value: Strong
+          value: strong
         - dps_val: closed
-          value: "Off"
+          value: "off"
         - dps_val: ordinary
-          value: Normal
+          value: normal
         - dps_val: null
-          value: "Off"
+          value: "off"
     - id: 3
       name: speed
       type: string

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

@@ -25,7 +25,7 @@ primary_entity:
         - dps_val: sleep
           value: sleep
         - dps_val: breeze
-          value: breeze
+          value: nature
     - id: 103
       name: timer
       type: string

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

@@ -29,9 +29,9 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: false
-          value: "constant"
+          value: "normal"
         - dps_val: true
-          value: "auto"
+          value: "smart"
     - id: 8
       type: integer
       name: unknown_8

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

@@ -13,9 +13,9 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: fresh
-          value: Fresh
+          value: fresh
         - dps_val: nature
-          value: Natural
+          value: nature
     - id: 64
       type: integer
       name: speed

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

@@ -12,12 +12,12 @@ primary_entity:
       type: string
       name: preset_mode
       mapping:
-        - dps_val: "auto"
-          value: "Auto"
-        - dps_val: "manual"
-          value: "Manual"
-        - dps_val: "sleep"
-          value: "Sleep"
+        - dps_val: auto
+          value: smart
+        - dps_val: manual
+          value: normal
+        - dps_val: sleep
+          value: sleep
     - id: 4
       type: string
       name: speed

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

@@ -12,10 +12,10 @@ primary_entity:
       name: preset_mode
       type: string
       mapping:
-        - dps_val: "manual"
-          value: "Manual"
-        - dps_val: "auto"
-          value: "Auto"
+        - dps_val: manual
+          value: normal
+        - dps_val: auto
+          value: smart
     - id: 4
       type: string
       name: speed

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

@@ -13,9 +13,9 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: fresh
-          value: Fresh
+          value: fresh
         - dps_val: nature
-          value: Natural
+          value: nature
     - id: 62
       type: integer
       name: speed

+ 12 - 3
custom_components/tuya_local/devices/electriq_cd20pro_dehumidifier.yaml

@@ -59,11 +59,20 @@ secondary_entities:
         type: string
         mapping:
           - dps_val: "45"
-            value: "Half open"
+            value: sleep
           - dps_val: "90"
-            value: "Fully open"
+            value: fresh
           - dps_val: "0_90"
-            value: "Oscillate"
+            value: nature
+      - id: 102
+        name: oscillate
+        type: string
+        mapping:
+          - dps_val: "0_90"
+            value: true
+          - dps_val: "90"
+            value: false
+          - value: false
   - entity: switch
     name: "UV sterilization"
     icon: "mdi:solar-power"

+ 12 - 3
custom_components/tuya_local/devices/electriq_cd25pro_dehumidifier.yaml

@@ -57,11 +57,20 @@ secondary_entities:
         type: string
         mapping:
           - dps_val: "45"
-            value: "Half open"
+            value: sleep
           - dps_val: "90"
-            value: "Fully open"
+            value: fresh
           - dps_val: "0_90"
-            value: "Oscillate"
+            value: nature
+      - id: 102
+        name: oscillate
+        type: string
+        mapping:
+          - dps_val: "0_90"
+            value: true
+          - dps_val: "90"
+            value: false
+          - value: false
   - entity: light
     name: "UV sterilization"
     icon: "mdi:solar-power"    

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

@@ -10,13 +10,13 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: auto
-          value: auto
+          value: smart
         - dps_val: low
-          value: low
+          value: sleep
         - dps_val: mid
-          value: mid
+          value: fresh
         - dps_val: high
-          value: high
+          value: strong
 secondary_entities:
   - entity: sensor
     name: Current temperature

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

@@ -11,12 +11,12 @@ primary_entity:
       name: preset_mode
       type: string
       mapping:
-        - dps_val: "Auto"
-          value: "Auto"
-        - dps_val: "Manual"
-          value: "Manual"
-        - dps_val: "Sleep"
-          value: "Sleep"
+        - dps_val: Auto
+          value: smart
+        - dps_val: Manual
+          value: normal
+        - dps_val: Sleep
+          value: sleep
     - id: 4
       type: string
       name: speed

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

@@ -14,11 +14,11 @@ primary_entity:
       category: config
       mapping:
         - dps_val: normal
-          value: Normal
+          value: normal
         - dps_val: sleep
-          value: Sleep
+          value: sleep
         - dps_val: nature
-          value: Natural
+          value: nature
     - id: 3
       name: speed
       type: integer

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

@@ -12,13 +12,13 @@ primary_entity:
       type: string
       mapping:
         - dps_val: "forestwindhigh"
-          value: Forest High
+          value: strong
         - dps_val: "forestwindlow"
-          value: Forest Low
+          value: nature
         - dps_val: "sleepwindlow"
-          value: Sleep Low
+          value: sleep
         - dps_val: "sleepwindhigh"
-          value: Sleep High
+          value: fresh
     - id: 4
       name: oscillate
       type: string

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

@@ -13,11 +13,11 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: auto
-          value: Auto
+          value: smart
         - dps_val: sleep
-          value: Sleep
+          value: sleep
         - dps_val: manual
-          value: Manual
+          value: normal
     - id: 22
       type: bitfield
       name: fault_code

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

@@ -13,11 +13,11 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: manual
-          value: Manual
+          value: normal
         - dps_val: auto
-          value: Auto
+          value: smart
         - dps_val: sleep
-          value: Sleep
+          value: sleep
     - id: 4
       type: string
       name: speed

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

@@ -13,14 +13,14 @@ primary_entity:
       name: preset_mode
       type: string
       mapping:
-        - dps_val: "sleep"
-          value: "sleep"
-        - dps_val: "mid"
-          value: "medium"
-        - dps_val: "high"
-          value: "high"
-        - dps_val: "auto"
-          value: "auto"
+        - dps_val: sleep
+          value: sleep
+        - dps_val: mid
+          value: fresh
+        - dps_val: high
+          value: strong
+        - dps_val: auto
+          value: smart
     - id: 101
       name: unknown_101
       type: integer

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

@@ -12,14 +12,14 @@ primary_entity:
       name: preset_mode
       type: string
       mapping:
-        - dps_val: "low"
-          value: low
-        - dps_val: "mid"
-          value: mid
-        - dps_val: "high"
-          value: high
-        - dps_val: "auto"
-          value: auto
+        - dps_val: low
+          value: sleep
+        - dps_val: mid
+          value: fresh
+        - dps_val: high
+          value: strong
+        - dps_val: auto
+          value: smart
     - id: 19
       name: timer
       type: string

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

@@ -12,11 +12,11 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: smart
-          value: Normal
+          value: smart
         - dps_val: nature
-          value: Nature
+          value: nature
         - dps_val: sleep
-          value: Sleep
+          value: sleep
     - id: 3
       type: integer
       name: speed

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

@@ -13,11 +13,11 @@ primary_entity:
       name: preset_mode
       mapping:
         - dps_val: Normal
-          value: Normal
+          value: normal
         - dps_val: Nature
-          value: Nature
+          value: nature
         - dps_val: Sleep
-          value: Sleep
+          value: sleep
     - id: 3
       type: integer
       name: speed

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

@@ -11,14 +11,14 @@ primary_entity:
       name: preset_mode
       type: string
       mapping:
-        - dps_val: "auto"
-          value: "auto"
-        - dps_val: "sleep"
-          value: "sleep"
-        - dps_val: "mid"
-          value: "mid"
-        - dps_val: "high"
-          value: "high"     
+        - dps_val: auto
+          value: smart
+        - dps_val: sleep
+          value: sleep
+        - dps_val: mid
+          value: fresh
+        - dps_val: high
+          value: strong     
 secondary_entities:
   - entity: light
     category: config

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

@@ -11,12 +11,12 @@ primary_entity:
       name: preset_mode
       type: string
       mapping:
-        - dps_val: "auto"
-          value: "auto"
-        - dps_val: "sleep"
-          value: "sleep"
-        - dps_val: "manual"
-          value: "manual"
+        - dps_val: auto
+          value: smart
+        - dps_val: sleep
+          value: sleep
+        - dps_val: manual
+          value: normal
     - id: 4
       name: speed
       type: string

+ 10 - 10
custom_components/tuya_local/devices/vork_vk6067aw_purifier.yaml

@@ -12,16 +12,16 @@ primary_entity:
       type: string
       name: preset_mode
       mapping:
-        - dps_val: "low"
-          value: "Low"
-        - dps_val: "mid"
-          value: "Mid"
-        - dps_val: "high"
-          value: "High"
-        - dps_val: "auto"
-          value: "Auto"
-        - dps_val: "sleep"
-          value: "Sleep"
+        - dps_val: low
+          value: nature
+        - dps_val: mid
+          value: fresh
+        - dps_val: high
+          value: strong
+        - dps_val: auto
+          value: smart
+        - dps_val: sleep
+          value: sleep
     - id: 22
       name: error_code
       type: integer

+ 17 - 0
custom_components/tuya_local/translations/en.json

@@ -163,6 +163,23 @@
                     }
                 }
             }
+        },
+        "fan": {
+            "_": {
+                "state_attributes": {
+                    "preset_mode": {
+                        "state": {
+                            "normal": "Normal",
+                            "nature": "Natural",
+                            "sleep": "Sleep",
+                            "fresh": "Fresh",
+                            "smart": "Smart",
+                            "strong": "Strong",
+                            "off": "Off",
+                        }
+                    }
+                }
+            }
         }
     }
 }

+ 3 - 3
tests/devices/test_arlec_fan.py

@@ -52,7 +52,7 @@ class TestArlecFan(SwitchableTests, BasicSelectTests, TuyaDeviceTestCase):
         self.assertEqual(self.subject.preset_mode, "normal")
 
         self.dps[PRESET_DPS] = "breeze"
-        self.assertEqual(self.subject.preset_mode, "breeze")
+        self.assertEqual(self.subject.preset_mode, "nature")
 
         self.dps[PRESET_DPS] = "sleep"
         self.assertEqual(self.subject.preset_mode, "sleep")
@@ -61,7 +61,7 @@ class TestArlecFan(SwitchableTests, BasicSelectTests, TuyaDeviceTestCase):
         self.assertIs(self.subject.preset_mode, None)
 
     def test_preset_modes(self):
-        self.assertCountEqual(self.subject.preset_modes, ["normal", "breeze", "sleep"])
+        self.assertCountEqual(self.subject.preset_modes, ["normal", "nature", "sleep"])
 
     async def test_set_preset_mode_to_normal(self):
         async with assert_device_properties_set(
@@ -75,7 +75,7 @@ class TestArlecFan(SwitchableTests, BasicSelectTests, TuyaDeviceTestCase):
             self.subject._device,
             {PRESET_DPS: "breeze"},
         ):
-            await self.subject.async_set_preset_mode("breeze")
+            await self.subject.async_set_preset_mode("nature")
 
     async def test_set_preset_mode_to_sleep(self):
         async with assert_device_properties_set(

+ 5 - 5
tests/devices/test_aspen_adv200_fan.py

@@ -122,27 +122,27 @@ class TestAspenASP200Fan(
             await self.subject.async_set_percentage(80)
 
     def test_fan_preset_modes(self):
-        self.assertCountEqual(self.subject.preset_modes, ["constant", "auto"])
+        self.assertCountEqual(self.subject.preset_modes, ["normal", "smart"])
 
     def test_fan_preset_mode(self):
         self.dps[PRESET_DPS] = False
-        self.assertEqual(self.subject.preset_mode, "constant")
+        self.assertEqual(self.subject.preset_mode, "normal")
         self.dps[PRESET_DPS] = True
-        self.assertEqual(self.subject.preset_mode, "auto")
+        self.assertEqual(self.subject.preset_mode, "smart")
 
     async def test_fan_set_preset_to_constant(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: False},
         ):
-            await self.subject.async_set_preset_mode("constant")
+            await self.subject.async_set_preset_mode("normal")
 
     async def test_fan_set_preset_to_auto(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: True},
         ):
-            await self.subject.async_set_preset_mode("auto")
+            await self.subject.async_set_preset_mode("smart")
 
     def test_climate_current_temperature(self):
         self.dps[CURTEMP_DPS] = 24

+ 3 - 3
tests/devices/test_himox_h05_purifier.py

@@ -98,15 +98,15 @@ class TestHimoxH05Purifier(
     def test_preset_modes(self):
         self.assertCountEqual(
             self.subject.preset_modes,
-            ["auto", "low", "mid", "high"],
+            ["smart", "sleep", "fresh", "strong"],
         )
 
     def test_preset_mode(self):
         self.dps[PRESET_DPS] = "low"
-        self.assertEqual(self.subject.preset_mode, "low")
+        self.assertEqual(self.subject.preset_mode, "sleep")
 
     async def test_set_preset_mode(self):
         async with assert_device_properties_set(
             self.subject._device, {PRESET_DPS: "mid"}
         ):
-            await self.subject.async_set_preset_mode("mid")
+            await self.subject.async_set_preset_mode("fresh")

+ 5 - 5
tests/devices/test_immax_neo_light_vento.py

@@ -61,7 +61,7 @@ class TestImmaxNeoLightVento(
         )
 
     def test_preset_modes(self):
-        self.assertCountEqual(self.fan.preset_modes, ["Normal", "Natural", "Sleep"])
+        self.assertCountEqual(self.fan.preset_modes, ["normal", "nature", "sleep"])
 
     def test_speed(self):
         self.dps[SPEED_DPS] = 2
@@ -79,13 +79,13 @@ class TestImmaxNeoLightVento(
 
     def test_preset_mode(self):
         self.dps[PRESET_DPS] = "normal"
-        self.assertEqual(self.fan.preset_mode, "Normal")
+        self.assertEqual(self.fan.preset_mode, "normal")
 
         self.dps[PRESET_DPS] = "nature"
-        self.assertEqual(self.fan.preset_mode, "Natural")
+        self.assertEqual(self.fan.preset_mode, "nature")
 
-        self.dps[PRESET_DPS] = "Sleep"
-        self.assertEqual(self.fan.preset_mode, "Sleep")
+        self.dps[PRESET_DPS] = "sleep"
+        self.assertEqual(self.fan.preset_mode, "sleep")
 
     def test_direction(self):
         self.dps[DIRECTION_DPS] = "forward"

+ 9 - 9
tests/devices/test_lexy_f501_fan.py

@@ -63,16 +63,16 @@ class TestLexyF501Fan(
 
     def test_preset_mode(self):
         self.dps[PRESET_DPS] = "forestwindhigh"
-        self.assertEqual(self.subject.preset_mode, "Forest High")
+        self.assertEqual(self.subject.preset_mode, "strong")
 
         self.dps[PRESET_DPS] = "forestwindlow"
-        self.assertEqual(self.subject.preset_mode, "Forest Low")
+        self.assertEqual(self.subject.preset_mode, "nature")
 
         self.dps[PRESET_DPS] = "sleepwindlow"
-        self.assertEqual(self.subject.preset_mode, "Sleep Low")
+        self.assertEqual(self.subject.preset_mode, "sleep")
 
         self.dps[PRESET_DPS] = "sleepwindhigh"
-        self.assertEqual(self.subject.preset_mode, "Sleep High")
+        self.assertEqual(self.subject.preset_mode, "fresh")
 
         self.dps[PRESET_DPS] = None
         self.assertIs(self.subject.preset_mode, None)
@@ -80,7 +80,7 @@ class TestLexyF501Fan(
     def test_preset_modes(self):
         self.assertCountEqual(
             self.subject.preset_modes,
-            ["Forest High", "Forest Low", "Sleep High", "Sleep Low"],
+            ["strong", "nature", "fresh", "sleep"],
         )
 
     async def test_set_preset_mode_to_foresthigh(self):
@@ -88,28 +88,28 @@ class TestLexyF501Fan(
             self.subject._device,
             {PRESET_DPS: "forestwindhigh"},
         ):
-            await self.subject.async_set_preset_mode("Forest High")
+            await self.subject.async_set_preset_mode("strong")
 
     async def test_set_preset_mode_to_forestlow(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: "forestwindlow"},
         ):
-            await self.subject.async_set_preset_mode("Forest Low")
+            await self.subject.async_set_preset_mode("nature")
 
     async def test_set_preset_mode_to_sleephigh(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: "sleepwindhigh"},
         ):
-            await self.subject.async_set_preset_mode("Sleep High")
+            await self.subject.async_set_preset_mode("fresh")
 
     async def test_set_preset_mode_to_sleeplow(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: "sleepwindlow"},
         ):
-            await self.subject.async_set_preset_mode("Sleep Low")
+            await self.subject.async_set_preset_mode("sleep")
 
     def test_oscillating(self):
         self.dps[OSCILLATE_DPS] = "off"

+ 7 - 7
tests/devices/test_poiema_one_purifier.py

@@ -111,34 +111,34 @@ class TestPoeimaOnePurifier(
     def test_preset_modes(self):
         self.assertCountEqual(
             self.subject.preset_modes,
-            ["Manual", "Auto", "Sleep"],
+            ["normal", "smart", "sleep"],
         )
 
     def test_preset_mode(self):
         self.dps[MODE_DPS] = "manual"
-        self.assertEqual(self.subject.preset_mode, "Manual")
+        self.assertEqual(self.subject.preset_mode, "normal")
         self.dps[MODE_DPS] = "auto"
-        self.assertEqual(self.subject.preset_mode, "Auto")
+        self.assertEqual(self.subject.preset_mode, "smart")
         self.dps[MODE_DPS] = "sleep"
-        self.assertEqual(self.subject.preset_mode, "Sleep")
+        self.assertEqual(self.subject.preset_mode, "sleep")
 
     async def test_set_preset_to_manual(self):
         async with assert_device_properties_set(
             self.subject._device,
             {MODE_DPS: "manual"},
         ):
-            await self.subject.async_set_preset_mode("Manual")
+            await self.subject.async_set_preset_mode("normal")
 
     async def test_set_preset_to_auto(self):
         async with assert_device_properties_set(
             self.subject._device,
             {MODE_DPS: "auto"},
         ):
-            await self.subject.async_set_preset_mode("Auto")
+            await self.subject.async_set_preset_mode("smart")
 
     async def test_set_preset_to_sleep(self):
         async with assert_device_properties_set(
             self.subject._device,
             {MODE_DPS: "sleep"},
         ):
-            await self.subject.async_set_preset_mode("Sleep")
+            await self.subject.async_set_preset_mode("sleep")

+ 9 - 9
tests/devices/test_renpho_rp_ap001s.py

@@ -82,46 +82,46 @@ class TestRenphoPurifier(
     def test_preset_modes(self):
         self.assertCountEqual(
             self.subject.preset_modes,
-            ["low", "mid", "high", "auto"],
+            ["sleep", "fresh", "strong", "smart"],
         )
 
     def test_preset_mode(self):
         self.dps[PRESET_DPS] = "low"
-        self.assertEqual(self.subject.preset_mode, "low")
+        self.assertEqual(self.subject.preset_mode, "sleep")
         self.dps[PRESET_DPS] = "mid"
-        self.assertEqual(self.subject.preset_mode, "mid")
+        self.assertEqual(self.subject.preset_mode, "fresh")
         self.dps[PRESET_DPS] = "high"
-        self.assertEqual(self.subject.preset_mode, "high")
+        self.assertEqual(self.subject.preset_mode, "strong")
         self.dps[PRESET_DPS] = "auto"
-        self.assertEqual(self.subject.preset_mode, "auto")
+        self.assertEqual(self.subject.preset_mode, "smart")
 
     async def test_set_preset_mode_to_low(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: "low"},
         ):
-            await self.subject.async_set_preset_mode("low")
+            await self.subject.async_set_preset_mode("sleep")
 
     async def test_set_preset_mode_to_mid(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: "mid"},
         ):
-            await self.subject.async_set_preset_mode("mid")
+            await self.subject.async_set_preset_mode("fresh")
 
     async def test_set_preset_mode_to_high(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: "high"},
         ):
-            await self.subject.async_set_preset_mode("high")
+            await self.subject.async_set_preset_mode("strong")
 
     async def test_set_preset_mode_to_auto(self):
         async with assert_device_properties_set(
             self.subject._device,
             {PRESET_DPS: "auto"},
         ):
-            await self.subject.async_set_preset_mode("auto")
+            await self.subject.async_set_preset_mode("smart")
 
     def test_extra_state_attributes(self):
         self.dps[TIMER_DPS] = "19"

+ 9 - 9
tests/devices/test_vork_vk6067aw_purifier.py

@@ -107,38 +107,38 @@ class TestVorkVK6267AWPurifier(
     def test_preset_modes(self):
         self.assertCountEqual(
             self.subject.preset_modes,
-            ["Low", "Mid", "High", "Auto", "Sleep"],
+            ["nature", "fresh", "strong", "smart", "sleep"],
         )
 
     def test_preset_mode(self):
         self.dps[MODE_DPS] = "low"
-        self.assertEqual(self.subject.preset_mode, "Low")
+        self.assertEqual(self.subject.preset_mode, "nature")
         self.dps[MODE_DPS] = "mid"
-        self.assertEqual(self.subject.preset_mode, "Mid")
+        self.assertEqual(self.subject.preset_mode, "fresh")
         self.dps[MODE_DPS] = "high"
-        self.assertEqual(self.subject.preset_mode, "High")
+        self.assertEqual(self.subject.preset_mode, "strong")
         self.dps[MODE_DPS] = "auto"
-        self.assertEqual(self.subject.preset_mode, "Auto")
+        self.assertEqual(self.subject.preset_mode, "smart")
         self.dps[MODE_DPS] = "sleep"
-        self.assertEqual(self.subject.preset_mode, "Sleep")
+        self.assertEqual(self.subject.preset_mode, "sleep")
 
     async def test_set_preset_to_low(self):
         async with assert_device_properties_set(
             self.subject._device,
             {MODE_DPS: "low"},
         ):
-            await self.subject.async_set_preset_mode("Low")
+            await self.subject.async_set_preset_mode("nature")
 
     async def test_set_preset_to_auto(self):
         async with assert_device_properties_set(
             self.subject._device,
             {MODE_DPS: "auto"},
         ):
-            await self.subject.async_set_preset_mode("Auto")
+            await self.subject.async_set_preset_mode("smart")
 
     async def test_set_preset_to_sleep(self):
         async with assert_device_properties_set(
             self.subject._device,
             {MODE_DPS: "sleep"},
         ):
-            await self.subject.async_set_preset_mode("Sleep")
+            await self.subject.async_set_preset_mode("sleep")