Release v6.0
weewx-celestial 6.0
A major release that removes this extension's reason-for-being — and keeps
everything you actually see. weewx-celestial no longer computes celestial
values or inserts anything into loop packets: the live page is now driven by
weewx-loopdata 5.0 almanac fields, report almanac tags evaluated by the
weewx-skyfield almanac on every loop record. One engine serves the report
tags and the live values, so they always agree; a new live field is a
weewx.conf fields-line edit, not an extension release. What remains here is
the bundled Celestial report, the $sky_page shim behind its seven sky
charts, and a migration utility. This is not a drop-in upgrade — see
the action-required section — but the migration is mechanical and a bundled
tool does it for you.
What's new
- The loop-field service is gone. Versions through 5.x computed ~60
observations with a bundled Skyfield engine, on the WeeWX engine thread,
and injected them into every LOOP packet. weewx-loopdata 5.0 evaluates
the same values as almanac fields (almanac.sunrise.raw,
almanac(horizon=-6).sun(use_center=1).rise.raw, …) with the same
caching discipline (positions every packet; rise/set once per local day;
events kept until their day passes), off the engine thread. - The sample report is unchanged to look at, rebuilt underneath: every
live cell now reads the almanac keys; waxing is derived on the page (the
moon is waxing when the next full moon precedes the next new moon —
exact, unlike the phase index); distances convert from raw astronomical
units in javascript; Proxima Centauri converts AU to light years. - Installing over the top of 5.x cannot break weewxd.
weectl extension installnever reverses an old version's registrations, so a
leftoveruser.celestial.Celestialindata_serviceswould have crashed
the engine at startup. 6.0 ships a stub service that starts cleanly,
binds nothing, and logs how to finish the cleanup. - The migration utility now targets 6.0:
--migrate-loopdata-fields
rewrites every celestial entry in your[LoopData] [[Include]] fields
line (including pre-3.0 PascalCase names) to its almanac equivalent —
in place, rendition suffixes honored, non-celestial entries untouched,
duplicates dropped, the report's field set appended. Every entry it can
produce is cross-checked against weewx-loopdata's parser in the test
suite. - Smaller and simpler: the Skyfield engine, the bundled DE421 ephemeris
(16 MB, which was also held resident in memory alongside
weewx-skyfield's copy) and star catalog are gone, and the extension no
longer requires the Skyfield or NumPy libraries.
ACTION REQUIRED when upgrading
-
Uninstall the old version first (recommended — it removes the old
service registration and data files while the old install record still
knows about them):weectl extension uninstall celestialIf you install 6.0 over the top instead, weewxd still starts (the stub
logs a warning); finish by hand: removeuser.celestial.Celestialfrom
data_servicesin[Engine] [[Services]], and delete
bin/user/celestial_de421.bspandbin/user/celestial_stars.dat. -
Install weewx-loopdata
5.0+ and weewx-skyfield
if you have not already, then install 6.0:weectl extension install weewx-celestial.zip -
Migrate your fields line — the utility ships with 6.0, so this comes
after the install (run from the directory containing theuser
package —WEEWX_ROOT/bin, or~/weewx-data/binon pip installs):python -m user.celestial --migrate-loopdata-fields --config /home/weewx/weewx.conf --output /tmp/weewx.conf.migrated diff /home/weewx/weewx.conf /tmp/weewx.conf.migrated # review, then move into place(
--in-placeedits weewx.conf directly after a backup;
--print-fields-valueprints the bare line for cut-and-paste.) -
Restart WeeWX. The
[Celestial]weewx.conf section is obsolete and can
be deleted whenever convenient.
If your own pages read the old fields, three things have no 1:1
replacement: distances arrive as raw AU (multiply by 92,955,807 mi/AU or
149,597,870 km/AU), almanac.moon.phase is a raw percent, and
moonWaxing is derived (almanac.next_full_moon.raw < almanac.next_new_moon.raw). The bundled skin shows all three derivations.
Requirements
- Python 3.9 or later, WeeWX 5.2 or later
- weewx-loopdata 5.0
or later (evaluates the almanac fields) - weewx-skyfield
strongly recommended: it computes the almanac values and draws the seven
sky-chart panels. Without it, WeeWX's built-in almanac serves what it
can and the panels show install hints. - Skyfield and NumPy are no longer required by this extension.
Installing/upgrading
Download weewx-celestial.zip from this release, then follow the
action-required steps above. For a fresh install there is nothing to
migrate: just step 2, then add the report's fields line from the README to
[LoopData] [[Include]] and restart.
A customized celestial.css is preserved (it ships copy-once and its
classes are unchanged).