Modern Forms Smart Fans - Integration

If you read back through this thread, you’ll find out that you are not alone with the MFFs locking up after a period of time. It appears as if it’s a wide-spread issue.

It has gotten better with my fans over the last 9 or so months, which I attribute to the firmware updates, as well as apparently very well written HA core integration.

1 Like

When I first got the fan the remote and HA controls worked fine. But something happened now I can’t use the physical remote any more. It seems like WAC wants me to power cycle the fan to repair the remote.

But I don’t really want to turn the circuit off outside to do that. Anyone know another way?

Unpairing it by holding the light + and the fan + then repairing it by holding the light button and the fan button does not work.

Are you saying that your fan doesn’t have a physical wall switch to simply turn off and then back on?

Curious how stable this integration is… anyone provide an update on if restarts are still required? Is it on the fan side or HA?

100% stable now. I haven’t had issues for the past two years and I have 4 fans.

1 Like

I have been using this for over six months now with two fans.

Disconnecting several times. The last one kept disconnected for several hours and required powering off the fan.
It has nothing to do with the integration. It simply loses wifi connection. Signal is not that strong but what can you expect when the fan wifi is in a metal enclosure?

image

I own two of WAC’s smart fans. I specifically purchased these for their smart capabilities as I read they work well with Home Assistant via the Modern Forms integration. After installing them, I encountered an issue where the fan connects and everything works fine for about a week, and then stops responding and appears offline. The fan is still connected to my WiFi (I can see it on my router) but it won’t respond to pings or commands to operate the fan. I had to shut off the power to the fan for a few seconds and turn it back on to force it to reboot, and then the fan will come back online and will work perfectly fine for about another week. Both of my fans did this same thing at random times, so I know it’s a firmware issue and not something with my network. Working with support was tedious. It took 8 months and 73 emails but finally the issue has been resolved by way of them releasing a firmware update around March 2024. The fans have now been stable and I am pleased with them again. If anyone is still having issues with them, make sure your firmware on the fan is up to date.

3 Likes

TLDR: No more network disconnects… Thank you

I can’t believe I finely found the answer to solve this issue where my MF fans drop wifi and needi to be rebooted daily…

I got a instant dopamine release when I plugged this code into my YAML file and ran the RESTful command and saw my fans disconnect & reconnect to the network.

Thank you guys so much… You have no idea how many hundreds of google searches I’ve done regarding this issue.

I have no idea what update the guy above me got but my MF fans have been disconnecting for years and no updates have come close to fixing it. Currently I’m on Firmware Version: 20.00.0040

Here is the code I’m running in July 2024

configuration.yaml :

rest_command:
  reboot_mf_lr_fan:
    url: "http://192.168.50.10/mf"
    method: POST
    headers:
      content_type: "application/json; charset=utf-8"
    payload: '{"reboot": true}'

automations.yaml:

alias: Reboot MF Fans
description: ""
trigger:
  - platform: time_pattern
    hours: /8
condition: []
action:
  - service: rest_command.reboot_mf_lr_fan
    data: {}
mode: single

I also had to disable “polling for updates” under system options for each fan in the UI and make an automation to poll each fan every 5 minutes.

automations.yaml:

alias: "Homeassistant Polling: Moderforms Fans"
description: Custom poll interval.
trigger:
  - platform: time_pattern
    minutes: /5
condition: []
action:
  - action: homeassistant.update_entity
    metadata: {}
    data:
      entity_id:
        - fan.living_room_fan
        - fan.master_bedroom_fan
        - fan.guest_bedroom_fan
mode: single

And as a bonus…
Incase anyone is also looking for an answer to Modern Forms Breeze Mode through Home Assistant, I found that too.

Breeze Mode On:

  breeze_on_mf_lr:
    url: "http://192.168.50.10/mf"
    method: POST
    headers:
      content_type: "application/json; charset=utf-8"
    payload: '{"wind": true}'

Breeze Mode Off:

  breeze_off_mf_lr:
    url: "http://192.168.50.10/mf"
    method: POST
    headers:
      content_type: "application/json; charset=utf-8"
    payload: '{"wind": false}'

Ah! This cleared up my code. However, I still am having problems putting this into a restful toggle switch to turn Breeze Mode on and off. Do you have any suggestions for this? Thanks!

I’ve tried making a RESTfull Switch according to the documentation but I can’t get the entity to show up if my life depended on it.

Hopefully someone else can help us there.

OK, so I have completed a toggle that turns “Wind Mode” “On” and “Off” for the Modern Forms fan. It ain’t pretty but it works. Several site-specific changes have to be made:

  1. You have to create specific Yaml code for each fan in your home because I hard-coded each fan’s IP address.
  2. The card component I use is custom:button-card, so if you do not have that installed (hacs installed) you will have to come up with the switch or button component on your own.

This change is cosmetic:
3) For a more seamless button appearance, I use card_mod. This is NOT needed for functionality.

Here is the code to add to your Yaml code in the location that makes the most sense for you. For clarity, I will pretend it is in configuration.yaml. This version looks for the fan at IP: 192.168.20.11. Change this to reflect the respective IP for your fan. Also change the switch name to reflect your environment. The command_line switch looks like this:

command_line:
  - switch:
      name: "windmode_paul_office"
      command_on: curl -d '{"wind":true}' -X POST http://192.168.20.11/mf
      command_off: curl -d '{"wind":false}' -X POST http://192.168.20.11/mf

Next add the button using a custom:button-card in a vertical grid with other components. For my use, I hard-coded colors so “Off” would look greyed out and “On” (wind mode) would be light blue. Here is the entity information:

      - type: custom:button-card
        entity: switch.windmode_paul_office
        name: Windy Mode
        layout: icon_name_state
        size: 15%
        styles:
          icon:
            - color: >
                [[[ if (entity.state == "on") return "#01A9F4" ; else return
                "#7F7F7F"; ]]]
        state:
          - value: 'off'
            icon: mdi:scent-off
          - value: 'on'
            icon: mdi:weather-windy

I used card_mod to remove the button border. The card _mod changes are TOTALLY optional and a cleaner look can be accomplished in other ways.

        card_mod:
          style: |
            ha-card {
              border-bottom: 0px;
              margin-bottom: -10px;
              border-top: none;
              border-bottom: none;
              border-left: none;
              border-right: none;
              }

My Fan & Fan Light with the “Windy” button:

WindMode

Paul