The logs actually showed that this was not a Netatmo connection issue since the station/module info was available and being processed. That had to be a local issue with the processing of whatever was being received form the Netatmo server. Spent time tracing this issue deeper; turns out this is a funny corner case.
A secondary Netatmo station includes a module which has not reported back for some time (i.e.months) but still associated with the station.
When the table gets built in L_Netatmo.lua it creates and populates the look up table for the Netatmo module/device tree; as this gets done, data for each measurement available in a given module if fetched from the raw Netatmo data structure and translated into the table.
This is done in the function build_measurement. The original loop is assuming that there is always at least one measurement associated with a given module; in this specific case however (dead module) there is none and the pairs function is being asked to process a nil input which it is not prepared to do.
Trivial fix shown below (starting line 415 in D_Netatmo.lua) is working - my stations are back.
local function build_measurements (m)
local x = {Battery= m.battery_percent} -- throw in the battery level for good measure
if (m.dashboard_data ~= nil) then -- wise72 edit
for name,value in pairs (m.dashboard_data) do
-- remove underscores and change to CamelCase
local Name = name: gsub ("_(%w)", string.upper): gsub ("^%w", string.upper)
if type (value) ~= "table" then x[Name] = value end -- ignore table structures
end
end
-- add dewpoint calculation for modules with temperature and humidity
if x[T] and x[H] then
local dp = dewPoint (x[T],x[H])
x["DewPoint"] = dp - dp % 0.1
end
return x
end