return to table of content

ESPHome

sen
43 replies
14h15m

I've got 20+ devices running ESPHome, about 3/4 of them are part of my Home Assistant network, and maybe 6 or so that are standalone and just using ESPHome to talk to MQTT for other stuff (cheap Chinese weather station that I replaced the insides of with an ESP32, etc). I've got my rain water tanks monitored, my soil moisture in my greenhouse, the temperature and humidity in all different parts of the house, air quality in the kitchen and kids rooms, etc etc.

It's such an underrated project. In literally 5 minutes and with $10 of hardware and no programming at all, you can build your own IoT devices in your home and get real-time data on anything you want on your property.

throwaway290
8 replies
9h57m

Could you recommend a good component for security purposes? Like if someone enters my flat without breaking in (I rent). The docs list a bunch of options... do I go for motion & presence or binary presence detector? Which sensor is better (and most cost effective)?

r2_pilot
2 replies
4h19m

Depends on your threat profile and budget. Specifically if you're worried about your door opening, you can use a magnet and Hall effect sensor(or reed switch). Another thing you could do is PIR, but the cool kids are playing with 60GHz pulsed radar, which does presence pretty well (I've recently tested that the XM125 radar I just got can pick up my breathing and detects presence from the other side of 2x pieces of 3/4in sheetrock).

throwaway290
1 replies
4h1m

I'm definitely not a cool kid:) I was considering putting a camera in the flat and hooking it up to a visual motion detector but that would be a bit expensive probably (would probably need another server in addition to home assistant...)

r2_pilot
0 replies
3h48m

Yeah that's overkill. But PIR and esp32s would work for the most part. (don't rule out the radar, it's only $50 bucks at Sparkfun lol I just got it working the other day, it's pretty awesome)

petemir
2 replies
9h32m

Ikea's PARASOLL? I would expect that for your use-case, just knowing if a/the door was opened is already enough.

throwaway290
1 replies
9h20m

Is Ikea stuff compatible with ESPhome?

Never mind, parasoll costs like $12. I mean something like HLK-LD2420 which should be around $2. ESPHome lists many similar sensors and I was asking which one is better. Curious if anyone had any experience with any of those

petemir
0 replies
8h3m

No, it's not compatible. I am sorry, I misunderstood the purpose of your question.

sen
1 replies
6h4m

For home security I use PIR motion sensors in the main rooms feeding into Home Assistant which has a presence service, Eg it knows if we’re home or not based on whether our phones are connected to the home wifi. If we’re not home + it detects motion, it pings me.

throwaway290
0 replies
3h58m

Nice. Home Assistant looks easy to integrate with ESPHome... Though I don't yet have either.

lostlogin
8 replies
11h46m

I agree with everything here, except the $10 of hardware.

You must be running some very fancy chips!

For extra savings the ESP8266 might be as low as $4us. It really is amazing.

Asmod4n
4 replies
10h23m

Or you could buy a rpi2040 for 99 cents.

hagbard_c
1 replies
10h0m

That'd get you the chip which you'd have to solder to a board. Possible and feasible but not as easy as plugging in an ESP8266.

regularfry
0 replies
8h48m

You would not only have to solder it to a board, you would also have to provide a radio peripheral. At which point you're pretty much looking at a pico W, which just isn't as cheap or small as a D1 Mini (or similar).

nsteel
0 replies
7h46m

Wasn't there previously some problem with using Pico boards and you had to use a fork because PlatformIO were trying to get vendors to pay (for something they never asked for), and then kicking up a big fuss when they didn't pay up. I say vendorS because they are now trying it on with Espressif also. It seems like a very strange funding model. Did that get fixed? It was a depressing state of affairs when I last looked.

kkielhofner
0 replies
6h50m

You can get a three pack of esp32 dev boards (with headers) for $6 from Aliexpress. For that you get:

1) Wifi.

2) Much more robust ecosystem, including esphome (the subject of this post).

baq
1 replies
10h27m

ESP8266 is not recommended for new projects though. Its age is starting to show.

HankB99
0 replies
5h43m

Is that an Espressif or an ESPHome recommendation?

Were I designing a product that uses one of these I would certainly not use the ESP8266. For hobby projects, if I can buy them on Amazon, eBay or elsewhere, the 8266 remains a valid choice (for me.)

rubenbe
0 replies
10h57m

I started valuing the enclosure that comes with the 10 dollar versions (e.g. the M5stack atom).

Since most use-cases for me are literally 1 sensor connected to an Atom, it (largely) fixes the enclosure problem. Although I'd like to have more DIN rail mounted options.

darkwater
7 replies
9h41m

Now you MUST share more details on the hardware (case, power etc) and process you followed for all of those devices.

kkielhofner
4 replies
7h2m

I am a VERY low-effort hardware person (even soldering is um, not my favorite) but for years my approach has been:

1) Go to Amazon and buy a three pack of ESP32 dev boards with headers[0]. They're always some random seller, etc but I've probably had one DoA/failure after buying dozens from random sellers over the years.

2) Get a dupont wires variety pack[1].

3) Optionally (but good to have) get some breadboards [2].

4) Familiarize yourself with various supported temperature/motion/humidity/relays/etc. Esphome has a supported list[3].

5) Search for the chip name, etc on Amazon. Example[4].

6) Familiarize yourself with the ESP32 dev board pins, GPIO, etc. Most sellers will include a picture that looks something like this[5] and most of them are pretty "standard" these days.

7) Wire stuff up, configure with esphome.

8) Once you have things up and running, shove everything in an old box (iPhone boxes are especially sturdy). Other options are various project boxes[6], 3D printing, etc. It's usually easy enough to cut out/drill whatever you need.

At the end of the day you can do some pretty impressive things like directly combining temperature sensors, humidity, presence detection, PIR motion, air particulate, relays, etc even on a single board thanks to ample GPIO and esphome. All for (typically) something like $10 per "location" where you need the stuff. Even less if you buy from Aliexpress, etc.

Of course for "install" you'll need power supplies and (typically) USB-A to micro-USB power cables but most of us have drawers full of these things from old phones, etc. Good news is ESP32 boards absolutely sip power (something like 100mW or less) even with all of your "stuff" attached.

[0] - https://www.amazon.com/ESP-WROOM-32-Development-Microcontrol...

[1] - https://www.amazon.com/EDGELEC-Breadboard-Optional-Assorted-...

[2] - https://www.amazon.com/Breadboards-Solderless-Breadboard-Dis...

[3] - https://esphome.io/index.html

[4] - https://www.amazon.com/Teyleten-Robot-Digital-Temperature-Hu...

[5] - https://lastminuteengineers.com/esp32-pinout-reference/

[6] - https://www.amazon.com/LeMotech-Plastic-Electrical-Junction-...

8A51C
2 replies
6h32m

I had a solar powered project setup with environment sensors in my shed. After a while the bugs moved into the elctronics, corrosion ensued and caused shorts which killed everything. The lesson I learned is to seal project boxes up really well. The whole boxing something up and getting power to it thing is the hardest and least enjoyable bit of hardware projects for me.

kkielhofner
0 replies
5h59m

Good point and batteries, solar, exterior environments, etc are what I would consider "advanced" use cases with significant additional challenges and considerations. All of my use-cases are interior environments with the most "challenging" being garages.

Generally speaking with any kind of lower-level electronics like this frying and bricking stuff is part of the learning experience and a rite of passage.

brewtide
0 replies
5h53m

I read this as I'm standing next to my bare esp32 with dht22 temp sensor hanging off it with DuPont wires...

Nevermind the ones in the schoolhouse, basement, chicken coop...

So, yeah, I fully agree. One day I'll buy a 3d printer but until that day, wires and some tape. Everything seems cheap enough to be sacrificial if that's the end result.

tbyehl
0 replies
52m

As a fellow lazy hobbyist, I'm gonna suggest that buying the cheapest ESP32 / -C3 / -C6 boards can be a poor value. The cheap ones are often > 25.4mm wide so on a single standard breadboard the pins are only accessible on one side[0]. Also having recently been fighting CircuitPython running out of memory parsing a ~35KB response from a web service, boards with some PSRAM are real nice to have. And speaking of CircuitPython, ESP32-S3/S2 boards can run the UF2 bootloader for that Pi Pico-like experience.

Waveshare's super compact ESP32-S3-Mini (or Zero) has become my first-to-grab. For 5 direct from their China site it works out to $7.35/ea pre-soldered with shipping or save a buck each for unsoldered. 2MB PSRAM and 13 usable GPIO. They also have less cheap -S3 boards in Arduino Nano ESP32, Pi Pico, and ESP32-S3-DevKitC-1[1] formats. And the oddball ESP32 One in Pi Zero format, using an ESP32 w/ off-die PSRAM. They sell on Amazon, too.

A genuine Espressif ESP32-S2-DevKitC-1-N8R2 is $8 on Amazon, a relative bargain if you need it tomorrow and can live with one less LX7 core and no Bluetooth.

[0] If you use the trick of spanning two breadboards side-by-side, that's an extra cost that could have gone towards a better smaller board.

[1] Beware of cheap boards claiming to be copies of Espressif's 25.4mm board designs, many have been widened to ~28mm. Bad ESP32-S[3|2]-DevKit[C|M]-1 copies give themselves away by having enough room on top to put pin labels next to the pins instead of between them.

alias_neo
1 replies
9h37m

I keep a stockpile of cheap ESP32 and ESP8266s at home, and any time I need something "ensmartened" (opposite of enshittified?) I grab whichever one is appropriate, solder up what I need, design/3D print a case, flash it from my _other_ laptop which has Chrome on because Firefox doesn't support WebUSB :'(, and it'll show up in Home Assistant for adoption the moment it lands on my IoT WiFi network.

regularfry
0 replies
8h57m

I did exactly this with WLED over the weekend, just to see what the ecosystem was like and what the capabilities are. That flow from soldered hardware to HA integration is astonishingly slick.

teekert
6 replies
9h54m

How do you monitor your rain tanks? I tried ultra sonic sensors but they invariably oxidize.

throwup238
0 replies
6h23m

Vegetronix water level sensors sensors: https://www.vegetronix.com/Products/AquaPlumb/

They also have good soil moisture sensors that IIRC work via time domain reflectometry which is more accurate and lasts longer in the field.

squarefoot
0 replies
9h44m

There are magnetic sensors in which a floating magnet (sealed in plastic) position is read by sensors (Reed, Hall, etc) sealed as well.

sen
0 replies
6h13m

Ultrasonic sensors are so cheap I just replace them once a year or so, but I’ve not for a few new prototypes going with ToF sensors and one using a pressure sensor, to look for a less wasteful solution.

r2_pilot
0 replies
4h24m

There are new 60ghz sensors available that can do this (they can see through walls so you could have the sensor completely enclosed (maybe even potted in epoxy?!)). Sparkfun/Acconeer A121/XM125 is what I'm using,although not in this context, it's for my robot.

macropin
0 replies
9h23m

I've heard that pressure sensors are the most reliable.

Faaak
0 replies
9h38m

There are black "waterproof" (weatherproof?) ultrasonic sensors that last a way longer time

macropin
5 replies
11h16m

How do you power them? I've used ESPHome previously to scrape my solar analytics for consumption in Home Assistant using $3 Wittycloud ESP8266's. But as yet I haven't found an elegant solution for powering them other than using a USB adapter. It would be nice to find an elegant battery solution for outside sensors.

spicyjpeg
0 replies
9h22m

You can buy off-the-shelf modules that take a lithium ion cell and provide charging, overcurrent and overdischarge protection; just search your Chinese online retailer of choice for "TP4056 module" and you will find plenty of them. There is a Hackaday article [1] that goes in depth on how to use them properly.

If you'd rather not wire it up yourself there are also ESP32 dev boards with built-in battery management functionality, such as the LoLin32 Lite and Sparkfun ESP32 Thing. I haven't had much luck with the former (possibly due to its lack of RF shielding) but the latter seems to be pretty solid. I think Adafruit sells similar boards as well.

[1] https://hackaday.com/2022/10/10/lithium-ion-battery-circuitr...

luma
0 replies
8h8m

Battery can be a problem as low power takes a lot more engineering than you’d imagine and being outdoors creates additional problems if you’re trying to use lithium chemistry cells when temps go below freezing.

For indoor use, I made this to power ESPhome devices from a cheap apple USB adapter: https://www.printables.com/model/703859-esp32-enclosure-with...

blutack
0 replies
6h40m

The Olimux ESP32-POE / wESP32 boards have a proper ethernet connection and PoE support. Means you don't need to worry about wifi coverage or power as long as you can get an ethernet cable to it - and those are cheap & easy to find in ludicrous lengths for outdoor use.

ESPHome also has deep sleep support - so for some use cases you can just wake up every x minutes/hours, connect to wifi, do thing, back to sleep for x minutes. In deep sleep a decent ESP32 board (firebeetle or tinypico) will last for months on a small lithium cell. For a quick sensor, the whole wake up/read sensor/update HA/sleep again takes a second or so depending on wifi configuration.

Useful for something on a schedule like sprinklers or slow sensors (soil humidity or whatever).

You can also wake based on interrupts, which is good for stuff where you are using a low power external sensor that does interrupts (wake ESP up if humidity gets to x) or a GPIO switch (magnetic entry/float switch/etc etc).

Firebeetles and tinypicos both have cell connectors and onboard charging directly for lithium pouch cells. You could also get a cheapo solar power bank, although you'll want to do some research to make sure the relatively light load of an ESP32 will keep it powered on.

Nextgrid
0 replies
9h45m

Car "cigarette lighter" charger adapters are cheap and can take ~12V (and some even go up to 24) and give you a USB output.

dnchdnd
2 replies
12h11m

can you share details of the weather station please? ive been looking into gathering wind data on the cheap...

sen
0 replies
6h9m

I bought a $60 weather station from Amazon where the base station generates a JSON file which it then wants to send to its own cloud servers. I firewalled it on its own, and have an ESP32 reading the JSON file off it and then sending the individual sensor readings into Home Assistant for a visual dashboard, and into Postgres which I use for my own weather-data-wrangling (eg hasn’t rained in a couple days and no rain expected from my local weather API? turn the watering system on for the gardens)

pzduniak
0 replies
11h57m

I built mine using a Hydreon Rain Gauge sensor (RG11 in my case) and combined it with an off the shelf wind sensor from AliExpress, presumably sold by Adafruit's supplier, which closes a reed switch every rotation. Everything is powered through PoE, controlled by wESP32. I spent a couple hundred bucks at most including all the mounting hardware.

It all controls an aluminum "awning" in my house that's supposed to open above certain wind speed, close when it rains.

throwup238
0 replies
14h9m

Same here, plus a dozen or so random ESP32 variants just sitting in my electronics parts box because they're so cheap. It's incredibly freeing to just have all that hardware available at arms reach whenever you have an idea. They're surprisingly reliable and with modules like the sprinkler controller, they can be programmed to be independent so that they keep running as long as they have power. It took me months to realize that HomeAssistant microSD card had failed last time because all of my hydroponics gear just kept running.

By far the biggest time consumer has been wiring them up to DC/DC converters to drive relays in a waterproof Sockitbox. Another really useful part to keep around are wire terminal breakout boards: https://www.amazon.com/whiteeeen-Development-Expansion-ESP-W...

Also CloudFree is great for off the shelf IoT parts that can be reprogrammed with ESPHome: https://cloudfree.shop/

balloob
29 replies
11h3m

One of the people leading ESPHome here. Let me know if there any questions.

Last Saturday we announced that ESPHome is now owned by the Open Home Foundation. The Open Home Foundation fights for privacy, choice, and sustainability for smart homes. And for every person who lives in one. Learn more at https://www.openhomefoundation.org/blog/announcing-the-open-...

cyberax
5 replies
3h34m

It would be great to support more PoE devices and Ethernet-based provisioning. And also alternative wired buses, such as BACNET or a generic RS-485.

The other axis: Zigbee devices and battery power. ESPs can be used with batteries, but right now it's not a great fit.

And the last feature: better reuse support for custom devices. E.g. if I have 20 similar custom devices.

epcoa
2 replies
3h17m

generic RS-485

You can already hook up an RS-485 transceiver to the UART ports and use it today with the UART driver. Esphome also has a Modbus controller component. What are you referring to by “generic” RS-485 that isn’t available already?

cyberax
1 replies
2h41m

RS-485 is a shared bus, so you need to use some kind of a protocol to arbitrate access, and to make sure you don't flash unintended devices.

BACnet is one example, but other protocols can work too.

wkat4242
1 replies
3h16m

Yes the modules with rpi2040 and Ethernet would be so great to have supported.

I'm pretty unhappy with the WiFi 8266 modules I have. They regularly go into unavailable in home assistant for a few minutes even though my WiFi is working fine

sirtaj
0 replies
1h5m

Could it be that they're simply idle sleeping to save power? My first ESPhome device confused me by dropping off and on and it turned out that was the problem, idle sleep was configured by default - the device would wake up, report its status and go back to sleep.

mtrio
2 replies
5h4m

If my understanding is correct, ESPHome need to be re-compiled and uploaded every time the config yaml is changed. Is it possible to separate the binary and the config so that for some config changes, there is no need to re-compile and upload the binary? Thanks.

wdfx
0 replies
5h1m

I believe this is because the yaml is in fact the instructions for what to include in the binary. It wouldn't be feasible for the firmware to include all possible device and peripheral code and enable parts at run time.

I think you can see the esphome intermediate code generation in the file tree during compilation and see how the yaml sections map to blocks of C/C++ code being built.

alright2565
0 replies
4h29m

In practice, this is absolutely no problem. It generally only needs to re-compile a file or two for small changes, which takes seconds, and the OTA update functionality works perfectly so you don't need to unplug it/bring it to your desk.

mairusu
2 replies
7h14m

I have one! ESPHome is awesome but I'm trying to steer away from Wifi IoT - a big reason is that I like the idea of self-healing meshes that can work entirely offline, without having to deal with a lot of configuration.

Espressif seems to have a few devices with ZigBee capabilities, think there will be a way of building our own ZigBee device in the future?

ianburrell
0 replies
35m

There is no reason that Wifi devices can't work without internet. Most ESP32 devices don't talk to internet, but to other device on local network. Wifi doesn't really need mesh since has longer range.

I hope ESPHome is working on Matter support cause protocol that can switch between Wifi, Bluetooth, and Thread is a big advantage.

andai
0 replies
57m

Fascinating. When I read your comment my first thought was to use something like LoRa, though perhaps broadcasting your data for miles is an antifeature.

WhyNotHugo
2 replies
3h15m

I want to connect a temperature sensor to an esp, and trigger a radiator valve based in temperature range.

Valves are mostly zigbee. Can I somehow control one with ESPHome without Home Assistant or zigbee2mqtt?

I want to understand if I can avoid adding a full blown Linux server into the equation.

jbensan
0 replies
2h57m

"mostly zigbee?" not sure what you mean there. But ESPHome can be controlled directly without HA. You should read the website, specifically the sections on "Networking" and "Management and Monitoring".

If you are starting at zero there is a big learning curve, but if you're into it, it is a lot of fun.

Gazebra12
2 replies
10h35m

No questions, only praise. This project is simply awesome, I've been astonished time and time again by the features. I had done a complete dive into the Espressif SDK trying to implement a wireless switch with temperature sensor and mqtt and had nearly finished the project when I stumbled on ESPHome obsoleting all of my work at once. It was just everything I had written so far plus many added features and obsoleted all my work at once.

rubenbe
0 replies
9h45m

I agree, programming is fun, but using ESPHome to quickly have project finished and working reliably is arguably even more satisfying.

freedomben
0 replies
1h48m

I both love and hate when this happens. Discoverability seems like the hardest challenge. I always do quite a bit of searching for existing stuff before rolling my own, and it can be really hard to find stuff. Most of the time I stumble on it serendipitously at some point later.

bobby_the_whal
1 replies
8h16m

Are you not concerned the foundation will ever work against your interests?

balloob
0 replies
7h56m

The foundation can only work in the interest of privacy, choice and sustainability for the smart home. It is important that we have a thriving ecosystem of communities and companies working towards this goal. You cannot do this with just a single player. If, at some hypothetical point in the future, that means it will work against my interests, then the foundation is doing exactly what we created it for.

blagie
1 replies
5h25m

The ESPHome project is unusually competent, user-centric, and almost uncanny in how well it works.

I'll tell you what I want, though. I'm not sure this is in-scope for ESPHome, or how it's possible to even implement cleanly:

I want to be able to make devices which have tight feedback loops and more complex on-board algorithms

What I really want is e.g. a light sensor controlling lightbulbs. Here, I want the lightbulbs changing almost continuously by almost imperceptible amounts, things like Kalman filters, and similar, to keep a fixed light level and light temperature based on time-of-day.

I'd like to have my air filters, ventilation, heating, humidification, dehumidification, and cooling continuously controlled such that:

1) All run at the right level continuously to keep environmentals and power optimized.

2) Ventilation reduces CO2 / TVOC levels, but increase PM2.5 levels and lets in external temperature

3) Cooling / heating / ventilation impact humidity in complex ways

4) Space heaters cost a lot more than baseline heating, but are sometimes necessary on very cold days

5) This is all less important when I'm not home, and some things change. When I'm home, I want liveable humidity. When I'm not, I want to minimize humidity.

... and so on.

(A second thing I want is ESPHome to allow me to make Zigbee, rather than just wifi, devices)

bobchadwick
0 replies
3h43m

I use Home Assistant for doing most of what you're asking for. This integration works great for adjusting light level and temperature: https://github.com/basnijholt/adaptive-lighting.

My home has an ERV and I use a couple Shelly relays (one for power and the other to boost airflow) integrated into HA to modulate the amount of fresh air I bring in, currently based on indoor/outdoor temperature and humidity. I don't have an air quality sensor, but if I had one I could easily integrate that into my automations.

sslalready
0 replies
7h35m

ESPHome is awesome. Any chance you can get MQTT running on RP2040W?

jtwaleson
0 replies
9h44m

Thank you! I've rarely been as impressed by how well software works. Flashing, compiling, logging and OTA updates were always a PITA and with ESPHome it's a breeze. Logging over wifi feels like it shouldn't be that simple. I've created a mini IR receiver / transmitter to control my sound system with my TV remote. It was super simple to set up, and the integration with Home Assistant is great!

balloob
0 replies
8h21m

If there are people reading this and are excited to try out ESPHome: try it out without writing a single line of configuration by installing some of our ready-made projects: https://esphome.io/projects/

It allows you to turn a cheap microcontroller into a voice assistant, bluetooth proxy or media player directly from your browser.

ahaucnx
0 replies
7h3m

First of all many thanks for helping to maintain such a great project!

The feedback I have right now is that for the ESP32-C3 chip, provisioning over USB (Improv_serial) is not supported. So then the only option is to do provisioning over BLE if you want to get the "Made for ESPHome" certification.

However, this blew up our partition size from 1.2 MB to 1.9 MB and basically prevented us to add any further code and we got stuck there (we now develop a native HA integration).

So my feedback would be to try and reduce the overhead for the provisioning.

RobotToaster
0 replies
6h10m

You need to update your homepage, it still says it's owned by Nabu Casa at the bottom of the sidebar :).

K0balt
0 replies
5h17m

Nothing but respect and gratitude for ESPhome.

I do have a question though, is there a way to use modbus-TCP with ESPhome?

3abiton
0 replies
8h18m

I already got my ESP gadgets to tinker, what's missing is the time. It's super fun, and looking so forward for it, but my to-do list cannot give me a break. Great job what you guys are doing!

stavros
8 replies
14h25m

I don't use this, personally, but it strikes me as a fantastic idea. I made a sensor board and wrote my own firmware for it, maybe I'll see if I can easily configure ESPhome to run on it.

The only thing I'd need that my thing already has is pull-based OTA updates. Right now I just copy a firmware to a folder, and all my sensors around the house automatically update to that firmware via an HTTP server. With ESPhome, I'd have to push the update to each sensor separately, which is tedious when you have tens of them.

jhogendorn
2 replies
13h23m

The web interface has an 'update all' button thats just as convenient. I find if theres ones i want to not update i just temp break their yaml file with an unexpected keyword and it fails to compile and then update.

stavros
1 replies
13h16m

Hm, I wasn't aware of this web interface. Is it some sort of management panel? Do I have to deploy it on prem?

Nextgrid
0 replies
5h43m

I think he's talking about the ESPHome web app - it's a Python app you run on a server which provides a web-based IDE to manage your ESPHome devices.

To be clear, it is not hosted by the ESPHome devices themselves, it's a separate component.

NegativeLatency
1 replies
14h22m

Maybe fewer bugs and need to make changes with this?

I have a fair number of esp devices with temp probes around the house, and I’ve been meaning to switch to esp home so I have less code to maintain

stavros
0 replies
14h21m

Yeah, definitely fewer bugs. Hopefully I won't mind the decreased flexibility, but the lack of HTTP updates really hurts.

lelanthran
0 replies
11h47m

I don't use this, personally, but it strikes me as a fantastic idea. I made a sensor board and wrote my own firmware for it, maybe I'll see if I can easily configure ESPhome to run on it.

I've done pretty much the same, but last I looked there were very few resources (other than reading the code for the ESPHome project) to help on creating custom firmware for a new board with multiple sensors. It seemed easier and faster to simply write the firmware to talk to a simple backend.

I'm also curious about how they get the code for esp32 devices to fit: on a device with 4MB flash, you effectively have a 1MB program limit if you want OTA (which you do). A simple program that does nothing but make calls to the libraries for GPIO, ADC, UART, Wifi, https, https server, interrupts, FreeRTOS, mqtt, nvs, chip info, logging, OTA and functions in the standard library (scanf alone uses 30kb) already takes you over the 1MB limit.

Compiling with all the logging turned off can get you a roughly 800kb program, which is still close to the limits considering that doesn't include program logic.

I'll have to look at this again when I next require some remote monitoring thing.

balloob
0 replies
11h12m

This is coming in the next release.

Havoc
0 replies
10h40m

You should give it a try. ESPHome is super convenient. Especially the fact that you can flash them from a browser initially and over the air after that

djbusby
7 replies
14h11m

Anyone got this to replace their thermostat? Like sensors in zoneA signal and a device connected to the HVAC triggers ON? Maybe they're on WiFi or Ethernet connection?

bsoft16385
1 replies
10h12m

I have 7 Mitsubishi heat pump head units being controlled using ESPHome running on D1 mini clones (ESP8266). The D1 mini clones are powered by and interface with the head units with Mitsubishi's CN105, which is just 5 volt UART.

The total cost was maybe $30 of parts on AliExpress.

I use 433Mhz Acurite temperature sensors with a software defined radio (rtl433) running on my Home Assistant box to have remote temperature sensing. The 433MHz sensors are cheap, have good range, and have excellent battery life.

Nextgrid
0 replies
5h40m

Are you doing temperature control by yourself or are you feeding them to the Mitsubishi units as a remote temperature reference?

I know the Mitsubishi "wired controllers" (basically the official thermostats) can provide remote temp to the unit and the unit has DIP switches to select between thermostat-reported temp and internal return air sensor temp.

I'm not sure if CN105 has a way to provide this temp ref - if so, you could try it. Just make sure to set your wired controller (if any) as a "secondary" controller (otherwise it will also send its temp every second and overwrite the one you sent) and then set the proper DIP switch.

seszett
0 replies
13h21m

That's what I do at home. I have little Xiaomi LYWSD002MMC and LYWSD003MMC devices (the latter with custom firmware - pvvx) and my radiators are switched on or off (via their pilot wire) by an ESP device, using a few rules to lower the temperature when nobody's there. It works much better than the radiator's own thermostat.

I control my devices (I have a lot more than just for the radiators) through a kind of interface that I wrote myself (PHP and only very few, reliable dependencies) because I hate maintaining Home Assistant.

oleg_tarasov
0 replies
11h40m

Actually I did exactly that :) I use ESPHome to control a gas boiler which heats my home. It's not without problems and required a lot of tinkering, but after the initial phase it required very little maintenance throughout the winter. This year I plan on adding an ability to control AC. https://news.ycombinator.com/item?id=40017176

Szpadel
0 replies
13h19m

I have one over complicated in floor heater that requires 2 signals to control, one for opening radiator valve and second to enable fan to blow air through it. there is only few thermostats dedicated for such setup that are extremely expensive and I decided to make my own that is also better. i have 2 temperature sensors connected, one to monitor room temperature and the second touching radiator inside, then I'm able to open valve when room temperature is below threshold and wait until radiator is hot enough and we are trying to heat for few minutes (without fan this will also work but less efficiently, but will be silent) then when temperature is reached I close valve and keep fans on until radiator cools down.

I also have temperature reported to home assistant where I have pyscript automation that controls AC based on multiple temperature sensors, open window sensors, humidity, presence, time, etc to most efficiently cool down my apartment

if you need to get signal on a wire, you can output it from the same device, from other esphome device or through home assistant using integration.

quickthrowman
5 replies
5h11m

I’ve got a question that I’ve tried to answer by googling but I’ve never been able to find anything that helps.

I have a septic tank alarm system that turns on an audible and visual alarm when the float switch detects that the tank is 3/4 full. There is a pair of NO dry contacts that close when the alarm goes off.

How do I monitor whether the contacts are closed or open? I assume with a GPIO pin, but I’ve never been able to google this question and find anything of use.

I’m ready to give up and use a RIB01BDC [0] packaged relay to turn on a raspberry pi and email me when the septic tank contacts close.

[0] https://www.functionaldevices.com/product/rib01bdc/

Majromax
3 replies
4h39m

How do I monitor whether the contacts are closed or open? I assume with a GPIO pin, but I’ve never been able to google this question and find anything of use.

Without making assumptions about the microcontroller used, attach ground to one of the contacts, then attach a GPIO pin, the other contact, a 10k resistor (or 100k), and VCC together in series. The microcontroller should periodically read the GPIO pin. If it reads high, the contact is open and the alarm is not sounding; if it reads low then the contact is closed and the alarm is sounding.

The GPIO / contact / resistor / VCC arrangement acts to pull up that side of the circuit to the high logic level, and the resistor will limit the current that flows whenever the contacts close. If your microcontroller has an internal pull-up configuration for GPIO pins, you may be able to attach the pin directly to the contact without the extra hardware. (Conversely, if it has a pull-down configuration you can reverse things, attach VCC to the contact and the GPIO directly to the other. Read your microcontroller's documentation for available features and any current limitations.)

wdfx
1 replies
4h27m

You're assuming the tank switch is low voltage.

The very first thing to do is read the manual for the installation and/or parts used. Second, approach the tank setup with a high voltage multimeter and carefully and safely take measurements of what you might be dealing with.

quickthrowman
0 replies
1h56m

The very first thing to do is read the manual for the installation and/or parts used. Second, approach the tank setup with a high voltage multimeter and carefully and safely take measurements of what you might be dealing with.

Good call, I’ll make sure it’s not 120v or 24v with a multimeter before attaching anything that expects dry contacts.

quickthrowman
0 replies
1h58m

Thank you for the detailed instructions, this is extremely helpful! I’ll throw a multimeter across the contacts on the septic tank alarm to make sure they aren’t putting out 24v.

Mister_Snuggles
0 replies
3h50m

I use an ultrasonic sensor and ESPHome to monitor the water level in my sump pit. Depending on what you want out of your septic tank monitoring, this may be a useful option.

p1nkpineapple
4 replies
4h54m

Mildly off-topic: I love ESPHome, and have used it for a couple of IoT-based temperature sensors around the house, but the thing that always makes me fail the WAF (Wife Acceptance Factor) is getting all the mess of ESP32s, sensors and wires all in a nicely tucked away container. What are y'all using to hide away the electronic components?

aranaur
0 replies
4h36m

This is the way.

somehnguy
0 replies
4h36m

I 3D print enclosures for my projects. Usually I find an already designed one on Thingiverse that fits close enough. If you're using common components you're likely to find an exact match.

icetank
0 replies
2h20m

I can recommend Tupperware containers. Come in all shapes and sizes and really cheap. If you get one with a glass bowl or transparent plastic you can even look inside without components getting dirty. When mounting to a wall screw your boards onto the inside of the lid and then the lid onto the wall. With this you can access it easily by removing the container from the lid. Only downside is that they can look ugly when in plain sight.

hendry
3 replies
10h37m

Requires nerves of steel to navigate Aliexpress.

mkoryak
0 replies
36m

I buy stuff from them all the time. They are Amazon with longer shipping times and better prices.

It's harder to return stuff, sure, but just don't buy anything like that there.

I've never been ripped off by them. One time I bought some stuff and it wasn't being shipped so I cancelled my order and got my money back.

gh02t
0 replies
6h35m

I've had good luck buying from the Wemos and Lilygo official stores on AX. Have had no problems in many years and dozens of orders. Other sellers are a gamble.

ThrowawayTestr
0 replies
5h47m

The only problems I've had with AliExpress is the anxiety of choosing a seller where a cheaper one exists. All the hardware I've ever bought has been exactly what I ordered.

gregwebs
3 replies
7h56m

For networking it says WiFi and BLE. What’s the approach to adding an ESPHome sensor outside of WiFi range?

shifto
1 replies
7h48m

Not to be pedantic but it's ESPhome not ESPinthemiddleofnowhere. There are other solutions for far away sensors.

tomashubelbauer
0 replies
7h19m

There is a very real band which one could call ESPgarden where it is not worth setting up LoRa or similar because the Wi-Fi can just about make it, but not quite to be reliable. I've found success with Wi-Fi extenders which aren't very good, but are just good enough to be able to be able to let some of my garden reach the network.

blutack
0 replies
6h23m

The Olimux ESP32-POE / wESP32 boards have a proper ethernet connection and PoE support. Means you don't need to worry about wifi coverage or power as long as you can get an ethernet cable to it - and those are cheap & easy to find in ludicrous lengths for outdoor use.

noisy_boy
2 replies
3h53m

I have a pet project I have been meaning to work on:

1. Lookup the local transport API to see bus arrival timings for the stop near my home

2. Display the timings for three main buses so that can either be a bigger display or three smaller displays, one for each bus. Don't have to be high res but relatively larger and bright e.g. a 7 segment display (3 segments for bus number and 4 for showing arrival time in mins) - basically family members should be able to view it from a distance a glance.

3. I should be able to update this over wifi (or via a some low-powered device like arduino/raspberry pi etc. connected to it). If it can run via AA batteries, even better.

I know how to do the first but no idea about the second - I have never even soldered anything in my life. Would be great if more knowledgeable folks can provide some pointers.

masto
1 replies
2h58m

ESPHome is a good start, as it provides a great framework for layering components together. For example, you could assemble what you want out of:

* The display component that handles drawing into a grid of pixels (https://esphome.io/components/display/)

* The text renderer

* addressable_light platform (https://esphome.io/components/display/addressable_light) to create a display matrix on top of an addressable LED driver (https://esphome.io/components/light/neopixelbus)

* An inexpensive 8x32 LED panel (https://www.google.com/search?q=8x32+ws2812b)

* You can make multiples of these, or chain the panels together, for more space

Of course, rather than reinventing any wheels, you can follow guides like https://community.home-assistant.io/t/led-matrix-with-esphom...

There's not a lot of soldering needed, especially if you go the route of repurposing existing hardware like an Ulanzi. It's mostly about making the right data connections and providing the right power.

noisy_boy
0 replies
1h35m

I appreciate your response. I wish there were guides for software developers like me that are also hardware noobs - ESPHome looks very powerful but I don't want to write yaml; I would rather write code for hardware that is easy to assemble and has an sdk. I feel like that will be more fun for me to setup.

kiney
2 replies
10h42m

I'm jist getting started with home automation and have a couple of ESP32 running tasmota. How do they compare? Thr site explains how I can migrate bit not why or under which circumstances I should...

tbyehl
1 replies
3h26m

Tasmota is firmware you can configure on-device[0] while ESPHome is a YAML-driven construction kit for compiling firmware specific to a device's configuration. Every change to the YAML is a compile-and-flash cycle.

Tasmota is only for Espressif platforms. ESPHome has expanded to support BK72xx, RTL87xx, and the Pico W, but good luck figuring out what's actually implemented on those platforms.

ESPHome supports more sensors/peripherals. Some ESPHome Components[1] simplify the combination of multiple sensors and peripherals to accomplish a task to basic YAML (check out the different Cover components).

Tasmota on ESP32 has an embedded scripting engine with REPL (Berry). ESPHome is... complicated[2]. Triggers, Actions, and Conditions can accomplish very simple automations in pure YAML. For more complicated tasks, you'll be writing C/C++ code.

ESPHome releases frequently. If you're using it with Home Assistant, it will constantly nag you to update ESPHome and all of your ESPHome devices. Tasmota releases every few months. Tasmota suggests not upgrading a device unless you have a particular need[3].

[0] Pre-compiled Tasmota binaries work for most purposes, but there are situations where you might need to compile your own to support less common features or devices.

[1] https://esphome.io/components/

[2] https://esphome.io/guides/automations

[3] https://tasmota.github.io/docs/Upgrading/

kiney
0 replies
1h23m

thank you!

allenbina
1 replies
13h28m

I’ve been happy with tasmota but I imagine that this would serve the same purpose.

M95D
0 replies
11h19m

It is a lot more configurable than Tasmota, but a lot harder to do it.

Mashimo
1 replies
12h5m

It's so nice. Just a simple .yaml file to configure IoT devices. And it works really well.

gnyman
0 replies
11h35m

And the best part is that it allows you to write logic in C(++) if you want.

I tried Tasmota first but struggled with trying to get the rules to handle my slightly complex logic. Which was that when a water level sensor triggered, run a pump 15 seconds, wait 5 mins, run 15 sec and repeat for x times. But with the catch that if the sensor triggered before the run was done, it should ignore that.

After reflashing esphome I got it done in a few minutes in C.

squarefoot
0 replies
9h53m

Does it support some sort of mesh networking?

reid
0 replies
13h28m

Made a time clock with ESPHome and a M5StickC. Clock in and out. Home Assistant sends the time to a Google Sheet. Super reliable.

klinquist
0 replies
3h33m

love ESPHome. Someone made an ESPHome driver for my Rheem Water Heater via the M5Stack ESP32 w/ RS485. I primarily use Hubitat rather than HomeAssistant, so I adapted it to Hubitat. I use it to automate my water heater based on my airbnb calendar, all without needing a cloud/internet.

eternityforest
0 replies
12h4m

One of my favorite projects in all of FOSS. The only big thing missing is power management!

I just wish there was a little more native hardware. I wonder if there's enough interest to do a run of PLC-like units?

ahaucnx
0 replies
7h11m

What I love most about ESPHome is the strong and engaged community.

For our open-source hardware air quality monitors [1], a member of the community developed a sophisticated ESPHome integration [2]. His integration comes with all features that we have in our default open-source firmware. Sometimes he was even quicker implementing new features than we did! So in a way, this helped and motivated us to make our own software version better (kind of open source competition).

So a big thank-you from my side to such a great community!

[1] https://www.airgradient.com/

[2] https://github.com/MallocArray/airgradient_esphome

MasterYoda
0 replies
5h35m

Is there something similar but for STM32?

Liftyee
0 replies
10h46m

Running a few ESPHome projects, it's great for rescuing those which I lost motivation to write code for. The ability to do processing on-device as well as with Home Assistant is neat, but writing those procedural routines with YAML takes a little getting used to. The concepts used in the ESPHome system design are not completely intuitive.

Apatheticdino
0 replies
12h4m

Dove into this when I flashed my AirGradient device. At first I had a hard time understanding how everything integrated together (does ESPHome need a hub? how does HomeAssistant work with this?). After (mostly) figuring things out I discovered how powerful it is to have configurability ranging from OTA updates to MQTT support.

My only gripe right now is the lack of documentation and confusion on the HomeAssistant side. The ESPHome addon turned out to be a red herring for getting everything set up.