Category: Roof ventilator

  • 2012 Max Air roof ventilator integrated into the Home Assistant via infrared

    The "Max Air" roof vent from the brand "2012" (yes, it really is called that) is one of the best roof vents I've seen so far. With a price of only around €200 and really good workmanship, it is simply impressive.

    I will discuss the exact advantages and disadvantages in a future blog post. The main focus here will be on how to integrate the fan control into Home Assistant.

    2012 Max Air roof ventilator
    • [Low-noise brushless motor - five times longer service life than conventional brush motors]: Exclusive brushless motor solution that operates with extremely low noise. Powerful...

    Letzte Aktualisierung am 14.04.2026 / Werbung / Bilder von der Amazon Product Advertising API

    Status quo

    The fan is supplied with a simple infrared remote control. There are also buttons on the device.

    The only interface without opening or otherwise manipulating the device is therefore to use the infrared interface on the underside of the device to trigger certain actions such as opening and closing the flap

    Infrared reverse engineering

    Reverse engineering is a big word in this context, but it is actually exactly what is needed here: In order to simulate a button press on the original remote control with Home Assistant, we need the exact infrared codes that are sent by the remote control. We can then send the codes with an ESP32 and ESPHome via an IR transmitter and have thus enabled remote control via Home Assistant for just a few euros.

    What do we need?

    The following components can be used to read the codes and then send them again.

    ESP32 for controlling the IR diodes

    Offer
    ESP32
    • Powerful ESP32 microcontroller installed! An absolute novelty on the market! The ESP32 ethernet is an absolute all-rounder. It is characterized by its compact design. For the...

    Letzte Aktualisierung am 14.04.2026 / Werbung / Bilder von der Amazon Product Advertising API

    Alternatively, other microcontrollers, such as an ESP8266, can also be used as long as they are supported by ESPHome.

    IR transmitter and receiver

    IR transmitter and receiver
    • IR is widely used for remote control. With this IR receiver set, the Arduino Project is able to transmit command to any IR remote receiver if you have the correct decoder.

    Letzte Aktualisierung am 14.04.2026 / Werbung / Bilder von der Amazon Product Advertising API

    I deliberately chose exactly this article, as the IR diodes are provided directly with the appropriate resistors and can be easily connected to the ESP with jumper cables.

    Record IR codes

    Of course, I first researched whether there were already known codes on the Internet that I could simply use. Although there are many instructions for integrating classic fans or air conditioning systems, I couldn't find anything suitable for roof fans. The brand "2012" is also rather unknown, which doesn't make things easy.

    Fortunately, the IR codes sent by the remote control are very easy to read and after a while I found the right combination. As you can see here in the video:

    The matching codes

    The following commands can be sent to the roof fan. At least that's all I've found out. There may be more, but there is already a bit more than with the original remote control:

    OPEN:
      address: 0x7F80
      command: 0xED12
    CLOSE:
      address: 0x7F80
      command: 0xF00F
    AIR IN:
      address: 0x7F80
      command: 0xF50A
    AIR OUT:
      address: 0x7F80
      command: 0xE01F
    STOP:
      address: 0x7F80
      command: 0xFA05
    LID UP:
      address: 0x7F80
      command: 0xFB04
    LID DOWN:
      address: 0x7F80
      command: 0xF906
    RAIN MODE:
      address: 0x7F80
      command: 0xE11E

    For example, there is a "Stop" command or one for "Lid-Up" or "Lid-Down", with which you can move the hatch up or down in small steps. The remaining commands are self-explanatory. They correspond to the commands on the remote control and on the device itself.

    If you use these codes and combine them with simple button entities in ESPHome, you can emulate the remote control and integrate it into Home Assistant.

    Complete ESP Home code
    esphome:
      name: fan-remote-esp8285
      platform: ESP8266
      board: esp8285
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
    captive_portal:
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
    
    web_server:
      version: 3
    
    ota:
      platform: esphome
    
    remote_receiver:
      pin:
        number: GPIO14
        inverted: True
      dump: nec
    
    remote_transmitter:
      id: my_remote_transmitter
      pin: GPIO4
      carrier_duty_percent: 50%
    
    button:
      - platform: template
        name: Open
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xED12
              repeat: 2
          - delay: 500ms
    
      - platform: template
        name: Close
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xF00F
              repeat: 2
          - delay: 500ms
    
      - platform: template
        name: Air In
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xF50A
              repeat: 2
          - delay: 500ms
    
      - platform: template
        name: Air Out
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xE01F
              repeat: 2
          - delay: 500ms
    
      - platform: template
        name: Stop
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xFA05
              repeat: 2
          - delay: 500ms
    
      - platform: template
        name: Lid Up
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xFB04
              repeat: 2
          - delay: 500ms
    
      - platform: template
        name: Lid Down
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xF906
              repeat: 2
          - delay: 500ms
    
      - platform: template
        name: Rain Mode
        on_press:
          - remote_transmitter.transmit_nec:
              address: 0x7F80
              command: 0xE11E
              repeat: 2
          - delay: 500ms

    I'm still working on a good UI in Home Assistant. Until then, I'm using a simple entity list to display all the buttons one below the other:

    Automations

    Now that control is possible via Home Assistant for the first time, it is of course possible to implement some automations that can automatically ensure a better climate in the camper. For example:

    1. Open the hatch automatically once a day, ventilate at the highest level for 30 minutes and then close again.
      Particularly exciting when the camper is in storage.
    2. Ventilate automatically as soon as the humidity rises above a certain level.
      This is particularly easy to implement if you have a sensor indoors and outdoors so that you can compare the values. If the air outside is drier than inside, it is worth ventilating.
    3. Automatic start as an extractor hood when the hob is activated.
      This is particularly useful when cooking with an induction hob.

    Conclusion

    Control via IR is the easiest way to integrate the Max Air from 2012 into Home Assistant. However, there is one decisive disadvantage: the IR transmitter of the ESP always needs a clear view of the IR port of the fan. A good position in the camper is therefore a prerequisite. In future, I may try to control the circuit board or the motor directly in order to achieve even better control and, for example, to be able to set an individual speed. Because over-engineering always comes first 🤝🏻