ESPHome + Hubitat

It's all good, I am just grateful for the continued work on the integration. Even my wife is impressed by the combo of hubitat and ratgdo, which helps support my continued use of all this home automation stuff :). Most everything else she is bored by, but when I got the motion sensors from the garage door openers to trigger the brighter overhead lights automatically, that finally got her attention!

1 Like

lucky man, WAF through the roof!!! :face_with_hand_over_mouth:

I have a problem which is becoming more frequent.

I have an esphome device ESP32 setup to act as a MQTT client to my Hisense TV which runs a broker. The yaml and HE setup run perfectly.

Except, when either is restarted the ESPHome - Hubitat device which is using driver ESPHome Multi Switch & Contact Sensor will fails to connect with error:

Hisense TV is offline: send error: Broken pipe (Write failed)

The only way I have been able to reconnect is to change the devices driver to ESPHome Switch and then after it connects change the device driver back to multi switch/contact sensor.

Any ideas would be appreciated.

Also, in order to use MQTT functionality the board definition requires "esp-idf":


  • board: nodemcu-32s*
  • framework:*
  • type: esp-idf*

EDIT: Rather the esp-idf is required for certificate_authority:

Hi Ady. Sorry for the dumb question, but how would one add a static IP on router? I’m not very technical.

it widely depends on the router :frowning: what router brand/model do you have?

Netgear Orbi RBK50

The name of your ratgdo ends in the last digits (hexadecimal) of its mac address. A mac address looks like XX:XX:XX:XX:XX where X is any of 0 through 9 or A through F.

Good luck and let me know if you run into trouble.

Thanks so much Ady. The Mac Address for the ratgdo can be found on my router once I set up correctly?

if you know the current IP of your ratgdo, you can search for it and find it in the address reservation page. It should end the same as the ratgdo name, at least the last digits. When assigning a static IP, you will need to provide that MAC address and you’ll also need to pick an IP - you can leave the current one as already assigned to the ratgdo.

Thanks Ady. I’ll give it a try and see if I can successfully set up and get everything up and running.

Can you tell me if it only happens to me that after a hub update the esphome devices do not reconnect (they get stuck in connecting)? To solve it I have to redo the hub reboot.

Thanks again @ady624 for all your help.

1 Like

Hi all, I've just bought one of these Arlec DCF4002WHA/DCF4002BHA Ceiling Fan+Light and flashed ESPHome into it.

(It was a bit of a plava trying to follow outdated docco, which I will update when I get this going and buy the other four fans I'd like to install)

Arlec Grid Connect Ceiling Fans - Hardware - Home Assistant Community (

I can see the fan components, but the light isn't controllable with the current ESPHome-FanControl.groovy driver.

Has anyone modified the driver to also control the light? Can you share the code?

I guess the ideal would be for the driver to generate a child device for each.

My config yaml below:

  name: lukes-fanlight
  friendly_name: Luke's Fan+Light

  board: generic-rtl8710bn-2mb-788k

# Enable logging

# Enable Home Assistant API
  # encryption:
  #   key: "###"

  password: "###"

  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
    ssid: "Lukes-Fanlight Fallback Hotspot"
    password: "###"


  rx_pin: GPIO18
  tx_pin: GPIO23
  baud_rate: 9600  # This is a common baud rate for Tuya devices

# Configure the Tuya component and ignore the datapoints not used in this configuration (e.g. sleep timer)
    - 102
    - 103

# Fan configuration
  - platform: tuya
    name: "Ceiling Fan"
    id: ceiling_fan
    switch_datapoint: 1
    speed_datapoint: 3
    direction_datapoint: 4
    speed_count: 6

# Light configuration
  - platform: tuya
    name: "Light"
    id: ceiling_fan_light
    switch_datapoint: 9
    dimmer_datapoint: 10
    min_value: 0
    max_value: 100
    color_temperature_datapoint: 11
    color_temperature_max_value: 100
    color_temperature_invert: false
    cold_white_color_temperature: 6493 K
    warm_white_color_temperature: 4065 K
    default_transition_length: 0s

I'm trying to use a esp8266 D1 Mini with a VL53L0X Time-of-Flight (ToF) Laser Ranging Sensor for a mailbox project. Can this be done threw hubitat and if so how. I'm new to this esphome stuff. I was able to get arduino ide to load a VL53L0X and show the sensor operating. Can't seem to figure out how to get this into hubitat.

Are you aware that there is a Hubitat ESPHome integration (the subject of this thread)?

Instructions for installing an ESPHome device (ratGDO) directly on Hubitat are given upthread.

That should get you started with a working example of an integrated ESPHome device.

Thanks for the reply, yes I can flash a garage door opener with the drivers in HE with the instruction. But I still can figure out how to flash the device without HA to allow it to use a laser distance setup that i want to use it for rather then a garage door setup. Either I'm over thinking something or just lost at this point. I don't have HA to flash the device, I'm not sure what file I would need to flash the device to work with the drivers in HE. Thanks for you time.

Respectfully, I believe you are confused. There are no "drivers in HE" that are flashed onto the ratGDO. Never have been. Not needed.

ratGDO is a module that uses the ESPHome API if flashed with the correct firmware. ESPHome is a Home Assistant project. While ESPHome is an "Add On" that can be added to Home Assistant, ESPHome is not Home Assistant. There is a HE driver that runs on HE (not on ratGDO) that interfaces to the ESPHome API (not Home Assistant).

Related to all of this, the ratGDO project has created firmware that uses the ESPHome API to interface to ESPHome (if you are running the ESPHome Add On for Home Assistant) or to the HE driver (which uses the ESPHome API) if you are interfacing to HE. Like any HE driver, the HE driver for ratGDO runs only on the HE platform, not on Home Assistant, not on ratGDO.

Flashing the ratGDO to the ESPHome API firmware (a step that must be done regardless of whether you are using the ESPHome Add On on Home Assistant or the HE driver on HE) is done using the nice web page flasher, which only runs on Google Chrome on Windows or Mac. The link to that web page flasher is here:

Just attach the ratGDO to your computer using a USB cable and follow the instructions in the web page flasher. Future firmware updates can be done over-the-air via WiFi.

Independent of all this, if you do decide to spin up an instance of Home Assistant, you can bring the ratGDO (and any other HA devices) into HE using the very nice community-contributed HADB integration, which is what I now do. I did install the HE driver that is the subject of this thread, and did get ratGDO working on HE using that driver, but I decided to stay with the ratGDO to HA to HE (through HADB) approach, and I am very happy with that.

Sure, I have 10 setups running the same TOF sensor (vl53l0x) under ESPHome using this HE integration. I setup the sensor in the yaml config and link it to a binary sensor which can be read by HE as a contact sensor. Then, when the TOF is tripped (I assume your doing the beam break setup), it will close the contact sensor and then can be used in automations (Webcore is what I use).

The use case below is for a doorway sensor to toggle the relay for light switch. I also have a switch called 'Automation' that can be turned off to bypass the auto-light function. Below is the relevant yaml config statements:

  device_name: hall-bathroom
  friendly_name: Hall Bathroom

  name: ${device_name}
  friendly_name: ${friendly_name}
    - switch.turn_on: automation

  sda: GPIO3
  scl: GPIO1
  scan: true  

  - platform: template
    name: ${friendly_name} Automation
    id: automation
    optimistic: true

  - name: ${friendly_name} Doorway
    id: doorway_sensor
    platform: template
    device_class: motion
    internal: false
          switch.is_on: automation
          - switch.toggle: relay 
      - delayed_off: 1s           
    lambda: |-
      if (id(doorway_sensor_dist).state <= 0.5)         
        return true;
        return false;
      return {};  

  - name: "Doorway Sensor Dist"
    id: doorway_sensor_dist
    platform: vl53l0x
    address: 0x29
    update_interval: 200ms
    timeout: 100ms
    long_range: false
    internal: true

Here is what the ESPHome app device in HE looks like: