We’ve had a Netatmo weather station on the house for a couple of years and we really like it. They finally started shipping their long-delayed wind measuring module, and so I got mine and needed to add it to the system configuration. Unfortunately, things went a little sideway when I ran into a situation where their software design failed miserably for me and took me a couple of hours to unwind.

Or as I said on twitter, the words that define modern society are upgrading firmware.

Trying to add the new module to the system, I ran into a failure mode: while I could get weather data from the device just fine, all attempts to connect to it timed out in in maintenance mode. The administration interface of the system simply wouldn’t connect. So… off to find the answer.

The product documentation and support area on their site were worthless. Searching online got me nowhere, although it ultimately gave me the hint I needed. I spent over an hour trying to figure this out before figuring it out.

The IOS apps wouldn’t connect, so I ended up connecting the station to the desktop via USB, only to find that the desktop apps wouldn’t connect, either. I finally thought to redownload the desktop app. Yup, my version was out of date. Fired up the updated version, and it connected to the station just fine, and it immediately announced a firmware update for the system. And once that update was installed, the IOS apps could once again connect in to the station just fine. Once I got over this hump, configuring in the new data module took under five minutes.

And this all came down to some poor software design decisions on Netatmo’s part. First, on IOS, the error was pretty meaningless, on the order of is your network working right? Click retry to see this error message again. Same error on the desktop app.

If you go to the web site to add the module, it pushes you to the IOS app. Somewhat hidden is the pointer to the Mac desktop apps. The IOS apps are auto-updated by the App Store, but they pushed an update that assumed the firmware for the station was updated, which mine wasn’t.

There is no way to find out what release number my firmware updates are, and no way to tell what current firmware releases are, so I couldn’t manually compare it. Nowhere is there a notification that my firmware needs to be updated in any of the app systems, IOS or Web. The Desktop apps don’t tell me they have updates available, and aren’t in the App Store where update notification is automatic.

I had to think to look for an update, and even though everything points me at the IOS apps, it looks like the IOS apps can’t update the firmware, you have to use the desktop apps, even though they discourage me from using those apps, and those apps don’t actually tell me the firmware needs updating, and they don’t warn me the apps themselves need updating.

I should also note it updated the firmware on the device without asking permission, which is a minor sin to me but I know will annoy some of you immensely, and nowhere can I find even a hint of release notes, so I have no clue what the updated apps do, other than fix my specific problem. Well, other than unilaterally updating my firmware with random but undocumented changes.

In other words, this is all really sloppy design with incomplete features. These things really need a better update system with improved notifications. These are pretty serious anti-patterns in an area of software design where how things ought to work are pretty well defined:

  • If you ship through the App Stores you get updates for free; if you ship yourself, you need to manage this and your apps need to warn the user (with an opt-out) of new releases.
  • If your system includes things with firmware, I need to be able to figure out what firmware release I’m running.
  • If you update the firmware, I need to know you’ve done so, and that notification needs to be in the tools we regularly use to access the system (None of this ‘use the IOS apps we wrote, except when you need to update the tools, and by the way, we won’t tell you they need updating, or that the Mac tools exist.’)
  • Ask permission to update firmware, and explain to the user what you’re doing. Yes, this trend towards we fixed bugs, aren’t we great? release notes sucks

In other words, you need good notification systems of changes, easy to use update processes, and clear documentation. None of which Netatmo has. Which is a bit sad, because the IOS apps are pretty good, the web access to the station is as well, and it’s clear this just wasn’t a priority for their developers and they didn’t really think through the problems they are creating for their customers.

I mean, seriously: if I, with a few decades of serious geekdom under my belt, bruised my face repeatedly on this brick wall, what will a non-technical user do about this? (short answer: give up and simply not buy more products from the company because the ones they bought were flakey, or loop into tech support, which is expensive and time consuming for the company).

Despite this, overall, I’m really happy with the system, and this is very much an edge case: but it’s one that when you trip over it it leaves bruises.

I really like the wireless communication between collection modules and the main inside module, which dumps data out to their cloud so I can view it on any device, or on the web, as I wish. And it is small, the industrial design is nice and clean, and it works very reliably. this is our third generation weather station on the house, and I’ll put up with having to deal with this once or twice a year if I need to because the rest of the setup works fine; but it’s too bad they didn’t put enough effort into this aspect of their software design when they needed to.