Skip to content

v1.8.0 — Water leak alerts

Choose a tag to compare

@t-philip t-philip released this 24 Aug 23:23
· 4 commits to main since this release

✨ Added

  • Water leak detection (Layer 1 of a planned multi-layer anomaly system). Watches for volume accumulated within an unbroken run of continuous flow — a real leak, stuck valve, or burst pipe doesn't pause; normal household use does. Checked every ~20s poll cycle, not on a daily/hourly rollup, so detection isn't delayed by data settling later.
  • Occupancy-aware thresholds. A much lower "away" threshold engages automatically after several consecutive near-zero gas+water days (reusing the existing absence detector), unless a logged Occupancy entry says otherwise. Never inferred from live consumption alone — that would be circular.
  • Telegram alerts + persistent in-app banner. New Settings → Leak alerts card: chat ID, thresholds, and a "Send test message" button. The banner is authoritative (always shows, no network needed) and persists until acknowledged; Telegram delivery is best-effort with a short timeout and automatic retry on the next poll if a send fails. A leak keeps nagging on an escalating schedule (immediate, then 15/30/60 min) until acknowledged or the flow actually stops. Dismissing an alert as "not a leak" nudges that household's threshold up so the same false positive won't repeat.
  • New environment variables: OMNIMETER_TELEGRAM_BOT_TOKEN, OMNIMETER_TELEGRAM_CHAT_ID (see .env.example). Off by default, same opt-in pattern as weather and the update check.

📝 Docs

  • docs/DESIGN_SPEC.md — new §11 covering the detector design, persistence, and delivery model, plus updated outbound-call counts elsewhere in the doc.