Skip to content

Releases: chaunceygardiner/weewx-xtide

Release v3.0

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 08 Aug 02:14

weewx-xtide 3.0

The sample tide report now speaks nine languages, and two significant bugs
are fixed: WeeWX failed to start with weewx-xtide installed on systems
running a non-English locale, and tide stations in a different timezone than
the WeeWX server got shifted or missing events. No weewx.conf changes are
needed; this is a drop-in upgrade for English reports, and one lang line
turns on a translation.

What's new

  • The sample report is internationalized. Nine languages ship: English,
    Danish, Dutch, French, German, Italian, Norwegian, Spanish and Swedish.
    Pick one by setting lang on the report's stanza in weewx.conf (e.g.
    lang = de under [StdReport] [[XTideReport]]); the default remains
    English. A missing translation falls back to English one string at a
    time. Date formats follow the report language; month and weekday names
    come from the server's locale, as in WeeWX itself (use a full locale name
    such as lang = de_DE.UTF-8 to localize them too). The non-English
    translations are Beta, pending native-speaker review — corrections are
    welcome as GitHub issues. Details in the manual:
    Translating the tide page.

    The tide page in German

    The tide page in French

    The tide page in Dutch

    The tide page in Spanish

    The tide page in Danish

    The tide page in Italian

    The tide page in Norwegian

    The tide page in Swedish

  • A user manual. Installation, configuration, the $xtide.events()
    and $xtide.graph() tags, and translating, at
    chaunceygardiner.github.io/weewx-xtide.

  • weewx-xtide no longer crashes WeeWX startup under non-English locales.
    The tide program's event times are always English ("9:16 AM UTC"), but they
    were parsed with a locale-dependent AM/PM directive, and most non-English
    locales (German, French, Danish, Spanish, ...) define empty AM/PM
    designators — so parsing failed and WeeWX could not start. The AM/PM token
    is now handled explicitly; no locale affects it.

  • Stations in a different timezone than the server now get correct
    events.
    Event times were parsed in the server's local timezone, so a
    station elsewhere got events shifted by the timezone difference, or none at
    all when the timezone abbreviation wasn't recognized. The tide program is
    now run in UTC mode (-z) and all times are handled in UTC, so any
    station/server combination works. Stations in the server's own timezone
    were always correct and are unaffected. This also fixes a possible
    one-hour error during the repeated hour of the autumn DST fall-back.

  • 24-hour time labels where the locale calls for them. The sample skin's
    graph and tide-list labels use 24-hour form when the system locale has no
    AM/PM designators (as in most of continental Europe), where "9:16 AM" would
    have rendered as an ambiguous "9:16". Translated reports use each
    language's own date and time forms regardless of the server locale.

  • xtide.py --test-service works again. It now honors --location and
    --prog; it previously ignored them in favor of a hard-coded location and
    a tide path that no longer exists.

Requirements

  • Python 3.10
  • WeeWX 4 or 5
  • The xtide package (see the README)

Installing/upgrading

Download weewx-xtide.zip from this release, then:

weectl extension install weewx-xtide.zip

Restart WeeWX. No weewx.conf changes are needed when upgrading from 2.x —
add lang = <code> to the report's stanza only if you want a translated
page. Note that upgrading replaces the bundled skin (skins/xtide/) — if
you customized it, save a copy first.

Release v2.1

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 13 Jul 05:35

weewx-xtide 2.1

WeeWX could fail to shut down if the stop signal arrived while XTide was
saving tide events at the end of an archive period. Nothing else changes:
no weewx.conf edits. This is a drop-in upgrade.

What's new

  • Shutdown can no longer be swallowed by XTide's database code. WeeWX
    stops by raising an exception from its TERM signal handler, inside
    whatever code is running when the signal lands. If that was XTide's
    once-per-archive-period tide-event save (or the tide-record fetch it
    calls, which would even sleep and retry on the swallowed signal), the
    shutdown exception was logged and swallowed, and weewx failed to stop.
    It is now passed through so weewx stops promptly. (The tide generation
    itself runs in XTide's own worker thread and was never affected.)

Requirements

  • Python 3.10
  • WeeWX 4 or 5
  • The xtide package (see the README)

Installing/upgrading

Download weewx-xtide.zip from this release, then:

weectl extension install weewx-xtide.zip

Restart WeeWX. No weewx.conf changes are needed when upgrading from 2.0.
Note that upgrading replaces the bundled skin (skins/xtide/) — if you
customized it, save a copy first.

Release v2.0

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 10 Jul 22:36

weewx-xtide 2.0

The sample report is now an interactive tide graph. Instead of a list of tidal
events, you get continuous tide levels with the highs and lows marked — and you
can click (or hover) anywhere on the curve to see the exact time and tide level.

weewx-xtide 2.0 interactive tide graph

What's new

  • Interactive tide graph in the sample report:
    • Three views: 2 days (today and tomorrow), 7 days, and 30 days — switched with
      tabs, no page reload.
    • Click or hover (tap on a phone) anywhere on the curve for a tooltip with the
      exact time and tide level; near a high or low it snaps to that event.
    • High and low tides are marked on the curve (with level and time labels on the
      2-day view).
    • Night is shaded (sunset to sunrise), and a dashed "now" line tracks the
      current time.
    • The familiar tidal-event list appears below the graph, filtered to the
      selected view.
    • The page is fully self-contained: inline SVG, no javascript libraries,
      nothing fetched at run time. Tooltip times are shown in the station's
      timezone.
  • The sample report now runs the tide program itself at report time and always
    covers 30 days. It no longer reads the events database, so it is not limited
    by the days setting. $xtide.events() and the database are unchanged for
    use in your own reports.
  • New skin files xtide.css and xtide.js; all styles and colors now live in
    the css file rather than the template.
  • A test suite (pytest) covering both tide output formats (2.15 and 2.16), all
    tide failure paths, the graph geometry, and an end-to-end render of the
    sample template — mostly against fake tide executables for determinism.
    Integration tests then verify the real tide program's output format still
    matches what the extension expects — worth running after any xtide or
    harmonics upgrade. A missing or non-working tide fails the suite: either
    one is an early signal that the extension will not work in production.

What's fixed

  • A defective return-code check meant failures of the tide program were never
    properly reported. Failed runs now log XTide's actual error message —
    including unknown station names, which the tide program reports with exit
    code 0 and which previously produced no log message at all.
  • The tide invocation now has a 10-second timeout so a wedged tide program
    cannot hang the polling thread (normal runs take well under a second).

Requirements

  • Python 3.10 or later
  • WeeWX 4 or 5
  • XTide's tide program built and installed (see the README for step-by-step
    instructions, including the latest harmonics data)

Installing/upgrading

Download weewx-xtide.zip from this release, then:

weectl extension install weewx-xtide.zip

Restart WeeWX. No weewx.conf changes and no database changes are needed when
upgrading from 1.x. Note that upgrading replaces the sample skin
(skins/xtide/) — if you customized index.html.tmpl, save a copy first.

Release v1.1

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 01 Jul 18:19

Update xtide install instructions to install xtide 2.16
Update weewx-xtide to handle 2.16 change to how events are formatted:
xtide v2.16:
"Palo Alto Yacht Harbor, San Francisco Bay, California",2024-07-07,1:12 AM PDT,8.50 ft,"High Tide"
xtide v2.15:
Palo Alto Yacht Harbor| San Francisco Bay| California,2024-07-07,1:12 AM PDT,8.50 ft,High Tide
v1.1 handles both old and new format

Release v1.0.5

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 28 Nov 00:51

Release v1.0.5 simply improves the README instructions for installing.

Release v1.0.4

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 16 Jul 15:49

Release v1.0.4 provides a revamped sample report.

Release v1.0.3

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 15 Jul 00:51

This release contains updated (cleaner) high and low tide icons.

Release v1.0.2

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 14 Jul 21:29

Release v1.0.2 includes unencumbered icons.

Release v1.0.1

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 12 Jul 20:46

Release 1.0.1 renames the icons to xtide_icons.

Release v1.0

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 12 Jul 15:00

Release v1.0 is the initial release of the weewx-xtide extension for WeeWX 4 and WeeWx 5.