Troubleshooting
No page at <weewx-url>/loopdata/
The sample report’s HTML is generated by the normal WeeWX report cycle, which typically runs every 5 minutes. Wait for a cycle to complete after installing and restarting.
The sample panel’s indicator isn’t LIVE
The sample skin diagnoses its own data feed:
| Indicator | Meaning |
|---|---|
OFFLINE | The fetch itself failed — the web server is unreachable. |
NO DATA (HTTP 404) — check loop_data_file | The web server answered, but not with the file. The classic cause: loop_data_dir points outside the web server’s tree (say /dev/shm) with nothing configured to serve it, or the skin’s loop_data_file Extras option doesn’t match where the file actually lands. |
BAD DATA — check loop_data_file | The poll got HTTP 200 but the body isn’t json — usually a catch-all web server rule serving an HTML page at that URL. |
| A growing age readout | The file is served but not being rewritten — check that weewxd is running and the log for loopdata errors; if you rsync, see below. |
A later successful poll rewrites the indicator to LIVE.
The panel shows readouts but no needles, bands or windrose
You upgraded to 6.0+ and kept a pre-6.0 fields line. Upgrades keep your existing [LoopData] fields line, and the instrument panel reads fields the old default never included (.raw geometry, unit.label scales, day.windrose.*). Replace the fields line with the sample configuration’s, appending any fields other pages of yours use, and restart weewxd.
A field I listed never appears in loop-data.txt
In roughly descending order of likelihood:
- The data is missing. A field with no value is omitted — a trend before enough packets have arrived, or an observation your station doesn’t report. This is by design; see Missing data (and
string()for forcing emission). - The aggregate needs the database, and the observation isn’t in it. Aggregates implemented via xtypes (e.g. weewx-purple’s
pm2_5_aqi) are ignored; only current values work for such observations. See the field reference. - The entry was split at a comma. A formatting call or almanac tag containing a comma must be quoted in weewx.conf, or ConfigObj splits it into two bogus fields. See the quoting note.
- An incompatible unit override. A unit that doesn’t belong to the observation’s unit group (e.g.
day.outTemp.avg.beaufort) causes the field to be omitted. A unit registered by another extension is recognized only if that extension initializes before LoopData. - A removed grammar. The experimental
windrun_<dir>types were removed in 6.0; fields naming them are ignored. See the migration mapping.
Also check the WeeWX log around startup: loopdata logs parse problems with field entries.
Values stay English on a translated page
The page’s labels and the live values translate independently — labels follow the sample report’s lang, values follow the [LoopData] target_report’s (see Translations). So if trend.barometer.desc is stuck at Rising Slowly — or moon phases, compass ordinates or almanac names stay English — on an otherwise translated page, check the value side:
target_reportmust point at a report whose skin carries a lang file with the needed strings. The sample report (LoopDataReport, the default) ships them for every language loopdata ships. Pointingtarget_reportat another extension’s report — say, weewx-celestial’sCelestialReport— leaves the barometer descriptions English in every language, because that skin’s dictionary has no barometer phrases. There is nothing to lose by retargeting: the Celestial page takes only numbers fromloop-data.txt; all of its text is translated at page generation from its own lang file.- The target report’s stanza must set
lang(or inherit it from[StdReport] [[Defaults]]). - Restart weewxd — the target report’s texts are read once at startup.
- This needs loopdata 6.4 or later.
Aggregate values look slightly off
Check [[LoopFrequency]] seconds. It is the weight given to each loop packet in the accumulators, so a wrong value skews time-weighted aggregates (averages, windrose time bins). It must match your device’s actual loop cadence — 2.0 for Davis Vantage Pro 2 and RainWise CC3000.
My driver acts strangely with loopdata
This extension has been tested with the WeeWX vantage and cc3000 drivers. It will likely also work with other drivers that report loop packets on a regular basis and report all observations on every loop packet. Use loopdata with drivers that report loop packets on an irregular basis and/or report partial observations, at your own risk.
Rsync problems
See Syncing to a remote server — including why occasional timeout errors in the log are normal, how to make them disappear with ssh control master multiplexing, and how the time bounds keep a dead remote from stalling loop processing.
Why require Python 3.7 or later?
LoopData code includes type annotations which do not work with Python 2, nor in earlier versions of Python 3.
Still stuck?
Open an issue at github.com/chaunceygardiner/weewx-loopdata/issues with your [LoopData] section and the relevant WeeWX log lines.