Readit News logoReadit News
balloob · a year ago
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-...

balloob · a year ago
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.

Gazebra12 · a year ago
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 · a year ago
I agree, programming is fun, but using ESPHome to quickly have project finished and working reliably is arguably even more satisfying.
freedomben · a year ago
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.
mairusu · a year ago
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 · a year ago
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 · a year ago
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.
bdavbdav · a year ago
londons_explore · a year ago
ESP devices have support for sending raw wifi packets, so you can implement your own mesh protocol if you like.

They have software support for both wifi and bluetooth meshing as well.

blagie · a year ago
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 · a year ago
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.

wildekek · a year ago
I have done all this using ESPHome. There a quite some control loop components you can utilize for this, such as bang-bang and pid thermostat.

My thermostat: https://github.com/wildekek/esphome-opentherm-templates

My air cleaner: https://github.com/wildekek/BlitzHome-BH-AP2501

My bathroom hygrostat uses Home Assistant: https://www.home-assistant.io/integrations/generic_hygrostat...

jtwaleson · a year ago
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!
WhyNotHugo · a year ago
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.

Larrikin · a year ago
Why do you want to avoid Home Assistant? From what I've found setting up my automations is that once you have it doing something useful you find you have a lot of ideas to further make your life better. I might be wrong but I suspect you'll spend a lot of time doing something that is simple in HA only then find you want to do something else similar.
jbensan · a year ago
"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.

Doe-_ · a year ago
You can bind a device to another, so while you would need the ability to issue the command, a server wouldn't be required to handle the state propagation.

https://smarthomescene.com/guides/how-to-bind-zigbee-devices...

JoBrad · a year ago
I’ve been using Home Assistant for about 3 years now, and talk about it to pretty much anyone who will listen. Thanks for keeping home automation open and focused on the users!
bobby_the_whal · a year ago
Are you not concerned the foundation will ever work against your interests?
balloob · a year ago
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.
ahaucnx · a year ago
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.

sslalready · a year ago
ESPHome is awesome. Any chance you can get MQTT running on RP2040W?
cyberax · a year ago
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 · a year ago
> 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?

wkat4242 · a year ago
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

mtrio · a year ago
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 · a year ago
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 · a year ago
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.
asdefghyk · a year ago
Question: On a typical ESPHome device, reporting temperature (say every 15 minutes) via wireless to HomeAssistant, what battery life is possible ?
pcollins123 · a year ago
With a $10 18650 rechargeable battery you could probably get a couple months on a single charge. Esphome can deep sleep between readouts: https://esphome.io/components/deep_sleep.html Deep sleep pulls the power draw down to 50uA.

Of course if you also wire a solar charger next to the battery… maybe it will never run out.

RobotToaster · a year ago
You need to update your homepage, it still says it's owned by Nabu Casa at the bottom of the sidebar :).
K0balt · a year ago
Nothing but respect and gratitude for ESPhome.

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

3abiton · a year ago
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!
sen · a year ago
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.

throwup238 · a year ago
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/

darkwater · a year ago
Now you MUST share more details on the hardware (case, power etc) and process you followed for all of those devices.
kkielhofner · a year ago
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-...

alias_neo · a year ago
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.
macropin · a year ago
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 · a year ago
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...

blutack · a year ago
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 · a year ago
Car "cigarette lighter" charger adapters are cheap and can take ~12V (and some even go up to 24) and give you a USB output.
15155 · a year ago
https://shop.m5stack.com/products/battery-module-13-2-1500ma...

Featured yesterday on HN for being acquired by Espressif.

luma · a year ago
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...

lostlogin · a year ago
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.

rubenbe · a year ago
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.

baq · a year ago
ESP8266 is not recommended for new projects though. Its age is starting to show.
frognumber · a year ago
I'm not sure where you're buying your ESP8266, but mine run less than a buck (on a little dev board).

Aliexpress -> From $0.99 -> four-pack of ESP8266 for $3.19.

Even less when they have a sale.

Asmod4n · a year ago
Or you could buy a rpi2040 for 99 cents.
throwaway290 · a year ago
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 · a year ago
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).
sen · a year ago
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.
petemir · a year ago
Ikea's PARASOLL? I would expect that for your use-case, just knowing if a/the door was opened is already enough.
teekert · a year ago
How do you monitor your rain tanks? I tried ultra sonic sensors but they invariably oxidize.
throwup238 · a year ago
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.

Faaak · a year ago
There are black "waterproof" (weatherproof?) ultrasonic sensors that last a way longer time
macropin · a year ago
I've heard that pressure sensors are the most reliable.
r2_pilot · a year ago
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.
sen · a year ago
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.
squarefoot · a year ago
There are magnetic sensors in which a floating magnet (sealed in plastic) position is read by sensors (Reed, Hall, etc) sealed as well.
dnchdnd · a year ago
can you share details of the weather station please? ive been looking into gathering wind data on the cheap...
sen · a year ago
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 · a year ago
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.

Deleted Comment

ahaucnx · a year ago
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

zeroping · a year ago
Related:

A collection of device configurations for commercially-available hardware: https://devices.esphome.io/

A collection of Tasmota configurations for devices, many of which can also run ESPHome: https://templates.blakadder.com/

p1nkpineapple · a year ago
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?
agsacct · a year ago
If you have a 3D printer, you can create stuff that passes my WAF.

Apollo does a decent job making their stuff more innocuous. https://apolloautomation.com/products/sensor-stand?pr_prod_s...

holgerschurig · a year ago
That website is cancer.

It works only with JS enabled. And when I enable it, I'm pestered with pop-ups.

aranaur · a year ago
This is the way.
Nextgrid · a year ago
For things that need to be stand-alone I'd first check if there's an existing off-the-shelf option first which generally would be more cost-effective to buy and look better than anything I could make myself.

For temp sensors specifically I generally just go with whatever off-the-shelf stuff is supported by this firmware: https://github.com/pvvx/ATC_MiThermometer - as a bonus they can run on battery for a year or more.

icetank · a year ago
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.
somehnguy · a year ago
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.
bdavbdav · a year ago
M5stack is the way to go here
quickthrowman · a year ago
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 · a year ago
> 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 · a year ago
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 · a year ago
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 · a year ago
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.
reid · a year ago
Made a time clock with ESPHome and a M5StickC. Clock in and out. Home Assistant sends the time to a Google Sheet. Super reliable.
Chilko · a year ago
Something fun - the ESP32 supports capacitive touch sensing on some of it's pins, so you can turn any conductive surface into a button or input for your smart home setup. This well supported in ESPHome.

https://esphome.io/components/binary_sensor/esp32_touch.html