Skip to content

Air charts follow the reading asked about; scripts/edit_readings.py; month ranges and "full history" - #62

Merged
robdevops merged 9 commits into
mainfrom
claude/envirobot-next
Nov 7, 2026
Merged

robdevops merged 9 commits into
mainfrom
claude/envirobot-next

Conversation

@robdevops

Copy link
Copy Markdown
Owner
  • An air chart drawn without a reading named (a period of 3+ days) is of the reading the person named, now or in their last two messages, not always PM2.5
  • An air chart marks the reading the answer gives (the highest 5-minute reading), not the top of the shading
  • "when was CO2 highest ...": the chart goes with its figures and their times
  • Periods: "oct 2025 to oct 2026", "between jan 2026 and mar 2026", "October 2025" (calendar months); "co2 full history" / "co2 history" is the longest chart
  • The model fetches a follow-up again ("give me the timestamp") rather than asking whether to
  • scripts/edit_readings.py: list the highest readings (--list for names), dry run showing each match among the readings either side, change one reading (--at, taking in the hour and minutes that hold it) or a window to its neighbours' mean or --set; the row is marked edited by hand (new source rank EDITED) so a fetch again never replaces it. Defaults to /var/lib/private/ecobot/ecobot.sqlite without DATA_DIR; runs under the system's Python (lib.airgradient loads its client lazily)
  • IGNORE_TIMES added and reverted

Generated by Claude Code

…leted at start and never written again

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
…s are deleted at start and never written again"

This reverts commit a4380ba.
…r figures; month ranges; scripts/edit_readings.py

- A chart drawn without a reading named (a period of 3+ days) is of the air reading the person named, now or in their last two messages,
  not always PM2.5
- An air chart marks the reading the answer gives (the highest 5-minute reading), not the top of the shading (one sample inside it)
- "when was CO2 highest ...": the chart goes with its figures and their times, not its title alone
- "oct 2025 to oct 2026", "between jan 2026 and mar 2026", "October 2025": whole calendar months; a month ahead goes to the model
- The model fetches a follow-up again ("give me the timestamp") rather than asking whether to
- scripts/edit_readings.py: lists the highest readings, shows a match among the readings either side (dry run), and changes one reading
  (--at) or a window to the mean of its neighbours or --set; the row is marked as edited by hand (a new source rank, EDITED), so a fetch
  again only fills in what it lacks

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
…r edits one sensor's alone (outdoor and indoor share temperature)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
…e/ecobot/ecobot.sqlite, when DATA_DIR is unset; run as root, SQLite's side files are given back to the file's owner

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
… owner or mode (SQLite makes its side files as the file's owner)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
…rts its client (httpx) only when it is asked for, so working out the air's days needs only its metrics

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
…e hour around a 5-minute reading, the minutes inside it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
… the reading now; a period named still wins

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
@robdevops
robdevops merged commit 06006d1 into main Nov 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants