The problem:
Fan will not always start when minimum speed is set. This is due to some dust that gets into itâs bearing.
I would like to have an additional warmup_time: 5s variable, that will set speed_range_max to command topic for first 5s, and then revert back to speed set from UI.
It partially works with my configuration - âpayload_onâ is sent first, and then I can setup target speed from UI, what is missing that that target speed should be sent after warmup time.
You are going to have a hard time getting core to change a integration like that for something you could easily build with a script you could call.
Turn on fan 100%, delay 5 seconds, set fan speed to whatever speed was passed in as data on the service callâŚ
I have not written any script for hass yet, but I have feeling that this is not that easy.
This script should block user input for speed changes for 5s. It should block UI update too, so if user sets fan speed to 60% he/she should not see 100% for 5s.
Did this almost completely in the UI. Had to add the template for the final fan speed in yaml but thatâs it.
You would call it with a service call to script.test_fan_speed and the data being the speed you want to set sent as fanspeed.
I agree with Sir_Goodenough that itâs unlikely this Feature Request will be fulfilled for the reasons mentioned.
You may wish to consider exploring the possibility of using a Template Fan as a proxy for your MQTT Fan. A Template Fan supports scripting so you can configure it to control your existing MQTT Fan and behave in whatever manner you require.
Every fan that I know about either goes to high first, or in the case of controllers for ceiling fans hits high first then the speed you select. Because the majority of fans do this by design, thatâs another reason the fan code is unlikely to change for this function.