Tasmota vs. ESPHomeYAML - Pro's & Con's

I’m a big fan of how ESPhome integrates directly into HASS without the need for an MQTT middleman that slows down sensor readings. Ok, ok… we are talking maybe just milliseconds in most cases, but it is moticable with some of my sensors. Additionally, passing data through an MQTT server provides an additional possible point of failure.

ESPhome is great…
Having used both platforms I still prefer Tasmota, I hate messing around with text based yaml and Tasmota’s web interface for setting up sensors is a lot better IMO. Uploading firmware from ESPhome requires a internet connection (in most cases) as it downloads the modules only on compiling.

Honestly,I guess that’s the one thing I didn’t think of that is a strike against ESPHome.

It is only required when compiling, not in everyday use.

Yup, I know that.

However, it is a strike against ESPHome since you only need the internet connection one time ever to use tasmota to do the initial download.

For ESPHome you need the internet every time you add a new device. Not a deal breaker necessarily but definitely a con I hadn’t put any thought into.

well you need Internet also when you update Tasmota. Once ESPhome is setup you don’t need internet, as Tasmota,

That’s not entirely correct.

You need an internet connection every time you need to do a compile in esphome.

You only need an internet connection for tasmota only when you download the bin files for the first time.

I actually ran into that limitation on esphome a few days ago.

I tried to recompile a node I needed to make a small change to and I kept getting an error because the compiler couldn’t reach platformio to get the required file to compile.

The error was something like “can’t reach platformio”. And after re-trying 5 times it faulted out and wouldn’t compile.

1 Like

I just use ESPHome from the shell to compile stuff. Once I have the ESPHome and PlatformIO stuff installed, it’s just there. I’ve not used it from inside of home assistant, and I still use MQTT since it’s really easy to watch what’s going on by just subscribing to the relevant topics.

I technically don’t either. I have ESPHome installed in a docker container (stand alone) and access that container’s web dashboard thru an iframe in HA.

So you are saying that ESPHome never has to access anything on the internet even when compiling a new device that uses a platformio module that ESPHome has never used before?

Hmmm, I recall now that it seems to fetch modules on demand for “new” configurations. Seems I spend most of my time lately debugging a weird i2c problem, so I’m mostly recompiling. You’re probably correct there, I’m surprised that this is not cached somewhere in the pio infrastructure as libraries are used.

Running a build with a couple of -v options seems to suggest some “LibraryManager” thing is fetching new libraries, but noticing it has them already. Possibly it’s checking new versions? I wonder if there’s a way to pin a particular version of libraries so that you can get reproduceable builds weeks / months and avoid just sucking in the latest versions of libraries extant at the time?

I have an iFan03 in the mail right now. When it arrives, I need to make the choice between Tasmota and ESPhome. So far, I have 8 Sonoff Basics flashed with ESPhome and LOVE it, but I am very scared about the iFan03 - mainly because the only true documentation I can find is for the iFan02. Leaning towards Tasmota for this, which would be my first experience with Tasmota, but just wanted to ask here if anyone had success with either the iFan02 or iFan03 with either firmware? Thanks :slight_smile:

As a matter of fact I just flashed an iFan02 with ESPHome this week and it’s working great so far.

I’ve had another iFan02 flashed with Tasmota for a while now but I didn’t want to switch over to ESPHome until someone smarter than me came up with the code. I finally found some a couple of weeks ago pointed out to me by another forum member.

I had to tweak it a bit but now it’s working perfectly so far.

Here is the ESPHome code I used:

(warning! shameless plug incoming…:wink:)

And if you are using either Tasmota or ESPHome they can both take advantage of my lovelace custom fan control entity that you can find here:

and the github repo:

or you can install it thru HACS.

Holy cow man! You are a rockstar, thank you for sharing this all with me. Might be hard to say if you don’t have an iFan03 but would you estimate that these are very similar in getting flashed? I took a chance with the 03, knowing there was WAY less documentation available to me, after reading that the 02 was more geared for 200/230v rather than 115/120v and due to that was having issues for some people in the states.

Also - nice freaking card man. Just got into HACS the other day so I will use that to get it going once I get the iFan flashed! :slight_smile:

I really have no idea but I would think they will likely be flashable in the same way but I don’t have any clue as to if the firmware will be compatible or not.

The only issue I’ve heard about for US users is that the speeds on low & medium are way slower than other US fans. Maybe that’s related to the voltage but since the high speed is the same then I would be surprised if that was what was causing the speed issues.

I edited my post a little after replying initially but in case you missed it:

Nice freaking card man. Just got into HACS the other day so I will use that to get it going once I get the iFan flashed! :slight_smile: But the buttons for the fan speed are fantastic looking, I love the look.

Thank you very much. I’m glad you like it. :slightly_smiling_face:

Quick question for ya…

If I am only using (1) iFan device, I will still need the three files, correct?

Technically you really will only need two of the files. You have to have the ifan02.h file and then you will need a esphome yaml file that would combine the two other files into one yaml file.

I like to make it so that I only have one place to make changes on a device specific basis and it makes it really obvious which things I need to change for each device. I just copy an existing device file and then modify the stuff in there for the new device. IOW, if it’s in the device specific file I have to change it. If it’s not in there I don’t. Makes things easier to keep track of for me and less of a chance I forget something.

If you don’t want to do it that way then just look in the common file for the places that there is a substitution (denoted by a $) and change the stuff there to be hard coded.

Okay, that makes sense (mostly) - still sort of new overall with yaml and HA.

You mind if I reach out to you if I run into issues? Still waiting on the iFan03 from iTead which will probably be another week or two out :frowning:

Yeah, no problem.

I don’t know if I’ll be able to help but I’ll give it the ol’ college try. :slightly_smiling_face: