Easier way to update firmware?

Maybe we need more refined update categories and changelogs.

At work commercial OS stuff like Windows or RedHat put out updates in categories so stuff like “security updates” are required and automatically applied checking multiple times a week but “feature upgrades” are only manually applied after careful evaluation of whether its needed and the risks of regression or impact to production.

Right now all updates are just updates - so you get an “there’s an update” whether its a major security flaw or just they added some new widget that you don’t care about.

If they had update categories then you could pick and choose if you care about alerts for security related updates available or any updates available.

In my case, especially for esphome, I usually don’t care about updates to the devices themselves. I have them in a separate VLAN where nothing else can get at them and they don’t have internet access there’s not a lot that can go wrong between the esphome boards and HA on that separate isolated network even if they are out of date. But I care a LOT about whether HA itself is up to date if there are any security related patches especially.

1 Like

Why is that? Guess you skipped updates before as you are only now aware of the regular update interval of esphome?

You can just disable the update sensor on your esphome devices OR don’t update the esphome dashboard to don’t get notified.

I’m very much with you here.

:100:

Maybe they will ship the “security updates” with repairs in the future? Who knows…

You pick out a single sentence? Guessed wrong, I always was aware, but the frequency and notifications have gone up very high last weeks.

How is that different from January (actually in total more updates than in February :wink:):

or December with even two releases on the same day?

It’s very normal that after the monthly release bug fix releases coming in :man_shrugging:

Keep on rolling :game_die:

You’re picking your response again on a part of the sentence :slight_smile: .

I never had any issues with updates, just managed them alone in the esphome addon. Now they’re also popping in HA it’s more “present”.

When I quote your whole post the @system will just auto magically remove the quote completely :wink:

I posted already how to “opt-out” on update notifications for particular esphome nodes or how to do it for all - the rest is up to you :wink:

PS.: I now circumvented actions from @system by quoting your whole post in two parts :muscle:

I suspect a lot of folks that don’t like the recent changes to ESPHome devices would have less of a problem if there were accompanying changes that made it easier to opt out of the bulk update process.

That’s very obvious with the amount of users “complaining” on various channels - including this forum :point_down:

I actually expect that based on the user echo we will sooner or later find a option to fine grain update notifications for esphome in HA (like for all update, for security updates only or even disable it completely). In the past @frenck or @jesserockz always took valid feedback into account and everything turned out to be even better in the end :trophy:

Agreed. Those guys rock. :wink:

Or if there was an easy way TO bulk update? I’ve had very poor results trying to update my 20 or so esphome nodes often requiring me to make 5-10 attempts to get thru the update-all, and one of them can only be updated when it “phones home” due to solar/battery deep sleep. Seems like it times out and then doesn’t finish the job in bulk.

But yeah regardless it’d be nice if it was less nagging. I don’t care that its got a big number but when it hides any OTHER relevant updates due to the number of ESPHome updates that’s an issue. I want to know about them but probably only care about certain ones.

I have 20+ ESPHome devices in my house and I’ve spent quite a bit of time thinking about this too trying to decide how to handle it. I think @sender said it well with this line:

For now, I’ve been turning off “Enable” for the Firmware value on almost all my ESPHome devices so I can reduce the number of notifications. I don’t really want a notification for every device to show up on HA because most of them aren’t going to be impacted by a FW flash from the new ESPHome release. I do want a single notification that ESPHome devices are out of date. I would like it if any ESPHome devices were out of date, it would bundle them up into a single notification on HA saying “An ESPHome device is on old FW”.

The best long-term approach I can think of is to figure out dependencies from the ESPHome YAML file on each ESPHome update and decide then the criticality of each update to an ESPHome device deployment. I envision any update that has a change which is touched by the implementation should be flagged as a node needing the firmware flashed. You could even go so far as to decide on the importance of the FW update based on the changelog if the developers published a grading scale of some kind.

Anyway, that’s my pie-in-the-sky wish list that probably is unattainable. :stuck_out_tongue:

I think the solution is even simpler.

If you device is working then don’t update.

Then you have dozens of “update” notifications that you have to individually hit install or skip on, which may all come back tomorrow if there’s another update.

I’m very grateful for all the work the esphome developers do, but I would also welcome a less frequent update schedule. If there was an option to only update 4x per year instead of monthly, I would enable it.

Just set yourself a reminder (automation) to update your nodes every 3 month :raised_hands:

I would definitely agree with that! I’ve now switched almost all my devices at home to ESP: that makes over 80 of them. When I finish there will be even mora than 100!!

With every little update, it takes almost the whole day for all ESP devices to be reflashed OTA…

As I can see on the screenshot below, I can no longer turn off the notification at all!

:o


You see that this update only includes/lists 5 changes/fixes? I very much doubt that all of your 83 devices need that update… The ones which feature a cse7766 power sensor or a tmp102 temp sensor should improve. In case you use esphome nodes with wake word they also should benefit - for the rest the update is of no importance (in other words: useless) as it doesn’t include any general or security fixes :bulb:

Or in other words :point_down:

With great power comes great responsibility

Any of the various ways described should do it - for me it was only one click to get permanently rid of all esphome update notifications.

1 Like

Another thing that would help, is quit compiling the source for the same devices over and over… these are shared libraries, not individual device libraries.

If I have ten of X architecture somethings, it should compile the library once for that architecture, in cases where the config file doesn’t change the binary .o file. Then link individual device .o files against the shared .o files.

And at the next source update, only build things that changed, not the entire esphome core tree again.

Did ESPHome hire someone from Gentoo? LOL… joke… but not really… wow…

Even Tasmota who releases complete binaries, manages to do everything with ten binaries for every device they support… AND they can auto upload minimal to devices limited on space AND auto update to the correct full version immediately afterward. No source building required… at all.

This architecture for updates happening weekly, is well beyond silly.

Probably worth warning users about – if you’re happy with Tas, stay there. This is completely bonkers and even the long-understood unix compile process isn’t utilized correctly.

Feels very slapped together. I’ve got 8266 devices with plenty of room to run that need a minimal OTA firmware then upgrade cycle. With TAS, all I have to do to automate that is toss their binary minimal at the device and it’ll finish the upgrade on its own.

I don’t even think the ESPHome add-on is attempting to .gz these firmware images… but maybe that’s fixed now.

(Just an interested party who wanted to try ESPHome thinking if Nabu Casa bought them and integrated them, it must at least be as smart as Tas… whoa boy was I wrong! LOL… yuck… messy… very messy. Feels like beta. I’ve only got seven devices converted over, and I completely halted this little ESPHome “experiment”… it isn’t ready for prime-time. Love that there’s new life in it, but yikes… it un-automated a small portion of my home instead of automating it.)

Feel free to send a PR so your function(s) can be included :arrow_up:

https://github.com/esphome/esphome/pulls

Is it? Last time I counted tasmota offered already over 100 different binaries in the web installer… :thinking: While in the past it could often happen that you have a sensor supported in one binary it lacked display support because that are in a different binary (a manual compilation of things is then necessary).

It’s actually monthly for feature release plus bug fixes. :raised_hands:

The way esphome (and ha is shipped) is close to a rolling release or continuous delivery approach, you can read more about that on wikipedia if you like to know more :point_down:

:100:

Not sure what you did wrong? Are you still wasting time with mqtt and not using the native api? :trophy:

For my 80+ esphome nodes all that it takes is one click on “update-all” to update all devices - that could obviously be automated but I rather do this myself every 2 or 3 months :bulb:

Answering your questions:

Yeaaaahhhh, a PR from a volunteer to a paid team to completely refactor their misuse of a compiler such that it needs to build the same object file over and over for every device? Yeah, thanks, no.

I know what a rolling release is. We call that “hoping to patch your way to success”… LOL. Also known as, “Always broken”. Meh. It’s not a positive anymore once you hit about 80% just passing down upstream patches without any real regression testing. Seen the release notes lately? Upgraded library blah… repeated about 50 times… that stuff isn’t getting tested… and it’ll roll again the next month…

No idea what the “web installer” is, but there’s only ten binaries to cover installation of ALL hardware they support. Did I stutter?

Did you have a point besides playing the clip individual sentences game to add snark? I made mine. There’s nothing particularly compelling or “better” about this, having tried it. It’s a pretty big mess. Especially at IoT numbers of devices scale. Recompiling for 50-100 devices isn’t going to scale.

Just here to discuss. It is a discussion board after all. Not sure you actually addressed anything I mentioned as architechtural issues (that still need a LOT of work), though.

Did you have an architectural point as to why waiting for binaries to compile for 50-100 go-arounds for the same object files, is a good thing? How about when someone has 200?

Iterating over a directory tree rebuilding 50-100 binaries at every release, is just brute force… it’s not much of an update system… it has absolutely nothing to do with the API. API works fine. Re-read.

I’ll stick with Tas on the majority of the devices until this is a LOT faster…

Updating those is a shell script that grabs the latest minimal, hits all of them via http to tell them to grab that from the internal webserver, and they do the minimal to full transition on their own, and are back online… ALL of them, in roughly 120 seconds.

(One laggard that’s way at the very edge of wifi coverage takes 180.)

Nothing needs compiled, nothing gets repetitively compiled over and over, same code… the CPU and other resources on the HA box don’t even notice it.

Re-compiling 50, 100, 200… new binaries at every monthly update, is completely bonkers… it’s a nice “first effort” I guess…

No skin off my nose, just chatting. Tas works well. ESP integration will have to do something a lot more compelling than kick off a copy of a compiler for every device before it’ll scale, is all I’m sayin’… :slight_smile:

Like you, I could automate it and not click… watching it just made me realize it’s a resource suck for no particularly good reason… doesn’t seem to add any more functionality to the devices, or anything like that either, of course…

Fun convo.