r/Esphome

▲ 3 r/Esphome+1 crossposts

Use a SwitchBot Keypad without buying the SwitchBot Lock (ESP32 + ESPHome)

The SwitchBot Keypad is kind of useless on its own — it only works if you also
buy a SwitchBot Lock, because the keypad just talks to the lock over Bluetooth.
I wanted to use the keypad as a local access controller for Home Assistant
without buying the lock, so I built a workaround.

It's an ESPHome external component that makes a plain ESP32 impersonate a
SwitchBot Lock over BLE. A real keypad pairs to it and sends its normal
encrypted lock/unlock frames; the ESP32 decrypts them and passes them to Home
Assistant as events. The keypad has no idea it isn't talking to a real lock.

The nice part is that every unlock event tells you how it was unlocked (PIN,
fingerprint or face) and which credential slot was used, so you can build
per-user automations — a different notification or action depending on who's
at the door.

Pairing is done through a small web UI hosted on the ESP32 itself: you sign in
to your SwitchBot account, pick the keypad from the list, and it does the BLE
pairing for you. No Python scripts, no laptop, no sniffing. After that it runs
fully local — just BLE and Home Assistant, no cloud. The AES key is generated
on the device and never ends up in your YAML or git.

I've tested it with the Keypad Touch and the Keypad Vision. The original Keypad
and the Vision Pro should work too since they use the same protocols, but I
haven't been able to verify them — would love reports from anyone with those.

Repo with the ESPHome config and setup instructions:
https://github.com/pierluigizagaria/switchbot-keypad-bridge

reddit.com
u/No-Yak-8477 — 15 hours ago

Smart garage door control for about $25.

This isn't the first garage door automation project out there, but it might be helpful for anyone working with the same constraints I had.

Connected to Marantec Motor.

What you get thgh this ESPHome integration.

- Open / Close control in home assistant or mobile app.
- HomeKit integration requires HomeKit Bridge.
- Remotely monitor the door state. open or closed
- Easy installation, no additional power supply no cable runs for sensors.
- Low cost, ESP32 and a cheap VL53L0X distance sensor.

ESP C3 on Protoboard

Straight forward build. A control box with en ESP32 powered from the existing door motor and a sensor mounted onto the belt rail. No fasteners or modifications. Everything is snap fit and clip on.

Everything is here:

Board Examples, 3D Models to print your own, sample ESPHome config.
https://github.com/l0cut15/garage_door_home_assistant

Door sensor, vertical mount.

reddit.com
u/L0cut15 — 14 hours ago

esp32 and 433mhz receiver

I'm hoping to get a little guidance or some confirmation that I'm on the right track. I've never worked with RF433 at all, but just ordered a superheterodyne receiver to tie into an esp32: https://imgur.com/a/5SjsKUj

Seems fairly straightforward to connect, however what i want to do is intercept the signal from some Dakota Alert beam break sensors (https://imgur.com/a/kx8GZCs). From what little i can find online it seems like they send unencrypted over 433. Am i correct in thinking that i can use remote_receiver in esphome to pickup those signals and identify them individually if i set it to dump all? Is it more complicated than that? The docs for remote receiver look pretty thorough, but my lack of experience with RF is making it tough to fully comprehend.

Thanks

u/ziondreamt — 22 hours ago

Flashed wrong bin file and now it wont connect to PC

I recently got this device from seeed studio and in my haste i flashed the wrong bin file to it on the esp website here. Now, the device appears to remain powered on but when i click connect on the esphome page i can see the device going on/off. If i monitor my TTY devices i see a similar appear/disappear pattern. I have tried another cable and on different ports with no luck. The reset button does not appear to wipe the firmware i flashed as i've tried single, double, triple, long etc. and nothing seems to change. This is my first time with ESP devices so any and all guidance is much appreciated.

Note i have tried the reset buttons as described here and here

u/PoppinGummies — 1 day ago
▲ 20 r/Esphome+2 crossposts

ESPHome bridge for Bosch eBike smart system: live battery, speed, odometer in HA

Hi all,

I just wanted to share a project that is now in a state where other users have reported successful flashes from the forum: an ESPHome external component that turns any ESP32 into a Bluetooth bridge for Bosch smart system eBikes (drive unit v19 and newer).

What it does

Once paired with the bike via the official Bosch Flow app, the ESP32 pulls live data over BLE and exposes it as regular ESPHome sensors:

  • battery state of charge
  • live odometer
  • speed, cadence, rider power
  • ambient brightness, light state
  • charger connected, system locked, in-motion flag
  • and a few more

In Home Assistant you get them as native sensors with no manual YAML on the HA side. They behave like any other ESPHome entity, so they plug straight into automations, dashboards, energy panels, statistics, etc.

No ESPHome setup required to try it

I host a one-click web installer at https://xunil99.github.io/ha-bosch-ebike/. Plug in an ESP32, open the page in Chrome or Edge, click Install, and the Improv-Serial flow handles WiFi setup in the same browser session. Pairing with the bike is then a normal Flow-app step ("add new component").

For ESPHome tinkerers

The component is a normal external_components source. You can pull it into your existing YAML and add it next to your existing sensors. The repo has a documented example YAML and the same factory config that the web installer builds from.

external_components:
  - source: github://Xunil99/ha-bosch-ebike@main
    components: [bosch_ebike_ldi]


bosch_ebike_ldi:
  id: ebike_bridge
  device_name: "HA eBike Bridge"

Repo: https://github.com/Xunil99/ha-bosch-ebike

Constraints to be honest about

  • Only Bosch smart system drive units, v19 or newer. The older Classic Line and the early smart system firmwares do not expose the Live Data Interface.
  • Needs ESP32 with BLE, recommended ESP-IDF framework with NimBLE.
  • One paired external component per bike at a time, that is a Bosch-side limit.
  • BLE range, so the ESP32 sits near where the bike parks.

There is also a sister HACS integration in the same repo that adds cloud-side tour history (GPX export, statistics, map card, GitHub-style calendar heatmap of riding days). That part is independent of the ESPHome bridge, you can use either or both.

Feedback and issue reports very welcome. The whole stack is Apache-2.0 and entirely local-network, no third-party telemetry.

reddit.com
u/Sonnenkoenig — 1 day ago
▲ 18 r/Esphome

ESPHome keeps disconnecting and when connected, controlling devices is very slow on Firmware: 2026.4.5

Ever since I upgraded to 2026.4.5, I've had issues with Wi-Fi connection on my ESPHome. Not sure what exact version I had before since I don't do updates that frequently, but I have tried reflashing a new firmware on it too with no change. Also added power_save_mode: none to my YAML config, but no change.

My ESP model is ESP32-WROOM-32D, has anyone else started having such issues? I've also tried moving the ESP32 closer to the AP, but no change.

u/Piipperi800 — 3 days ago
▲ 8 r/Esphome+1 crossposts

Help with ESP32 + SD Card Module

Boa noite galera ja faz uns dias que estou tentando usar um ESP32-C3 SuperMini com um modulo de cartão SD mas sem sucesso, achei que poderia ser o modulo, então comprei outro modelo de modulo de cartão SD e ainda sim sem sucesso, pensei em ser o ESP32-C3 SuperMini então comprei um ESP32 WROOM-32U e testei os 2 módulos de cartão SD e ainda não consegui fazer funcionar, engraçado que um modulo MFRC522(Modulo RFID SPI) funcionou perfeito usando os mesmos pinos. Preciso da ajuda de vocês 🙏🏻

u/sergiocjr — 2 days ago

Webserver: api

ESPHome webrelay: can I still use a GET URL from Safari/Home Screen on iPhone?

I’m trying to figure out how ESPHome web relay control works now, because I remember that a year ago it was possible to trigger a relay directly with a GET request from the browser.
What I want to do:
Run an ESPHome device as a simple web relay.

Open a URL like /relais/turn-on in Safari on iPhone.

Save that URL to the iPhone Home Screen as a one-tap shortcut.

My question is:
Is this still possible with ESPHome’s current web server setup?

Or has it changed so that relay control now expects POST instead of GET?

If GET still works, what is the correct URL format for a relay/switch?

If not, what is the cleanest way to make a Home Screen shortcut that toggles a relay?

I remember older web relay examples that used direct browser-openable URLs, and that worked nicely with Safari bookmarks. But the newer docs seem to focus more on the web server API and POST endpoints, so I’m not sure what the current recommended approach is.
Would appreciate any real-world examples or working YAML snippets.

reddit.com
u/plekreddit — 2 days ago

How do I configure my ESP32's existing YAML without Device Builder?

My ESP32 has started to disconnect frequently from my Wi-Fi network (Ubiquiti). It has previously worked fine but has started to disconnect, so I can't control my devices. I think I need to add "power_save_mode: none" to the device's YAML config, but how do I do this without Device Builder add-on? (my HA is in a container so I don't have access to add-ons, and I can't find a way to edit the YAML without it)

Or do I need to completely recreate/prepare the device again?

I tried using the ESPHome Docker container, but it won't find the existing device / config.

reddit.com
u/Piipperi800 — 4 days ago
▲ 146 r/Esphome+1 crossposts

Looking for feedback on climate controls in EspControl

I've added much requested climate controls to espControl. I've tested this with nest thermostats and a standalone aircon unit, but am looking for feedback on more sophisticated systems. I’d love to hear from anyone who tries it, issues, areas for improvement and new ideas you’d like to see added. All feedback is appreciated!

Docs / Github / Installer

u/hometechgeek — 6 days ago

Esphome ir transmitter

I was buying ir leds to make a ir proxy

But i saw this
I suppose this wil also work to emit ir light to a whole room at once ?

Yes i need a 12v driver but in theorie it must work ?

u/plekreddit — 5 days ago
▲ 15 r/Esphome

ESP32 using CC1101 to control Hunter fan

setup an ESP32 DEV using a CC1101 for receiving/transmitting RF signals to the old hunter fan. The controller board inside is stamped "Rhine UC7042T" and the encoder inside uses a HT-12E. all functions appear to work with the ESP buttons. I used google AI to assist in the code:

my dip switch settings may differ from yours, so the code "001111111101" for example would likely have to change.

web_server:
  port: 80

logger:
  level: DEBUG

# SPI Bus for CC1101 communication
spi:
  clk_pin: GPIO18
  mosi_pin: GPIO23
  miso_pin: GPIO19

# CC1101 - Set to the Hunter hardware sweet spot
cc1101:
  id: cc1101_module
  cs_pin: GPIO5
  frequency: 302.5Mhz
  output_power: 10
  modulation_type: ASK/OOK
  symbol_rate: 2000
  filter_bandwidth: 325kHz

# Remote Receiver - Connected to GDO2 (GPIO2)
remote_receiver:
  id: rf_receiver
  pin: GPIO2
  tolerance: 60%
  filter: 150us
  buffer_size: 15kb
  idle: 40ms
  dump:
    - rc_switch  # Tries to decode the Holtek HT-12E binary string automatically

# Remote Transmitter - Connected to GDO0 (GPIO4)
remote_transmitter:
  id: rf_transmitter
  pin: GPIO4
  carrier_duty_percent: 100%
  on_transmit:
    then:
      - cc1101.begin_tx: cc1101_module
  on_complete:
    then:
      - cc1101.begin_rx: cc1101_module

button:

  # =========================================================================
  # 1. VERIFIED FAN OFF BUTTON 
  # =========================================================================
  - platform: template
    name: "Hunter Fan Off"
    icon: "mdi:fan-off"
    on_press:
      - remote_transmitter.transmit_rc_switch_raw:
          protocol: 6
          code: "001111111101"
          repeat:
            times: 45
            wait_time: 0ms

  # =========================================================================
 
  # =========================================================================
  # 2. LIGHT TOGGLE ON/OFF. LONGER TIMES DIMS
  # =========================================================================
  - platform: template
    name: "Hunter Fan light"
    icon: "mdi:lightbulb"
    on_press:
      - remote_transmitter.transmit_rc_switch_raw:
          protocol: 6
          code: "001111111110"   # Pulls down the final data line (Bit 12)
          repeat:
            times: 10
            wait_time: 0ms

  # =========================================================================
  # 3. LIGHT TOGGLE ON/OFF. LONGER TIMES DIMS
  # =========================================================================
  - platform: template
    name: "Hunter Fan dimmer"
    icon: "mdi:lightbulb"
    on_press:
    - repeat:
          count: 3
          then:
            - remote_transmitter.transmit_rc_switch_raw:
                protocol: 6
                code: "001111111110"
                repeat:
                  times: 40
                  wait_time: 0ms
            - delay: 50ms      # Microsecond gap prevents the fan from treating it as a toggle
  # =========================================================================
  # 4. FAN SPEED LOW (3)
  # =========================================================================
  - platform: template
    name: "Hunter Fan Low"
    icon: "mdi:fan-speed-1"
    on_press:
      - remote_transmitter.transmit_rc_switch_raw:
          protocol: 6
          code: "001111110111"   # Corrected to pull the true Low pin state
          repeat:
            times: 45
            wait_time: 0ms
# =========================================================================
  # 5. FAN SPEED MEDIUM (2)
  # =========================================================================
  - platform: template
    name: "Hunter Fan medium"
    icon: "mdi:fan-speed-2"
    on_press:
      - remote_transmitter.transmit_rc_switch_raw:
          protocol: 6
          code: "001111101111"   # Simulates pulling multiple lines low for light function
          repeat:
            times: 45
            wait_time: 0ms

  # =========================================================================
  # 6. FAN SPEED HIGH (1)
  # =========================================================================
  - platform: template
    name: "Hunter Fan high"
    icon: "mdi:fan-speed-3"
    on_press:
      - remote_transmitter.transmit_rc_switch_raw:
          protocol: 6
          code: "001111011111"   # Simulates pulling multiple lines low for light function
          repeat:
            times: 45
            wait_time: 0ms
  
    # =========================================================================
  # 7. FIXED FAN DIRECTION
  # =========================================================================
  - platform: template
    name: "Hunter Fan direction"
    icon: "mdi:fan-speed-4"
    on_press:
      - remote_transmitter.transmit_rc_switch_raw:
          protocol: 6
          code: "001111111011"   # Moves the zero pin over to map Medium
          repeat:
            times: 5
            wait_time: 0ms

    # =========================================================================

edit: code tried to escape the window

reddit.com
u/saniko747 — 4 days ago

Veml 7700 lux sensor with SHTC3 sensor on the same i2c bus does not work.

The problem is that shtc3 always initializes, but veml sensor on the same bus does not work ( scan does not even detect it ), upon dissconecting shtc3, veml sensor works fine. First picture is with shtc3 disconnected. Does anybody know why this might be happening? All connections were tested with a multimeter, no cold joints.

u/Igisowski123 — 5 days ago
▲ 73 r/Esphome

It's HERE! I'm so excited!

My Billy Bass finally arrived from ebay. Now just waiting for the motor controller and ESP32-S3 and some other parts to build my new voice assistant! I hope I can pull this off.

u/bradcrc — 6 days ago

Constant SR602 False Positives - Motion detected every ~10s in empty room - how to address?

I have an ESP32-WROOM and an ESP32-C3 I'm trying to set up with a thermometer (DS18B20), motion sensor (SR602), IR blaster (2 bulbs via N2222), and IR receiver (TSOP4838). The pictured WROOM has 3 bulbs but the C3 has 2; the sensors on both are otherwise equivalently wired. The IR bulbs are getting used for a few seconds a day, and they're not active while this issue is happening. The motion history screenshot is from an empty room.

Everything is working besides the Sr602. On both the WROOM and the C3, the Sr602 is CONSTANTLY flipping back and forth between motion on/off in empty rooms. I thought it might be due to 3.3v power, but I moved it to the 5v pin and it got worse if anything. I just want to be able to see if there is active motion in a room by glancing at my HA card.

Is it possible to make the SR602 work with an esp32 (wroom or c3)? I assume my issue is EM interference but I am fairly new to electronics and don't know how to address. Is the wire that connects SR602-out to the data pin the one that needs protecting (long red wire in my pic)? I am unclear on whether it's the other sensors or the esp32 itself causing the noise. I was planning to put the pictured one on a smaller BB but never made it past testing.

u/borkyborkus — 6 days ago
▲ 2 r/Esphome+2 crossposts

ESP32 RTSP Mic not working

hey guys, soldering newbie here! i'm trying to work out this tutorial on getting an rtsp mic set up for my BirdNET-Go instance. i bought the two boards suggested on the github and soldered them together in the right way (i thought). the esp board itself works fine with the flashed firmware but i'm not getting any mic input from the second board. i was wondering if anyone could nudge me in the right direction on how to troubleshoot? thanks in advance!

u/grannie-dot-com — 6 days ago
▲ 22 r/Esphome

Added support for 7inch P4 screen to my Sonos cover art screen

As few people asked about support for this Esp32 7inch display, so I added it to the project, an open source music cover art display with media controls for any speaker connected to home assistant.

This display has a weird pixel ratio, that makes most elements look stretched, I ended up compressing the images and anything round by 5% horizontally to avoid it looking like it's stretched (really obvious in circles, but once you're seen it, you can't unsee it!)

I’d love to hear from anyone who tries it, issues, areas for improvement and new ideas you’d like to see added. All feedback is appreciated!

Docs / Github / Installer

u/hometechgeek — 6 days ago

Can esphome run independently of HA?

I was able to get my car's doors status (close or open, locked or unlocked) into HA via esphome CAN bus. I got the esphome to send the lock command to lock the door in HA. Then i got an automation in HA: if door is closed but not locked for 2 mins, lock the door.

Can I set up the same automation in esphome so that the esp32 chip would lock doors in the middle of nowhere, without wifi ? If so, how?

reddit.com
u/Curious_Party_4683 — 8 days ago
▲ 38 r/Esphome

Multiple TFT Screens from One Dev Board

Posting here as I never found an answer in my searching before attempting this. I am using a single ESP32 dev board and I’ve managed to have it drive x4 of st7796 3.5” TFT displays that I got off Aliexpress. The end goal is to make a 4 faced clock tower so I wanted to have multiple displays. I originally started trying with eInk but that required more wires than GPIOs available and none of the eInk displays played nicely refreshing that often.

Are the screens perfectly refreshing? Not 100% at the same time, but close enough to be functional. They all share a common PWM dimming line. So hopefully this answers someone’s question when they are frantically searching like myself.

Next step is to make a daughter card for the ESP32 to clean up the wiring. Off to OSHPark we go!

u/DrTRex — 8 days ago