weewx-celestial 8.1
Comets join the Geocentric dial: every [Skyfield] [[Comets]] entry
(Halley and Hale-Bopp preconfigured out of the box) is a diamond placed
exactly like a planet, its tail fanning anti-sunward from the sun's own
dial point, solid when naked-eye bright and hollow when fainter, with a
roster row and a --add-comet/--remove-comet utility to match the
satellites'. The Next Visible Pass chart's sweeping dot now flips
between the solid sunlit dot and the hollow in-shadow ring live,
mid-pass, in step with the dome's marker — closing the one honest seam
8.0's notes disclosed. And the top of the page becomes countdown
central: a row of ticking countdown chips — the soonest visible
satellite pass, sunset or sunrise, the next meteor shower's peak,
astronomical darkness, and within thirty days of their events the next
equinox or solstice, Earth's perihelion or aphelion, the next
supermoon, the next eclipse visible from your station, and each
configured comet's perihelion — days-hours-minutes with the event's
date a day or more out, a ticking hh:mm:ss clock inside the final
day. Drop-in upgrade from 8.0 — install over it and
the page works exactly as before; the new chips and the comet layer
light up when you add their loop-data fields (the installer now does
that for you). Pairs with
weewx-skyfield 2.1, whose comets, meteor showers and supermoon serve
everything new this page shows; weewx-loopdata stays at 6.9.
Every capture below is the real page running live — no mockups: both
comets on the August 9 evening dial, NOAA-21's August 10 shadow entry
on dome and pass panel together, and the countdown row riding through
the August 9 sunset.
What's new
-
Comets on the dial. Each
[Skyfield][[Comets]]entry places
on the Geocentric exactly like a planet — compass azimuth, log Earth
distance, below-horizon dimming, the same hour-long motion trail —
drawn as a diamond with a three-ray tail pointing away from the
sun's own dial point: anti-sunward, as a comet's tail really points.
Solid diamond when the comet is naked-eye bright (magnitude 6.0 or
brighter), the hollow inversion when fainter or when the Minor
Planet Center row carries no magnitude parameters; the tap tooltip
carries the live magnitude, and the roster gains a row per comet. A
comet the MPC has dropped renders honest absence — no diamond, an
empty row, never the string "None". The dome and the pass chart
need nothing: their comet diamonds and meteor-shower radiants arrive
inside weewx-skyfield's own fragments.Both installer defaults on the live dial — Halley's diamond low in
the eastern sky with its tail fanning away from the sun's dial
point, Hale-Bopp dimmed below the southern horizon, their roster
rows below the planets': -
One-command comets. A comet is the same three weewx.conf edits
as a satellite — the[Skyfield][[Comets]]entry (tag = MPC
designation), six fields-line entries, the display name — and
--add-cometmakes them all at once, one comet per run:python -m user.celestial --add-comet a3="C/2023 A3" --name 'Tsuchinshan-ATLAS' --config /home/weewx/weewx.conf --in-placeDesignations validate (
1P,220P,C/2023 A3— quote one with a
space, fragment suffixes likeC/1947 X1-Ballowed); satellites and
comets share thealmanac.<tag>namespace, so each family refuses
the other's tags. Every edit is idempotent,--remove-cometis the
exact inverse, and all comets ride one shared MPC element file — no
extra downloads. The migrator and the install-time fields hint
follow[[Comets]]exactly as they follow[[Satellites]]: a
customized set gets its own tags' entries, a deliberately emptied
section is never resurrected. -
The sweep dot tells the live truth. During a pass, the Next
Visible Pass chart's sweeping dot now flips between the solid sunlit
dot and the hollow in-shadow ring from the same live
almanac.<satellite>.sunlitflag that drives the dome's marker —
the two panels stay in agreement when the satellite crosses the
shadow line mid-pass. 8.0 kept the culmination's state for the
whole ride (NOAA-21 culminating in shadow wore the ring from rise
while the dome correctly showed the live shadow entry). Outside the
pass the chart still stands exactly as generated: the peak-instant
portrait, culmination state included.Fittingly, NOAA-21 itself proves the fix. Captured live August 10,
02:36–02:52 AM: it rises sunlit NNE into the pre-dawn sky and drops
into Earth's shadow at 48°, high in the north near the Perseids
radiant — the dome's marker turns to the hollow ring, and now the
pass panel's sweep dot flips with it, the same second (2-second
frames at about 30× speed). The dome:…and the same pass on the Next Visible Pass panel:
-
Countdown central. A row of ticking chips at the top of the
page, updating every second. Always on: the soonest visible pass
across your satellites ("ISS · appears in 00:41:12", ticking to
zero, then "overhead now" for the show, rolling to the next pass the
moment this one ends), sunset or sunrise — whichever comes next, the
chip flipping by itself at each event — the next meteor shower's
peak under its translated name with the moon's illumination AT the
peak as the detail (a new-moon Perseids year and a full-moon one are
different plans), and astronomical darkness — begins at the −18°
sunset, ends at the −18° sunrise, whichever is next. Within
thirty days of their events, guest chips join: the next equinox or
solstice, named by the season it begins ("autumn begins in
2d 04h 11m" — and its zero lands on the astronomical instant to the
second), Earth's perihelion or aphelion (early January and early
July), the next supermoon
(weewx-skyfield 2.1 computes the instants), the next eclipse visible
from your station, each configured comet's perihelion. A
countdown's precision follows its horizon: a day or more out it
reads days-hours-minutes with the event's date beside it — seconds
are noise at that range — and inside the final day it becomes the
tickinghh:mm:ssclock, where seconds are the point. Every chip
is client-side arithmetic on an event instant weewx-loopdata
computes once and caches until it passes — the ticking costs the
engine nothing. (weewx-skyfield's own page shows a perihelion as a
dated chip up to a year out; the 30-day window here is deliberate —
a ticking countdown wants a nearer horizon.)The row riding through the August 9 sunset (1-second frames at about
15× speed): the sunset chip countshh:mm:ssdown through zero, then
rolls itself to "Sunrise 10:10:06 · 06:20" — loopdata expires the
event and the page follows, no reload: -
Translated everywhere. All nine languages learn the new
strings — the eclipse vocabulary, the perihelion label, the moon
note and the radiant tooltip verbatim from weewx-skyfield's
translations; the countdown chips' own wording translated here —
and every language now names Halley, Hale-Bopp and the twelve IMO
meteor showers the same way it names the planets. -
The migrator commands now paste-and-run on package installs.
The tailored--migrate-loopdata-fieldscommands the installer
prints carry aPYTHONPATH=<WeeWX's location>prefix. On a
Debian/Red Hat package install WeeWX's own code lives in
/usr/share/weewx, on the path only inside weectl, so the bare
command 7.8–8.0 printed died withModuleNotFoundError: No module named 'weewx'(reported by Gert Andersen — thank you). The README
and manual now show the package-install variant beside the venv
commands for the migrator and the satellite/comet utilities. -
Also: the Geocentric dial's caption gains the "·" separator 8.0
dropped between its two sentences.
Lighting up the new layers
The install does it for you (new in 8.1): weectl extension install
appends the entries the page reads that are missing from your
[LoopData] [[Include]] fields line — append-only, each one
printed, existing entries never renamed, removed or reordered, so a
hand-curated line serving other pages is safe. Restart weewxd
afterwards so weewx-loopdata reloads the line. The 8.1 additions are
the thirteen countdown-chip event fields and six fields per comet,
following your [Skyfield] [[Satellites]] and [[Comets]]. The
entries are safe on any almanac:
one that cannot serve them simply omits them from loop-data.txt (one
weewxd log line per field) and the page hides that chip or layer. The
comet layer and the shower/supermoon chips need weewx-skyfield 2.1; the
sunset, darkness and pass chips tick on 2.0 too. Only pre-6.0
spellings stay manual: renames deserve review, so the installer prints
the tailored --migrate-loopdata-fields commands instead of applying
them.
Requirements
- Python 3.9 or later
- WeeWX 5.2 or later
- weewx-loopdata
6.9 or later (unchanged from 8.0) - weewx-skyfield
2.1 for the comets, the meteor showers and the full countdown row;
2.0 still serves the dome, the satellite layer and the sunset/
darkness/pass chips; strongly recommended in general (required for
Proxima Centauri), or PyEphem for the Geocentric alone
Installing/upgrading
Download weewx-celestial.zip from this release, then install right
over the existing 8.0:
weectl extension install weewx-celestial.zip
Restart WeeWX. No weewx.conf changes are needed when upgrading from
8.0 — the fields-line addition above is only for the new chips and the
comet layer. (Upgrading from 7.x or earlier follows the README's
upgrade instructions.)



