This seems to me like an obvious “what the heck” feature. When you call media_player.volume_up or media_player.volume_down, you should be able to change the step of the action. By default it is 0.01, which is not a very useful increment for things like Sonos…
I thought it was 0.1.
I believe the issue is that media_player.volume_up is universal and will run on all media players.
One device might want 0.01 when another should have 0.15, and setting a universal service to one value is not ideal.
I really believe this is one of those things you just need to create specific for each device.
you just make a set volume service call and use the current volume ± x in a template.
In an integration you can provide a specific volume_up/down
implementation to take control of the up/down behavior. So if an integration indicates that it supports the VOLUME_STEP
feature, but does not provide its own implementation then HA will use the default implementation which is steps of 0.1. Which on my Sonos is quite big, but that might also depend on placement as mine are in rather small rooms where half volume is already waaaaay too loud.
For the custom integration for my receiver I made it so it goes up/down with 0.5dB steps as it does when pressing +/- on the native remote/app . Which in the end translates to a step of 0.0062111801242236
Not sure why the default is 10%, maybe it could be lower?
or Sonos integration could override it to be lower.
Yeah that’s what I’m doing currently. I figured the reasoning for not having this feature was similar to what you described.