Loudness feature

dr_kolew

New member
Joined
Aug 21, 2025
Messages
1
Hello Wiim Team,

First of all, congratulations on your excellent products – the Wiim Ultra in particular has become a true centerpiece in many audio systems.

I’d like to suggest a feature that would be very valuable to many users and, from a technical point of view, shouldn’t be too demanding to implement: Smart (Adaptive) Loudness.

Instead of a fixed loudness curve, this function would dynamically adjust bass and treble compensation in relation to the current volume level (0–100). At very low listening levels, more compensation would be applied to preserve fullness and balance, while at higher levels the effect would gradually diminish until it is no longer needed.

Such an adaptive loudness would allow listeners to enjoy natural, full-range sound at any listening volume without having to manually change EQ settings.

This feature is widely appreciated on some high-end audio systems (e.g. Yamaha’s “YPAO Volume”) and would be a perfect fit for Wiim devices, making them even more user-friendly and audiophile-oriented.

Thank you for considering this suggestion!
 
Upvote 6
Hello, I have home assistant at home, so I've set this up with 3 eq profiles with varying level of bass for low, mid and high volume (1-35, 36 to 50, and up).
I've setup a Home assistant automation as I've discovered the Wiim Amp as DLNA media player to monitor the volume level and apply the eq profile using the API, this way I have some loudness level since I use low to mid volume variably.

(I've also added an automation as well with a smart switch the option to turn on/off the custom sub I've made for now since I don't have the right speakers at the moment and I need a sub to give a nice low end).
If anyone is interested I can share the yaml.
Interested! :)
 
I'd be interested, thank you.
Sure. You'll need 3 EQ Profiles, below are named LoudnessSeba1, 2 and 3 in the app
On HomeAssistant configuration, at the devices option you can discover Wiim as a DLNA Renderer/Player, add it and that's it.

This is going to be your automation, make sure you edit the device "media_player.wiim_2" to match your discovered wiim device.

YAML:
alias: EQ auto-switch based on volume
triggers:
  - entity_id: media_player.wiim_2
    attribute: volume_level
    trigger: state
actions:
  - variables:
      vol: "{{ state_attr('media_player.wiim_2', 'volume_level') | float * 100 }}"
      new_profile: |
        {% if vol < 35 %}
          LoudnessSeba1
        {% elif vol < 60 %}
          LoudnessSeba2
        {% else %}
          LoudnessSeba3
        {% endif %}
      log_message: "Volume detected: {{ vol | round(1) }} → Profile: {{ new_profile }}"
  - choose: []
    default: []
    alias: "{{ log_message }}"
  - condition: template
    value_template: "{{ states('input_text.current_eq_profile') != new_profile }}"
  - data:
      profile: "{{ new_profile }}"
    action: rest_command.wiim_eq
  - data:
      entity_id: input_text.current_eq_profile
      value: "{{ new_profile }}"
    action: input_text.set_value
mode: single

Then you need to edit configuration.yaml to add the following lines at the end.

YAML:
rest_command:
  wiim_eq:
    url: "https://wiim.local/httpapi.asp?command=EQLoad:{{ profile }}"
    method: get
    verify_ssl: false

Restart home assistant and you can now test the automation to make sure it works by moving the volume lever and check the EQ settings on the app. You can debug the automation on the Trace option of the automation. This code is copied from my HASS so I know it works.
ChatGPT made it so can help you setting up. See that in the second code snippet I setup the URL to wiim.local, if it doesn't work you'll need to use the ip address but I don't think it'll fail like this.

Feel free to contact me if needed to set it up.
 
Last edited:
Sure. You'll need 3 EQ Profiles, below are named LoudnessSeba1, 2 and 3 in the app
On HomeAssistant configuration, at the devices option you can discover Wiim as a DLNA Renderer/Player, add it and that's it.

This is going to be your automation, make sure you edit the device "media_player.wiim_2" to match your discovered wiim device.

YAML:
alias: EQ auto-switch based on volume
triggers:
  - entity_id: media_player.wiim_2
    attribute: volume_level
    trigger: state
actions:
  - variables:
      vol: "{{ state_attr('media_player.wiim_2', 'volume_level') | float * 100 }}"
      new_profile: |
        {% if vol < 35 %}
          LoudnessSeba1
        {% elif vol < 60 %}
          LoudnessSeba2
        {% else %}
          LoudnessSeba3
        {% endif %}
      log_message: "Volume detected: {{ vol | round(1) }} → Profile: {{ new_profile }}"
  - choose: []
    default: []
    alias: "{{ log_message }}"
  - condition: template
    value_template: "{{ states('input_text.current_eq_profile') != new_profile }}"
  - data:
      profile: "{{ new_profile }}"
    action: rest_command.wiim_eq
  - data:
      entity_id: input_text.current_eq_profile
      value: "{{ new_profile }}"
    action: input_text.set_value
mode: single

Then you need to edit configuration.yaml to add the following lines at the end.

YAML:
rest_command:
  wiim_eq:
    url: "https://wiim.local/httpapi.asp?command=EQLoad:{{ profile }}"
    method: get
    verify_ssl: false

Restart home assistant and you can now test the automation to make sure it works by moving the volume lever and check the EQ settings on the app. You can debug the automation on the Trace option of the automation. This code is copied from my HASS so I know it works.
ChatGPT made it so can help you setting up. See that in the second code snippet I setup the URL to wiim.local, if it doesn't work you'll need to use the ip address but I don't think it'll fail like this.

Feel free to contact me if needed to set it up.
Thank you
 
Back
Top