Skip to content

Releases: pgoutsos/pumpsleeper

v4.11

Choose a tag to compare

@pgoutsos pgoutsos released this 16 Aug 02:54

Fix for PumpSpy SmartPump version to ignore certain pump noise currently being recorded as pump runs.

v4.10

Choose a tag to compare

@pgoutsos pgoutsos released this 27 Jun 08:09

Fixed

  • SmartPump run times were ~1000× too long. The SmartPump (mode 3) reports run duration in milliseconds, but it was being read as seconds — so a 4.5-second run showed as 4528s, and estimated gallons were wildly inflated. Durations are now converted to seconds correctly, and estimated gallons are derived from the corrected value. Only the SmartPump is affected; the battery backup system and SO1000 are unchanged.

v4.9

Choose a tag to compare

@pgoutsos pgoutsos released this 26 Jun 16:44

Fixed

  • Updates now actually restart the services. Previously an update would download the new files and update the version label, but the automatic service restart silently failed on most installs (the service user wasn't permitted to run systemctl restart), so the old code kept running until a manual restart or reboot. The updater now verifies the restart and, if the privileged path isn't available, falls back to a no-sudo method that signals the running services so systemd respawns them with the new code — so updates take effect on their own. New installs also get an explicit permission rule for a clean restart.
  • Update status is honest about restarts. If an update installs but the services can't be restarted automatically, the Updates section now shows a clear warning telling you to restart (instead of reporting success while running old code).

v4.8

Choose a tag to compare

@pgoutsos pgoutsos released this 26 Jun 16:00

New

  • Multiple email recipients. The Email "Send to" field now accepts more than one address, separated by a semicolon (e.g. you@example.com; other@example.com). All addresses receive every notification, and the same applies to the settings-backup email. Commas also work as a separator.

v4.7 — PumpSpy SmartPump support

Choose a tag to compare

@pgoutsos pgoutsos released this 26 Jun 07:20

New

  • PumpSpy SmartPump support (third device model). Added a SmartPump option to the device selector in Settings. This variant reports pump activity on its own endpoints — pump runs via POST /pump_outlet_cycles and config via GET /pump_outlet_parameters/<deviceid> — which PumpSleeper previously didn't recognise, so its runs were logged as "unknown" transactions and never appeared on the dashboard. When SmartPump is selected, these endpoints are now decoded, recorded as pump runs, and published to MQTT / notifications like the other models. For BBS and SO1000 the endpoints still fall through untouched.

Notes

  • SmartPump cycleDuration is interpreted as seconds (not milliseconds like the SO1000); cycleCurrent is assumed to be milliamps but is unverified pending a live run with a non-zero current reading.

v4.6 — Compact layout

Choose a tag to compare

@pgoutsos pgoutsos released this 15 Jun 04:02

New

  • Compact layout. A new two-column dashboard view optimised for at-a-glance monitoring. Toggle between Detailed and Compact using the pill in the header — your preference is saved to your account and restored on every load. Compact shows a status card (device online/offline, runs today, estimated gallons, longest run, last run detail), a full pump run history table, a device card (model, IP, signal strength with bar indicator, water sensor, mode), and a notifications card (email/ntfy on/off, last sent time). The "Today" toggle in the history header filters to today's runs client-side without a page reload. Long-run rows (>45 s) are highlighted in red.

Improved

  • Notification last-sent timestamp. Every successful notification send (email or ntfy) now records a timestamp in the database, visible in the Compact layout's notifications card.
  • Refresh indicator. The header briefly shows "↻ Refreshing…" while data is loading.

v4.5

Choose a tag to compare

@pgoutsos pgoutsos released this 14 Jun 03:02

Improved

  • "Save Logs" now downloads a zip of all three log files. Previously the button downloaded a single text file from journalctl, which missed almost everything useful — the service writes to flat files, not the journal. The zip now contains server.log (proxy events, pump runs, real-event notifications), dashboard.log (test notification results, settings changes, API errors), and journal.log (service start/stop, crashes). ANSI color codes are stripped from the flat logs. This makes it straightforward to diagnose notification issues: open dashboard.log and search for NOTIF.

v4.4

Choose a tag to compare

@pgoutsos pgoutsos released this 13 Jun 22:58

Fixed

  • Ntfy notifications failed when the title contained emoji (e.g. the ⚠ high-water alert). The header-based ntfy API encodes header values as latin-1, which can't represent characters outside that range. Switched to the ntfy JSON body API, which is fully UTF-8 and handles emoji and any non-ASCII characters in both title and message.

v4.3

Choose a tag to compare

@pgoutsos pgoutsos released this 13 Jun 22:51

Fixed

  • Gmail (and strict SMTP servers) rejected email notifications. The SMTP handshake was missing a second EHLO after the TLS upgrade (STARTTLS). The correct sequence is EHLO → STARTTLS → EHLO → LOGIN; skipping the post-TLS EHLO causes some servers to refuse login. Fixed in both the notification sender and the backup email sender.

v4.2

Choose a tag to compare

@pgoutsos pgoutsos released this 13 Jun 05:10

Fixed

  • Proxy forwarding used the wrong pumpspy.com server. The proxy was hardcoded to 206.80.104.221, but the SO1000 device actually connects to 173.241.229.38 (verified via packet capture). Requests were going to a different backend with no session context for the device, so rht_parameters returned a config that didn't trigger cycle mode and /rht_outlet_cycles was never sent. The proxy now derives the target from the device's own Host header (www.pumpspy.com:8081) so it follows pumpspy.com regardless of IP changes.
  • Malformed proxy URL due to trailing space in Host header. The device sends Host: www.pumpspy.com:8081 with a trailing space; the proxy was concatenating it directly into the URL, producing http://www.pumpspy.com:8081 /path which failed to parse. The Host value is now stripped before use.