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-...
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.
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.
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.
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?
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.
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.
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
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)
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.
A red flag, relative to what I would do is: "Frequency to adapt the lights, in seconds." I would like to be able to make tight feedback loops, which means much less than seconds. I use HA + ESPHome as well, and that's on my list of issues I'd like to see resolved. To understand why this matters for a lot of controllers:
Audio amplifiers are often in the 50MHz range, in order to achieve good performance in the <20kHz range. Add to that, in this case, the desire for steady transitions so I don't have sudden light or noise changes (stepping through 255 states takes .
That said, holistically, this does what I want better than how I was going to do it.
The other major issue I have with HA is reliability. About 10% of the time, some automations don't work. I'd really like to be able to set state (blinds are down after 8pm) rather than actions (blinds go down at 8pm). If you have suggestions....
I would love to hear more about the integration you've setup. I, too, have an ERV but it's on a dumb controller right now.
I don't use HA yet, but it's a project I plan to tackle soon. I've also been doing some research on ESP and energy monitoring, so it sounds like what you've done is right up the same alley.
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!
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.
"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.
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.
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!
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.
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.
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?
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
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.
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.
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.
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.
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.
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!
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.
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/
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.
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.
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.
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.
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.
Fair points but with all due respect completely misses the point and context. My comment was a reply to a new user interested in esphome on a post about esphome.
You're talking about CircuitPython, 35KB web replies, PSRAM, UF2 bootloader, etc. These are comparatively very advanced topics and you didn't mention esphome once.
The comfort and familiarity of Amazon for what is already a new, intimidating, and challenging subject is of immeasurable value for a novice. They can click those links, fill a cart, and have stuff show up tomorrow with all of the usual ease, friendliness, and reliability of Amazon. If they get frustrated or it doesn't work out they can shove it in the box and get a full refund Amazon-style.
You're suggesting wandering all over the internet, ordering stuff from China (or Amazon for roughly 3x the cost of what I suggested), multiple vendors, etc while describing a bunch of things that frankly just won't matter to them. I say this as someone who has been an esphome and home assistant user since day one. The approach I described has never failed or remotely bothered me and over the past ~decade I've seen it suggested to new users successfully time and time again.
In terms of PSRAM to my knowledge the only thing it is utilized for in the esphome ecosystem is higher resolution displays and more advanced voice assistant scenarios that almost always require -S3 anyway and are a very advanced, challenging use cases. I'm very familiar with displays, voice, the S3, and PSRAM but more on that in a second...
> live with one less LX7 core and no Bluetooth
I'm the founder of Willow[0] and when comparing Willow to esphome the most frequent request we get is supporting bluetooth functionality i.e. esphome bluetooth proxy[1]. This is an extremely popular use case in the esphome/home assistant community. Not having bluetooth while losing a core and paying more is a bigger issue than pin spacing.
It's also a pretty obscure board and while not a big deal to you and I if you look around at docs, guides, etc, etc you'll see the cheap-o boards from Amazon are by far the most popular and common (unsurprisingly). Another plus for a new user.
Speaking of Willow (and back to PSRAM again) even the voice assistant satellite functionality of Home Assistant doesn't fundamentally require it - the most popular device doesn't have it either[2].
Very valuable comment with a lot of interesting information, just doesn't apply to context.
> Very valuable comment with a lot of interesting information, just doesn't apply to context.
I guess I'll accept that instead of dragging this thread on ;-)
Except...
"Why doesn't this random cheap ESP32 board fit properly on a breadboard" is a super common new user frustration that's easily avoidable if they knew it was something they needed to be aware of, and I don't understand why people who should know all that will point people to ~28mm boards. My bad for not also pointing out that "ESP32 38-pin Narrow" (NodeMCU ESP32S) boards should be 25.4mm and are plentiful on Amazon at the very cheap end of the pricing spectrum.
If you don’t mind waiting on China post, I’ve had better consistency buying dev boards from reputable Chinese vendors such as DFROBOT. You can often get the boards significantly cheaper than Amazon and there is way less chance of ending up with duds. Usually turnaround is about 7-10 days with FedEx
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.
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.
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.
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.
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.
I second the Olimex ESP-POE boards. I use them for all my ESPhome projects as I'm a big fan of wired connectivity and having the ability to power them over PoE is awesome.
They also have a wide variety of sensors that connect with a ribbon cable (they call it uEXT) with no soldering required. Many of the sensors are supported by ESPHome.
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.
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.
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.)
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.
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).
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)?
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).
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...)
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)
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.
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
Generally, a lot more Zigbee devices are compatible with Zigbee2MQTT that to HA's own "ZHA" Zigbee implementation. But Zigbee2MQTT and HomeAssistant work EXTREMELY nice together, very well integrated.
And if you have your Zigbee devices in Z2MQTT, then you can also use Node Red or similar tools for some automations, if you prefer that over the somewhat weird YAML-based automations of HA.
(Tip: use a cheap x86 PC, install Proxmoxx, install Zigbee2MQTT, install HA.OS ... done!)
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.
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.
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)
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.
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!
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?
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.
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.
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.
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.
> 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.)
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.
> 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.
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.
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.
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.
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.
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.
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.
Since you're (seemingly) already familiar with Arduino, just use that as your framework. You can program the ESP32 in Arduino and access any library you're familiar with as well as handle Wifi.
You can buy an RGB matrix on Adafruit and they sell esp32 boards that can drive them directly,so it's essentially plug and play, no hardware knowledge necessary.
If you prefer to DIY but still need some guidance, check out this project that documents both hardware and software to achieve something similar to what you want to do (cool looking wifi-connected text display):
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.
> 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.
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.
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
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.
Is this a good time to ask about a project I would like to do?
I have two 220v heaters in my garage, one on each floor. I'd like to turn one or both of them on from my phone. I'd also love temp sensors near each of them.
So far I haven't found a good FOSS option to control a 220v 40A relay. Any suggestions what to use or how to set it up would appreciated.
Use something like an Aube RC840T-240; it generates an isolated 24vac supply and has an isolated normally-open 24vac input for closing the contactor. Using anything else is liable to cause life-threatening spiciness if something goes wrong.
I use one for my addition's electric baseboard heat, and control it with a standard dry contact thermostat, but you could easily use a mosfet or relay controlled by an ESP32 or similar instead.
Some completele unrelated nitpick: you wrote "220v".
As a rule of thumb: any physical unit derived from a real persons name is not written in lower case. In this case, the unit honors https://en.wikipedia.org/wiki/Alessandro_Volta and so it's written "220 V" instead.
Applies to other units based on surnames, like Heinrich Hertz' "Hz", Lord Kelvin's "K", James Watt's "W", André-Marie_Ampère's "A" and so on.
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.
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.
Where would I start if I want to run a ESPHome voice assistant without a Homeassitant server?
I understand I need some kind of server, but I'd prefer if that would be something I just run in the terminal or a cloud function or similar. I don't have hardward to run HA on at the moment.
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.
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.
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.
There is BLE Long Range (also called Coded PHY) which is Bluetooth with range of 1km. I bet that would be perfect for outdoor sensors. Longer range and lower power than Wifi, and Bluetooth ecosystem.
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.
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.
I'll be the contrarian. I really do not like ESPHome at all. It sure is a nifty whizzbang project, and generating firmware on the fly from a json config is pretty neat, but I found it to be utterly insufferable.
First, the ESP is a beast of a chip. The 32s have megabytes of flash space. Maybe I'm missing something, but it seems that it should be very possible to have one firmware image that consumes the same json config directly to set up components at runtime. The compiler for ESP is slow and the binaries are quite large. Makes far more sense to beam over a couple kb of json than a few MB image.
I found the documentation to be absolutely terrible. Took me multiple hours to figure out how to use the LEDC peripheral with RGBW LEDs.
I also wanted to include an IR remote transceiver, the ESP has hardware for this. There seemed to be no IR receive software available, and the IR transmit module gave you a single button. Just one. I was expecting a keypad at the very least.
Also the whole process of finding a module for the functionality you want is a little ridiculous. You just scroll through this endless list of poorly categorized modules with ambiguous names and irrelevant icons. Then once you find what you want, you have to find the documentation for its json somewhere else entirely.
Honestly I would enjoy this project a lot more if it were simply a light framework that you plug into your own firmware. Handle the web stuff and HA API calls for me and just expose some events so I can handle user input myself. Instead I have this gigantic binary blob. I'm sure I could go find the firmware it's generating and customize it myself, but it seemed like a lot of effort so I gave up.
It's a neat project if all you want to do is plug some stuff together and never, ever think about anything. That's not how I like to work, there's far, far too much hidden from me.
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?
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.
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.
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.
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.
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
I'm baffled at how shallow some trigger happy downvoters can be. This was a legit question; I live in a reinforced concrete house surrounded by H shaped girders all around and using a star type topology with all external sensors talking to a AP would require placing one of them on each side of the house, plus the three I already have on the inside, because doing otherwise WiFi communications would be next to impossible.
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...
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.
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-...