r/Esphome

Image 1 — Pocket Assistant
Image 2 — Pocket Assistant
Image 3 — Pocket Assistant
Image 4 — Pocket Assistant
Image 5 — Pocket Assistant
Image 6 — Pocket Assistant
▲ 80 r/Esphome+1 crossposts

Pocket Assistant

I always thought that this pocket watch style hardware from Waveshare was really cool, and wondered why no one had done much with it. Well now I know. It was really challenging to get Voice Assistant and Music Assistant working reliably. While I was at it, I built a custom Music Assistant back-end, allowing full library browsing and speaker control. Area controls coming in a future release.

Demo: https://www.youtube.com/watch?v=KKwvTn31XF8

GitHub Repository: https://github.com/slampton/esphome-pocket-assistant

Hardware: https://docs.waveshare.com/ESP32-S3-Touch-AMOLED-1.75C

Voice Pipeline FYI: Nabu Casa STT and TTS, with Gemini 3.5 Flash Lite.

u/LamptonLabs — 5 days ago
▲ 34 r/Esphome

Flash your own ESPHome image onto a Shelly over the air (Gen2/3/4, no UART for the flash itself) - testers wanted

Hi all,

I wrote a small Python tool that puts your own ESPHome firmware on a Shelly without opening it. It takes Shelly's official OTA package, swaps in your ESPHome image and sends it through the stock updater. It checks the device first and refuses if the update would land in the wrong slot. https://github.com/oxynatOr/free-shelly-ota (Apache 2.0). There is one page per device with pins, ESPHome config and the exact commands: https://github.com/oxynatOr/free-shelly-ota/tree/main/docs/devices

python ota.py fetch PlugMG3 --insecure
python ota.py build PlugMG3 app.ota.bin --esphome-factory app.factory.bin --esphome-yaml my-plug.yaml
python ota.py send PlugMG3 out/PlugMG3-app-<date>.zip --watch 60

It has run on real devices:

Plug M Gen3, Plug S Gen3, H&T Gen3, Plus Plug S (Gen2, no UART), Power Strip 4 Gen4 (boots, outlets not checked) and the Multicolor Bulb Gen3 (flash works, LED driver not confirmed).

Profiles for six more exist (Duo Bulb, The Pill, Mini 1PM Gen3/Gen4, Zigbee variants), but nobody has flashed them with this tool yet.

That is where I need help. I can't test every model myself, so if you have another Shelly and accept the risk below, I would love a report, also when it worked: Device report (remove Wi-Fi data, keys and MAC addresses from the log first). Your model is missing? Request a new device and tell me if you can test it.

It is experimental, so please be careful:

  • The recommended method replaces Shelly's bootloader. If that does not suit a model, only UART/USB brings it back. Use a device   you can afford to lose, and know your way back before you start (The Pill: USB-C, H&T Gen3: bare test pads, others need   soldering). Never connect a serial adapter to a device that is plugged into mains.
  • It voids the warranty and can brick the device. You carry the risk.
  • The repo has no ESPHome binaries and no Shelly firmware. You compile your own image; the tool downloads the official package.
  • The built package can contain your Wi-Fi password, so don't share it. Next on my list are the open checks (bulb light, power strip outlets), then Tasmota as a second target.
  • Next on my list are the open checks (bulb light, power strip outlets), then Tasmota as a second target. No date yet.
  • back to Shelly over the air.

Not affiliated with Shelly or ESPHome.

Thanks to tasmota/mgos32-to-tasmota32, inventor7777/ESPHome-Shelly-Plus-Plug-US and automatous-io/shelly-gen4-esphome, whose research this builds on.

u/Oxynat0r — 5 days ago
▲ 51 r/Esphome+1 crossposts

Simple Ceiling Lamp with Presence Detection

I always like to combine multiple functionalities into one device to avoid cable clutter and keep my plugs available for other stuff. So I again built a ceiling lamp that has a presence sensor built right into it so with one appliance my room can turn on and off the lights based on presence.

This one I'll use for my friends bathroom.

The parts;
- ESP32-S3 Microcontroller
- LD2410C mmWave Presence Sensor
- SK6812 Addressable LED Strip (5V with dedicated white channel)
- AC to DC 5V 6A Power Supply
- 3D Printed Enclosure (Designed in Tinkercad :)

The case has 3 parts. One mounts to the ceiling directly, second one is a plate that holds my led strip and my components and fits in the ceiling mounting part by inserting and twisting. For the cover I used transparent filaments which I kind of like but think could be better printed. Maybe in vase mode or something.

It is completely home assistant friendly of course and built with esphome.

For the automations I learned that we can create automations directly from esphome so we don't need to rely on home assistant alone for the lights to trigger on and off. Code could be better but there is always room for improvement.

STL and Code: https://github.com/rgnyldz/rgnlabs-bathroom-ceiling-lamp

Build process: https://www.youtube.com/watch?v=2E1V8GT9j3o

u/rgnyldz — 6 days ago
▲ 3 r/Esphome+1 crossposts

Voice assistant using ESP32 -Wroom?

I've had this ESP32-WROOM lying around for about a year, and now I'm thinking of building a voice assistant with it. I'm considering integrating a local LLM that runs on my laptop, using an LLM service like ChatGPT, or just building a basic voice assistant that can perform simple tasks.

For example, I'd like it to play songs from my phone, make calls, and control music or video playback (play, pause, etc.).

Is this possible? If so, how can I get started? I don't know much about the ESP32 yet, as I got it from a friend, so I'd really appreciate any guidance or help!

reddit.com
u/Agile-Ad3287 — 5 days ago

Jura ESPHome component and reverse engineering of Impressa X9

I've followed in the footsteps of giants, porting the cmd2jura into an ESPHome component. I have then almost fully reverse engineered my Jura machine. I used ESPHome to create automations to step through the menu, make changes, dump and compare to baselines of EEPROM and RAM. From the results, I was able to create closed loop automations for my Impressa X9.
I am able to:
- read/re-write the brew counters
- re-map the buttons to different products and add new products
- dedicated decaf product buttons
- double brew of milk based beverages
- edit the recipes and preferences
- change the power on/power off schedules
- change auto power down timers.
- know which lights are on/flashing
- know when beans are out, water is low, trays are removed

all in home assistant - and also of course I can brew coffees and power on/off with a voice assistant.

There is even an EEPROM/RAM explorer web interface that documents/decodes the regions of RAM/EEPROM I've figured out which allows sending the UART commands directly.

I would like to support other machines - alas I don't have other machines or the time. This hyperfocus is also waning. The integration does everything I need at this point.

https://preview.redd.it/2fu6o8wernuh1.png?width=829&format=png&auto=webp&s=5ba95f349b000060dcee6a870b470b2211adcc2d

Here is the github repository
https://github.com/jaymemaurice/jura-esphome

https://preview.redd.it/y1en2clwrnuh1.png?width=999&format=png&auto=webp&s=2b85f5648ef2b9e1aeeb7d77250413cd548fc3df

https://preview.redd.it/qdx6mgj0snuh1.png?width=1004&format=png&auto=webp&s=e04b112062b58303bbfba85f5dca12d2ca34a46f

https://preview.redd.it/ifbk9tc5snuh1.png?width=1006&format=png&auto=webp&s=f5e9c27b8226a5173fb456072052c5ebff759a7f

reddit.com
u/jaymemaurice — 5 days ago
▲ 15 r/Esphome+1 crossposts

EspHome on 36 Cores and 48 threads

I don't want to brag... actually this isn't true at all! I do want to brag! 😁

I have to reflash 104 esp32 devices and panels with updated clean build files and all of the latest "stuff." I started doing this on my PC. It was taking far too long and this is only the first batch of devices. So, I decided to load share on a massive Proxmox box too. I started at a reasonable 12 cores. Now I have upped the ante. Between my PC and the VM I am now throwing 36 cores and 48 threads at the job. It sounds like a wind tunnel in my office with all the computer fans maxed out.

It currently looks like what would have taken about 14 hours will now get done in just a few hours before my wife gets home an notices that Home Assistant and everything else in the house is down on Proxmox so I could throw everything I have at this job.

36 cores and 48 threads! I never knew this was possible!

Has anyone else ever tried something like this? It only took me about half an hour to make this work!

reddit.com
u/Verscreubulator — 7 days ago
▲ 38 r/Esphome+1 crossposts

custom 7-segment clock made mostly with the Makera Z1

I made a clock with a custom 7 segment design using a milled single sided PCB, milled aluminium panels as well as a 3D printed core and some felt for the outer surface.

Documented on:

https://www.makerables.com/project/custom-7-segment-esp-home-clock

The controller for the LED pcb is a ESP8266 D1-mini with USB-C running ESP-home. The brightness is variable so one can change it when it is used with Home Assistant.

u/FIughafen — 7 days ago
▲ 5 r/Esphome+1 crossposts

Waveshare ESPHome satellite

Has anyone else set up a Waveshare ESP32-S3-AUDIO speaker. I used (MichaelZaniewicz config)[https://github.com/MichalZaniewicz/esphome-waveshare-esp32-s3-audio-va] and it all seemed to work fine, but when my Assist plays TTS back it lowers the volume to barely audible during the response and then raises it back to normal when done. I feel like this is an issue in the device's YAML config but I'm not super familiar with all that. I don't see any log errors or anything out of the ordinary in any settings. Maybe I am missing something.

Update:

I submitted an issue to Michael on the GitHub repo. He advised to check the Music Assistant settings of the device. I had added it to Music Assistant as a player using the Home Assistant MediaPlayers player provider. I disabled the device in MA and turns out that was it! MA/HA is having a volume ducking issue somewhere. It's odd because I re-enabled the device in MA, but turned off "Expose this player to Home Assistant" in the MA player settings and it's fine now. So something with the MA player being exposed to HA is causing it to duck the volume of the assistant response. I don't have any automations for volume control that would do that. I'll have to dig into that further. Maybe its a strange loop issue with the media player coming from Home Assistant and then being exposed back as another media player. I always enable the "expose to home assistant" though because I want separate entities for the Music Assistant players so I can control the MA player from special cards or whatever.

u/jlewsader — 6 days ago
▲ 37 r/Esphome

My Litter Robot 4 ESPHome firmware now supports a mod for identifying when your cat goes #1 or #2, similar to the "WasteID" feature found on newer models. Allowing better odor control and health tracking.

Ever since the first version of my ESPHome firmware for the Litter Robot 4 self-cleaning litter box, I've been on the lookout for small improvements I could make to extend the longevity and user experience of the device along the way. I've made a few notable improvements already, but this is the biggest one yet.

The Litter Robot 5 introduced "WasteID" which determines if your cat went #1 or #2. It uses an inexpensive air quality sensor to distinguish the type of waste, and shortens the cycle delay for solid waste to better contain odors, since it doesn't need time to clump in the litter like urine. This information can also be useful for tracking the health of your pets.

I have full control of the ESP32 in the Litter Robot 4, so adding such a sensor on an unused set of pins was a trivial task, and the detection logic was surprisingly even simpler. You can see a graph of detected VOCs for both waste types in the graph on slide 4. With that, I have successfully implemented waste identification for the LR4, going by the similar, yet legally distinct, name "WasteSense". It can even be implemented on the LR3 once I publish the firmware for that in the coming weeks.

The mod guide and prerequisite custom firmware flashing guide can be found along with other documentation in the codeberg repo!

u/jdigi78 — 8 days ago
▲ 61 r/Esphome+1 crossposts

ESPhome WT32-ETH01 - 64 channels PWM + 32 Channels - Digital Inputs/Outputs using 4 PCM9685 and 2 MCP23017

ESPhome WT32-ETH01 - 64 channels PWM + 32 Channels - Digital Inputs/Outputs using 4 PCM9685 and 2 MCP23017 and has screw terminal blocks for UART, Modbus, I2C etc.

u/uttaran18 — 8 days ago
▲ 85 r/Esphome+1 crossposts

I’m going to be couch-bound after surgery, ESP32 Controller w/ Tessera

Video of screen in action

I have surgery coming up and I'm going to be pretty much couch-bound for the next week, so I figured I might as well make the couch a little more capable before then.

I mounted an 18" portable touch monitor on an adjustable arm and added a small ESP32 touchscreen running Tessera that's integrated with Home Assistant.

It's probably completely unnecessary, but that's generally how my Home Assistant projects start.

Still working on it, but pretty happy with how the couch command center turned out.

Big shout to Max, with the last days I've been playing with Tessera there have been multiple updates daily. Check him out and support if you are interested https://github.com/MaxGramser/homeassistant_espscreen

u/cdnAli — 9 days ago
▲ 95 r/Esphome

Opus 5.5 can design pretty Esphome Dashboards using LVGL

A year ago I bought a CrowPanel Advance 7.0 to show some statistics from Home Assistant. I always found it really difficult to build a pretty UI using LVGL and YAML. I only managed to get a single screen that showed some numbers, icons and no animations... Although it took me really long to build it, It was not that pretty.

Then I decdided to gave AI a try and gave Claude Opus 5.5 my Yaml config and just told him: Make it pretty, use Host-SDL to check the output and add some charts using this https://github.com/esphome/esphome/pull/17851

After 10 minutes it roughly generated 4000 lines of yaml and another header file with 1000 lines of C++. It even produced a video/gif that you can see here.

On the ESP it runs really well, I only removed the page switching animations, they were to laggy. Overall I am really happy with the result.

u/JumpyWrangler6620 — 13 days ago

Rheem Econet using Waveshare ESP32-S3-Relay-1CH

I have successfully used a waveshare esp32-s3-relay-6ch to interface with my EcoNet hot water heater. I purchased a smaller waveshare esp32-s3-1ch that I would like to use permanently. I added the required EcoNet flow_control_pin definition to my code but have not had any success getting it to work. It appears from rs485 bus sniffing that the 1ch board is sending a good message (same as what the 6ch board sends) every 7.5 seconds but there is no reply from the heater. When using the 6ch board the heater correctly responds.

Waveshare ESP32-S3-Relay-6CH (hardware auto-direction, no flow_control_pin) works fine on the heater's RJ11 port. The 1CH and the RS485-CAN board, configured as documented (tx_pin: GPIO17, rx_pin: GPIO18, econet: flow_control_pin: GPIO21), receive the heater's frames but every read request goes unanswered ("No read request has ever been answered"). Same wiring, same cable. Neither board has the 120R jumper installed, and neither has a ground terminal on the isolated RS485 side. Moving flow_control_pin into the uart: block changes nothing.
A second ESP32-S3-RS485-CAN running a UART debug sniffer on the same pair shows the 1CH's requests arriving complete with correct CRCs (e.g. the 52-byte 34 request ending 18 27), byte-identical to the 6CH's. The only difference is that after each 6CH request the capture shows a run of 0 to 10 00 bytes followed by the heater's reply (80 00 03 40 00 80 00 12 ...), while after the 1CH's request nothing follows.

I have seen on the EcoNet GitHub repository that people have successfully used this board so I must be doing something wrong. Any ideas would be greatly appreciated

Here is the code:

esphome:
name: water-heater-controller-new
friendly_name: New Water Heater Controller

esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
framework:
type: esp-idf

logger:
level: DEBUG
logs:
sensor: ERROR
text_sensor: ERROR

api:
encryption:
key: "Jdmxq8AYYm0ltImaId9aZvQr41s4/PpHlyEQdrSAeBk="

ota:
platform: esphome

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

substitutions:
tx_pin: GPIO17
rx_pin: GPIO18

# =====================================================
# Econet Protocol Engine
# =====================================================
econet:
flow_control_pin: GPIO21

# =====================================================
# External Econet Component
# =====================================================
packages:
econet:
url: https://github.com/esphome-econet/esphome-econet
ref: main
file: econet_electric_tank_water_heater.yaml

u/AZ-Ken — 13 days ago