name: Humidifier
products:
  - id: d6i3plbgjh3urikx
    manufacturer: Wilfa
    model: Moist C
    model_id: HU-430CW
entities:
  - entity: humidifier
    class: humidifier
    dps:
      - id: 1
        name: switch
        type: boolean
        mapping:
          - dps_val: true
            icon: "mdi:air-humidifier"
          - dps_val: false
            icon: "mdi:air-humidifier-off"
      - id: 13
        name: humidity
        type: integer
        range:
          min: 30
          max: 90  # 95 is "Co"
        mapping:
          - step: 5
      - id: 14
        name: current_humidity
        type: integer

  - entity: switch
    name: Continuous Mode  # The 95 "Co" humidity setting
    category: config
    icon: "mdi:infinity"
    dps:
      - id: 13
        name: switch
        type: integer
        mapping:
          - dps_val: 95  # If device is 95, Switch is ON
            value: true
          - value: false  # If device is anything else (30-90), Switch is OFF
            dps_val: 40   # Default value when turning OFF (back to normal)

  - entity: fan
    name: Mist Level
    dps:
      - id: 1
        name: switch
        type: boolean
      - id: 23
        name: speed
        type: string
        mapping:
          - dps_val: level_1
            value: 30
          - dps_val: level_2
            value: 60
          - dps_val: level_3
            value: 100
  - entity: switch
    translation_key: sleep
    category: config
    dps:
      - id: 16
        name: switch
        type: boolean
  - entity: switch
    name: Heat
    category: config
    icon: "mdi:fire"
    dps:
      - id: 26
        name: switch
        type: boolean
  - entity: switch
    translation_key: ionizer
    category: config
    dps:
      - id: 35
        name: switch
        type: boolean
  - entity: sensor
    class: temperature
    dps:
      - id: 10
        name: sensor
        type: integer
        class: measurement
      - id: 18
        name: unit
        type: string
        mapping:
          - dps_val: c
            value: C
          - dps_val: f
            value: F
  - entity: select
    category: config
    translation_key: temperature_unit
    dps:
      - id: 18
        name: option
        type: string
        mapping:
          - dps_val: c
            value: celsius
          - dps_val: f
            value: fahrenheit
  - entity: select
    translation_key: timer
    category: config
    dps:
      - id: 19
        name: option
        type: string
        mapping:
          - dps_val: cancel
            value: cancel
          - dps_val: "1h"
            value: "1h"
          - dps_val: "2h"
            value: "2h"
          - dps_val: "3h"
            value: "3h"
          - dps_val: "4h"
            value: "4h"
          - dps_val: "5h"
            value: "5h"
          - dps_val: "6h"
            value: "6h"
          - dps_val: "7h"
            value: "7h"
          - dps_val: "8h"
            value: "8h"
          - dps_val: "9h"
            value: "9h"
          - dps_val: "10h"
            value: "10h"
          - dps_val: "11h"
            value: "11h"
          - dps_val: "12h"
            value: "12h"
  - entity: sensor
    translation_key: time_remaining
    category: diagnostic
    dps:
      - id: 20
        name: sensor
        type: integer
        unit: min
  - entity: binary_sensor
    translation_key: tank_empty
    category: diagnostic
    dps:
      - id: 22
        type: bitfield
        name: sensor
        mapping:
          - dps_val: 1
            value: true
          - value: false
  - entity: binary_sensor
    class: problem
    category: diagnostic
    dps:
      - id: 22
        type: bitfield
        name: sensor
        mapping:
          - dps_val: 0
            value: false
          - dps_val: 1
            value: false
          - value: true
      - id: 22
        type: bitfield
        name: fault_code
