try this:
- platform: mqtt
name: "Master Bedroom Fan"
command_topic: "cmnd/iFan03-2/FanSpeed"
state_topic: "stat/iFan03-2/RESULT"
state_value_template: >
{% if value_json.FanSpeed is defined %}
{% if value_json.FanSpeed == 0 -%}off{%- elif value_json.FanSpeed > 0 -%}on{%- endif %}
{% else %}
{% if states.fan.master_bedroom_fan.state == 'off' -%}off{%- elif states.fan.master_bedroom_fan.state == 'on' -%}on{%- endif %}
{% endif %}
availability_topic: tele/iFan03-2/LWT
payload_off: "off"
payload_on: "on"
payload_available: Online
payload_not_available: Offline
percentage_command_template: >
{% if value == 33 %}
1
{% elif value == 67 %}
2
{% elif value == 100 %}
3
{% else %}
0
{% endif %}
percentage_command_topic: "cmnd/iFan03-2/FanSpeed"
percentage_state_topic: "stat/iFan03-2/RESULT"
percentage_value_template: >
{% if value_json.FanSpeed == 1 %}
33
{% elif value_json.FanSpeed == 2 %}
67
{% elif value_json.FanSpeed == 3 %}
100
{% else %}
0
{% endif %}
it seems to be working except I can’t figure out how to limit the step stops in the speed slider for the pop up to be only three steps.
Right now it has steps of 1% instead of 33%.
Does anyone know how to define how many speeds there are for the mqtt fan?
That doesn’t seem to be an option like it is for the template fan.